diff --git a/web/package.json b/web/package.json
index 385aac4..afeab01 100644
--- a/web/package.json
+++ b/web/package.json
@@ -22,6 +22,7 @@
"@radix-ui/react-accordion": "^1.2.2",
"@radix-ui/react-alert-dialog": "^1.1.2",
"@radix-ui/react-avatar": "^1.1.1",
+ "@radix-ui/react-collapsible": "^1.1.2",
"@radix-ui/react-dialog": "^1.1.2",
"@radix-ui/react-dropdown-menu": "^2.1.2",
"@radix-ui/react-hover-card": "^1.1.2",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index 14149f1..309b8ed 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -26,6 +26,9 @@ importers:
'@radix-ui/react-avatar':
specifier: ^1.1.1
version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-collapsible':
+ specifier: ^1.1.2
+ version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@radix-ui/react-dialog':
specifier: ^1.1.2
version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
diff --git a/web/src/components/search_tasks/SearchTaskTable.tsx b/web/src/components/search_tasks/SearchTaskTable.tsx
index 124edf0..20fa0b6 100644
--- a/web/src/components/search_tasks/SearchTaskTable.tsx
+++ b/web/src/components/search_tasks/SearchTaskTable.tsx
@@ -4,6 +4,7 @@ import TimeAgo from 'javascript-time-ago';
import en from 'javascript-time-ago/locale/en';
import { useEffect } from 'react';
import { FiCheck, FiLoader } from 'react-icons/fi';
+import { SiMeilisearch } from 'react-icons/si';
import { match } from 'ts-pattern';
import { useAuth } from '@/api/auth';
@@ -58,7 +59,11 @@ const TaskTableEntry = ({
return (
| #{task.task_id} |
- meili/{task.external_task_id} |
+
+
+ {task.external_task_id}
+
+ |
{
diff --git a/web/src/routes/settings/_layout/locations/explorer.tsx b/web/src/routes/settings/_layout/locations/explorer.tsx
index 2e81db6..c631948 100644
--- a/web/src/routes/settings/_layout/locations/explorer.tsx
+++ b/web/src/routes/settings/_layout/locations/explorer.tsx
@@ -1,9 +1,13 @@
+import * as Collapsible from '@radix-ui/react-collapsible';
import { createFileRoute } from '@tanstack/react-router';
-import { FC } from 'react';
-import { FiFile, FiFolder } from 'react-icons/fi';
+import clsx from 'clsx';
+import { FC, useState } from 'react';
+import { FiChevronDown } from 'react-icons/fi';
+import { LuFolder, LuFolderOpen } from 'react-icons/lu';
import { useItemItems } from '@/api/item';
-import { useLocationItems, useLocationLocations } from '@/api/locations';
+import { useLocation, useLocationItems, useLocationLocations } from '@/api/locations';
+import { ItemPreview } from '@/components/item/ItemPreview';
export const Route = createFileRoute('/settings/_layout/locations/explorer')({
component: RouteComponent,
@@ -19,7 +23,7 @@ export const ItemNode: FC<{ item_id: string }> = ({ item_id }) => {
return
- {item_id}
+
@@ -32,33 +36,43 @@ export const ItemNode: FC<{ item_id: string }> = ({ item_id }) => {
};
export const LocationNode: FC<{ location_id: string }> = ({ location_id }) => {
+ const { data: location } = useLocation(location_id);
const { data: locations } = useLocationLocations(location_id);
const { data: items } = useLocationItems(location_id);
+ const [isExpanded, setIsExpanded] = useState(false);
return (
-
-
- {location_id}
-
-
-
- {locations?.map((location) => -
-
-
)}
- {items?.map((item) => -
-
-
)}
-
-
-
+
+
+
+ {isExpanded ? : } {location?.name || location_id}
+
+
+
+
+
+
+ {locations?.map((location) => -
+
+
)}
+ {items?.map((item) => -
+
+
)}
+
+
+
+
);
};
function RouteComponent() {
const { data: locations } = useLocationLocations('_');
- return
-
+ return
+
+
+
+
{locations?.map((location) => -
)}
|