Commit graph

27 commits

Author SHA1 Message Date
Steven
5e47f25bf5 feat(store): add hierarchical tag filtering support
Tag filters now support hierarchical matching where searching for a tag (e.g., "book") will match both the exact tag and any tags with that prefix (e.g., "book/fiction", "book/non-fiction"). This applies across all database backends (SQLite, MySQL, PostgreSQL) with corresponding test updates.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 00:21:53 +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
Johnny
bc7decf642 refactor: remove unused constants 2025-10-16 20:40:46 +08:00
Copilot
b685ffacdf refactor: memo filter
- Updated memo and reaction filtering logic to use a unified engine for compiling filter expressions into SQL statements.
- Removed redundant filter parsing and conversion code from ListMemoRelations, ListReactions, and ListAttachments methods.
- Introduced IDList and UIDList fields in FindMemo and FindReaction structs to support filtering by multiple IDs.
- Removed old filter test files for reactions and attachments, as the filtering logic has been centralized.
- Updated tests for memo filtering to reflect the new SQL statement compilation approach.
- Ensured that unsupported user filters return an error in ListUsers method.
2025-10-16 09:22:52 +08:00
Steven
c3d4f8e9d1 feat: implement user-specific SQL converter for filtering in user service 2025-09-10 21:05:26 +08:00
Johnny
7cc2df9254 chore: fix linter 2025-08-31 20:22:32 +08:00
varsnotwars
4eb5b67baf
feat: attachments by id (#5008) 2025-08-15 22:02:29 +08:00
Neo
6b507ff600
fix: pinned shortcut comparison operators (#4987) 2025-08-10 14:22:54 +08:00
varsnotwars
f4bdfa28a0
feat: filter/method for reactions by content_id (#4969) 2025-08-08 00:00:51 +08:00
Colin Holzman
8319516d1a
fix: boolean filters (#4966) 2025-08-06 21:06:15 +08:00
johnnyjoy
506b477d50 fix: get user by username 2025-08-04 19:56:12 +08:00
Colin Holzman
aae7ec8d1f
fix: calendar filter (#4942) 2025-08-03 19:11:09 +08:00
Maximilian Krauß
4d6042e35f
fix(tags): ensure JSON array elements are properly formatted in SQL queries (#4944) 2025-08-03 19:10:59 +08:00
johnnyjoy
9ea2f9f686 fix: linter 2025-07-23 22:13:48 +08:00
johnnyjoy
ed23cbc011 refactor: memo filter 2025-07-23 22:10:16 +08:00
johnnyjoy
b55904a428 feat: support more filter factors 2025-07-22 19:18:08 +08:00
Johnny
9b15936873 refactor: clean unused fields 2025-06-23 22:55:14 +08:00
Johnny
778a5eb184 refactor: memo filter 2025-06-23 22:38:44 +08:00
Steven
a317f9e653 fix: linter 2025-05-28 21:21:27 +08:00
Steven
de3e55c2e6 feat: support now() time functions 2025-05-28 21:18:49 +08:00
Steven
b89d8f5342 feat: implement hasTaskList filter 2025-05-26 22:37:59 +08:00
Johnny
e3a4f49c5c feat: implement creator_id factor 2025-03-11 22:00:57 +08:00
Johnny
925e97882e feat: support pinned factor 2025-03-10 18:52:12 +08:00
johnnyjoy
e0e735d14d feat: support memo filter for mysql and postgres 2025-02-03 17:14:53 +08:00
johnnyjoy
b9a0c56163 feat: support more factors in filter 2025-02-02 16:12:44 +08:00
johnnyjoy
58a867e4da fix: linter warning 2025-02-02 13:50:36 +08:00
johnnyjoy
2d731c5cc5 feat: memo filter for sqlite 2025-02-02 13:35:57 +08:00