feat(StatusPage): add file manager button for browsing files and update props for integration
This commit is contained in:
parent
a77971e58e
commit
0900b83c95
|
|
@ -57,6 +57,8 @@ export default function App() {
|
|||
const [showSearch, setShowSearch] = useState(false);
|
||||
const [devicesOpenId, setDevicesOpenId] = useState<string | null>(null);
|
||||
const [isFullscreen, setIsFullscreen] = useState(false);
|
||||
const [fileManagerInitialPath, setFileManagerInitialPath] = useState<string | undefined>(undefined);
|
||||
const [fileManagerReturnPage, setFileManagerReturnPage] = useState<Page>('apps');
|
||||
|
||||
useEffect(() => {
|
||||
const id = 'save-status';
|
||||
|
|
@ -99,7 +101,7 @@ export default function App() {
|
|||
};
|
||||
|
||||
const pages = {
|
||||
status: <StatusPage config={config} setConfig={setConfig} />,
|
||||
status: <StatusPage config={config} setConfig={setConfig} onOpenFileManager={(path) => { setFileManagerInitialPath(path); setFileManagerReturnPage('status'); setCurrentPage('file-manager'); }} />,
|
||||
devices: <DevicesPage config={config} setConfig={setConfig} openDeviceId={devicesOpenId} onClearOpenDevice={() => setDevicesOpenId(null)} />,
|
||||
iec: <IECPage config={config} setConfig={setConfig} />,
|
||||
network: <NetworkPage config={config} setConfig={setConfig} />,
|
||||
|
|
@ -163,7 +165,8 @@ export default function App() {
|
|||
</div>
|
||||
),
|
||||
'file-manager': <MediaManager
|
||||
onBack={() => setCurrentPage('apps')}
|
||||
initialPath={fileManagerInitialPath}
|
||||
onBack={() => setCurrentPage(fileManagerReturnPage)}
|
||||
config={config}
|
||||
setConfig={setConfig}
|
||||
onNavigateToDevice={(id) => { setCurrentPage('devices'); setDevicesOpenId(id); }}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { useEffect, useState } from 'react';
|
||||
import { HardDrive, Activity, Wifi, Radio, Clock, RefreshCw, Loader2, Printer, Power, Computer, Download, Trash2, Eye } from 'lucide-react';
|
||||
import { HardDrive, Activity, Wifi, Radio, Clock, RefreshCw, Loader2, Printer, Power, Computer, Download, Trash2, Eye, FolderOpen } from 'lucide-react';
|
||||
import { listDirectory, deletePath, getFileContents, getWebDAVBaseUrl, humanFileSize, type EntryInfo } from '../webdav';
|
||||
import { toast } from 'sonner';
|
||||
import { MediaEntry } from './MediaEntry';
|
||||
|
|
@ -13,9 +13,10 @@ import { ConfirmDialog, type ConfirmOptions } from './ui/confirm-dialog';
|
|||
interface StatusPageProps {
|
||||
config: any;
|
||||
setConfig: (config: any) => void;
|
||||
onOpenFileManager?: (path: string) => void;
|
||||
}
|
||||
|
||||
export default function StatusPage({ config, setConfig }: StatusPageProps) {
|
||||
export default function StatusPage({ config, setConfig, onOpenFileManager }: StatusPageProps) {
|
||||
const { status: wsStatus, send: wsSend } = useWs();
|
||||
|
||||
// Mock memory stats
|
||||
|
|
@ -159,8 +160,17 @@ export default function StatusPage({ config, setConfig }: StatusPageProps) {
|
|||
</div>
|
||||
</div>
|
||||
</button>
|
||||
<div className="flex items-center gap-2">
|
||||
<button
|
||||
onClick={() => onOpenFileManager?.(activeDevice.base_url || activeDevice.url || '/')}
|
||||
className="p-2 rounded hover:bg-neutral-100"
|
||||
title="Browse files"
|
||||
>
|
||||
<FolderOpen className="w-5 h-5 text-neutral-500" />
|
||||
</button>
|
||||
<div className="w-2 h-2 rounded-full bg-green-500" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{mediaSetFiles && (
|
||||
<div className="mt-2">
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user