matrix-react-sdk
Version:
SDK for matrix.org using React
56 lines (49 loc) • 5.48 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.USER_TIMEZONE_KEY = void 0;
exports.getAllTimezones = getAllTimezones;
exports.getUserTimezone = getUserTimezone;
exports.setUserTimezone = setUserTimezone;
exports.shortBrowserTimezone = shortBrowserTimezone;
var _SettingLevel = require("./settings/SettingLevel");
var _SettingsStore = _interopRequireDefault(require("./settings/SettingsStore"));
/*
Copyright 2024 New Vector Ltd.
Copyright 2024 The Matrix.org Foundation C.I.C.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
const USER_TIMEZONE_KEY = exports.USER_TIMEZONE_KEY = "userTimezone";
/**
* Returning `undefined` ensure that if unset the browser default will be used in `DateTimeFormat`.
* @returns The user specified timezone or `undefined`
*/
function getUserTimezone() {
const tz = _SettingsStore.default.getValueAt(_SettingLevel.SettingLevel.DEVICE, USER_TIMEZONE_KEY);
return tz || undefined;
}
/**
* Set in the settings the given timezone
* @timezone
*/
function setUserTimezone(timezone) {
return _SettingsStore.default.setValue(USER_TIMEZONE_KEY, null, _SettingLevel.SettingLevel.DEVICE, timezone);
}
/**
* Return all the available timezones
*/
function getAllTimezones() {
return Intl.supportedValuesOf("timeZone");
}
/**
* Return the current timezone in a short human readable way
*/
function shortBrowserTimezone() {
return new Intl.DateTimeFormat(undefined, {
timeZoneName: "short"
}).formatToParts(new Date()).find(x => x.type === "timeZoneName")?.value ?? "GMT";
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfU2V0dGluZ0xldmVsIiwicmVxdWlyZSIsIl9TZXR0aW5nc1N0b3JlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIlVTRVJfVElNRVpPTkVfS0VZIiwiZXhwb3J0cyIsImdldFVzZXJUaW1lem9uZSIsInR6IiwiU2V0dGluZ3NTdG9yZSIsImdldFZhbHVlQXQiLCJTZXR0aW5nTGV2ZWwiLCJERVZJQ0UiLCJ1bmRlZmluZWQiLCJzZXRVc2VyVGltZXpvbmUiLCJ0aW1lem9uZSIsInNldFZhbHVlIiwiZ2V0QWxsVGltZXpvbmVzIiwiSW50bCIsInN1cHBvcnRlZFZhbHVlc09mIiwic2hvcnRCcm93c2VyVGltZXpvbmUiLCJEYXRlVGltZUZvcm1hdCIsInRpbWVab25lTmFtZSIsImZvcm1hdFRvUGFydHMiLCJEYXRlIiwiZmluZCIsIngiLCJ0eXBlIiwidmFsdWUiXSwic291cmNlcyI6WyIuLi9zcmMvVGltZXpvbmVIYW5kbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCB7IFNldHRpbmdMZXZlbCB9IGZyb20gXCIuL3NldHRpbmdzL1NldHRpbmdMZXZlbFwiO1xuaW1wb3J0IFNldHRpbmdzU3RvcmUgZnJvbSBcIi4vc2V0dGluZ3MvU2V0dGluZ3NTdG9yZVwiO1xuXG5leHBvcnQgY29uc3QgVVNFUl9USU1FWk9ORV9LRVkgPSBcInVzZXJUaW1lem9uZVwiO1xuXG4vKipcbiAqIFJldHVybmluZyBgdW5kZWZpbmVkYCBlbnN1cmUgdGhhdCBpZiB1bnNldCB0aGUgYnJvd3NlciBkZWZhdWx0IHdpbGwgYmUgdXNlZCBpbiBgRGF0ZVRpbWVGb3JtYXRgLlxuICogQHJldHVybnMgVGhlIHVzZXIgc3BlY2lmaWVkIHRpbWV6b25lIG9yIGB1bmRlZmluZWRgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRVc2VyVGltZXpvbmUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB0eiA9IFNldHRpbmdzU3RvcmUuZ2V0VmFsdWVBdChTZXR0aW5nTGV2ZWwuREVWSUNFLCBVU0VSX1RJTUVaT05FX0tFWSk7XG4gICAgcmV0dXJuIHR6IHx8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBTZXQgaW4gdGhlIHNldHRpbmdzIHRoZSBnaXZlbiB0aW1lem9uZVxuICogQHRpbWV6b25lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRVc2VyVGltZXpvbmUodGltZXpvbmU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBTZXR0aW5nc1N0b3JlLnNldFZhbHVlKFVTRVJfVElNRVpPTkVfS0VZLCBudWxsLCBTZXR0aW5nTGV2ZWwuREVWSUNFLCB0aW1lem9uZSk7XG59XG5cbi8qKlxuICogUmV0dXJuIGFsbCB0aGUgYXZhaWxhYmxlIHRpbWV6b25lc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxsVGltZXpvbmVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gSW50bC5zdXBwb3J0ZWRWYWx1ZXNPZihcInRpbWVab25lXCIpO1xufVxuXG4vKipcbiAqIFJldHVybiB0aGUgY3VycmVudCB0aW1lem9uZSBpbiBhIHNob3J0IGh1bWFuIHJlYWRhYmxlIHdheVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2hvcnRCcm93c2VyVGltZXpvbmUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKFxuICAgICAgICBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCh1bmRlZmluZWQsIHsgdGltZVpvbmVOYW1lOiBcInNob3J0XCIgfSlcbiAgICAgICAgICAgIC5mb3JtYXRUb1BhcnRzKG5ldyBEYXRlKCkpXG4gICAgICAgICAgICAuZmluZCgoeCkgPT4geC50eXBlID09PSBcInRpbWVab25lTmFtZVwiKT8udmFsdWUgPz8gXCJHTVRcIlxuICAgICk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBUUEsSUFBQUEsYUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsY0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBVEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBS08sTUFBTUcsaUJBQWlCLEdBQUFDLE9BQUEsQ0FBQUQsaUJBQUEsR0FBRyxjQUFjOztBQUUvQztBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNFLGVBQWVBLENBQUEsRUFBdUI7RUFDbEQsTUFBTUMsRUFBRSxHQUFHQyxzQkFBYSxDQUFDQyxVQUFVLENBQUNDLDBCQUFZLENBQUNDLE1BQU0sRUFBRVAsaUJBQWlCLENBQUM7RUFDM0UsT0FBT0csRUFBRSxJQUFJSyxTQUFTO0FBQzFCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0MsZUFBZUEsQ0FBQ0MsUUFBZ0IsRUFBaUI7RUFDN0QsT0FBT04sc0JBQWEsQ0FBQ08sUUFBUSxDQUFDWCxpQkFBaUIsRUFBRSxJQUFJLEVBQUVNLDBCQUFZLENBQUNDLE1BQU0sRUFBRUcsUUFBUSxDQUFDO0FBQ3pGOztBQUVBO0FBQ0E7QUFDQTtBQUNPLFNBQVNFLGVBQWVBLENBQUEsRUFBYTtFQUN4QyxPQUFPQyxJQUFJLENBQUNDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQztBQUM3Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDTyxTQUFTQyxvQkFBb0JBLENBQUEsRUFBVztFQUMzQyxPQUNJLElBQUlGLElBQUksQ0FBQ0csY0FBYyxDQUFDUixTQUFTLEVBQUU7SUFBRVMsWUFBWSxFQUFFO0VBQVEsQ0FBQyxDQUFDLENBQ3hEQyxhQUFhLENBQUMsSUFBSUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUN6QkMsSUFBSSxDQUFFQyxDQUFDLElBQUtBLENBQUMsQ0FBQ0MsSUFBSSxLQUFLLGNBQWMsQ0FBQyxFQUFFQyxLQUFLLElBQUksS0FBSztBQUVuRSIsImlnbm9yZUxpc3QiOltdfQ==