import * as React from 'react' import { Button, Dialog, snackbar, TextField } from "mdui" import { data } from 'react-router' import { useContextSelector } from 'use-context-selector' import MainSharedContext, { Shared } from '../MainSharedContext' import showSnackbar from '../../utils/showSnackbar' import { CallbackError } from 'lingchair-client-protocol' import useEventListener from '../../utils/useEventListener' export default function AddFavourtieChatDialog({ ...props }: { open: boolean } & React.HTMLAttributes) { const shared = useContextSelector(MainSharedContext, (context: Shared) => ({ myProfileCache: context.myProfileCache, setShowAddFavourtieChatDialog: context.setShowAddFavourtieChatDialog, })) const dialogRef = React.useRef() useEventListener(dialogRef, 'closed', () => shared.setShowAddFavourtieChatDialog(false)) const inputTargetRef = React.useRef(null) async function addFavouriteChat() { try { shared.myProfileCache!.addFavouriteChatsOrThrow([inputTargetRef.current!.value]) inputTargetRef.current!.value = '' showSnackbar({ message: '添加成功!' }) } catch (e) { if (e instanceof CallbackError) showSnackbar({ message: '添加收藏对话失败: ' + e.message }) } } return ( { if (event.key == 'Enter') addFavouriteChat() }}> shared.setShowAddFavourtieChatDialog(false)}>取消 addFavouriteChat()}>添加 ) }