From e426dc8cd9046e7a16b2ac7429fde8f5d8539da1 Mon Sep 17 00:00:00 2001 From: Myzel394 <50424412+Myzel394@users.noreply.github.com> Date: Wed, 16 Nov 2022 20:11:22 +0100 Subject: [PATCH] current stand --- .../AliasDetailRoute/AliasNotesForm.tsx | 32 +++++++++++++++++-- .../SettingsRoute/SelectField.tsx | 2 +- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/src/route-widgets/AliasDetailRoute/AliasNotesForm.tsx b/src/route-widgets/AliasDetailRoute/AliasNotesForm.tsx index 13ad55e..8a1fef5 100644 --- a/src/route-widgets/AliasDetailRoute/AliasNotesForm.tsx +++ b/src/route-widgets/AliasDetailRoute/AliasNotesForm.tsx @@ -70,9 +70,32 @@ export default function AliasNotesForm({id, notes, queryKey}: AliasNotesFormProp ), }) - const {mutateAsync} = useMutation( - values => updateAlias(id, values), + const {mutateAsync} = useMutation< + Alias, + AxiosError, + AliasNote, + {previousAlias?: DecryptedAlias} + >( + values => { + updateAlias(id, values) + }, { + onMutate: async values => { + await queryClient.cancelQueries(queryKey) + + const previousAlias = queryClient.getQueryData(queryKey) + + if (previousAlias) { + ;(previousAlias as any as DecryptedAlias).notes = decryptAliasNotes( + (previousAlias as any as Alias).encryptedNotes, + _decryptUsingMasterPassword, + ) + } + + return { + previousAlias, + } + }, onSuccess: async newAlias => { ;(newAlias as any as DecryptedAlias).notes = decryptAliasNotes( newAlias.encryptedNotes, @@ -85,7 +108,10 @@ export default function AliasNotesForm({id, notes, queryKey}: AliasNotesFormProp queryClient.setQueryData(queryKey, newAlias) }, - onError: showError, + onError: error => { + showError(error) + setIsInEditMode(true) + }, }, ) const initialValues = useMemo( diff --git a/src/route-widgets/SettingsRoute/SelectField.tsx b/src/route-widgets/SettingsRoute/SelectField.tsx index a12573b..44d5336 100644 --- a/src/route-widgets/SettingsRoute/SelectField.tsx +++ b/src/route-widgets/SettingsRoute/SelectField.tsx @@ -71,7 +71,7 @@ export default function SelectField({ formik.setFieldValue(name, value) }} - disabled={formik.sSubmitting} + disabled={formik.isSubmitting} error={Boolean(formik.touched[name] && formik.errors[name])} renderValue={value => value === "null" ? (