Browse Source

feat: local profile name autofill #1191

dongchengjie 11 months ago
parent
commit
eb060d2e43
2 changed files with 11 additions and 3 deletions
  1. 2 2
      src/components/profile/file-input.tsx
  2. 9 1
      src/components/profile/profile-viewer.tsx

+ 2 - 2
src/components/profile/file-input.tsx

@@ -4,7 +4,7 @@ import { useTranslation } from "react-i18next";
 import { Box, Button, Typography } from "@mui/material";
 
 interface Props {
-  onChange: (value: string) => void;
+  onChange: (file: File, value: string) => void;
 }
 
 export const FileInput = (props: Props) => {
@@ -28,7 +28,7 @@ export const FileInput = (props: Props) => {
       const reader = new FileReader();
       reader.onload = (event) => {
         resolve(null);
-        onChange(event.target?.result as string);
+        onChange(file, event.target?.result as string);
       };
       reader.onerror = reject;
       reader.readAsText(file);

+ 9 - 1
src/components/profile/profile-viewer.tsx

@@ -246,7 +246,15 @@ export const ProfileViewer = forwardRef<ProfileViewerRef, Props>(
         )}
 
         {isLocal && openType === "new" && (
-          <FileInput onChange={(val) => (fileDataRef.current = val)} />
+          <FileInput
+            onChange={(file, val) => {
+              if (!formIns.getValues("name")) {
+                const name = file.name.substring(0, file.name.lastIndexOf("."));
+                formIns.setValue("name", name);
+              }
+              fileDataRef.current = val;
+            }}
+          />
         )}
 
         {isRemote && (