mirror of
https://github.com/stablyai/orca.git
synced 2026-10-20 00:03:45 +00:00
fix(lint): extract terminal display mode predicate
This commit is contained in:
@@ -244,6 +244,7 @@ import {
|
||||
getActiveTabIdForHandle,
|
||||
isFileExistsErrorMessage,
|
||||
isGestureMouseTrackingMode,
|
||||
isTerminalPhoneDisplayMode,
|
||||
MOBILE_SESSION_STATUS_LABELS,
|
||||
TERMINAL_GESTURE_INPUT_BUCKET_CAPACITY,
|
||||
TERMINAL_GESTURE_INPUT_FLUSH_DELAY_MS,
|
||||
@@ -4167,14 +4168,6 @@ export default function SessionScreen() {
|
||||
})
|
||||
const closeWithBulkActions = createCloseWithBulkActions(handleCloseSessionTab, bulkCloseActions)
|
||||
|
||||
const isPhoneMode = (handle: string | null): boolean => {
|
||||
if (!handle) {
|
||||
return false
|
||||
}
|
||||
const mode = terminalModes.get(handle)
|
||||
return mode === 'auto' || mode === 'phone' || mode === undefined
|
||||
}
|
||||
|
||||
const visibleTabs: MobileSessionTab[] = sessionTabs
|
||||
const activeMarkdownTab = activeSessionTab?.type === 'markdown' ? activeSessionTab : null
|
||||
const activeFileTab = activeSessionTab?.type === 'file' ? activeSessionTab : null
|
||||
@@ -4832,12 +4825,12 @@ export default function SessionScreen() {
|
||||
}
|
||||
}}
|
||||
accessibilityLabel={
|
||||
isPhoneMode(activeHandle)
|
||||
isTerminalPhoneDisplayMode(activeHandle, terminalModes)
|
||||
? 'Switch to desktop mode'
|
||||
: 'Switch to phone mode'
|
||||
}
|
||||
>
|
||||
{isPhoneMode(activeHandle) ? (
|
||||
{isTerminalPhoneDisplayMode(activeHandle, terminalModes) ? (
|
||||
<Monitor
|
||||
size={14}
|
||||
color={canSend ? colors.textSecondary : colors.textMuted}
|
||||
@@ -5216,7 +5209,7 @@ export default function SessionScreen() {
|
||||
nativeChatTranscriptIsLocalReadable,
|
||||
onDismiss: () => setActionTarget(null),
|
||||
onToggleChat: toggleTabChatView,
|
||||
isPhoneMode,
|
||||
isPhoneMode: (handle) => isTerminalPhoneDisplayMode(handle, terminalModes),
|
||||
onToggleDisplayMode: (handle) => void toggleDisplayMode(handle),
|
||||
onRename: setRenameTarget,
|
||||
onClear: (target) => void handleClearTerminal(target),
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { isTerminalPhoneDisplayMode } from './mobile-session-route-helpers'
|
||||
|
||||
describe('isTerminalPhoneDisplayMode', () => {
|
||||
it('uses phone mode for automatic, phone, and unreported terminals', () => {
|
||||
const modes = new Map([
|
||||
['auto', 'auto'],
|
||||
['phone', 'phone']
|
||||
] as const)
|
||||
|
||||
expect(isTerminalPhoneDisplayMode('auto', modes)).toBe(true)
|
||||
expect(isTerminalPhoneDisplayMode('phone', modes)).toBe(true)
|
||||
expect(isTerminalPhoneDisplayMode('missing', modes)).toBe(true)
|
||||
})
|
||||
|
||||
it('rejects absent handles and desktop terminals', () => {
|
||||
const modes = new Map([['desktop', 'desktop']] as const)
|
||||
|
||||
expect(isTerminalPhoneDisplayMode(null, modes)).toBe(false)
|
||||
expect(isTerminalPhoneDisplayMode('desktop', modes)).toBe(false)
|
||||
})
|
||||
})
|
||||
@@ -34,6 +34,17 @@ export function isGestureMouseTrackingMode(
|
||||
return mode === 'x10' || mode === 'vt200' || mode === 'drag' || mode === 'any'
|
||||
}
|
||||
|
||||
export function isTerminalPhoneDisplayMode(
|
||||
handle: string | null,
|
||||
terminalModes: ReadonlyMap<string, 'auto' | 'phone' | 'desktop'>
|
||||
): boolean {
|
||||
if (!handle) {
|
||||
return false
|
||||
}
|
||||
const mode = terminalModes.get(handle)
|
||||
return mode === undefined || mode === 'auto' || mode === 'phone'
|
||||
}
|
||||
|
||||
export function getActiveTabIdForHandle(
|
||||
tabs: ReadonlyArray<{ id: string; type: string; terminal?: string | null }>,
|
||||
terminalHandle: string | null
|
||||
|
||||
Reference in New Issue
Block a user