Files
TheGame/packages/web/components/Setup/SetupUsername.tsx
Pacien Boisson 8c99b5df50 Merge dependencies (#415)
* Bump @chakra-ui/icons from 1.0.3 to 1.0.6

Bumps [@chakra-ui/icons](https://github.com/chakra-ui/chakra-ui) from 1.0.3 to 1.0.6.
- [Release notes](https://github.com/chakra-ui/chakra-ui/releases)
- [Commits](https://github.com/chakra-ui/chakra-ui/compare/@chakra-ui/icons@1.0.3...@chakra-ui/icons@1.0.6)

Signed-off-by: dependabot[bot] <support@github.com>

* Bump tsdx from 0.13.3 to 0.14.1

Bumps [tsdx](https://github.com/formium/tsdx) from 0.13.3 to 0.14.1.
- [Release notes](https://github.com/formium/tsdx/releases)
- [Commits](https://github.com/formium/tsdx/compare/v0.13.3...v0.14.1)

Signed-off-by: dependabot[bot] <support@github.com>

* Bump @types/react from 16.9.52 to 17.0.3

Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 16.9.52 to 17.0.3.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Signed-off-by: dependabot[bot] <support@github.com>

* Bump express-graphql from 0.11.0 to 0.12.0

Bumps [express-graphql](https://github.com/graphql/express-graphql) from 0.11.0 to 0.12.0.
- [Release notes](https://github.com/graphql/express-graphql/releases)
- [Commits](https://github.com/graphql/express-graphql/compare/v0.11.0...v0.12.0)

Signed-off-by: dependabot[bot] <support@github.com>

* Bump eslint-plugin-simple-import-sort from 5.0.3 to 7.0.0

Bumps [eslint-plugin-simple-import-sort](https://github.com/lydell/eslint-plugin-simple-import-sort) from 5.0.3 to 7.0.0.
- [Release notes](https://github.com/lydell/eslint-plugin-simple-import-sort/releases)
- [Changelog](https://github.com/lydell/eslint-plugin-simple-import-sort/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lydell/eslint-plugin-simple-import-sort/compare/v5.0.3...v7.0.0)

Signed-off-by: dependabot[bot] <support@github.com>

* Bump eslint-plugin-jsx-a11y from 6.3.1 to 6.4.1

Bumps [eslint-plugin-jsx-a11y](https://github.com/evcohen/eslint-plugin-jsx-a11y) from 6.3.1 to 6.4.1.
- [Release notes](https://github.com/evcohen/eslint-plugin-jsx-a11y/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/CHANGELOG.md)
- [Commits](https://github.com/evcohen/eslint-plugin-jsx-a11y/compare/v6.3.1...v6.4.1)

Signed-off-by: dependabot[bot] <support@github.com>

* Bump eslint-plugin-jest from 24.1.3 to 24.3.1

Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 24.1.3 to 24.3.1.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v24.1.3...v24.3.1)

Signed-off-by: dependabot[bot] <support@github.com>

* Bump eslint-import-resolver-typescript from 2.2.1 to 2.4.0

Bumps [eslint-import-resolver-typescript](https://github.com/alexgorbatchev/eslint-import-resolver-typescript) from 2.2.1 to 2.4.0.
- [Release notes](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/releases)
- [Changelog](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/blob/master/CHANGELOG.md)
- [Commits](https://github.com/alexgorbatchev/eslint-import-resolver-typescript/compare/v2.2.1...v2.4.0)

Signed-off-by: dependabot[bot] <support@github.com>

* Bump eslint-config-airbnb-typescript from 9.0.0 to 12.3.1

Bumps [eslint-config-airbnb-typescript](https://github.com/iamturns/eslint-config-airbnb-typescript) from 9.0.0 to 12.3.1.
- [Release notes](https://github.com/iamturns/eslint-config-airbnb-typescript/releases)
- [Changelog](https://github.com/iamturns/eslint-config-airbnb-typescript/blob/master/CHANGELOG.md)
- [Commits](https://github.com/iamturns/eslint-config-airbnb-typescript/compare/v9.0.0...v12.3.1)

Signed-off-by: dependabot[bot] <support@github.com>

* Fix eslint imports

* Fix tslint

* lint!

* lint

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-03-16 14:45:28 +04:00

75 lines
2.0 KiB
TypeScript

import { Input, MetaButton, MetaHeading, useToast } from '@metafam/ds';
import { FlexContainer } from 'components/Container';
import { useSetupFlow } from 'contexts/SetupContext';
import { useUpdatePlayerUsernameMutation } from 'graphql/autogen/types';
import { useUser } from 'lib/hooks';
import React from 'react';
export type SetupUsernameProps = {
username: string;
setUsername: React.Dispatch<React.SetStateAction<string>>;
}
export const SetupUsername: React.FC<SetupUsernameProps> = ({ username, setUsername }) => {
const {
onNextPress,
nextButtonLabel,
} = useSetupFlow();
const { user } = useUser({ redirectTo: '/' });
const toast = useToast();
const [updateUsernameRes, updateUsername] = useUpdatePlayerUsernameMutation();
const handleNextPress = async () => {
if (!user) return;
const { error } = await updateUsername({
playerId: user.id,
username,
});
if (error) {
let errorDetail = 'The octo is sad 😢';
if (error.message.includes('Uniqueness violation')) {
errorDetail = 'This username is already taken 😢';
} else if (error.message.includes('username_is_valid')) {
errorDetail = 'A username can only contain letters, numbers, and dashes.';
}
toast({
title: 'Error',
description: `Unable to update Player Username. ${errorDetail}`,
status: 'error',
isClosable: true,
});
return;
}
onNextPress();
};
return (
<FlexContainer>
<MetaHeading mb={10} textAlign="center">
What username would you like?
</MetaHeading>
<Input
background="dark"
placeholder="USERNAME"
value={username}
onChange={(e: React.ChangeEvent<HTMLInputElement>) =>
setUsername(e.target.value)
}
/>
<MetaButton
onClick={handleNextPress}
mt={10}
isLoading={updateUsernameRes.fetching}
loadingText="Saving"
>
{nextButtonLabel}
</MetaButton>
</FlexContainer>
);
};