Răsfoiți Sursa

🐛 fix(avatar): 修复头像选择器初始选中状态问题

- 添加useEffect钩子,在对话框打开时正确设置当前选中的头像
- 确保对话框打开时value和currentFile存在的情况下才更新选中状态
yourname 4 luni în urmă
părinte
comite
7e5b1c3600
1 a modificat fișierele cu 8 adăugiri și 1 ștergeri
  1. 8 1
      src/client/admin-shadcn/components/AvatarSelector.tsx

+ 8 - 1
src/client/admin-shadcn/components/AvatarSelector.tsx

@@ -1,4 +1,4 @@
-import React, { useState } from 'react';
+import React, { useState, useEffect } from 'react';
 import { useQuery } from '@tanstack/react-query';
 import { Button } from '@/client/components/ui/button';
 import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from '@/client/components/ui/dialog';
@@ -50,6 +50,13 @@ const AvatarSelector: React.FC<AvatarSelectorProps> = ({
     enabled: !!value,
   });
 
+  // 当对话框打开时,设置当前选中的头像
+  useEffect(() => {
+    if (isOpen && value && currentFile) {
+      setSelectedFile(currentFile);
+    }
+  }, [isOpen, value, currentFile]);
+
   // 获取头像列表
   const { data: filesData, isLoading } = useQuery({
     queryKey: ['avatars-for-selection'] as const,