From 29c742a6736f11e9508005963d62a248664e8775 Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Mon, 2 Aug 2021 16:37:53 -0400 Subject: [PATCH] fix: Settings on 'Security' tab not persisting correctly after refactor (#2407) * fix: Settings on 'Security' tab not persisting correctly after refactor closes #2406 --- app/scenes/Settings/Security.js | 45 +++++++++++++-------------------- 1 file changed, 18 insertions(+), 27 deletions(-) diff --git a/app/scenes/Settings/Security.js b/app/scenes/Settings/Security.js index 3a065fe22d90..9e671badc2a6 100644 --- a/app/scenes/Settings/Security.js +++ b/app/scenes/Settings/Security.js @@ -18,38 +18,29 @@ function Security() { const team = useCurrentTeam(); const { t } = useTranslation(); const { showToast } = useToasts(); - const [sharing, setSharing] = useState(team.documentEmbeds); - const [documentEmbeds, setDocumentEmbeds] = useState(team.guestSignin); - const [guestSignin, setGuestSignin] = useState(team.sharing); + const [data, setData] = useState({ + sharing: team.sharing, + documentEmbeds: team.documentEmbeds, + guestSignin: team.guestSignin, + }); - const showSuccessMessage = debounce(() => { - showToast(t("Settings saved"), { type: "success" }); - }, 500); + const showSuccessMessage = React.useCallback( + debounce(() => { + showToast(t("Settings saved"), { type: "success" }); + }, 250), + [t, showToast] + ); const handleChange = React.useCallback( async (ev: SyntheticInputEvent<*>) => { - switch (ev.target.name) { - case "sharing": - setSharing(ev.target.checked); - break; - case "documentEmbeds": - setDocumentEmbeds(ev.target.checked); - break; - case "guestSignin": - setGuestSignin(ev.target.checked); - break; - default: - } + const newData = { ...data, [ev.target.name]: ev.target.checked }; + setData(newData); - await auth.updateTeam({ - sharing, - documentEmbeds, - guestSignin, - }); + await auth.updateTeam(newData); showSuccessMessage(); }, - [auth, sharing, documentEmbeds, guestSignin, showSuccessMessage] + [auth, data, showSuccessMessage] ); return ( @@ -67,14 +58,14 @@ function Security() {