Skip to content

Commit 80ffc92

Browse files
committed
Checkpoint
1 parent 42c098a commit 80ffc92

1 file changed

Lines changed: 18 additions & 20 deletions

File tree

src/App.tsx

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -279,18 +279,18 @@ function getUrlParameter(name: string): string | null {
279279

280280
function updateUrlParameters(params: Record<string, string | null>) {
281281
const url = new URL(window.location.href);
282-
282+
283283
Object.entries(params).forEach(([key, value]) => {
284284
if (value === null) {
285285
url.searchParams.delete(key);
286286
} else {
287287
url.searchParams.set(key, value);
288288
}
289289
});
290-
290+
291291
// Only push state if the URL actually changed
292292
if (url.toString() !== window.location.href) {
293-
window.history.pushState({}, '', url.toString());
293+
window.history.pushState({}, "", url.toString());
294294
}
295295
}
296296

@@ -323,9 +323,9 @@ function LoadedApp() {
323323

324324
// Initialize state from URL parameters
325325
useEffect(() => {
326-
const initialRootNodeId = getUrlParameter('root');
327-
const initialSelectedNodeId = getUrlParameter('selected');
328-
326+
const initialRootNodeId = getUrlParameter("root");
327+
const initialSelectedNodeId = getUrlParameter("selected");
328+
329329
if (initialRootNodeId) {
330330
setRootNodeId(initialRootNodeId);
331331
}
@@ -337,22 +337,22 @@ function LoadedApp() {
337337
// Listen for browser navigation (back/forward buttons)
338338
useEffect(() => {
339339
const handlePopState = () => {
340-
const urlRootNodeId = getUrlParameter('root');
341-
const urlSelectedNodeId = getUrlParameter('selected');
342-
340+
const urlRootNodeId = getUrlParameter("root");
341+
const urlSelectedNodeId = getUrlParameter("selected");
342+
343343
setRootNodeId(urlRootNodeId);
344344
setSelectedNodeId(urlSelectedNodeId);
345345
};
346346

347-
window.addEventListener('popstate', handlePopState);
348-
return () => window.removeEventListener('popstate', handlePopState);
347+
window.addEventListener("popstate", handlePopState);
348+
return () => window.removeEventListener("popstate", handlePopState);
349349
}, []);
350350

351351
// Update URL when rootNodeId changes
352352
useEffect(() => {
353-
updateUrlParameters({
353+
updateUrlParameters({
354354
root: rootNodeId,
355-
selected: rootNodeId ? selectedNodeId : null
355+
selected: rootNodeId ? selectedNodeId : null,
356356
});
357357
}, [rootNodeId, selectedNodeId]);
358358

@@ -368,17 +368,17 @@ function LoadedApp() {
368368
setTreeIndex(0);
369369

370370
// Reset UI state but preserve URL parameters
371-
const urlRootNodeId = getUrlParameter('root');
372-
const urlSelectedNodeId = getUrlParameter('selected');
373-
371+
const urlRootNodeId = getUrlParameter("root");
372+
const urlSelectedNodeId = getUrlParameter("selected");
373+
374374
// Only reset if the URL doesn't specify nodes
375375
if (!urlRootNodeId) {
376376
setRootNodeId(null);
377377
}
378378
if (!urlSelectedNodeId) {
379379
setSelectedNodeId(null);
380380
}
381-
381+
382382
setError(null);
383383
})
384384
.catch((err) => {
@@ -422,8 +422,6 @@ function LoadedApp() {
422422
}
423423
}, [selectedNodeId, subtree]);
424424

425-
426-
427425
useEffect(() => {
428426
mermaid.initialize({
429427
startOnLoad: false,
@@ -1053,7 +1051,7 @@ function NodeViewer({
10531051
<div className="flex items-center gap-1">
10541052
<button
10551053
onClick={() => onRootSelect(nodeId)}
1056-
className="p-1 hover:bg-gray-100 text-xs text-gray-600 underline hover:text-gray-700 rounded"
1054+
className="p-1 hover:bg-gray-100 text-xs text-gray-800 underline hover:text-gray-900 rounded"
10571055
title="Focus as root"
10581056
>
10591057
Focus

0 commit comments

Comments
 (0)