import * as React from 'react' import { Dialog, TextField } from "mdui" import performAuth from '../../performAuth.ts' import showSnackbar from '../../utils/showSnackbar.ts' import MainSharedContext, { Shared } from '../MainSharedContext.ts' import { useContextSelector } from 'use-context-selector' import useEventListener from '../../utils/useEventListener.ts' export default function LoginDialog({ ...props }: { open: boolean } & React.HTMLAttributes) { const shared = useContextSelector(MainSharedContext, (context: Shared) => ({ setShowRegisterDialog: context.setShowRegisterDialog, setShowLoginDialog: context.setShowLoginDialog })) const dialogRef = React.useRef() useEventListener(dialogRef, 'closed', () => shared.setShowLoginDialog(false)) const loginInputAccountRef = React.useRef(null) const loginInputPasswordRef = React.useRef(null) return (
shared.setShowRegisterDialog(true)}>注册 { const account = loginInputAccountRef.current!.value const password = loginInputPasswordRef.current!.value try { await performAuth({ account: account, password: password, }) location.reload() } catch (e) { if (e instanceof Error) showSnackbar({ message: '登录失败: ' + e.message }) } }}>登录
) }