feat: deliver the redesigned desktop workspace
Rebuild downloads, link collection, settings, history, and statistics around a responsive desktop shell with compact account and queue tables, contextual navigation, persistent update affordances, unified overlays, and accessible keyboard interactions. Add safe history-folder reveal IPC, responsive 2560/1920/1366/1120 coverage, deterministic visual fixtures, focused component regressions, and release-tree exclusions for internal working files. Bump the public application version to 2.0.13.
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
export type FocusRestoreScheduler = (callback: () => void) => void;
|
||||
|
||||
export function getConnectedFocusTarget(
|
||||
preferredTarget: HTMLElement | null,
|
||||
fallbackTarget: HTMLElement | null = null
|
||||
): HTMLElement | null {
|
||||
if (preferredTarget?.isConnected) {
|
||||
return preferredTarget;
|
||||
}
|
||||
|
||||
return fallbackTarget?.isConnected ? fallbackTarget : null;
|
||||
}
|
||||
|
||||
export function restoreFocus(
|
||||
preferredTarget: HTMLElement | null,
|
||||
fallbackTarget: HTMLElement | null = null,
|
||||
schedule: FocusRestoreScheduler = queueMicrotask
|
||||
): void {
|
||||
schedule(() => {
|
||||
getConnectedFocusTarget(preferredTarget, fallbackTarget)?.focus();
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user