Florian Dewald
c515079f12
Merge 2dbaddc6a5 into bfad0708e2
2025-10-25 13:34:14 +11:00
Steven
bfad0708e2
fix(web): make memoFilterStore reactive by marking fields as observable
...
Fixes the root cause of non-reactive filtering. The MemoFilterState class
was not marking its fields as observable in MobX, so changes to the filters
array were not being tracked.
Added makeObservable configuration to mark:
- filters and shortcut as observable
- addFilter, removeFilter, removeFiltersByFactor, clearAllFilters, setShortcut as actions
This ensures that when tags are clicked and filters are added/removed,
MobX observer components will re-render and fetch new data.
Related to #5189
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-25 07:01:27 +08:00
Steven
e0b1153269
fix(web): resolve MobX observable reactivity issue in filter computation
...
Fixes filtering functionality that was broken due to improper use of
useMemo with MobX observables. The issue occurred because useMemo's
dependency array uses reference equality, but MobX observable arrays
are mutated in place (reference doesn't change when items are added/removed).
Changes:
- Remove useMemo from filter computation in Home, UserProfile, and Archived pages
- Calculate filters directly in render since components are already MobX observers
- Fix typo: memoFitler -> memoFilter in Archived.tsx
This ensures filters are recalculated whenever memoFilterStore.filters changes,
making tag clicks and other filter interactions work correctly.
Fixes #5189
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-25 06:59:13 +08:00
Florian Dewald
2dbaddc6a5
Fix lint errors and implement feedback
2025-10-24 12:22:15 +01:00
Florian Dewald
0ede2e8410
Introduce settings for thumbnail and image downsizing
2025-10-23 21:24:35 +01:00
Florian Dewald
e4f6345342
feat: generate thumbnails for images stored in S3 and generate thumbnails with a maximum size ( #5179 )
2025-10-23 21:29:22 +08:00
Claude
16425ed650
feat(web): improve ReactionSelector UX with hover visibility
...
- Add hover-based visibility for reaction selector in memo cards
- Show reaction selector only on card hover or when popover is open
- Add onOpenChange callback to ReactionSelector for state management
- Reorder action buttons for better visual hierarchy
- Simplify conditional rendering of comment link
2025-10-23 21:20:15 +08:00
Claude
16e0049490
chore: improve layout and spacing in LocationSelector
2025-10-23 20:21:00 +08:00
Claude
7079790d4f
feat: add copy content functionality to MemoActionMenu
2025-10-23 20:05:31 +08:00
Claude
686d31b357
feat: enhance attachment store with MobX observables and actions
2025-10-23 19:55:44 +08:00
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>
2025-10-23 19:13:42 +08:00
Steven
9121ddbad9
feat(api): support username lookup in GetUser endpoint
...
- Update GetUser to accept both numeric IDs and username strings (users/{id} or users/{username})
- Implement CEL filter parsing for username-based lookups
- Update proto documentation to reflect dual lookup capability
- Simplify frontend user store to use GetUser instead of ListUsers filter
- Update ListUsers filter documentation to show current capabilities
2025-10-22 21:48:34 +08:00
Steven
4d4325eba5
chore: update component styles for consistency
2025-10-22 20:21:58 +08:00
Steven
b4341dd123
fix(web): make reaction selector responsive with scrolling
...
- Replace fixed width (max-w-56) with responsive viewport-based width
- Use 90vw on mobile and max-w-md on desktop for better adaptability
- Add vertical scrolling with max-h-64 overflow-y-auto
- Increase grid columns to 8 on medium+ screens for better space utilization
- Ensures all reactions are accessible regardless of quantity
Fixes #5117
Co-authored-by: GitHub Copilot <noreply@github.com>
2025-10-22 19:31:58 +08:00
Simon
290cdf5d4f
chore: use input type `datetime-local` instead of `text` ( #5174 )
2025-10-22 09:04:37 +08:00
Steven
2d4361d5fe
chore: update memo content formatting and enhance link styling
2025-10-22 08:50:09 +08:00
Steven
d8f7a4e739
chore: tweak demo data
2025-10-21 23:41:46 +08:00
Steven
b19e736f10
chore: tweak demo data
2025-10-20 23:58:49 +08:00
Steven
b4ea7d843f
feat: enhance memo sorting functionality to support multiple fields
2025-10-20 23:41:58 +08:00
Steven
228cc6105d
chore: update StatCard component for improved icon and count rendering in StatisticsView
2025-10-14 23:15:16 +08:00
Steven
56758f107c
chore: refactor ActivityCalendar to use a calendar matrix and improve cell rendering
2025-10-14 21:12:43 +08:00
Steven
5011eb5d70
feat: enhance LocationSelector with improved geolocation handling
2025-10-14 20:23:14 +08:00
Ben Mitchinson
12c4aeeccc
feat: lat/long input fields ( #5152 )
...
Signed-off-by: Ben Mitchinson <mitchinson.dev@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-14 20:07:01 +08:00
Steven
435cc7b177
feat: implement masonry layout with responsive columns and memo height tracking
2025-10-14 19:46:09 +08:00
Copilot
3245613a88
chore: cleanup components naming
2025-10-12 18:58:37 +08:00
Huang Cheng Ting
d7e751997d
chore: update zh-Hant translation ( #5159 )
2025-10-09 21:30:55 +08:00
Nic Luckie
20233c7051
feat(web): add accessible ConfirmDialog and migrate confirmations; and Markdown-safe descriptions ( #5111 )
...
Signed-off-by: Nic Luckie <nicolasluckie@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-09 00:40:08 +08:00
Claude
f6e025d583
feat: implement theme management with system preference detection and early application
2025-10-08 09:51:49 +08:00
dependabot[bot]
184e975664
chore: bump mobx-react-lite from 4.1.0 to 4.1.1 in /web ( #5137 )
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-08 09:28:40 +08:00
dependabot[bot]
1db86bcd30
chore: bump typescript-eslint from 8.44.0 to 8.45.0 in /web ( #5138 )
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-08 09:28:31 +08:00
dependabot[bot]
498facdfbe
chore: bump lucide-react from 0.486.0 to 0.544.0 in /web ( #5144 )
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-08 09:27:48 +08:00
dependabot[bot]
698b08ae8d
chore: bump tw-animate-css from 1.3.8 to 1.4.0 in /web ( #5145 )
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-08 09:27:39 +08:00
dependabot[bot]
e3890ca9be
chore: bump typescript from 5.9.2 to 5.9.3 in /web ( #5146 )
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-07 00:14:11 +08:00
Claude
c3a961229e
fix: update cell opacity colors to use primary theme instead of destructive
2025-09-29 15:01:46 +08:00
github-actions[bot]
074c580214
chore: bump gomark
...
- Bump protoc-gen-go version from v1.36.8 to v1.36.9 in multiple generated files.
- Enhance OpenAPI descriptions for various endpoints to improve clarity and readability.
- Fix typo in the description list handling in the markdown service.
- Update HTMLElement component to handle children and self-closing tags correctly.
- Modify types in the markdown service to include children and self-closing properties for HTML elements.
2025-09-28 16:15:55 +08:00
Steven
7ab57f8ed2
chore: upgrade frontend dependencies
2025-09-17 21:51:58 +08:00
Steven
6d1485d168
fix: reset state on dialog close and improve dialog open handling
2025-09-17 21:51:46 +08:00
Steven
f44b0850f4
feat: enhance CodeBlock component with theme-aware syntax highlighting
2025-09-16 19:08:28 +08:00
Steven
383553d3c8
feat: add DOMPurify for sanitizing HTML content in CodeBlock component
2025-09-10 20:52:51 +08:00
Giacomo Cerquone
f4e23727bb
fix: avoid hiding reaction selector and keep it always shown for mobile ( #5079 )
2025-09-09 11:35:21 +08:00
Giacomo Cerquone
60123de318
fix: update useEffect dependency to location.key so drawer is closed also when re-navigating to current route ( #5077 )
2025-09-08 16:26:18 +08:00
dependabot[bot]
3be1b3a1e3
chore: bump @radix-ui/react-checkbox from 1.3.2 to 1.3.3 in /web ( #5062 )
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-03 22:57:34 +08:00
dependabot[bot]
fb8a997248
chore: bump @radix-ui/react-dropdown-menu from 2.1.15 to 2.1.16 in /web ( #5063 )
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-03 22:57:11 +08:00
dependabot[bot]
b2a259d0ff
chore: bump react-router-dom from 7.7.1 to 7.8.2 in /web ( #5061 )
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-03 21:01:44 +08:00
dependabot[bot]
b8fe953833
chore: bump @radix-ui/react-select from 2.2.5 to 2.2.6 in /web ( #5065 )
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-03 21:01:34 +08:00
Steven
5a1af7b240
fix: adjust badge height
2025-09-02 23:18:11 +08:00
dependabot[bot]
0c516c83bd
chore: bump nice-grpc-web from 3.3.7 to 3.3.8 in /web ( #5056 )
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-02 22:56:34 +08:00
dependabot[bot]
9c67bbbbba
chore: bump tw-animate-css from 1.3.6 to 1.3.7 in /web ( #5053 )
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-02 22:56:23 +08:00
dependabot[bot]
fdbcd20ad1
chore: bump react-hot-toast from 2.5.2 to 2.6.0 in /web ( #5051 )
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-02 22:55:57 +08:00
dependabot[bot]
56fd9fd7d5
chore: bump @bufbuild/protobuf from 2.6.2 to 2.7.0 in /web ( #5057 )
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-02 22:21:47 +08:00