-
Notifications
You must be signed in to change notification settings - Fork 0
Frontend
JumpStart Wiki Bot edited this page Aug 8, 2026
·
1 revision
- React 18 + Vite 7 + Sass
- Scripts:
npm run dev|build|preview(usually via Wails) - No Redux — React
useState/useEffectinApp.jsxand feature components
Owns:
-
projectslist and reload - View mode:
dashboard|ports|project - Selected project, modal, toast, usage poll (3s)
- Theme + accent hooks
- Sidebar open/width
- Preferences modal, update banner, remote ad/banner overlays
Children:
-
Sidebar,Dashboard,PortsView,ProjectView,ProjectModal,Preferences,UpdateBanner,BuildBadge,AdOverlay
- Single re-export of generated
Appbindings - Re-exports
EventsOn/EventsOff/BrowserOpenURL/ClipboardSetTextfrom runtime - Wraps update checks so callers do not pass the beta flag (
updateChannel.js) - Comment block documents the analytics rule: no product SDK in the bundle
| Area | Components / modules |
|---|---|
| Dashboard / sidebar |
Dashboard, Sidebar, sidebar/ProjectRow
|
| Project |
ProjectView, ProcessCard, ProcForm, LogPanel, EnvEditor
|
| Ports | PortsView |
| Kanban |
TaskTracker, kanban/KanbanBoard, TaskCard, TaskDetailModal, SprintBar, ChatDock, chat/*
|
| Git |
GitPanel, git/CommitBox, DiffModal, BranchManager, BranchTimeline
|
| Scripts |
scripts/ScriptBar, ScriptsEditor, ScriptRunsPanel, ScriptRunLog
|
| Deps | DepsPanel |
| Containers | containers/* |
| Tests | TestPanel |
| Import |
ImportConfigModal, import/*
|
| Prefs |
Preferences, PrivacySettings, UpdateSettings, contribute/*, about/*
|
| Misc |
OpenActions, ConfirmDialog, ErrorBoundary, SearchableSelect, Switch, Icon
|
styles.scss @uses partials under styles/. Conventions:
- One concern per partial (
_kanban.scss,_git.scss, …) - Theme tokens in
_theme.scss; glass/vibrancy helpers in_glass.scss - Accent variants in
_accent.scssviadata-accent -
_fields.scssloaded last for spacious form overrides
Match existing patterns; do not introduce a parallel design system.
| Hook | Role |
|---|---|
useSidebarWidth |
Persist width |
useUpdateCheck |
Poll GitHub releases; snooze per version |
useRemoteBanner |
Fetch + dismiss remote banners |
useScriptRuns |
Script run list state |
| Kanban chat hooks | Sessions + code context wiring |
analytics.js → TrackEvent / TrackEventOnce / TrackModelSelected / SetUpdateChannel.
Use trackPanel(panel) for tab reach (once per session per panel). Never send paths, names, or free text.
platform.js only adjusts labels (Finder vs Explorer vs Files) from the user agent. Behavior lives in Go opener.
- Add tab button in
ProjectView.jsxand calltrackPanel('yourpanel'). - Create component under
components/. - Add SCSS partial and
@useit fromstyles.scss. - Wire Go APIs through
api.js. - Prefer local state; lift to
Apponly if multiple routes need it.