diff --git a/apps/web/src/components/files/file-list-item.tsx b/apps/web/src/components/files/file-list-item.tsx
index 9de67a4b..6c2a2ce3 100644
--- a/apps/web/src/components/files/file-list-item.tsx
+++ b/apps/web/src/components/files/file-list-item.tsx
@@ -23,9 +23,10 @@ function toolName(toolId: string): string {
interface FileListItemProps {
file: UserFile;
+ disabled?: boolean;
}
-export function FileListItem({ file }: FileListItemProps) {
+export function FileListItem({ file, disabled }: FileListItemProps) {
const { selectedFileId, checkedIds, selectFile, toggleChecked } = useFilesPageStore();
const isSelected = selectedFileId === file.id;
const isChecked = checkedIds.has(file.id);
@@ -34,16 +35,21 @@ export function FileListItem({ file }: FileListItemProps) {
selectFile(file.id)}
+ aria-disabled={disabled}
+ tabIndex={disabled ? -1 : 0}
+ onClick={() => {
+ if (!disabled) selectFile(file.id);
+ }}
onKeyDown={(e) => {
- if (e.key === "Enter" || e.key === " ") selectFile(file.id);
+ if (!disabled && (e.key === "Enter" || e.key === " ")) selectFile(file.id);
}}
className={cn(
- "flex items-center gap-3 px-3 py-2 rounded-lg cursor-pointer transition-colors",
- isSelected
- ? "bg-primary/10 border border-primary/30"
- : "hover:bg-muted border border-transparent",
+ "flex items-center gap-3 px-3 py-2 rounded-lg transition-colors border",
+ disabled
+ ? "opacity-40 cursor-not-allowed border-transparent"
+ : isSelected
+ ? "bg-primary/10 border-primary/30 cursor-pointer"
+ : "hover:bg-muted border-transparent cursor-pointer",
)}
>
{/* Checkbox */}
diff --git a/apps/web/src/components/files/file-list.tsx b/apps/web/src/components/files/file-list.tsx
index e8dd5042..6d3ba819 100644
--- a/apps/web/src/components/files/file-list.tsx
+++ b/apps/web/src/components/files/file-list.tsx
@@ -24,9 +24,7 @@ export function FileList({ filterMimePrefix }: { filterMimePrefix?: string }) {
const [inputValue, setInputValue] = useState("");
const debounceRef = useRef
| null>(null);
- const files = filterMimePrefix
- ? allFiles.filter((f) => f.mimeType.startsWith(filterMimePrefix))
- : allFiles;
+ const files = allFiles;
useEffect(() => {
fetchFiles();
@@ -124,7 +122,15 @@ export function FileList({ filterMimePrefix }: { filterMimePrefix?: string }) {
{t.files.noFilesFound}
)}
- {!loading && !error && files.map((file) => )}
+ {!loading &&
+ !error &&
+ files.map((file) => (
+
+ ))}
);