fix(files): hide desktop-only reveal action and label download in browser clients
Reveal-in-file-manager was always offered whenever the server exposed revealPath, including in a plain browser tab where there is no local file manager to reveal into. Gate it behind a new isBrowserClientRuntime check (web platform, no Electron shell) and relabel the save action to "Download" for that case, since it triggers a browser-style file download rather than an in-place save. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
166b89d8db
commit
f02969548a
@@ -1,4 +1,4 @@
|
||||
import type { ProjectEntry, TerminalShell } from '@/lib/api/types';
|
||||
import type { ProjectEntry, RuntimeAPIs, TerminalShell } from '@/lib/api/types';
|
||||
import { getInjectedBootOutcome } from '@/lib/desktopBoot';
|
||||
import type { DraftStarterRef } from '@/lib/draftStarters';
|
||||
import type { MobileKeyboardMode } from '@/lib/mobileKeyboardMode';
|
||||
@@ -562,6 +562,15 @@ export const isWebRuntime = (): boolean => {
|
||||
return !isVSCodeRuntime();
|
||||
};
|
||||
|
||||
/**
|
||||
* Electron reuses the web RuntimeAPIs implementation, so distinguish a browser
|
||||
* client from an Electron renderer with both the runtime descriptor and shell.
|
||||
*/
|
||||
export const isBrowserClientRuntime = (
|
||||
platform: RuntimeAPIs['runtime']['platform'],
|
||||
desktopShell = isDesktopShell(),
|
||||
): boolean => platform === 'web' && !desktopShell;
|
||||
|
||||
export const getDesktopHomeDirectory = async (): Promise<string | null> => {
|
||||
if (typeof window !== 'undefined') {
|
||||
const embedded = window.__OPENCHAMBER_HOME__;
|
||||
|
||||
Reference in New Issue
Block a user