import { MetaButton, MetaHeading, SelectTimeZone, useToast } from '@metafam/ds'; import { FlexContainer } from 'components/Container'; import { useSetupFlow } from 'contexts/SetupContext'; import { useUpdateProfileMutation } from 'graphql/autogen/types'; import { useUser } from 'lib/hooks'; import React, { useEffect, useState } from 'react'; export const SetupTimeZone: React.FC = () => { const { onNextPress, nextButtonLabel } = useSetupFlow(); const [timeZone, setTimeZone] = useState(''); const { user } = useUser(); const toast = useToast(); const [updateProfileRes, updateProfile] = useUpdateProfileMutation(); const [loading, setLoading] = useState(false); useEffect(() => { if (user?.player) { const { player } = user; if (player.profile?.timeZone && !timeZone) { setTimeZone(player.profile.timeZone); } } }, [user, timeZone]); const handleNextPress = async () => { if (!user) return; setLoading(true); const { error } = await updateProfile({ playerId: user.id, input: { timeZone }, }); if (error) { toast({ title: 'Error', description: `Unable to update your time zone: ${error.message}`, status: 'error', isClosable: true, }); setLoading(false); return; } onNextPress(); }; const [isComponentMounted, setIsComponentMounted] = useState(false); useEffect(() => setIsComponentMounted(true), []); if (!isComponentMounted) { return null; } return ( Which time zone are you in? setTimeZone(tz.value)} labelStyle="abbrev" /> {nextButtonLabel} ); };