diff --git a/apps/accounts/src/pages/passkeys/ManagePasskeyDrawer.tsx b/apps/accounts/src/pages/passkeys/ManagePasskeyDrawer.tsx index 0482cf825..9760d992d 100644 --- a/apps/accounts/src/pages/passkeys/ManagePasskeyDrawer.tsx +++ b/apps/accounts/src/pages/passkeys/ManagePasskeyDrawer.tsx @@ -16,7 +16,8 @@ interface IProps { } const ManagePasskeyDrawer = (props: IProps) => { - const { setShowPasskeyDrawer } = useContext(PasskeysContext); + const { setShowPasskeyDrawer, refreshPasskeys } = + useContext(PasskeysContext); const [showDeletePasskeyModal, setShowDeletePasskeyModal] = useState(false); const [showRenamePasskeyModal, setShowRenamePasskeyModal] = useState(false); @@ -62,12 +63,14 @@ const ManagePasskeyDrawer = (props: IProps) => { open={showDeletePasskeyModal} onClose={() => { setShowDeletePasskeyModal(false); + refreshPasskeys(); }} /> { setShowRenamePasskeyModal(false); + refreshPasskeys(); }} /> diff --git a/apps/accounts/src/pages/passkeys/PasskeysList.tsx b/apps/accounts/src/pages/passkeys/PasskeysList.tsx index 0d92e140a..9ee615528 100644 --- a/apps/accounts/src/pages/passkeys/PasskeysList.tsx +++ b/apps/accounts/src/pages/passkeys/PasskeysList.tsx @@ -1,25 +1,16 @@ import { MenuItemGroup } from '@ente/shared/components/Menu/MenuItemGroup'; -import { useEffect, useState } from 'react'; -import { getPasskeys } from 'services/passkeysService'; import { Passkey } from 'types/passkey'; import PasskeyListItem from './PasskeyListItem'; -const PasskeyComponent = () => { - const [passkeys, setPasskeys] = useState([]); - - const init = async () => { - const data = await getPasskeys(); - setPasskeys(data.passkeys || []); - }; - - useEffect(() => { - init(); - }, []); +interface IProps { + passkeys: Passkey[]; +} +const PasskeyComponent = (props: IProps) => { return ( <> - {passkeys.map((passkey) => ( + {props.passkeys.map((passkey) => ( ))} diff --git a/apps/accounts/src/pages/passkeys/index.tsx b/apps/accounts/src/pages/passkeys/index.tsx index 781d06843..06eb426ec 100644 --- a/apps/accounts/src/pages/passkeys/index.tsx +++ b/apps/accounts/src/pages/passkeys/index.tsx @@ -4,10 +4,17 @@ import { Box } from '@mui/material'; import { finishPasskeyRegistration, getPasskeyRegistrationOptions, + getPasskeys, } from '../../services/passkeysService'; import { logError } from '@ente/shared/sentry'; import _sodium from 'libsodium-wrappers'; -import { Dispatch, SetStateAction, createContext, useState } from 'react'; +import { + Dispatch, + SetStateAction, + createContext, + useEffect, + useState, +} from 'react'; import { Passkey } from 'types/passkey'; import PasskeysList from './PasskeysList'; import ManagePasskeyDrawer from './ManagePasskeyDrawer'; @@ -18,6 +25,7 @@ export const PasskeysContext = createContext( selectedPasskey: Passkey | null; setSelectedPasskey: Dispatch>; setShowPasskeyDrawer: Dispatch>; + refreshPasskeys: () => void; } ); @@ -28,6 +36,17 @@ const Passkeys = () => { const [showPasskeyDrawer, setShowPasskeyDrawer] = useState(false); + const [passkeys, setPasskeys] = useState([]); + + const init = async () => { + const data = await getPasskeys(); + setPasskeys(data.passkeys || []); + }; + + useEffect(() => { + init(); + }, []); + const handleSubmit = async (inputValue: string) => { const response: { options: { @@ -72,6 +91,7 @@ const Passkeys = () => { selectedPasskey, setSelectedPasskey, setShowPasskeyDrawer, + refreshPasskeys: init, }}> @@ -84,7 +104,7 @@ const Passkeys = () => { callback={handleSubmit} /> - +