22 lines
783 B
TypeScript
22 lines
783 B
TypeScript
import { useLayoutEffect } from 'react';
|
|
import '../api';
|
|
import '../window-titlebar.css';
|
|
|
|
/** Native controls stay above this rail; no simulated window buttons or IPC. */
|
|
export function WindowTitleBar() {
|
|
const chrome = typeof window === 'undefined' ? undefined : window.assistant?.desktopChrome;
|
|
const inset = chrome?.platform === 'darwin' && chrome.titleBar === 'mac-inset';
|
|
|
|
useLayoutEffect(() => {
|
|
if (!inset) return;
|
|
const element = document.documentElement;
|
|
element.dataset.desktopChrome = 'mac-inset';
|
|
return () => { delete element.dataset.desktopChrome; };
|
|
}, [inset]);
|
|
|
|
if (!inset) return null;
|
|
return <header className="window-titlebar" aria-label="应用标题栏" data-testid="window-titlebar">
|
|
<span>橘子拓客</span>
|
|
</header>;
|
|
}
|