房间置顶

This commit is contained in:
zhx 2026-06-23 20:47:41 +08:00
parent 889e75f6a1
commit 81fa3a25bb
3 changed files with 26 additions and 3 deletions

View File

@ -27,6 +27,7 @@ const pinStatusOptions = [
const pinTypeOptions = [
{ label: "区域置顶", value: "region" },
{ label: "国家置顶", value: "country" },
{ label: "全区置顶", value: "global" },
];
@ -323,5 +324,11 @@ function formatRemaining(pin) {
}
function pinTypeLabel(pinType) {
return pinType === "global" ? "全区置顶" : "区域置顶";
if (pinType === "global") {
return "全区置顶";
}
if (pinType === "country") {
return "国家置顶";
}
return "区域置顶";
}

View File

@ -1,7 +1,7 @@
import { describe, expect, test } from "vitest";
import { parseForm } from "@/shared/forms/validation";
import { humanRoomRobotConfigSchema, robotRoomCreateSchema, roomWhitelistSchema } from "./schema";
import { humanRoomRobotConfigSchema, robotRoomCreateSchema, roomPinCreateSchema, roomWhitelistSchema } from "./schema";
describe("robot room form schema", () => {
test("preserves int64 robot user ids as strings", () => {
@ -136,3 +136,19 @@ describe("room whitelist schema", () => {
expect(payload.userIds).toEqual(["1001", "325379237278126080"]);
});
});
describe("room pin create schema", () => {
test("accepts country pin type", () => {
const payload = parseForm(roomPinCreateSchema, {
expiresAtMs: "2026-07-23T19:17",
pinType: "country",
pinnedAtMs: "2026-06-23T19:17",
roomId: "lalu_20d8aba4-23da-44d2-aa6e-876f88",
weight: "0",
});
expect(payload.pinType).toBe("country");
expect(payload.roomId).toBe("lalu_20d8aba4-23da-44d2-aa6e-876f88");
expect(payload.weight).toBe(0);
});
});

View File

@ -30,7 +30,7 @@ const commaSeparatedTextListSchema = z
const pinTypeSchema = z
.string()
.trim()
.refine((value) => value === "region" || value === "global", "请选择置顶类型")
.refine((value) => value === "region" || value === "country" || value === "global", "请选择置顶类型")
.default("region");
const dateTimeMsSchema = z.union([z.string(), z.number()]).transform((value, context) => {
if (typeof value === "number" && Number.isFinite(value)) {