From fe04521e07f61cb9d8be7b1ff5970d31494fe523 Mon Sep 17 00:00:00 2001 From: balzack Date: Thu, 26 Sep 2024 14:50:15 -0700 Subject: [PATCH] adding change auth modal --- app/client/mobile/src/settings/Settings.tsx | 129 +++++++++++++++++- .../mobile/src/settings/useSettings.hook.ts | 9 +- 2 files changed, 134 insertions(+), 4 deletions(-) diff --git a/app/client/mobile/src/settings/Settings.tsx b/app/client/mobile/src/settings/Settings.tsx index 7c2af896..b2d67d7a 100644 --- a/app/client/mobile/src/settings/Settings.tsx +++ b/app/client/mobile/src/settings/Settings.tsx @@ -17,11 +17,13 @@ export function Settings({ showLogout }: { showLogout: boolean }) { const [sealing, setSealing] = useState(false); const [auth, setAuth] = useState(false); const [clear, setClear] = useState(false); + const [change, setChange] = useState(false); const [sealDelete, setSealDelete] = useState(false); const [sealReset, setSealReset] = useState(false); const [sealConfig, setSealConfig] = useState(false); const [savingAuth, setSavingAuth] = useState(false); const [savingSeal, setSavingSeal] = useState(false); + const [savingChange, setSavingChange] = useState(false); const [savingDetails, setSavingDetails] = useState(false); const [savingRegistry, setSavingRegistry] = useState(false); const [savingNotifications, setSavingNotifications] = useState(false); @@ -31,6 +33,27 @@ export function Settings({ showLogout }: { showLogout: boolean }) { const [confirmingAuth, setConfirmingAuth] = useState(false); const [authMessage, setAuthMessage] = useState(''); + const changeLogin = () => { + actions.setPassword(''); + actions.setConfirm(''); + setChange(true); + } + + const saveChange = async () => { + if (!savingChange) { + setSavingChange(true) + try { + await actions.setLogin() + setChange(false); + } catch (err) { + console.log(err) + setChange(false); + setAlert(true); + } + setSavingChange(false) + } + } + const selectImage = async () => { try { const img = await ImagePicker.openPicker({ mediaType: 'photo', width: 256, height: 256, cropping: true, cropperCircleOverlay: true, includeBase64: true }); @@ -345,7 +368,7 @@ export function Settings({ showLogout }: { showLogout: boolean }) { setRegistry(!state.config.pushEnabled)}> {state.strings.enableNotifications} - + @@ -370,7 +393,7 @@ export function Settings({ showLogout }: { showLogout: boolean }) { - manageSeal}> + {state.strings.changeLogin} @@ -817,6 +840,108 @@ export function Settings({ showLogout }: { showLogout: boolean }) { + setChange(false)}> + + + + + { state.strings.changeLogin } + setChange(false)} /> + } + right={ + !state.checked ? ( + + ) : state.taken ? ( + + ) : ( + <> + ) + } + + onChangeText={value => actions.setHandle(value)} + /> + } + right={ + showPassword ? ( + setShowPassword(false)} + /> + ) : ( + setShowPassword(true)} + /> + ) + } + onChangeText={value => actions.setPassword(value)} + /> + } + right={ + showPassword ? ( + setShowConfirm(false)} + /> + ) : ( + setShowConfirm(true)} + /> + ) + } + onChangeText={value => actions.setConfirm(value)} + /> + + + + + + + + + + ); } diff --git a/app/client/mobile/src/settings/useSettings.hook.ts b/app/client/mobile/src/settings/useSettings.hook.ts index 4a4dad3b..7739c78f 100644 --- a/app/client/mobile/src/settings/useSettings.hook.ts +++ b/app/client/mobile/src/settings/useSettings.hook.ts @@ -200,8 +200,13 @@ export function useSettings() { } else { debounce.current = setTimeout(async () => { const { settings } = getSession() - const available = await settings.getUsernameStatus(handle) - updateState({ taken: !available, checked: true }) + try { + const available = await settings.getUsernameStatus(handle) + updateState({ taken: !available, checked: true }) + } + catch (err) { + console.log(err); + } }, DEBOUNCE_MS) } },