You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
memos/web
Steven f5624fa682 refactor: standardize MobX store architecture with base classes and utilities
Refactored all stores to follow consistent patterns and best practices while keeping MobX:

New Infrastructure:
- Created base-store.ts with StandardState base class and factory functions
- Added store-utils.ts with RequestDeduplicator, StoreError, and OptimisticUpdate helpers
- Added config.ts for MobX configuration and strict mode
- Created comprehensive README.md with architecture guide and examples

Server State Stores (API data):
- attachment.ts: Added request deduplication, error handling, computed properties, delete/clear methods
- workspace.ts: Added Theme type validation, computed memoization, improved initialization
- memo.ts: Enhanced with optimistic updates, request deduplication, structured errors
- user.ts: Fixed temporal coupling, added computed memoization, request deduplication

Client State Stores (UI state):
- view.ts: Added helper methods (toggleSortOrder, setLayout, resetToDefaults), input validation
- memoFilter.ts: Added utility methods (hasFilter, clearAllFilters, removeFiltersByFactor)

Improvements:
- Request deduplication prevents duplicate API calls (all server stores)
- Computed property memoization improves performance
- Structured error handling with error codes
- Optimistic updates for better UX (memo updates)
- Comprehensive JSDoc documentation
- Type-safe APIs with proper exports
- Clear separation between server and client state

All stores now follow consistent patterns for better maintainability and easier onboarding.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2 weeks ago
..
public chore: enhance site.webmanifest in firefox (#4828) 4 months ago
src refactor: standardize MobX store architecture with base classes and utilities 2 weeks ago
.gitignore chore: update gitignore 7 months ago
.prettierrc.js chore: fix linter 8 months ago
README.md
components.json feat: themes (#4824) 4 months ago
eslint.config.mjs refactor: migrate eslint 7 months ago
index.html chore: remove fixed theme color 4 months ago
package.json feat(web): add accessible ConfirmDialog and migrate confirmations; and Markdown-safe descriptions (#5111) 1 month ago
pnpm-lock.yaml chore: bump mobx-react-lite from 4.1.0 to 4.1.1 in /web (#5137) 1 month ago
tsconfig.json
vite.config.mts refactor: unify components 4 months ago

README.md

The frontend of Memos