all repos — caroster @ 1936e259c0f6d0ba58363becc5fd98c8391b826e

[Octree] Group carpool to your event https://caroster.io

frontend/hooks/useLocale.ts (view raw)

 1import {Enum_Userspermissionsuser_Lang as SupportedLocales} from '../generated/graphql';
 2import {useRouter} from 'next/router';
 3import moment from 'moment';
 4import {setCookie} from '../lib/cookies';
 5
 6const useLocale = (): {
 7  locale: SupportedLocales;
 8  changeLocale: (locale: SupportedLocales) => void;
 9} => {
10  const {pathname, query, asPath, push, locale} = useRouter();
11
12  const changeLocale = (newLocale: SupportedLocales) => {
13    moment.locale(newLocale);
14    setCookie('NEXT_LOCALE', newLocale);
15    push({pathname, query}, asPath, {locale: newLocale});
16  };
17
18  if (SupportedLocales[locale]) {
19    return {locale: SupportedLocales[locale], changeLocale};
20  }
21
22  const defaultLocale = SupportedLocales['en'];
23  changeLocale(defaultLocale);
24  return {locale: defaultLocale, changeLocale};
25};
26
27export default useLocale;