1
10import type { FileListItem } from "./api";
11
12export type PickerSort = "updated" | "name" | "size" | "date";
13
14
18export function filterByName(files: FileListItem[], query: string): FileListItem[] {
19 const q = query.trim().toLowerCase();
20 if (!q) return files;
21 return files.filter((f) => f.name.toLowerCase().includes(q));
22}
23
24
30export function sortPickerFiles(files: FileListItem[], sort: PickerSort): FileListItem[] {
31 const arr = [...files];
32 switch (sort) {
33 case "name":
34 arr.sort((a, b) => a.name.localeCompare(b.name));
35 break;
36 case "size":
37 arr.sort((a, b) => b.size - a.size);
38 break;
39 case "date":
40 arr.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime());
41 break;
42 case "updated":
43 default:
44 arr.sort((a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime());
45 }
46 return arr;
47}
48