Skip to content

Commit bd5fbf6

Browse files
committed
more info
1 parent f2fffc7 commit bd5fbf6

12 files changed

Lines changed: 1220 additions & 110 deletions

File tree

index.html

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@
33
<head>
44
<meta charset="UTF-8">
55
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<meta name="theme-color" content="#0d1117">
7+
<meta name="apple-mobile-web-app-capable" content="yes">
8+
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
9+
<meta name="apple-mobile-web-app-title" content="GTO Viewer">
10+
<meta name="mobile-web-app-capable" content="yes">
11+
<link rel="manifest" href="/manifest.json">
612
<title>GTO Session Viewer</title>
713
</head>
814
<body>
@@ -81,7 +87,8 @@
8187
<div class="breadcrumb" id="breadcrumb" style="display: none;"></div>
8288

8389
<div class="tabs">
84-
<button class="tab active" data-panel="protocols">Protocols</button>
90+
<button class="tab active" data-panel="overview">Overview</button>
91+
<button class="tab" data-panel="protocols">Protocols</button>
8592
<button class="tab" data-panel="details">Details</button>
8693
<button class="tab" data-panel="sources">Sources</button>
8794
<button class="tab" data-panel="timeline">Timeline</button>
@@ -91,7 +98,8 @@
9198
<button class="tab" data-panel="json">JSON</button>
9299
</div>
93100

94-
<div class="panel visible" id="panel-protocols"></div>
101+
<div class="panel visible" id="panel-overview"></div>
102+
<div class="panel" id="panel-protocols"></div>
95103
<div class="panel" id="panel-details"></div>
96104
<div class="panel" id="panel-sources"></div>
97105
<div class="panel" id="panel-timeline"></div>
@@ -147,37 +155,41 @@
147155
<div class="shortcut-group">
148156
<div class="shortcut-group-title">Tabs</div>
149157
<div class="shortcut-row">
150-
<span>Protocols</span>
158+
<span>Overview</span>
151159
<div class="shortcut-keys"><span class="key">1</span></div>
152160
</div>
153161
<div class="shortcut-row">
154-
<span>Details</span>
162+
<span>Protocols</span>
155163
<div class="shortcut-keys"><span class="key">2</span></div>
156164
</div>
157165
<div class="shortcut-row">
158-
<span>Sources</span>
166+
<span>Details</span>
159167
<div class="shortcut-keys"><span class="key">3</span></div>
160168
</div>
161169
<div class="shortcut-row">
162-
<span>Timeline</span>
170+
<span>Sources</span>
163171
<div class="shortcut-keys"><span class="key">4</span></div>
164172
</div>
165173
<div class="shortcut-row">
166-
<span>Annotations</span>
174+
<span>Timeline</span>
167175
<div class="shortcut-keys"><span class="key">5</span></div>
168176
</div>
169177
<div class="shortcut-row">
170-
<span>Graph</span>
178+
<span>Annotations</span>
171179
<div class="shortcut-keys"><span class="key">6</span></div>
172180
</div>
173181
<div class="shortcut-row">
174-
<span>Compare</span>
182+
<span>Graph</span>
175183
<div class="shortcut-keys"><span class="key">7</span></div>
176184
</div>
177185
<div class="shortcut-row">
178-
<span>JSON</span>
186+
<span>Compare</span>
179187
<div class="shortcut-keys"><span class="key">8</span></div>
180188
</div>
189+
<div class="shortcut-row">
190+
<span>JSON</span>
191+
<div class="shortcut-keys"><span class="key">9</span></div>
192+
</div>
181193
</div>
182194
<div class="shortcut-group">
183195
<div class="shortcut-group-title">Timeline</div>

public/manifest.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"name": "GTO Session Viewer",
3+
"short_name": "GTO Viewer",
4+
"description": "Interactive viewer for GTO session files",
5+
"start_url": "/",
6+
"display": "standalone",
7+
"background_color": "#0d1117",
8+
"theme_color": "#0d1117",
9+
"icons": [
10+
{
11+
"src": "data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><circle cx='50' cy='50' r='45' fill='%230d1117' stroke='%2330363d' stroke-width='2'/><text x='50' y='55' text-anchor='middle' fill='%23e6edf3' font-family='monospace' font-size='40'>◎</text></svg>",
12+
"sizes": "192x192",
13+
"type": "image/svg+xml"
14+
}
15+
]
16+
}

src/demo/globals.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ interface Window {
4141

4242
// Compare functions
4343
toggleCompareMode: () => void;
44-
setCompareObject: (side: string, name: string) => void;
44+
setCompareObject: (side: 'left' | 'right', name: string) => void;
4545

4646
// Graph functions
4747
zoomGraph: (delta: number) => void;

src/demo/keyboard.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,27 +53,30 @@ export function setupKeyboardShortcuts(): void {
5353
if (!e.ctrlKey && !e.metaKey) collapseAll();
5454
break;
5555
case '1':
56-
switchToTab('protocols');
56+
switchToTab('overview');
5757
break;
5858
case '2':
59-
switchToTab('details');
59+
switchToTab('protocols');
6060
break;
6161
case '3':
62-
switchToTab('sources');
62+
switchToTab('details');
6363
break;
6464
case '4':
65-
switchToTab('timeline');
65+
switchToTab('sources');
6666
break;
6767
case '5':
68-
switchToTab('annotations');
68+
switchToTab('timeline');
6969
break;
7070
case '6':
71-
switchToTab('graph');
71+
switchToTab('annotations');
7272
break;
7373
case '7':
74-
switchToTab('compare');
74+
switchToTab('graph');
7575
break;
7676
case '8':
77+
switchToTab('compare');
78+
break;
79+
case '9':
7780
switchToTab('json');
7881
break;
7982

src/demo/main.ts

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { getGtoData, setSelectedObject } from './state';
1313
import { handleFileSelect, setupDragAndDrop, setParseCallback, loadSampleFile } from './file-handler';
1414

1515
// Tree component
16-
import { renderTree, filterTree, expandAll, collapseAll, selectObjectByName, selectObject, setSelectionCallback } from './tree';
16+
import { renderTree, filterTree, expandAll, collapseAll, selectObjectByName, selectObject, setSelectionCallback, toggleTypeFilter } from './tree';
1717

1818
// Panel components
1919
import {
@@ -36,7 +36,9 @@ import {
3636
copyPropertyValue,
3737
copyPropertyPath,
3838
exportFrameSvg,
39-
exportGraphSvg
39+
exportGraphSvg,
40+
zoomGraph,
41+
resetGraphView
4042
} from './panels';
4143

4244
// Export functions
@@ -78,12 +80,13 @@ function onFileParsed(filename: string): void {
7880
renderTree();
7981
renderAllPanels();
8082

81-
// Handle hash navigation if present, otherwise select first object
83+
// Handle hash navigation if present, otherwise stay on overview
8284
const hash = window.location.hash;
8385
if (hash && hash.length > 1) {
8486
handleHashChange();
85-
} else if (gtoData.objects.length > 0) {
86-
selectObject(gtoData.objects[0]);
87+
} else {
88+
// Stay on overview tab, don't auto-select first object
89+
switchToTab('overview');
8790
}
8891
}
8992

@@ -136,6 +139,7 @@ function setupWindowGlobals(): void {
136139
window.hideShortcutsModal = hideShortcutsModal;
137140
window.copyToClipboard = copyToClipboard;
138141
window.toggleProtocolSection = toggleProtocolSection;
142+
window.toggleTypeFilter = toggleTypeFilter;
139143

140144
// Compare functions
141145
window.toggleCompareMode = () => switchToTab('compare');
@@ -163,6 +167,10 @@ function setupWindowGlobals(): void {
163167
// SVG export functions
164168
window.exportFrameSvg = exportFrameSvg;
165169
window.exportGraphSvg = exportGraphSvg;
170+
171+
// Graph functions
172+
window.zoomGraph = zoomGraph;
173+
window.resetGraphView = resetGraphView;
166174
}
167175

168176
// ============= Initialize Application =============
@@ -186,6 +194,9 @@ function init(): void {
186194
// Set up tab switching
187195
setupTabSwitching();
188196

197+
// Ensure initial tab state
198+
switchToTab('overview');
199+
189200
// Set up export menu close on outside click
190201
setupExportMenuClose();
191202

0 commit comments

Comments
 (0)