From ef9a0f28d42c2fd18d2a7fb5363e27324e5dc565 Mon Sep 17 00:00:00 2001 From: Hitesh Aringa Date: Tue, 25 Jul 2023 21:04:34 +0000 Subject: [PATCH] feat: [CODE-615]: Show Token after Creation (#233) --- .../UserManagementFlows/AddUserModal.tsx | 1 + .../UserManagementFlows.module.scss | 14 +-- .../UserManagementFlows.module.scss.d.ts | 3 +- web/src/framework/strings/stringTypes.ts | 1 + web/src/i18n/strings.en.yaml | 3 + .../pages/UserProfile/NewToken/NewToken.tsx | 90 +++++++++++++++---- 6 files changed, 86 insertions(+), 26 deletions(-) diff --git a/web/src/components/UserManagementFlows/AddUserModal.tsx b/web/src/components/UserManagementFlows/AddUserModal.tsx index c14802e5c..4ebd3c33c 100644 --- a/web/src/components/UserManagementFlows/AddUserModal.tsx +++ b/web/src/components/UserManagementFlows/AddUserModal.tsx @@ -216,6 +216,7 @@ export const FormInputWithCopyButton: React.FC< return ( void }) => { const { getString } = useStrings() const { mutate } = useMutate({ path: '/api/v1/user/tokens', verb: 'POST' }) + const [generatedToken, setGeneratedToken] = useState() + const isTokenGenerated = Boolean(generatedToken) + const lifeTimeOptions = useMemo( () => [ { label: getString('nDays', { number: 7 }), value: 604800000000000 }, @@ -34,9 +44,15 @@ const useNewToken = ({ onClose }: { onClose: () => void }) => { [getString] ) + const onModalClose = () => { + hideModal() + onClose() + setGeneratedToken() + } + const [openModal, hideModal] = useModalHook(() => { return ( - + void }) => { lifeTime: Yup.number().required(getString('validation.expirationDateRequired')) })} onSubmit={async values => { - await mutate(values) - hideModal() - onClose() + const res = await mutate(values) + setGeneratedToken(res?.access_token) }}> {formikProps => { const expiresAtString = moment(Date.now() + formikProps.values.lifeTime / 1000000).format( @@ -60,32 +75,69 @@ const useNewToken = ({ onClose }: { onClose: () => void }) => { return ( - + - {formikProps.values.lifeTime ? ( - + {getString('newToken.expireOn', { date: expiresAtString })} ) : null} - - ) - }, []) + }, [generatedToken]) return { openModal,