diff --git a/app/routes/admin/sponsor.tsx b/app/routes/admin/sponsor.tsx index 85b5529..05f9d6a 100644 --- a/app/routes/admin/sponsor.tsx +++ b/app/routes/admin/sponsor.tsx @@ -7,6 +7,7 @@ import { Button } from "~/components/ui/button"; import { confirmSubmit, promptDialog } from "~/components/ui/dialog"; import { Input } from "~/components/ui/input"; import { Select } from "~/components/ui/select"; +import { Textarea } from "~/components/ui/textarea"; import { UserAvatar } from "~/components/user-avatar"; import { pageTitle } from "~/share-meta"; import { fromWallClock, unixNow, wallClock } from "~/time"; @@ -58,7 +59,8 @@ const DONE: Record = { confirm: "已确认", amount: "已修改金额", reject: "已标为未收到", - message: "已删除留言", + message: "已保存留言", + anonymous: "已修改", delete: "已删除", }; @@ -100,7 +102,9 @@ export async function action({ request, context }: Route.ActionArgs) { ? { amount: fen() } : intent === "reject" ? { status: "rejected", reason: field("reason") } - : { message: null }, + : intent === "anonymous" + ? { anonymous: field("anonymous") === "on" } + : { message: field("message") }, }); if (res.ok) return { intent, ok: true, message: DONE[intent] ?? "已保存" }; return { intent, ok: false, message: (await res.json()).error.message }; @@ -213,20 +217,39 @@ function Row({ item: r }: { item: Item }) { )}

- {r.message && ( -

{r.message}

- )} + {/* Saved empty, the message is taken down. The boxes are keyed by what's saved, so a change + from anywhere replaces what they hold; they are off while one is sent, or what is typed + meanwhile would be replaced too. */} +
+ +