From fffe7c2e716699668ed8d7f6576175d6e472284d Mon Sep 17 00:00:00 2001 From: kate! Date: Fri, 2 Dec 2022 20:06:09 +0800 Subject: [PATCH] Fix yarn typecheck --- .../common/messaging/MessageBox.tsx | 20 ++++++++++++++----- src/mobx/stores/Draft.ts | 2 +- src/pages/home/Home.tsx | 2 +- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/components/common/messaging/MessageBox.tsx b/src/components/common/messaging/MessageBox.tsx index 35b438cf..3bf8b5e0 100644 --- a/src/components/common/messaging/MessageBox.tsx +++ b/src/components/common/messaging/MessageBox.tsx @@ -45,6 +45,8 @@ import { PermissionTooltip } from "../Tooltip"; import FilePreview from "./bars/FilePreview"; import ReplyBar from "./bars/ReplyBar"; +import { DraftObject }from "../../../mobx/stores/Draft"; + type Props = { channel: Channel; }; @@ -277,7 +279,12 @@ export default observer(({ channel }: Props) => { // Push message content to draft. const setMessage = useCallback( - (content?: string) => state.draft.set(channel._id, content), + (content?: string) => { + const dobj: DraftObject = { + content + } + state.draft.set(channel._id, dobj) + }, [state.draft, channel._id], ); @@ -317,7 +324,7 @@ export default observer(({ channel }: Props) => { if (uploadState.type === "uploading" || uploadState.type === "sending") return; - const content = state.draft.get(channel._id)?.trim() ?? ""; + const content = state.draft.get(channel._id)?.content?.trim() ?? ""; if (uploadState.type === "attached") return sendFile(content); if (content.length === 0) return; @@ -526,7 +533,7 @@ export default observer(({ channel }: Props) => { } function isInCodeBlock(cursor: number): boolean { - const content = state.draft.get(channel._id) || ""; + const content = state.draft.get(channel._id)?.content || ""; const contentBeforeCursor = content.substring(0, cursor); let delimiterCount = 0; @@ -607,9 +614,12 @@ export default observer(({ channel }: Props) => { { const v = state.draft.get(channel._id); + const cnt: DraftObject = { + content: (v == null ? "" : `${v.content} `) + `:${emoji}:` + } state.draft.set( channel._id, - `${v ? `${v} ` : ""}:${emoji}:`, + cnt, ); }} onClose={closePicker} @@ -664,7 +674,7 @@ export default observer(({ channel }: Props) => { id="message" maxLength={2000} onKeyUp={onKeyUp} - value={state.draft.get(channel._id) ?? ""} + value={state.draft.get(channel._id)?.content ?? ""} padding="var(--message-box-padding)" onKeyDown={(e) => { if (e.ctrlKey && e.key === "Enter") { diff --git a/src/mobx/stores/Draft.ts b/src/mobx/stores/Draft.ts index 345351d7..de81ea8a 100644 --- a/src/mobx/stores/Draft.ts +++ b/src/mobx/stores/Draft.ts @@ -5,7 +5,7 @@ import { mapToRecord } from "../../lib/conversion"; import Persistent from "../interfaces/Persistent"; import Store from "../interfaces/Store"; -interface DraftObject { +export interface DraftObject { content?: string; masquerade?: { avatar: string; diff --git a/src/pages/home/Home.tsx b/src/pages/home/Home.tsx index f6c82ba1..1d6e6d2f 100644 --- a/src/pages/home/Home.tsx +++ b/src/pages/home/Home.tsx @@ -53,7 +53,7 @@ export default observer(() => { const isDecember = !isTouchscreenDevice && new Date().getMonth() === 11; const isOctober = !isTouchscreenDevice && new Date().getMonth() === 9 const snowflakes = useMemo(() => { - const flakes = []; + const flakes: string[] = []; if (isDecember) { for (let i = 0; i < 15; i++) {