Commit Graph
15 Commits
Author SHA1 Message Date
Tomas Dvorak 71dda9d45d feat(editor): implement autosave functionality and enhance UI
Docker Images / Build and push (push) Failing after 17s
Implements an autosave mechanism to prevent data loss by periodically
sending snapshots of the drawing to the backend. This includes new
API endpoints on the server and updated frontend services.

Additionally, improves the editor experience with:
- Enhanced CSRF protection and origin validation in the backend.
- Fix for React "Maximum update depth exceeded" error during scene
  mutations using a mutation guard.
- New presentation slide thumbnails and navigation UI.
- Expanded template library with various brainstorming layouts.
- Refined dashboard statistics and layout styling.
- Improved sidebar logo using SVG for better scaling.
2026-05-02 15:15:37 +02:00
Tomas Dvorak b79c214ad2 style(ui): refactor component styling and remove hand-drawn aesthetic
Refactor the frontend styling to use consistent design tokens and remove the hand-drawn/rotated aesthetic in favor of a cleaner, more standard UI.

- Replace hardcoded colors and border radii with CSS variables (e.g., `--default-border-color`, `--border-radius-lg`).
- Remove `transform: rotate(...)` and manual `box-shadow` offsets from various components (Sidebar, Dashboard, TemplatePicker, etc.).
- Update `Dashboard` to use a standard `ProgressBar` instead of a hand-drawn SVG chart.
- Standardize font families to use `--ui-font`.
- Clean up `TemplatePicker` logic to properly handle element grouping.
- Remove stale test result files and update `.last-run.json`.
2026-05-02 12:50:56 +02:00
Tomas Dvorak 462a70933d feat(ui,api,db): implement notifications and custom templates with hand-drawn aesthetic
This commit introduces a significant update to both the frontend and backend, focusing on enhanced user engagement and a consistent visual identity.

Key changes include:

- **Frontend UI/UX Refactor**:
  - Implemented a "hand-drawn" aesthetic across the entire application using CSS overrides, custom SVG charts, and specific border/shadow styles to match the Excalidraw experience.
  - Added a new notification system in the Header to display user updates.
  - Enhanced the Template Picker with more variety and improved interaction models.
  - Added a "Presentation Mode" in the Editor.
  - Improved Dashboard visualizations with hand-drawn style sparklines and charts.
  - Added modal dialogs for creating drawings and templates with custom names.

- **Backend & API Enhancements**:
  - Implemented full CRUD support for custom templates, allowing users to save their drawings as reusable templates.
  - Added a notification service with endpoints to list, mark as read, and mark all as read.
  - Updated the API client to handle more robust JSON responses and error states.
  - Improved CORS/Origin validation in the HTTP middleware to handle proxy headers (`X-Forwarded-Host`, `X-Forwarded-Proto`) more reliably.

- **Database & Infrastructure**:
  - Added a new PostgreSQL migration for the `notifications` table.
  - Updated the data models in the workspace to support templates (including snapshot storage) and notifications.
  - Updated `.gitignore` to exclude graphify cache and AST files.
2026-05-01 15:07:38 +02:00
Tomas Dvorak f3f9e99a97 refactor(frontend): improve type safety and migrate to ESLint 9
Migrate the frontend to ESLint 9, add `eslint.config.mjs`, and replace various `any` types with more specific or safer alternatives across the codebase.

- Update `package.json` with new ESLint and TypeScript-ESLint dependencies
- Replace `any` with `Record<string, unknown>` or specific types in `TemplatePicker`, `Editor`, and `FileBrowser`
- Improve error handling in `TeamSettings` and `Templates` using type guards
- Add explicit type imports for Excalidraw elements in `Editor.tsx`
- Refactor `Modal.tsx` for cleaner conditional logic
- Add `check` script to `package.json` for type checking
2026-04-29 13:30:24 +02:00
Tomas Dvorak ef0b519058 update 2026-04-29 11:31:56 +02:00
Tomas Dvorak 5fae9779ad ci/cd 2026-04-28 10:12:30 +02:00
Tomas Dvorak 5657ed74e3 update ci/cd 2026-04-27 11:23:56 +02:00
Tomas Dvorak f532bdacad fix: force go.mod to 1.23 2026-04-27 10:20:22 +02:00
Tomas Dvorak 9eeadfaf50 fix: lock go.mod to go 1.23 (avoid go mod tidy reverting it) 2026-04-27 09:54:33 +02:00
Tomas Dvorak b53159d643 fix: revert go.mod to go 1.23 (was reverted to invalid 1.25.7) 2026-04-27 09:47:19 +02:00
Tomas Dvorak 338dbcc20e fix: convert cf-kv and excalidraw-libraries from submodules to regular files
- Remove stale cloudflare-worker submodule entry from .gitmodules
- Remove .git dirs from cf-kv and excalidraw-libraries so Git tracks them as regular files
- Fixes 'No url found for submodule path cf-kv' CI error
2026-04-27 09:37:49 +02:00
Tomas Dvorak 88c2969a96 Update 2026-04-27 09:18:48 +02:00
Tomas Dvorak 110a73364b fix: regenerate package-lock.json for npm ci sync 2026-04-27 09:18:07 +02:00
Tomas Dvorak 89b9390c14 feat: full project sync - CI fixes, frontend, workspace API, and all changes 2026-04-27 09:08:07 +02:00
Tomas Dvorak a07fca997e fix: CI/CD test failures and invalid Go version
- Fix go.mod Go version from invalid 1.25.7 to 1.23
- Fix Dockerfile golang image from 1.25 to 1.23
- Add window.matchMedia mock for jsdom themeStore tests
- Exclude e2e/ from Vitest to prevent Playwright test conflicts
- Add frontend test step to both CI workflows
2026-04-27 09:04:30 +02:00