diff options
| author | soryu <soryu@soryu.co> | 2026-01-24 15:50:43 +0000 |
|---|---|---|
| committer | soryu <soryu@soryu.co> | 2026-01-24 16:17:59 +0000 |
| commit | 595548db950eca303a7d73ca09f31895d291534f (patch) | |
| tree | ad6317979526e6a683fa6987bc9979ec3ac055f3 /frontend/src/stores/index.ts | |
| parent | abc5fbed331ea527ccaac0cd4120c4a0650f8bc0 (diff) | |
| download | soryu-595548db950eca303a7d73ca09f31895d291534f.tar.gz soryu-595548db950eca303a7d73ca09f31895d291534f.zip | |
feat(frontend): Add Templates page for managing contract templates
- Add NavStrip component for top navigation between pages
- Create Templates page with template card grid layout
- Create TemplateEditor component for editing phase deliverables
- Add navigation state management in stores
- Implement three built-in templates:
- Simple: Plan phase (Plan deliverable), Execute phase (PR deliverable)
- Specification: Research, Specify, Plan, Execute, Review phases with deliverables
- Execute: Single execute phase with no deliverables
- Support for creating custom templates with configurable phases/deliverables
- Templates are persisted to localStorage
- Add comprehensive CSS styling matching existing design patterns
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
[WIP] Heartbeat checkpoint - 2026-01-24 16:13:00 UTC
[WIP] Heartbeat checkpoint - 2026-01-24 16:14:29 UTC
Diffstat (limited to 'frontend/src/stores/index.ts')
| -rw-r--r-- | frontend/src/stores/index.ts | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/frontend/src/stores/index.ts b/frontend/src/stores/index.ts index 58f461c..2fc356d 100644 --- a/frontend/src/stores/index.ts +++ b/frontend/src/stores/index.ts @@ -4,6 +4,10 @@ import { ChatMessage, Choice } from '../types' // Authentication state export const isLoggedInStore = atom<boolean>(false) +// Navigation state +export type NavPage = 'main' | 'templates' +export const currentPageStore = atom<NavPage>('main') + // VN Interface state export const isStandbyStore = atom<boolean>(false) export const currentTimeStore = atom<Date>(new Date()) @@ -91,4 +95,9 @@ export const setLoadingComplete = (complete: boolean) => { if (complete) { loadingStore.set(false) } +} + +// Navigation actions +export const navigateTo = (page: NavPage) => { + currentPageStore.set(page) }
\ No newline at end of file |
