mirror of
https://github.com/MetaFam/TheGame.git
synced 2026-02-09 05:25:15 -05:00
91 lines
2.2 KiB
TypeScript
91 lines
2.2 KiB
TypeScript
import { FlexContainer, PageContainer } from 'components/Container';
|
|
import { SetupHeader } from 'components/Setup/SetupHeader';
|
|
import { useSetupFlow } from 'contexts/SetupContext';
|
|
import { PersonalityTypes } from 'graphql/types';
|
|
import { useUser, useWeb3 } from 'lib/hooks';
|
|
import React, { useEffect } from 'react';
|
|
|
|
export const SetupProfile: React.FC = () => {
|
|
const {
|
|
step,
|
|
screen,
|
|
numTotalSteps,
|
|
options,
|
|
username,
|
|
setUsername,
|
|
personalityType,
|
|
setPersonalityType,
|
|
playerType,
|
|
setPlayerType,
|
|
availability,
|
|
setAvailability,
|
|
timeZone,
|
|
setTimeZone,
|
|
skills,
|
|
setSkills,
|
|
} = useSetupFlow();
|
|
const { user } = useUser({ redirectTo: '/' });
|
|
const { address } = useWeb3();
|
|
useEffect(() => {
|
|
if (user?.player) {
|
|
const {player} = user;
|
|
if (
|
|
player.username &&
|
|
player.username.toLowerCase() !== address?.toLowerCase() &&
|
|
!username
|
|
) {
|
|
setUsername(player.username);
|
|
}
|
|
if (player.availability_hours && !availability) {
|
|
setAvailability(player.availability_hours.toString());
|
|
}
|
|
if (player.EnneagramType && !personalityType) {
|
|
setPersonalityType(PersonalityTypes[player.EnneagramType.name]);
|
|
}
|
|
if (player.playerType && !playerType) {
|
|
setPlayerType(player.playerType);
|
|
}
|
|
if (
|
|
player.Player_Skills &&
|
|
player.Player_Skills.length > 0 &&
|
|
skills.length === 0
|
|
) {
|
|
setSkills(
|
|
player.Player_Skills.map((s) => ({
|
|
value: s.Skill.id,
|
|
label: s.Skill.name,
|
|
...s.Skill,
|
|
})),
|
|
);
|
|
}
|
|
if (player.timezone && !timeZone) {
|
|
setTimeZone(player.timezone);
|
|
}
|
|
}
|
|
}, [
|
|
user,
|
|
address,
|
|
username,
|
|
setUsername,
|
|
personalityType,
|
|
setPersonalityType,
|
|
playerType,
|
|
setPlayerType,
|
|
availability,
|
|
setAvailability,
|
|
timeZone,
|
|
setTimeZone,
|
|
skills,
|
|
setSkills,
|
|
]);
|
|
|
|
return (
|
|
<PageContainer>
|
|
{(step + 1) % numTotalSteps !== 0 && <SetupHeader />}
|
|
<FlexContainer flex={1} pt={24}>
|
|
{options[step].screens[screen].component}
|
|
</FlexContainer>
|
|
</PageContainer>
|
|
);
|
|
};
|