Compare commits
2 Commits
0c2fa2479c
...
c6bc1fdd52
| Author | SHA1 | Date | |
|---|---|---|---|
| c6bc1fdd52 | |||
| d8c8b0b4e1 |
|
|
@ -1,6 +1,6 @@
|
|||
import { useCallback, useEffect, useRef, useState } from 'react';
|
||||
import { ChevronLeft, ChevronRight, Pause, Play } from 'lucide-react';
|
||||
import { listDirectory, getWebDAVBaseUrl, type EntryInfo } from '../webdav';
|
||||
import { listDirectory, stat, splitPath, getWebDAVBaseUrl, type EntryInfo } from '../webdav';
|
||||
import { IMAGE_EXTS } from './MediaEntry';
|
||||
|
||||
// Module-level cache: persists for the lifetime of the page session.
|
||||
|
|
@ -60,7 +60,8 @@ export default function DirectorySlideshow({ path }: Props) {
|
|||
// Fetch directory listing and preload all images eagerly.
|
||||
useEffect(() => {
|
||||
if (!path) { setImages([]); return; }
|
||||
listDirectory(path)
|
||||
stat(path)
|
||||
.then(info => listDirectory(info?.type === 'file' ? splitPath(path).parent : path))
|
||||
.then(entries => {
|
||||
const imgs = entries.filter(e => {
|
||||
if (e.type !== 'file') return false;
|
||||
|
|
|
|||
|
|
@ -315,7 +315,7 @@ export default function HexEditor({ data, readOnly = false, onSave }: HexEditorP
|
|||
</div>
|
||||
)} */}
|
||||
|
||||
<div className="px-3 font-mono text-xs leading-5 whitespace-nowrap">
|
||||
<div className="px-3 font-mono font-bold text-xs leading-5 whitespace-nowrap">
|
||||
{Array.from({ length: lastRenderRow - firstRenderRow }, (_, i) => {
|
||||
const row = firstRenderRow + i;
|
||||
const base = row * bytesPerRow;
|
||||
|
|
@ -323,7 +323,7 @@ export default function HexEditor({ data, readOnly = false, onSave }: HexEditorP
|
|||
<div key={row} className="flex items-center">
|
||||
|
||||
{/* Address */}
|
||||
<span className="text-neutral-400 w-15 flex-shrink-0 select-none">
|
||||
<span className="text-amber-200 w-15 flex-shrink-0 select-none">
|
||||
{base.toString(16).padStart(8, '0').toUpperCase()}
|
||||
</span>
|
||||
|
||||
|
|
@ -340,8 +340,8 @@ export default function HexEditor({ data, readOnly = false, onSave }: HexEditorP
|
|||
const isAllMatch = allMatchSet.has(idx) && !isCurMatch;
|
||||
const color = isCurMatch ? 'bg-orange-500 text-white'
|
||||
: isAllMatch ? 'bg-yellow-800 text-yellow-200'
|
||||
: byte === 0 ? 'text-neutral-700'
|
||||
: 'text-green-400';
|
||||
: byte === 0 ? 'text-neutral-500'
|
||||
: 'text-green-300';
|
||||
const ring = isCursor && pane === 'hex' ? ' ring-1 ring-inset ring-blue-400' : '';
|
||||
const gap = col === 8 ? ' ml-2' : '';
|
||||
return (
|
||||
|
|
@ -357,7 +357,7 @@ export default function HexEditor({ data, readOnly = false, onSave }: HexEditorP
|
|||
</div>
|
||||
|
||||
{/* Separator */}
|
||||
<span className="text-neutral-700 mr-2 select-none">│</span>
|
||||
<span className="text-neutral-500 mr-2 select-none">│</span>
|
||||
|
||||
{/* ASCII pane */}
|
||||
<div className="flex">
|
||||
|
|
@ -372,8 +372,8 @@ export default function HexEditor({ data, readOnly = false, onSave }: HexEditorP
|
|||
const isAllMatch = allMatchSet.has(idx) && !isCurMatch;
|
||||
const color = isCurMatch ? 'bg-orange-500 text-white'
|
||||
: isAllMatch ? 'bg-yellow-800 text-yellow-200'
|
||||
: printable ? 'text-blue-300'
|
||||
: 'text-neutral-700';
|
||||
: printable ? 'text-cyan-300'
|
||||
: 'text-neutral-500';
|
||||
const ring = isCursor && pane === 'ascii' ? ' ring-1 ring-inset ring-blue-400' : '';
|
||||
return (
|
||||
<span
|
||||
|
|
|
|||
|
|
@ -41,8 +41,8 @@ export default function StatusPage({ config, setConfig, onOpenFileManager }: Sta
|
|||
};
|
||||
|
||||
const activeDevice = findActiveDevice();
|
||||
const activeDir = activeDevice
|
||||
? (activeDevice.base_url || splitPath(activeDevice.url || '/').parent)
|
||||
const activeDir = activeDevice
|
||||
? (activeDevice.base_url || activeDevice.url || null)
|
||||
: null;
|
||||
|
||||
const mediaSetFiles: MediaSetEntry[] | null =
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user