$ show LiveSplit/LiveSplitOne
LiveSplit One is a cross-platform speedrun timer application, the successor to the classic LiveSplit timer. It runs as a Progressive Web App and as a Tauri desktop application, targeting Windows, Linux, and macOS. The core timing logic is compiled to WebAssembly via the 'livesplit-core' Rust library, while the UI is built with React 19, TypeScript, and Vite. The application provides a rich set of features for speedrunners: highly customizable split timers, real-time comparisons, layout editor with drag-and-drop, integrated leaderboards from Speedrun.com, global hotkeys (desktop only), always-on-top mode, WebSocket server for remote control, and support for multiple timekeeping methods (real time vs game time). Data persistence is handled via IndexedDB in the browser and the filesystem in Tauri. The codebase is well-structured with a clear separation between core logic (WASM), UI components, and platform-specific code, though some central components like 'LiveSplit.tsx' are large and could benefit from further decomposition.
The LLM identified 2 files worth highlighting for reuse:
A reusable context menu component that supports nested submenus, icons, separators, disabled items, and keyboard navigation. It is entirely self-contained (no external dependencies beyond React) and can be extracted into any React project with minimal adaptation. The component handles positioning relative to the cursor, dynamic item generation, and cleanup on blur, demonstrating non-obvious UI engineering.
A generic modal dialog component that exposes an async 'show' function returning a Promise<boolean> (or other result), making it easy to use in imperative code paths. It renders via a portal, supports custom titles, content, and buttons, and manages open/close transitions. The pattern of combining React state with async/await is clean and reusable for any application needing modals.