diff --git a/frontend/src/components/fileManagement/StorageStatsCard.tsx b/frontend/src/components/fileManagement/StorageStatsCard.tsx
deleted file mode 100644
index 2d2488712..000000000
--- a/frontend/src/components/fileManagement/StorageStatsCard.tsx
+++ /dev/null
@@ -1,92 +0,0 @@
-import React from "react";
-import { Card, Group, Text, Button, Progress, Alert, Stack } from "@mantine/core";
-import { useTranslation } from "react-i18next";
-import StorageIcon from "@mui/icons-material/Storage";
-import DeleteIcon from "@mui/icons-material/Delete";
-import WarningIcon from "@mui/icons-material/Warning";
-import { StorageStats } from "../../services/fileStorage";
-import { formatFileSize } from "../../utils/fileUtils";
-import { getStorageUsagePercent } from "../../utils/storageUtils";
-import { StorageConfig } from "../../types/file";
-
-interface StorageStatsCardProps {
- storageStats: StorageStats | null;
- filesCount: number;
- onClearAll: () => void;
- onReloadFiles: () => void;
- storageConfig: StorageConfig;
-}
-
-const StorageStatsCard = ({
- storageStats,
- filesCount,
- onClearAll,
- onReloadFiles,
- storageConfig,
-}: StorageStatsCardProps) => {
- const { t } = useTranslation();
-
- if (!storageStats) return null;
-
- const storageUsagePercent = getStorageUsagePercent(storageStats);
- const totalUsed = storageStats.totalSize || storageStats.used;
- const hardLimitPercent = (totalUsed / storageConfig.maxTotalStorage) * 100;
- const isNearLimit = hardLimitPercent >= storageConfig.warningThreshold * 100;
-
- return (
-
-
-
-
-
-
- {t("storage.storageUsed", "Storage used")}: {formatFileSize(totalUsed)} / {formatFileSize(storageConfig.maxTotalStorage)}
-
-
-
- {filesCount > 0 && (
- }
- >
- {t("fileManager.clearAll", "Clear All")}
-
- )}
-
-
-
-
-
- );
-};
-
-export default StorageStatsCard;
diff --git a/frontend/src/components/fileManager/FileListItem.tsx b/frontend/src/components/fileManager/FileListItem.tsx
index bfdc30b66..147133009 100644
--- a/frontend/src/components/fileManager/FileListItem.tsx
+++ b/frontend/src/components/fileManager/FileListItem.tsx
@@ -2,7 +2,17 @@ import React, { useState } from 'react';
import { Group, Box, Text, ActionIcon, Checkbox, Divider } from '@mantine/core';
import DeleteIcon from '@mui/icons-material/Delete';
import { getFileSize, getFileDate } from '../../utils/fileUtils';
-import { FileListItemProps } from './types';
+import { FileWithUrl } from '../../types/file';
+
+interface FileListItemProps {
+ file: FileWithUrl;
+ isSelected: boolean;
+ isSupported: boolean;
+ onSelect: () => void;
+ onRemove: () => void;
+ onDoubleClick?: () => void;
+ isLast?: boolean;
+}
const FileListItem: React.FC = ({
file,
diff --git a/frontend/src/components/fileManager/types.ts b/frontend/src/components/fileManager/types.ts
deleted file mode 100644
index 9740b1f2e..000000000
--- a/frontend/src/components/fileManager/types.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { FileWithUrl } from '../../types/file';
-
-export type FileSource = 'recent' | 'local' | 'drive';
-
-export interface FileListItemProps {
- file: FileWithUrl;
- isSelected: boolean;
- isSupported: boolean;
- onSelect: () => void;
- onRemove: () => void;
- onDoubleClick?: () => void;
- isLast?: boolean;
-}
-
diff --git a/frontend/src/components/fileManagement/FileCard.tsx b/frontend/src/components/shared/FileCard.tsx
similarity index 99%
rename from frontend/src/components/fileManagement/FileCard.tsx
rename to frontend/src/components/shared/FileCard.tsx
index d474a2f63..1b686ddaf 100644
--- a/frontend/src/components/fileManagement/FileCard.tsx
+++ b/frontend/src/components/shared/FileCard.tsx
@@ -6,6 +6,7 @@ import StorageIcon from "@mui/icons-material/Storage";
import VisibilityIcon from "@mui/icons-material/Visibility";
import EditIcon from "@mui/icons-material/Edit";
+import { FileWithUrl } from "../../types/file";
import { getFileSize, getFileDate } from "../../utils/fileUtils";
import { useIndexedDBThumbnail } from "../../hooks/useIndexedDBThumbnail";
import { fileStorage } from "../../services/fileStorage";
diff --git a/frontend/src/components/shared/FileGrid.tsx b/frontend/src/components/shared/FileGrid.tsx
index 78b5a8f17..791a8a453 100644
--- a/frontend/src/components/shared/FileGrid.tsx
+++ b/frontend/src/components/shared/FileGrid.tsx
@@ -3,7 +3,7 @@ import { Box, Flex, Group, Text, Button, TextInput, Select, Badge } from "@manti
import { useTranslation } from "react-i18next";
import SearchIcon from "@mui/icons-material/Search";
import SortIcon from "@mui/icons-material/Sort";
-import FileCard from "../fileManagement/FileCard";
+import FileCard from "./FileCard";
import { FileWithUrl } from "../../types/file";
interface FileGridProps {
diff --git a/frontend/src/contexts/FileManagerContext.tsx b/frontend/src/contexts/FileManagerContext.tsx
index 77cb5c518..33a6e86da 100644
--- a/frontend/src/contexts/FileManagerContext.tsx
+++ b/frontend/src/contexts/FileManagerContext.tsx
@@ -1,11 +1,10 @@
import React, { createContext, useContext, useState, useRef, useCallback, useEffect } from 'react';
import { FileWithUrl } from '../types/file';
-import { FileSource } from '../components/fileManager/types';
// Type for the context value - now contains everything directly
interface FileManagerContextValue {
// State
- activeSource: FileSource;
+ activeSource: 'recent' | 'local' | 'drive';
selectedFileIds: string[];
searchTerm: string;
selectedFiles: FileWithUrl[];
@@ -13,7 +12,7 @@ interface FileManagerContextValue {
fileInputRef: React.RefObject;
// Handlers
- onSourceChange: (source: FileSource) => void;
+ onSourceChange: (source: 'recent' | 'local' | 'drive') => void;
onLocalFileClick: () => void;
onFileSelect: (file: FileWithUrl) => void;
onFileRemove: (index: number) => void;
@@ -57,7 +56,7 @@ export const FileManagerProvider: React.FC = ({
storeFile,
refreshRecentFiles,
}) => {
- const [activeSource, setActiveSource] = useState('recent');
+ const [activeSource, setActiveSource] = useState<'recent' | 'local' | 'drive'>('recent');
const [selectedFileIds, setSelectedFileIds] = useState([]);
const [searchTerm, setSearchTerm] = useState('');
const fileInputRef = useRef(null);
@@ -71,7 +70,7 @@ export const FileManagerProvider: React.FC = ({
file.name.toLowerCase().includes(searchTerm.toLowerCase())
);
- const handleSourceChange = useCallback((source: FileSource) => {
+ const handleSourceChange = useCallback((source: 'recent' | 'local' | 'drive') => {
setActiveSource(source);
if (source !== 'recent') {
setSelectedFileIds([]);