({onBack, children, showPanel, panel, onPanelChange}: any)
| 69 | const SM = `@container (width >= ${SM_BREAK}rem)`; |
| 70 | |
| 71 | export function ExampleApp2({onBack, children, showPanel, panel, onPanelChange}: any) { |
| 72 | let [selectedPanel, setSelectedPanel] = useState<Key | null>('properties'); |
| 73 | let [transitioning, setTransitioning] = useState<Key | null>(null); |
| 74 | let displayPanel = panel || selectedPanel || transitioning; |
| 75 | let [isLarge, setLarge] = useState(true); |
| 76 | |
| 77 | let setPanel = (panel: Key | null) => { |
| 78 | onPanelChange?.(panel); |
| 79 | setSelectedPanel(panel); |
| 80 | }; |
| 81 | |
| 82 | let ref = useRef<HTMLDivElement | null>(null); |
| 83 | useResizeObserver({ |
| 84 | ref, |
| 85 | onResize() { |
| 86 | let width = ref.current!.getBoundingClientRect().width; |
| 87 | let rem = parseFloat(window.getComputedStyle(document.documentElement).fontSize); |
| 88 | let breakpoint = width / rem; |
| 89 | flushSync(() => { |
| 90 | let matches = breakpoint >= SM_BREAK; |
| 91 | setLarge(matches); |
| 92 | if (!showPanel && selectedPanel && isLarge && !matches) { |
| 93 | setPanel(null); |
| 94 | } |
| 95 | }); |
| 96 | } |
| 97 | }); |
| 98 | |
| 99 | return ( |
| 100 | <ColorSchemeProvider> |
| 101 | <div |
| 102 | ref={ref} |
| 103 | className={style({ |
| 104 | display: 'grid', |
| 105 | gridTemplateAreas: { |
| 106 | default: ['toolbar toolbar', 'content content', 'assets assets', 'panels panels'], |
| 107 | [SM]: ['toolbar toolbar toolbar toolbar', 'sidebar content assets panels'] |
| 108 | }, |
| 109 | gridTemplateRows: { |
| 110 | default: ['max-content', '1fr', 'auto', 'auto'], |
| 111 | [SM]: ['max-content', '1fr'] |
| 112 | }, |
| 113 | gridTemplateColumns: { |
| 114 | default: ['minmax(0, 1fr)', 'minmax(0, 1fr)'], |
| 115 | [SM]: ['auto', '1fr', 'auto', 'auto'] |
| 116 | }, |
| 117 | height: 'full', |
| 118 | '--radius': { |
| 119 | type: 'borderTopStartRadius', |
| 120 | value: 'lg' |
| 121 | }, |
| 122 | borderRadius: '--radius', |
| 123 | borderTopRadius: 'var(--app-frame-radius-top, var(--radius))', |
| 124 | overflow: 'clip', |
| 125 | boxSizing: 'border-box', |
| 126 | boxShadow: 'elevated', |
| 127 | position: 'relative', |
| 128 | isolation: 'isolate' |
nothing calls this directly
no test coverage detected