Commit graph

79 commits

Author SHA1 Message Date
boojack
411ba7b34c feat(about): add about page with bird sprites 2026-05-14 20:30:37 +08:00
boojack
aa5cb455e9 refactor(web): use / as the home route instead of /home
Home now lives at `/` directly. Unauthenticated visitors are sent to
`/explore` by the landing gate; old `/home` URLs redirect to `/` for
bookmark compatibility.
2026-05-12 23:17:46 +08:00
boojack
a6024eebf1
perf: lazy load heavy first-screen dependencies (#5947) 2026-05-12 20:11:39 +08:00
boojack
1df6479443
feat: add dedicated shortcuts page (#5942) 2026-05-08 23:06:12 +08:00
boojack
88cb58ab64
refactor(web/routing): guard-based auth flow, migrate tests to Vitest (#5848) 2026-04-18 01:06:54 +08:00
memoclaw
bb7f4978e5
refactor(web): consolidate SharedMemo into MemoDetail (#5773)
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
2026-03-24 08:40:49 +08:00
memoclaw
6f1f3d81c5
chore: remove disallow_public_visibility setting (#5743)
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-20 00:00:51 +08:00
memoclaw
3f3133d6e2
feat(memo): add share links for private memos (#5742)
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
2026-03-19 23:47:22 +08:00
memoclaw
bdd3554b89
fix: handle chunk load errors after redeployment with auto-reload (#5703)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 10:45:16 +08:00
Johnny
81022123a1 chore: simplify page loading logic 2026-01-27 23:37:32 +08:00
Johnny
d55af9b527 refactor: standardize loading indicators by using Spinner for route fallbacks and specializing Skeleton for memo lists 2025-12-30 21:54:22 +08:00
Johnny
ea3371badb chore: add ActivityCalendar components 2025-12-28 19:59:36 +08:00
Johnny
115d1bacd7 refactor: replace MemoSkeleton with a new Skeleton component for improved loading states 2025-12-28 17:31:21 +08:00
Steven
b0aeb06f85 refactor(web): improve auth flow and eliminate route duplication
- Extract route paths to router/routes.ts as single source of truth
- Refactor connect.ts auth interceptor with better structure and error handling
  - Add TokenRefreshManager class to prevent race conditions
  - Implement smart redirect logic for public/private routes
  - Support unauthenticated access to explore and user profile pages
  - Add proper error handling for missing access tokens
  - Extract magic strings to named constants
- Maintain backward compatibility by aliasing Routes to ROUTES

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 22:14:30 +08:00
Steven
1b3318f886 refactor(web): improve ActivityCalendar maintainability and add Calendar page
- Extract shared utilities and constants to eliminate code duplication
- Create dedicated Calendar page with year view and month grid
- Add date filter navigation with bidirectional URL sync
- Fix useTodayDate memoization bug causing stale date references
- Standardize naming conventions (get vs generate functions)
- Add comprehensive type exports and proper store encapsulation
- Implement size variants for compact calendar display

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-15 19:47:46 +08:00
Steven
156908c77f chore(web): migrate from ESLint+Prettier to Biome
- Install @biomejs/biome@2.3.5 as unified linter and formatter
- Remove ESLint, Prettier and all related plugins (221 packages removed)
- Migrate linting rules from ESLint to Biome configuration
- Migrate formatting rules from Prettier to Biome configuration
- Exclude auto-generated proto files from linting (src/types/proto/**)
- Exclude CSS files from Biome (Tailwind syntax not yet supported)
- Update package.json scripts:
  - lint: tsc + biome check
  - lint:fix: biome check --write
  - format: biome format --write
- Auto-fix import organization across 60+ files
- Fix duplicate key in Russian locale (ru.json)
- Update CLAUDE.md documentation to reflect Biome usage

Benefits:
- 10-100x faster linting performance
- Simplified toolchain with single configuration file
- 221 fewer npm dependencies
- Unified linting, formatting, and import organization
2025-11-14 23:58:07 +08:00
Steven
1d7efb1580 refactor(web): unify memo stats/filters with context-aware MainLayout
Create unified architecture for memo statistics, filters, and sorting
across all pages (Home, Explore, Archived, Profile) with proper
visibility filtering and consistent data flow.

Key changes:
- Rename HomeLayout → MainLayout to reflect broader usage
- Create useFilteredMemoStats hook for unified stats computation
- Create useMemoFilters/useMemoSorting hooks to eliminate duplication
- Refactor all pages to use unified hooks (~147 lines removed)
- Move Explore route under MainLayout (was sibling before)
- Fix masonry column calculation threshold (1024px → 688px+)

Architecture improvements:
- MainLayout computes filter/stats per route context
- Stats/tags based on same filter as memo list (consistency)
- Proper visibility filtering (PUBLIC/PROTECTED) on Explore
- MemoExplorer/StatisticsView accept stats as required props
- Eliminated optional fallbacks and redundant data fetching

Benefits:
- Single source of truth for stats computation
- Stats remain static (don't change with user filters)
- Reduced code duplication across 4 pages
- Better maintainability and type safety
- Proper security (no private memo leakage on Explore)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 08:46:52 +08:00
Steven
bb5809cae4 refactor: attachment service 2025-06-17 22:15:19 +08:00
Johnny
3343dc73f7 chore: update navigator 2025-06-02 09:39:50 +08:00
Johnny
5d1075a647 refactor: update home layout 2025-02-26 22:14:07 +08:00
nbb
5962c6d04b
feat: optimize initial load performance by implementing lazy loading and code splitting (#4445) 2025-02-26 13:16:05 +08:00
Johnny
271a8c8c28 refactor: home layout 2025-02-24 23:42:35 +08:00
Steven
f6ad49754a chore: update url of memo detail page 2025-02-07 20:51:04 +08:00
Steven
f0abd792c7 chore: update auth service 2024-08-29 00:06:15 +08:00
Steven
10c9bb081b chore: retire timeline page 2024-07-20 00:28:49 +08:00
Steven
93e848d170 chore: tweak root redirector 2024-05-28 19:59:29 +08:00
Steven
0275a65781 chore: add last visited page 2024-05-28 09:05:59 +08:00
Steven
33f52320f7 fix: remove lazy import components 2024-04-30 22:06:47 +08:00
Steven
7cc8b951a3 refactor: update resource id naming 2024-03-20 20:39:16 +08:00
Steven
722e356044 chore: update memo store 2024-03-19 20:55:33 +08:00
Steven
f3fb5e0c60 chore: tweak route enum 2024-03-18 12:07:44 +08:00
Steven
dfe29ec766 chore: tweak route layout 2024-02-24 10:18:53 +08:00
Steven
288527914b chore: migrate memo route 2024-01-21 01:23:44 +08:00
Steven
4c59035757 chore: update about page 2024-01-06 19:01:11 +08:00
Steven
30dca18b79 chore: fix suspense wrapper 2023-12-28 08:34:06 +08:00
Steven
c6ebb5552e chore: add 403 page 2023-12-23 10:08:23 +08:00
Steven
fe4ec0b156 chore: rename navigator 2023-12-19 00:13:22 +08:00
Steven
d6656db20d feat: implement part of full-screen layout 2023-12-18 22:10:36 +08:00
Steven
33dda9bf87 chore: fix auth status checks 2023-12-06 23:03:24 +08:00
Steven
e83d483454 refactor(frontend): use auth service 2023-12-01 09:15:02 +08:00
steven
9227ca5b5b chore: update debounce ms 2023-11-09 08:52:02 +08:00
steven
eb6b0ddead chore: update navigation 2023-11-09 08:46:26 +08:00
Steven
3c36cc2953 feat: add inbox ui 2023-10-28 02:43:46 +08:00
Steven
3ff4d19782 chore: update initial global loader 2023-10-08 20:31:38 +08:00
Steven
01ff3f73f8 chore: update auth pages 2023-10-05 12:38:46 +08:00
Steven
7722c41680 chore: add edit button to memo detail page 2023-09-26 23:46:58 +08:00
Steven
723e6bcdae refactor: update resources page 2023-09-15 22:25:07 +08:00
Steven
e65282dcc5 chore: fix user state loader 2023-09-15 09:10:16 +08:00
Steven
8824ee9b9d chore: fix user state loader 2023-09-15 08:43:52 +08:00
Steven
936fe5ac9d chore: update state initial loader 2023-09-15 08:31:19 +08:00