the media preview steps through the folder

passes `onNavigate` to the viewer, which turns on the platform's new carousel:
arrows, a thumbnail strip and left/right/escape.

`?view=` is an absolute path in this panel, so the step is written straight back —
the name-relative-to-folder conversion the Files screen does is that screen's own
convention rather than a rule the viewer imposes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-29 09:28:39 +01:00
co-authored by Claude Opus 5
parent 1d820fc9d4
commit 1b171c3335
2 changed files with 8 additions and 1 deletions
+1 -1
View File
@@ -35,7 +35,7 @@ import type { PluginManifest } from '@@/plugins/manifest';
*/ */
export const manifest: PluginManifest = { export const manifest: PluginManifest = {
publisher: 'officerdev', publisher: 'officerdev',
version: '2026.08.29.25', version: '2026.08.29.26',
platform: '>=1.0.0', platform: '>=1.0.0',
label: 'Fofos', label: 'Fofos',
+7
View File
@@ -128,6 +128,13 @@ export const MediaPanel = () => {
<FileViewerView <FileViewerView
filePath={viewPath} filePath={viewPath}
fileName={viewPath.slice(viewPath.lastIndexOf('/') + 1)} fileName={viewPath.slice(viewPath.lastIndexOf('/') + 1)}
/* The carousel's step. `?view=` is an absolute path in this panel, so it is written straight
back — the conversion the Files screen needs is that screen's own convention, not a rule. */
onNavigate={(next) => {
const params2 = new URLSearchParams(params);
params2.set('view', next);
setParams(params2);
}}
onClose={() => { onClose={() => {
const next = new URLSearchParams(params); const next = new URLSearchParams(params);
next.delete('view'); next.delete('view');