Commit Graph

4213 Commits (27de96d440d7779e8a6a5c4566540297edfd36d2)
 

Author SHA1 Message Date
Johnny 77e9376e03 chore: improve metadata section UI consistency and maintainability 6 months ago
Johnny 5612fb8f41 feat: add HDR image and video support
- Add HDR detection utilities for wide color gamut formats (HEIC, HEIF, WebP)
- Apply colorSpace attribute to image/video elements for HDR-capable files
- Update frontend components (AttachmentCard, PreviewImageDialog, AttachmentList)
- Expand backend thumbnail generation to support HEIC, HEIF, WebP formats
- Add Color-Gamut response headers to advertise wide gamut support
- Extend avatar MIME type validation for HDR formats

Supported formats:
- Images: HEIC, HEIF, WebP, PNG, JPEG
- Videos: MP4, QuickTime, Matroska, WebM (VP9 Profile 2)

Browser support:
- Safari 14.1+, Chrome 118+, Edge 118+
- Gracefully degrades to sRGB on unsupported browsers
6 months ago
Johnny e761ef8684 chore: move memo-metadata components to MemoView and MemoEditor
- Remove shared memo-metadata folder
- Move metadata display components (AttachmentList, LocationDisplay, RelationList) to MemoView/components/metadata
- Move attachment types and utilities (LocalFile, AttachmentItem, toAttachmentItems) to MemoEditor/types/attachment
- Simplify AttachmentList and AttachmentCard to work directly with Attachment proto
- Update all imports across MemoEditor and MemoView components
- Better separation of concerns: MemoView handles display, MemoEditor handles local files + attachments
6 months ago
Johnny a6e8ba7fb2
refactor: consolidate MemoEditor components (#5409) 6 months ago
Johnny a630b70ba9 chore: add .worktrees to gitignore 6 months ago
Guillaume e85a3da899
chore: add missing French locale translations (#5405)
Co-authored-by: Guillaume Reichenbach <guillaume.reichenbach@reflet-digital.com>
6 months ago
Lynchi 7b35a2672f
chore: unify the Chinese localization of ellipsis (#5404)
Signed-off-by: Lynchi <77619755+Linqi1234@users.noreply.github.com>
6 months ago
Johnny d2acebcc53 fix: auth checks in reaction selector 6 months ago
Johnny ef8e3cfb99 chore: remove unused keyboard shortcuts 6 months ago
Johnny 02f39c2a59 refactor: replace generic LeafletMap with dedicated LocationPicker 6 months ago
Johnny f66c750075 chore: simplify attachment file writing 6 months ago
Johnny bd02de9895
chore: add store tests (#5397) 6 months ago
Johnny 12f32acd09 chore: remove dnd-kit dependencies 6 months ago
Johnny be1b758d30 refactor: simplify memo-metadata components 6 months ago
Johnny d7284fe867 refactor: nest reaction resource names under memos 6 months ago
Johnny c2aea5a4b7 feat: implement refresh token rotation with sliding window sessions in the auth service 6 months ago
Johnny d55af9b527 refactor: standardize loading indicators by using Spinner for route fallbacks and specializing Skeleton for memo lists 6 months ago
Johnny 61e94e8b08 refactor: replace i18n language change with loadLocale 6 months ago
Johnny 0735c11d75 feat: implement memo map in user profile 6 months ago
Johnny f416eb00b0 refactor(web): simplify Skeleton component structure 6 months ago
Johnny d7478b8003 perf: optimize memory usage for statistics and image processing 6 months ago
Johnny b826e90276 refactor: polish ActivityCalendar components with modern design 6 months ago
Johnny 5d677828a6 refactor: remove NSFW content settings from instance configuration 6 months ago
Johnny 96a91ebff0 chore: add week days to calendar 6 months ago
Johnny ea3371badb chore: add ActivityCalendar components 6 months ago
Johnny 78aa41336a feat: implement attachment filtering functionality 6 months ago
Johnny 955ff0cad6 refactor: optimize user fetching in MemoCommentMessage and MemoReactionListView components 6 months ago
Johnny 115d1bacd7 refactor: replace MemoSkeleton with a new Skeleton component for improved loading states 6 months ago
Johnny 792d58b74d refactor: consolidate and update type definitions across MemoEditor components 6 months ago
Johnny 40585607f4 refactor: streamline MemoView component and related hooks, removing unused code and integrating user data 6 months ago
Johnny 64ae13839a fix: add missing @types/hast dependency 6 months ago
Johnny 85f4fc7a75 refactor: remove MemoContentContext and integrate MemoViewContext
- Deleted MemoContentContext and its associated types.
- Updated Tag and TaskListItem components to use MemoViewContext instead.
- Refactored MemoContent component to eliminate context provider and directly use derived values.
- Simplified MemoViewContext to only include essential data.
- Enhanced error handling in various components by introducing a centralized error handling utility.
- Improved type safety across components and hooks by refining TypeScript definitions.
- Updated remark plugins to enhance tag parsing and preserve node types.
6 months ago
Johnny ab650ac86d chore: remove unused dependency react-simple-pull-to-refresh from lockfile 6 months ago
Johnny d711d724bb chore: clean up unused imports and parameters across components 6 months ago
Johnny 0ad75b8f08 refactor: replace useResponsiveWidth with useMediaQuery across components 6 months ago
boojack d21610cce1
chore: add @johnnyjoygh as a code owner
Signed-off-by: boojack <stevenlgtm@gmail.com>
6 months ago
Steven 12fdf930a6 fix: invalidate React Query cache after memo reaction changes 6 months ago
Steven 9f5a7bb889 docs: create AGENTS.md for AI agents and remove outdated CLAUDE.md
- Remove outdated CLAUDE.md with obsolete architecture references
- Create comprehensive AGENTS.md covering:
  - Backend: Go, gRPC, Connect RPC, store layer, migrations
  - Frontend: React, React Query, Context API, state management
  - Development commands, workflows, and testing patterns
  - Code conventions, configuration, CI/CD, and security notes
6 months ago
Steven 6523891982 fix: react hooks order violation in MemoDetail when creating comments
Replace dynamic hook mapping with useMemoComments hook to fetch all comments
via listMemoComments API, ensuring consistent hook order across renders and
fixing page load failure after comment creation.
6 months ago
Steven c4dfb85400 fix: ensure dispatch is used for actions in useMemoInit hook 6 months ago
Steven 28e4ade009 fix: register Catalan and Galician locales in i18n configuration
The translation files ca.json and gl.json existed but weren't registered in the locales array, preventing users from selecting these languages.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
6 months ago
Steven d4e08ae2bd refactor(react-query): optimize config, add error boundary, and remove JSDoc
This commit combines multiple improvements to the React Query migration:

Performance Optimization:
- Increase default staleTime from 10s to 30s for better performance
- Reduces unnecessary network requests while maintaining data freshness

Error Handling:
- Add ErrorBoundary component with user-friendly error UI
- Integrated at app root level for comprehensive coverage
- Provides error details and reload option

Documentation:
- Add docs/auth-architecture.md explaining AuthContext design decisions
- Document why AuthContext is preferred over React Query for current user

Code Cleanup:
- Remove all JSDoc comments from hooks and components
- Keep essential inline comments for clarity
- Simplifies code readability

Files modified:
- src/lib/query-client.ts - Optimized staleTime
- src/main.tsx - Added ErrorBoundary wrapper
- src/components/ErrorBoundary.tsx - New component
- src/hooks/useMemoQueries.ts - Removed JSDoc
- src/hooks/useUserQueries.ts - Removed JSDoc
- src/components/PagedMemoList/PagedMemoList.tsx - Removed JSDoc
- docs/auth-architecture.md - New documentation

All changes verified with TypeScript compilation and production build.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
6 months ago
ghose eed935ce44
feat: contribution New Locale: Galician (gl, gl_ES) (#5376)
Signed-off-by: ghose <704948+xmgz@users.noreply.github.com>
6 months ago
dwojtas 9821d6ace4
chore: add missing keys to Polish translation, based on the en.json file (#5380) 6 months ago
Steven b2e2b6426c perf(react-query): fix context re-renders and improve type safety
Optimizes React Query migration with performance and consistency improvements:

Performance:
- Memoize AuthContext and InstanceContext provider values to prevent unnecessary re-renders
- Convert InstanceContext getter functions to useMemo hooks
- Fix refetchSettings to avoid state dependency that caused frequent recreations

Type Safety:
- Replace 'any' types in useAttachmentQueries with proper protobuf types
- Add Attachment and ListAttachmentsRequest type imports

Query Key Consistency:
- Replace hardcoded ["users", "stats"] with userKeys.stats() factory function
- Ensures consistent cache key management across mutations

Developer Experience:
- Rename unused useCurrentUser to useCurrentUserQuery to avoid confusion
- Add documentation explaining AuthContext-based vs React Query current user hooks
- Update internal references in useNotifications and useTagCounts

All changes verified with TypeScript compilation and build tests.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
6 months ago
Johnny f87f728b0f
feat: react query migration (#5379) 6 months ago
Johnny 4109fe3245 chore(MemoEditor): enhance focus mode handling and improve editor layout 6 months ago
Johnny 595daaa163 style: organize imports in MemoView hooks 6 months ago
Johnny 0f9322ea11 fix(MemoEditor): dispatch toggleFocusMode action properly
- Wrap actions.toggleFocusMode() with dispatch() call
- Create toggleFocusMode helper function for callbacks
- Fix focus mode not toggling due to action not being dispatched
6 months ago
Johnny 201a0466e9 fix(MemoEditor): restore focus mode functionality
- Add useFocusMode hook to lock body scroll in focus mode
- Add 'f' key keyboard shortcut to toggle focus mode
- Add FocusModeExitButton inside editor
- Import and wire up all focus mode components and hooks
- Update useKeyboard to handle focus mode toggle
6 months ago