import type { PasswordLimitsFragment } from '@affine/graphql'; import { useI18n } from '@affine/i18n'; import type { FC } from 'react'; import { useCallback, useState } from 'react'; import { Button } from '../../ui/button'; import { notify } from '../../ui/notification'; import { AuthPageContainer } from './auth-page-container'; import { SetPassword } from './set-password'; export const ChangePasswordPage: FC<{ passwordLimits: PasswordLimitsFragment; onSetPassword: (password: string) => Promise; onOpenAffine: () => void; }> = ({ passwordLimits, onSetPassword: propsOnSetPassword, onOpenAffine }) => { const t = useI18n(); const [hasSetUp, setHasSetUp] = useState(false); const onSetPassword = useCallback( (passWord: string) => { propsOnSetPassword(passWord) .then(() => setHasSetUp(true)) .catch(e => notify.error({ title: t['com.arms.auth.password.set-failed'](), message: String(e), }) ); }, [propsOnSetPassword, t] ); return ( {hasSetUp ? ( ) : ( )} ); };