@razorpay/blade
Version:
The Design System that powers Razorpay
40 lines (37 loc) • 1.01 kB
JavaScript
import dayjs from 'dayjs';
import timezonePlugin from 'dayjs/plugin/timezone';
import utcPlugin from 'dayjs/plugin/utc';
dayjs.extend(utcPlugin);
dayjs.extend(timezonePlugin);
function getTimezoneOffset(date, timezone) {
if (timezone) {
return dayjs(date).tz(timezone).utcOffset() + date.getTimezoneOffset();
}
return 0;
}
var updateTimezone = function updateTimezone(date, timezone, direction) {
if (!date) {
return null;
}
if (!timezone) {
return date;
}
var offset = getTimezoneOffset(date, timezone);
if (direction === 'remove') {
offset *= -1;
}
return dayjs(date).add(offset, 'minutes').toDate();
};
function shiftTimezone(direction, date, timezone, disabled) {
if (disabled || !date) {
return date;
}
if (Array.isArray(date)) {
return date.map(function (d) {
return updateTimezone(d, timezone, direction);
});
}
return updateTimezone(date, timezone, direction);
}
export { shiftTimezone };
//# sourceMappingURL=shiftTimezone.js.map