drawer and upload
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { useState } from 'react';
|
||||
import { useSearchParams } from 'react-router-dom';
|
||||
import { SegmentedControl, SegmentedControlItem } from '@astryxdesign/core/SegmentedControl';
|
||||
import { VStack } from '@astryxdesign/core/VStack';
|
||||
import { PackageSearch, Upload } from 'lucide-react';
|
||||
@@ -29,7 +29,23 @@ import { SheetImportPanel } from '../import/SheetImportPanel';
|
||||
* same catalogue.
|
||||
*/
|
||||
export function GlobalCataloguePage() {
|
||||
const [mode, setMode] = useState<'catalogue' | 'sheet'>('catalogue');
|
||||
/*
|
||||
The tab is in the URL so it can be linked to.
|
||||
|
||||
Uploads has an "Upload spreadsheet" button and this is where that action
|
||||
lives for a platform operator — it writes the GLOBAL catalogue, which is not
|
||||
the same action as a merchant uploading their own list. Held in local state it
|
||||
could only be reached by landing on Browse and pressing a second control,
|
||||
which is a detour rather than a flow.
|
||||
*/
|
||||
const [params, setParams] = useSearchParams();
|
||||
const mode = params.get('tab') === 'sheet' ? 'sheet' : 'catalogue';
|
||||
const setMode = (next: 'catalogue' | 'sheet') => {
|
||||
const merged = new URLSearchParams(params);
|
||||
if (next === 'catalogue') merged.delete('tab');
|
||||
else merged.set('tab', next);
|
||||
setParams(merged, { replace: true });
|
||||
};
|
||||
|
||||
return (
|
||||
<VStack gap={3}>
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import { VStack } from '@astryxdesign/core/VStack';
|
||||
import { PageHeader } from '@/components/PageHeader';
|
||||
import { UploadsPanel } from '@/features/uploads/UploadsPanel';
|
||||
@@ -11,13 +12,18 @@ import { UploadsPanel } from '@/features/uploads/UploadsPanel';
|
||||
* merchant name on each row when it is not given one.
|
||||
*/
|
||||
export function UploadsPage() {
|
||||
const navigate = useNavigate();
|
||||
|
||||
return (
|
||||
<VStack gap={3}>
|
||||
<PageHeader
|
||||
title="Uploads"
|
||||
description="Spreadsheets sent to the catalogue service, across every merchant — what each one added, and whether it reached a shelf."
|
||||
/>
|
||||
<UploadsPanel />
|
||||
{/* A platform operator's upload writes the GLOBAL catalogue, which is a
|
||||
different action from a merchant sending their own list — so this goes
|
||||
to the page that owns it rather than opening a merchant's drawer. */}
|
||||
<UploadsPanel onUpload={() => navigate('/nearle/catalogue?tab=sheet')} />
|
||||
</VStack>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user