fix: File manager rerenders (#7999)

* Fix infinite rerender issue

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
Mike Fortman 2025-05-12 15:16:54 -05:00 committed by GitHub
commit f9b9598599
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -20,11 +20,24 @@ export default function RecentFilesComponent({
types: string[];
isList: boolean;
}) {
const filesWithType = files.map((file) => ({
...file,
type: file.path.split(".").pop()?.toLowerCase(),
}));
const [fuse, setFuse] = useState<Fuse<FileType>>(new Fuse([]));
const filesWithType = useMemo(
() =>
files.map((file) => ({
...file,
type: file.path.split(".").pop()?.toLowerCase(),
})),
[files],
);
const fuse = useMemo(
() =>
new Fuse(filesWithType, {
keys: ["name", "type"],
threshold: 0.3,
}),
[filesWithType],
);
const [searchQuery, setSearchQuery] = useState("");
const { mutate: renameFile } = usePostRenameFileV2();
@ -39,18 +52,7 @@ export default function RecentFilesComponent({
return fileExtension && (!types || types.includes(fileExtension));
});
return filteredFiles;
}, [searchQuery, filesWithType, selectedFiles, types]);
useEffect(() => {
if (filesWithType) {
setFuse(
new Fuse(filesWithType, {
keys: ["name", "type"],
threshold: 0.3,
}),
);
}
}, [filesWithType]);
}, [searchQuery, filesWithType, types]);
const handleFileSelect = (filePath: string) => {
setSelectedFiles(