fix: generate new keys modal
This commit is contained in:
parent
3c4c128931
commit
f969495178
|
@ -14,6 +14,7 @@ import {
|
||||||
Text,
|
Text,
|
||||||
useToast,
|
useToast,
|
||||||
Input,
|
Input,
|
||||||
|
Spinner,
|
||||||
} from '@chakra-ui/react';
|
} from '@chakra-ui/react';
|
||||||
import { useClient } from 'urql';
|
import { useClient } from 'urql';
|
||||||
import { FaSave } from 'react-icons/fa';
|
import { FaSave } from 'react-icons/fa';
|
||||||
|
@ -53,12 +54,17 @@ const GenerateKeysModal = ({ jwtType, getData }: propTypes) => {
|
||||||
const [stateVariables, setStateVariables] = React.useState<stateVarTypes>({
|
const [stateVariables, setStateVariables] = React.useState<stateVarTypes>({
|
||||||
...initState,
|
...initState,
|
||||||
});
|
});
|
||||||
|
const [isLoading, setIsLoading] = React.useState(false);
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
if (isOpen) {
|
if (isOpen) {
|
||||||
setStateVariables({ ...initState, JWT_TYPE: jwtType });
|
setStateVariables({ ...initState, JWT_TYPE: jwtType });
|
||||||
}
|
}
|
||||||
}, [isOpen]);
|
}, [isOpen]);
|
||||||
|
|
||||||
const fetchKeys = async () => {
|
const fetchKeys = async () => {
|
||||||
|
setIsLoading(true);
|
||||||
|
try {
|
||||||
const res = await client
|
const res = await client
|
||||||
.mutation(GenerateKeys, { params: { type: stateVariables.JWT_TYPE } })
|
.mutation(GenerateKeys, { params: { type: stateVariables.JWT_TYPE } })
|
||||||
.toPromise();
|
.toPromise();
|
||||||
|
@ -78,12 +84,19 @@ const GenerateKeysModal = ({ jwtType, getData }: propTypes) => {
|
||||||
JWT_PUBLIC_KEY: res?.data?._generate_jwt_keys?.public_key || '',
|
JWT_PUBLIC_KEY: res?.data?._generate_jwt_keys?.public_key || '',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error);
|
||||||
|
} finally {
|
||||||
|
setIsLoading(false);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
if (isOpen && stateVariables.JWT_TYPE) {
|
if (isOpen && stateVariables.JWT_TYPE) {
|
||||||
fetchKeys();
|
fetchKeys();
|
||||||
}
|
}
|
||||||
}, [stateVariables.JWT_TYPE]);
|
}, [stateVariables.JWT_TYPE]);
|
||||||
|
|
||||||
const saveHandler = async () => {
|
const saveHandler = async () => {
|
||||||
const res = await client
|
const res = await client
|
||||||
.mutation(UpdateEnvVariables, { params: { ...stateVariables } })
|
.mutation(UpdateEnvVariables, { params: { ...stateVariables } })
|
||||||
|
@ -110,9 +123,10 @@ const GenerateKeysModal = ({ jwtType, getData }: propTypes) => {
|
||||||
|
|
||||||
const closeHandler = () => {
|
const closeHandler = () => {
|
||||||
setStateVariables({ ...initState });
|
setStateVariables({ ...initState });
|
||||||
onClose();
|
|
||||||
getData();
|
getData();
|
||||||
|
onClose();
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Button
|
<Button
|
||||||
|
@ -124,7 +138,7 @@ const GenerateKeysModal = ({ jwtType, getData }: propTypes) => {
|
||||||
>
|
>
|
||||||
Generate new keys
|
Generate new keys
|
||||||
</Button>
|
</Button>
|
||||||
<Modal isOpen={isOpen} onClose={onClose}>
|
<Modal isOpen={isOpen} onClose={closeHandler}>
|
||||||
<ModalOverlay />
|
<ModalOverlay />
|
||||||
<ModalContent>
|
<ModalContent>
|
||||||
<ModalHeader>New JWT keys</ModalHeader>
|
<ModalHeader>New JWT keys</ModalHeader>
|
||||||
|
@ -146,6 +160,12 @@ const GenerateKeysModal = ({ jwtType, getData }: propTypes) => {
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</Flex>
|
</Flex>
|
||||||
|
{isLoading ? (
|
||||||
|
<Center minH="25vh">
|
||||||
|
<Spinner />
|
||||||
|
</Center>
|
||||||
|
) : (
|
||||||
|
<>
|
||||||
{Object.values(HMACEncryptionType).includes(
|
{Object.values(HMACEncryptionType).includes(
|
||||||
stateVariables.JWT_TYPE
|
stateVariables.JWT_TYPE
|
||||||
) ? (
|
) ? (
|
||||||
|
@ -163,6 +183,7 @@ const GenerateKeysModal = ({ jwtType, getData }: propTypes) => {
|
||||||
JWT_SECRET: event.target.value,
|
JWT_SECRET: event.target.value,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
readOnly
|
||||||
/>
|
/>
|
||||||
</Center>
|
</Center>
|
||||||
</Flex>
|
</Flex>
|
||||||
|
@ -179,6 +200,7 @@ const GenerateKeysModal = ({ jwtType, getData }: propTypes) => {
|
||||||
inputType={TextAreaInputType.JWT_PUBLIC_KEY}
|
inputType={TextAreaInputType.JWT_PUBLIC_KEY}
|
||||||
placeholder="Add public key here"
|
placeholder="Add public key here"
|
||||||
minH="25vh"
|
minH="25vh"
|
||||||
|
readOnly
|
||||||
/>
|
/>
|
||||||
</Center>
|
</Center>
|
||||||
</Flex>
|
</Flex>
|
||||||
|
@ -193,11 +215,14 @@ const GenerateKeysModal = ({ jwtType, getData }: propTypes) => {
|
||||||
inputType={TextAreaInputType.JWT_PRIVATE_KEY}
|
inputType={TextAreaInputType.JWT_PRIVATE_KEY}
|
||||||
placeholder="Add private key here"
|
placeholder="Add private key here"
|
||||||
minH="25vh"
|
minH="25vh"
|
||||||
|
readOnly
|
||||||
/>
|
/>
|
||||||
</Center>
|
</Center>
|
||||||
</Flex>
|
</Flex>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
</>
|
||||||
|
)}
|
||||||
</ModalBody>
|
</ModalBody>
|
||||||
|
|
||||||
<ModalFooter>
|
<ModalFooter>
|
||||||
|
@ -206,7 +231,7 @@ const GenerateKeysModal = ({ jwtType, getData }: propTypes) => {
|
||||||
colorScheme="blue"
|
colorScheme="blue"
|
||||||
variant="solid"
|
variant="solid"
|
||||||
onClick={saveHandler}
|
onClick={saveHandler}
|
||||||
isDisabled={false}
|
isDisabled={isLoading}
|
||||||
>
|
>
|
||||||
<Center h="100%" pt="5%">
|
<Center h="100%" pt="5%">
|
||||||
Apply
|
Apply
|
||||||
|
|
Loading…
Reference in New Issue
Block a user