/
Alex_Ural
/
opencode
Обзор
Документация
Войти
/
Alex_Ural
/
opencode
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
packages/app/src/context/layout-helpers.ts
38 строк
962 B
Brendan Allan
fix(app): improve tab handling (#30669)
05 июн 2026, 06:41
Не верифицирован
05 июн 2026, 06:41
5426478
Код
Авторство
О чём код?
import type { Accessor } from "solid-js" export function ensureSessionKey(key: string, touch: (key: string) => void, seed: (key: string) => void) { touch(key) seed(key) return key } export function createSessionKeyReader(sessionKey: string | Accessor<string>, ensure: (key: string) => void) { const key = typeof sessionKey === "function" ? sessionKey : () => sessionKey return () => { const value = key() ensure(value) return value } } export function pruneSessionKeys(input: { keep?: string max: number used: Map<string, number> view: string[] tabs: string[] }) { if (!input.keep) return [] const keys = new Set<string>([...input.view, ...input.tabs]) if (keys.size <= input.max) return [] const score = (key: string) => { if (key === input.keep) return Number.MAX_SAFE_INTEGER return input.used.get(key) ?? 0 } return Array.from(keys) .sort((a, b) => score(b) - score(a)) .slice(input.max) }