Files
TheGame/packages/web/utils/dateHelpers.ts
dan13ram 8517a26048 Upgrade dependencies (#486)
* upgraded storybook dependencies

* upgraded web dependencies

* updated timezone selector

* upgrade chakra in metamaps

* upgraded react-dnd in metamaps

* upgraded framer-motion

* fixed types in metamaps

* upgraded eslint

* upgraded lerna, husky and graphql

* upgraded node version

* removed metamaps package

* fixed all eslint issues

* ran yarn format to prettier format all files

* updated lint-staged & husky scripts

* add executable perms to pre-push scripts

* updated yarn.lock

* fixed eslint and moved chakra icons to ds

* fixed emotion errors

* removed extra useContext

* update yarn.lock

* upgraded more packages

* removed unnecessary .huskyrc.json

* lint fix
2021-05-01 12:46:48 +05:30

38 lines
987 B
TypeScript

import { PlayerFragmentFragment } from 'graphql/autogen/types';
import spacetime from 'spacetime';
import { display } from 'spacetime-informal';
export interface TimeZoneDisplay {
timeZone?: string;
offset?: string;
}
export const getPlayerTimeZoneDisplay = (
player: PlayerFragmentFragment,
): TimeZoneDisplay => {
let tzLabel;
let offsetLabel;
if (player?.timezone) {
const timeZone = spacetime.now().goto(player.timezone);
const tzDisplay = display(player.timezone);
if (tzDisplay && tzDisplay.daylight && tzDisplay.standard) {
tzLabel = timeZone.isDST()
? tzDisplay.daylight.abbrev
: tzDisplay.standard.abbrev;
const { offset } = timeZone.timezone().current;
if (offset > 0) {
offsetLabel = `(GMT +${offset})`;
} else if (offset < 0) {
offsetLabel = `(GMT ${offset})`;
}
} else {
tzLabel = player.timezone;
}
}
return {
timeZone: tzLabel,
offset: offsetLabel,
};
};