feat: mark embedded session chat as desktop surface

Adds a surface=desktop URL param to embedded session chat links
Uses the surface override to classify embedded chat as desktop
Covers the new URL parameter in tests
This commit is contained in:
Bohdan Triapitsyn
2026-07-11 10:48:20 +03:00
parent 5a91c08413
commit 0a89f05d07
3 changed files with 5 additions and 3 deletions
+3 -3
View File
@@ -35,9 +35,9 @@ const DEFAULT_DEVICE_INFO: DeviceInfo = {
hasTouchOnlyPointer: false,
};
const isEmbeddedSessionChat = (): boolean => {
const hasDesktopSurfaceOverride = (): boolean => {
if (typeof window === 'undefined') return false;
return new URLSearchParams(window.location.search).get('ocPanel') === 'session-chat';
return new URLSearchParams(window.location.search).get('surface') === 'desktop';
};
const getNavigatorDeviceHints = (maxTouchPoints: number) => {
@@ -109,7 +109,7 @@ export function getDeviceInfo(): DeviceInfo {
const noHover = hoverQuery?.matches ?? false;
const maxTouchPoints = typeof navigator !== 'undefined' ? navigator.maxTouchPoints ?? 0 : 0;
// Desktop panels are desktop surfaces even when their viewport is narrow.
const isDesktopShellRuntime = isDesktopShell() || isVSCodeRuntime() || isEmbeddedSessionChat();
const isDesktopShellRuntime = isDesktopShell() || isVSCodeRuntime() || hasDesktopSurfaceOverride();
const { isExplicitTablet } = getNavigatorDeviceHints(maxTouchPoints);
const hasTouchInput = prefersCoarsePointer || noHover || maxTouchPoints > 0;