Просмотр исходного кода

🐛 fix(avatar): 修复头像选择器无法取消选择的问题

- 修改handleSelectAvatar方法,实现点击已选中头像时取消选择的功能
- 优化按钮代码格式,调整换行和缩进
yourname 4 месяцев назад
Родитель
Сommit
c91385f5b8
1 измененных файлов с 10 добавлено и 3 удалено
  1. 10 3
      src/client/admin-shadcn/components/AvatarSelector.tsx

+ 10 - 3
src/client/admin-shadcn/components/AvatarSelector.tsx

@@ -70,7 +70,14 @@ const AvatarSelector: React.FC<AvatarSelectorProps> = ({
   const avatars = filesData?.data?.filter((f: any) => f?.type?.startsWith('image/')) || [];
 
   const handleSelectAvatar = (file: FileType) => {
-    setSelectedFile(file);
+    setSelectedFile(prevSelected => {
+      // 如果点击的是已选中的头像,则取消选择
+      if (prevSelected?.id === file.id) {
+        return null;
+      }
+      // 否则选择新的头像
+      return file;
+    });
   };
 
   const handleConfirm = () => {
@@ -275,8 +282,8 @@ const AvatarSelector: React.FC<AvatarSelectorProps> = ({
             <Button type="button" variant="outline" onClick={handleCancel}>
               取消
             </Button>
-            <Button 
-              type="button" 
+            <Button
+              type="button"
               onClick={handleConfirm}
               disabled={!selectedFile}
             >