mirror of
https://github.com/MetaFam/TheGame.git
synced 2026-01-25 14:17:56 -05:00
* 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
38 lines
987 B
TypeScript
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,
|
|
};
|
|
};
|