Attempt at #12289 (edit Félix: removed fix keyword since I don't think it fixes it) --------- Co-authored-by: Félix Malfait <felix.malfait@gmail.com> Co-authored-by: Félix Malfait <felix@twenty.com>
35 lines
1.2 KiB
TypeScript
35 lines
1.2 KiB
TypeScript
import React from 'react';
|
|
import { useRecoilValue } from 'recoil';
|
|
|
|
import { isCurrentUserLoadedState } from '@/auth/states/isCurrentUserLoadedState';
|
|
import { dateTimeFormatState } from '@/localization/states/dateTimeFormatState';
|
|
import { AppPath } from '@/types/AppPath';
|
|
import { UserContext } from '@/users/contexts/UserContext';
|
|
import { useLocation } from 'react-router-dom';
|
|
import { UserOrMetadataLoader } from '~/loading/components/UserOrMetadataLoader';
|
|
import { isMatchingLocation } from '~/utils/isMatchingLocation';
|
|
|
|
export const UserProvider = ({ children }: React.PropsWithChildren) => {
|
|
const isCurrentUserLoaded = useRecoilValue(isCurrentUserLoadedState);
|
|
const location = useLocation();
|
|
|
|
const dateTimeFormat = useRecoilValue(dateTimeFormatState);
|
|
|
|
return !isCurrentUserLoaded &&
|
|
!isMatchingLocation(location, AppPath.Verify) &&
|
|
!isMatchingLocation(location, AppPath.VerifyEmail) &&
|
|
!isMatchingLocation(location, AppPath.CreateWorkspace) ? (
|
|
<UserOrMetadataLoader />
|
|
) : (
|
|
<UserContext.Provider
|
|
value={{
|
|
dateFormat: dateTimeFormat.dateFormat,
|
|
timeFormat: dateTimeFormat.timeFormat,
|
|
timeZone: dateTimeFormat.timeZone,
|
|
}}
|
|
>
|
|
{children}
|
|
</UserContext.Provider>
|
|
);
|
|
};
|