Added 'reload roles' button

This commit is contained in:
Alec LaLonde
2021-09-16 12:24:19 -06:00
committed by Alec LaLonde
parent c9c807324b
commit 58b5b84af2
2 changed files with 22 additions and 7 deletions

View File

@@ -115,14 +115,20 @@ export const GuildForm: React.FC<Props> = ({
}) => {
const router = useRouter();
const [getGuildMetadataResponse] = useGetGuildMetadataQuery({
variables: { id: workingGuild.id },
});
const [getGuildMetadataResponse, getGuildMetadata] = useGetGuildMetadataQuery(
{
variables: { id: workingGuild.id },
},
);
const fetchingRoles =
getGuildMetadataResponse == null || getGuildMetadataResponse.fetching;
const guildMetadata = getGuildMetadataResponse.data
?.guild_metadata[0] as GuildMetadata;
const loadGuildMetadata = () => {
getGuildMetadata({ requestPolicy: 'network-only' });
};
const roleOptions = useMemo(() => {
const allDiscordRoles = guildMetadata?.discordRoles || [];
return allDiscordRoles.map((role) => ({
@@ -152,7 +158,7 @@ export const GuildForm: React.FC<Props> = ({
}, [workingGuild, guildMetadata, roleOptions, reset]);
return (
<Box w="100%" maxW="30rem">
<Box w="100%" maxW="40rem">
<VStack>
<Field label="Guildname" error={errors.guildname}>
<Input
@@ -265,7 +271,7 @@ export const GuildForm: React.FC<Props> = ({
))}
</Select>
</Field>
<Box my={10}>
<Box py={5}>
{fetchingRoles ? (
<div>
Fetching roles from Discord...
@@ -330,11 +336,20 @@ export const GuildForm: React.FC<Props> = ({
loadingText="Submitting information..."
onClick={handleSubmit(onSubmit)}
isDisabled={success}
bg="purple.500"
>
Submit guild information
</MetaButton>
<MetaButton
variant="outline"
fontSize="xs"
bg="purple.300"
colorScheme="facebook"
isDisabled={fetchingRoles}
onClick={loadGuildMetadata}
>
Reload roles
</MetaButton>
<MetaButton
onClick={() => router.push('/')}
isDisabled={submitting || success}
>

View File

@@ -38,7 +38,7 @@ const GuildSetupAuthCallback: React.FC = () => {
};
if (!fetching && code) {
if (localState == null || localState !== state) {
setError('State did not match');
setError('State did not match.');
return;
}
setFetching(true);