fix: format remark form payload change

This commit is contained in:
2026-05-25 21:00:56 -07:00
parent cad75b92bc
commit 095a9d6cfb
+38 -25
View File
@@ -16,6 +16,12 @@ import {
DropdownMenuTrigger,
} from "@workspace/ui/components/dropdown-menu";
import { Input } from "@workspace/ui/components/input";
import {
Popover,
PopoverClose,
PopoverContent,
PopoverTrigger,
} from "@workspace/ui/components/popover";
import { ScrollArea } from "@workspace/ui/components/scroll-area";
import {
Select,
@@ -31,13 +37,6 @@ import {
SheetTitle,
SheetTrigger,
} from "@workspace/ui/components/sheet";
import { FilePenLine } from 'lucide-react';
import {
Popover,
PopoverClose,
PopoverContent,
PopoverTrigger,
} from '@workspace/ui/components/popover';
import { Switch } from "@workspace/ui/components/switch";
import {
Tabs,
@@ -63,7 +62,9 @@ import {
updateUserBasicInfo,
} from "@workspace/ui/services/admin/user";
import { parseDeviceType } from "@workspace/ui/utils/device";
import React, { useRef, useState, useCallback } from 'react';
import { FilePenLine } from "lucide-react";
import type React from "react";
import { useCallback, useRef, useState } from "react";
import { useTranslation } from "react-i18next";
import { toast } from "sonner";
import { Display } from "@/components/display";
@@ -77,18 +78,25 @@ import { AuthMethodsForm } from "./user-profile/auth-methods-form";
import { BasicInfoForm } from "./user-profile/basic-info-form";
import { NotifySettingsForm } from "./user-profile/notify-settings-form";
import UserSubscription from "./user-subscription";
// import EditUserGroupDialog from "./edit-user-group-dialog";
// import EditUserGroupDialog from "./edit-user-group-dialog";
// 为 RemarkForm 组件定义 props 类型
interface RemarkFormProps {
initialRemark?: string | null;
onSave: (remark: string) => void;
CloseComponent: React.ComponentType<{ asChild?: boolean; children: React.ReactNode }>;
CloseComponent: React.ComponentType<{
asChild?: boolean;
children: React.ReactNode;
}>;
}
// 新的子组件,在管理它自己的备注状态
const RemarkForm: React.FC<RemarkFormProps> = ({ onSave, initialRemark, CloseComponent }) => {
const [remark, setRemark] = useState<string>(initialRemark ?? '');
const RemarkForm: React.FC<RemarkFormProps> = ({
onSave,
initialRemark,
CloseComponent,
}) => {
const [remark, setRemark] = useState<string>(initialRemark ?? "");
const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {
setRemark(event.target.value);
@@ -100,16 +108,21 @@ const RemarkForm: React.FC<RemarkFormProps> = ({ onSave, initialRemark, CloseCom
return (
<>
<div className='mb-2 text-sm font-semibold'></div>
<div className="mb-2 font-semibold text-sm"></div>
<Input
type='text'
value={remark}
className="w-full"
onChange={handleInputChange}
placeholder='在此输入备注...'
className='w-full'
placeholder="在此输入备注..."
type="text"
value={remark}
/>
<CloseComponent asChild>
<Button onClick={handleSaveClick} variant='default' size={'sm'} className={'mt-2'}>
<Button
className={"mt-2"}
onClick={handleSaveClick}
size={"sm"}
variant="default"
>
</Button>
</CloseComponent>
@@ -293,7 +306,7 @@ export default function User() {
{
id: "auth_methods",
accessorKey: "auth_methods",
header: '设备码/邮箱',
header: "设备码/邮箱",
cell: ({ row }) => {
const method = row.original.auth_methods?.[0];
const identifier = method?.auth_identifier || "";
@@ -318,15 +331,15 @@ export default function User() {
<span title={isDevice ? display : undefined}>{display}</span>
<Popover>
<PopoverTrigger>
<div className={'flex items-center'}>
{row.original?.remark ? `${row.original.remark}` : ''}
<FilePenLine size={14} className={'text-primary ml-2'} />
<div className={"flex items-center"}>
{row.original?.remark ? `${row.original.remark}` : ""}
<FilePenLine className={"ml-2 text-primary"} size={14} />
</div>
</PopoverTrigger>
<PopoverContent className={'w-64'}>
<PopoverContent className={"w-64"}>
<RemarkForm
initialRemark={row.original.remark}
CloseComponent={PopoverClose}
initialRemark={row.original.remark}
onSave={async (remark) => {
const {
auth_methods: _auth_methods,
@@ -345,7 +358,7 @@ export default function User() {
...rest,
remark,
} as unknown as API.UpdateUserBasiceInfoRequest);
toast.success(t('updateSuccess'));
toast.success(t("updateSuccess"));
ref.current?.refresh();
}}
/>