Commit graph

22 commits

Author SHA1 Message Date
075e41ec89 feat(ui): update navigation to NavLink and implement print styles for guides 2026-07-06 11:31:41 +02:00
ab2029384b feat(guides): add navigation after save and update UI styling
- Add programmatic navigation to the guide view after successful form submission.
- Add class names and layout styling for header, navigation sidebar, and action buttons.
- Update Guide view print layout.
2026-06-30 11:49:10 +02:00
03df525775 feat(guide): style guide layout and hide links in print view
- Add class names to Guide layout elements (, ).
- Restrict guide max-width and add padding.
- Update global  styling to use outline.
- Hide anchor tags and reset main margin in print media query.
2026-06-24 11:14:14 +02:00
c4a8f975c5 feat: add settings page and fix sidebar layout
- Add Settings route, component, and useSettings hook
- Add Settings link to nav
- Fix sidebar to use fixed positioning instead of flexbox
- Fix footer to stay within sidebar column
- Reset form after save in useGuideForm
- Use SubmitEvent type for handleSaveGuide
2026-06-18 12:00:55 +02:00
eb30a325db fix(guides): fix hard reload empty state and frame rendering bugs
- Split GuideForm into outer/inner components to gate rendering on
  guide context loading, fixing empty edit form on hard reload
- Add loading state to GuideContext
- Replace URL.createObjectURL in render with useMemo + useEffect cleanup
  to fix memory leak and empty src warning
- Fix frame reorder bug by keying Frame on frame.id instead of index
2026-06-17 20:21:46 +02:00
ea6adc236e refactor(guides): replace NewGuide with unified GuideForm
- Merge useNewGuide and NewGuide into useGuideForm and GuideForm
  to handle both create and edit flows
- Add /edit-guide/:id route pointing to GuideForm
- Replace Edit button in Guide view with Link to edit route
- Add defaultValue to Frame title input for edit pre-population
- Delete NewGuide.tsx, NewGuide.css, useNewGuide.ts
2026-06-17 20:05:01 +02:00
4dd8ce8b17 feat(guides): implement guide detail view with delete and export
- Render guide title, description, frames, and steps from context
- Add delete and export PDF actions via useGuide hook
- Add print media query to hide header, footer, and buttons
- Extract guide logic into useGuide hook
- Add Guide.css for view-specific styles
2026-06-17 19:21:59 +02:00
7cdeb98161 feat(guides): integrate GuideContext and persist new guides to IndexedDB
- Wrap application root with IDBProvider and GuideProvider
    - Replace mock data in App component with real guides from useGuides hook
    - Update useNewGuide hook to save compiled guides to IndexedDB and update global state
2026-06-17 11:12:25 +02:00
f44b5a9133 style(guides): restructure Frame layout and add CSS for Frame and Step 2026-06-15 20:10:08 +02:00
f214b0ac4d feat: add frame reordering and improve file upload accessibility
- Add Up/Down reorder controls to Frame component
- Add handleReOrderFrames hook using splice swap
- Improve FileUpload: keyboard support, aria attributes, fix accept=image/* typo
- Extract component-level CSS for Frame, Step, FileUpload
- Update focus-visible styles; scope border style to .file-upload
2026-06-15 19:49:00 +02:00
b95d687904 feat: connect title and description inputs to state
- Add updateTitle prop to Frame component
- Add handleUpdateFrameTitle to useNewGuide hook
- Wire onChange handlers for guide title, description, and frame title inputs
2026-06-15 11:18:34 +02:00
0f70457d29 Fix: Form submission refresh bug and resolve TypeScript type errors
- Add explicit type=button to frame and step buttons to prevent unwanted form submission
- Move e.preventDefault() form submission logic into useNewGuide hook
- Fix TypeScript assignment error by adding 'title' to initial frame objects
- Export CompiledGuideType and update schema type references
2026-06-14 20:14:08 +02:00
1bb6ddf403 refactor(guides): colocate steps within frames state
- Remove standalone steps state; steps now live inside each Frame object
- Initialize each frame with one default empty step on file upload
- Update handleAddSteps, handleUpdateStep, handleRemoveStep to operate
  on frames array via nested map/filter
- Rename handleUpdateStepText -> handleUpdateStep
- Rename schema types to StepType, FrameType, GuideType
- Add steps and title fields to FrameSchema
- Wire FileUpload onChange and render Frame components in NewGuide
- Add NewGuide.css and basic input/textarea border styles
2026-06-12 11:10:02 +02:00
d1df5b16ed feat(guides): add handleSaveGuide to useNewGuide hook 2026-06-10 20:50:51 +02:00
8a8d495432 feat(guides): scaffold new guide form, hook, and update schemas
- Add useNewGuide hook with state and handlers for guide, frames, and steps
- Add title, description, and file upload inputs to NewGuide
- Add FileUpload component and supporting hooks
- Add guideId to FrameSchema, remove steps and order
- Remove content field and frames array from GuideSchema
- Remove order field from StepsSchema
2026-06-10 20:46:06 +02:00
fc63290806 refactor: remove comments in App.css 2026-06-10 20:22:48 +02:00
e133c03409 refactor: reorganizing the App.css styles 2026-06-10 19:56:05 +02:00
064a89ccda styling: add basic styles to App.css 2026-06-10 19:48:30 +02:00
0176a59865 refactor: refactor data schemas 2026-06-10 19:37:22 +02:00
efa9789a2a refactor: bootstrap app shell with routing and layout 2026-06-09 21:08:12 +02:00
6478a8ede8 feat: add Guide, Frame, and Image Zod schemas and type infer 2026-06-09 20:40:43 +02:00
38c12ae843 initial commit 2026-06-09 20:16:16 +02:00