MCPcopy Index your code
hub / github.com/wavetermdev/waveterm / NodeBackdrops

Function NodeBackdrops

frontend/layout/lib/TileLayout.tsx:139–192  ·  view source on GitHub ↗
({ layoutModel }: { layoutModel: LayoutModel })

Source from the content-addressed store, hash-verified

137export const TileLayout = memo(TileLayoutComponent) as typeof TileLayoutComponent;
138
139function NodeBackdrops({ layoutModel }: { layoutModel: LayoutModel }) {
140 const [blockBlurAtom] = useState(() => getSettingsKeyAtom("window:magnifiedblockblursecondarypx"));
141 const blockBlur = useAtomValue(blockBlurAtom);
142 const ephemeralNode = useAtomValue(layoutModel.ephemeralNode);
143 const magnifiedNodeId = useAtomValue(layoutModel.magnifiedNodeIdAtom);
144
145 const [showMagnifiedBackdrop, setShowMagnifiedBackdrop] = useState(!!ephemeralNode);
146 const [showEphemeralBackdrop, setShowEphemeralBackdrop] = useState(!!magnifiedNodeId);
147
148 const debouncedSetMagnifyBackdrop = useCallback(
149 debounce(100, () => setShowMagnifiedBackdrop(true)),
150 []
151 );
152
153 useEffect(() => {
154 if (magnifiedNodeId && !showMagnifiedBackdrop) {
155 debouncedSetMagnifyBackdrop();
156 }
157 if (!magnifiedNodeId) {
158 setShowMagnifiedBackdrop(false);
159 }
160 if (ephemeralNode && !showEphemeralBackdrop) {
161 setShowEphemeralBackdrop(true);
162 }
163 if (!ephemeralNode) {
164 setShowEphemeralBackdrop(false);
165 }
166 }, [ephemeralNode, magnifiedNodeId]);
167
168 const blockBlurStr = `${blockBlur}px`;
169
170 return (
171 <>
172 {showMagnifiedBackdrop && (
173 <div
174 className="magnified-node-backdrop"
175 onClick={() => {
176 layoutModel.magnifyNodeToggle(magnifiedNodeId);
177 }}
178 style={{ "--block-blur": blockBlurStr } as CSSProperties}
179 />
180 )}
181 {showEphemeralBackdrop && (
182 <div
183 className="ephemeral-node-backdrop"
184 onClick={() => {
185 layoutModel.closeNode(ephemeralNode?.id);
186 }}
187 style={{ "--block-blur": blockBlurStr } as CSSProperties}
188 />
189 )}
190 </>
191 );
192}
193
194interface DisplayNodesWrapperProps {
195 /**

Callers

nothing calls this directly

Calls 3

getSettingsKeyAtomFunction · 0.90
magnifyNodeToggleMethod · 0.80
closeNodeMethod · 0.80

Tested by

no test coverage detected