Commit Graph

80 Commits

Author SHA1 Message Date
Ilia Mashkov 8c0c91deb7 feat(createVirtualizer): enhance logic with binary search and requestAnimationFrame 2026-01-16 17:48:33 +03:00
Ilia Mashkov 261c19db69 fix(SearchBar): change input behavior to turn off popover toggle on click on trigger and keep it open. Add doc 2026-01-16 17:47:05 +03:00
Ilia Mashkov a85b3cf217 fix(VirtualList): change styles to show the correct scroll instantly 2026-01-16 17:46:06 +03:00
Ilia Mashkov f02b19eff5 chore(createFilter): change format 2026-01-16 17:45:11 +03:00
Ilia Mashkov 14f9b87680 test(createDebouncedState): create test coverage for createDebouncedState 2026-01-16 14:00:20 +03:00
Ilia Mashkov 3cd9b36411 fix(createFilter): remove dirived from selectedProperties compute 2026-01-16 13:59:39 +03:00
Ilia Mashkov 62ae0799cc chore(lib): add export 2026-01-16 13:15:10 +03:00
Ilia Mashkov f3de6c49a3 chore: delete unused code 2026-01-16 12:41:30 +03:00
Ilia Mashkov 42e941083a doc(createDeboucnedState): add JSDoc for createDebouncedState 2026-01-16 12:38:57 +03:00
Ilia Mashkov 86adec01a0 doc(createVirtualizer): add JSDoc for createVirtualizer 2026-01-16 12:27:14 +03:00
Ilia Mashkov b0812ff606 chore: delete unused code 2026-01-16 12:24:30 +03:00
Ilia Mashkov 56e6e450e8 fix(createVirtualizer): add correct type to offset array
Workflow / build (pull_request) Successful in 49s
2026-01-15 20:10:44 +03:00
Ilia Mashkov 824581551f fix(createVirtualizer): change the way array is created 2026-01-15 20:07:58 +03:00
Ilia Mashkov f97904f165 fix: minor changes 2026-01-15 20:06:51 +03:00
Ilia Mashkov 429a9a0877 feature(VirtualList): remove tanstack virtual list solution, add self written one 2026-01-15 13:33:59 +03:00
Ilia Mashkov c6b18f6dd3 fix: svelte check
Build / build (push) Failing after 37s
Deploy Pipeline / pipeline (push) Failing after 34s
Lint / Lint Code (push) Failing after 28s
Test / Svelte Checks (push) Failing after 35s
2026-01-14 15:27:41 +03:00
Ilia Mashkov 7678ab271d fix: lint warnings
Build / build (pull_request) Failing after 49s
Lint / Lint Code (pull_request) Failing after 38s
Test / Svelte Checks (pull_request) Failing after 44s
2026-01-14 15:14:58 +03:00
Ilia Mashkov 76172aaa6b fix: minor changes 2026-01-13 20:09:30 +03:00
Ilia Mashkov 52ecb9e304 fix: remove searchQuery from FilterModel 2026-01-13 20:07:42 +03:00
Ilia Mashkov 170c8546d3 chore: import/export changes due to code move 2026-01-13 20:04:02 +03:00
Ilia Mashkov 2f15148cdb feat(VirtualList): add overscan support 2026-01-13 20:02:50 +03:00
Ilia Mashkov 91451f7886 chore: import/export fixes due to code move 2026-01-13 20:00:36 +03:00
Ilia Mashkov 4810c2b228 chore: delete unused code 2026-01-13 19:56:20 +03:00
Ilia Mashkov 1a76e9387a feat(createDebouncedState): create helper for managing state with debounce 2026-01-13 19:51:41 +03:00
Ilia Mashkov 0f1eb489ed feat: add query provider for Tanstack 2026-01-13 19:49:51 +03:00
Ilia Mashkov d81af0a77b feat: implement P0/P1 performance and code quality optimizations
P0 Performance Optimizations:
- Add debounced search (300ms) to reduce re-renders during typing
- Implement single-pass filter function for O(n) complexity
- Add TanStack Query cancellation before new requests

P1 Code Quality Optimizations:
- Add runtime type guards for filter validation
- Implement two derived values (filteredFonts + sortedFilteredFonts)
- Remove all 'as any[]' casts from filter bridge
- Add fast-path for default sorting (skip unnecessary operations)

New Utilities:
- debounce utility with 4 tests (all pass)
- filterUtils with 15 tests (all pass)
- typeGuards with 20 tests (all pass)
- Total: 39 new tests

Modified Files:
- unifiedFontStore.svelte.ts: Add debouncing, use filter/sort utilities
- filterBridge.svelte.ts: Type-safe validation with type guards
- unifiedFontStore.test.ts: Fix pre-existing bugs (missing async, duplicate imports)

Code Quality:
- 0 linting warnings/errors (oxlint)
- FSD compliant architecture (entity lib layer)
- Backward compatible store API
2026-01-11 14:49:21 +03:00
Ilia Mashkov 9598d8c3e4 feat(SearchBar): create SearchBar component with input and popover that contains search results 2026-01-09 16:19:22 +03:00
Ilia Mashkov 13509a4145 chore: add comments for types and constants 2026-01-09 16:13:47 +03:00
Ilia Mashkov 1990860717 feat: add generic type for property value 2026-01-09 16:11:35 +03:00
Ilia Mashkov 1ebab2d77b feat: add data-testid attribute
Lint / Lint Code (push) Failing after 7m16s
Test / Svelte Checks (push) Failing after 7m8s
2026-01-08 13:15:02 +03:00
Ilia Mashkov fc00717359 feat: test coverage of ComboControl and CheckboxFilter 2026-01-08 13:14:04 +03:00
Ilia Mashkov 36a326817d feat: test coverage for utils
Lint / Lint Code (push) Failing after 7m20s
Test / Svelte Checks (push) Failing after 7m20s
2026-01-07 17:26:59 +03:00
Ilia Mashkov f4c2a38873 fix: imports path 2026-01-07 16:54:19 +03:00
Ilia Mashkov 614d6b0673 fix: imports path 2026-01-07 16:54:12 +03:00
Ilia Mashkov f26f56ddef chore: move createVirtualizer 2026-01-07 16:53:44 +03:00
Ilia Mashkov 76f27a64b2 refactor(createTypographyControl): createControlStore rewrote to runes 2026-01-07 16:53:17 +03:00
Ilia Mashkov baff3b9e27 refactor(createFilter): createFilterStore rewrote to runes 2026-01-07 16:52:17 +03:00
Ilia Mashkov d15b90cfcb feat: move buildQueryString to separate directory 2026-01-07 16:49:37 +03:00
Ilia Mashkov 893bb02459 feat: move buildQueryString to separate directory 2026-01-07 16:49:18 +03:00
Ilia Mashkov f7b19bd97f feat: move functions to separate files 2026-01-07 16:48:49 +03:00
Ilia Mashkov 2c4bfaba41 fix: rename file from .ts to .svelte.ts to support svelte runes 2026-01-07 14:27:25 +03:00
Ilia Mashkov 9fd98aca5d refactor(createFilterStore): move from store pattern to svelte 5 runes usage 2026-01-07 14:26:37 +03:00
Ilia Mashkov 0692711726 fix: import/export paths
Lint / Lint Code (push) Failing after 7m18s
Test / Svelte Checks (push) Failing after 7m16s
2026-01-06 21:40:28 +03:00
Ilia Mashkov 86898bf83c chore: move utils directory into shared/lib 2026-01-06 21:39:17 +03:00
Ilia Mashkov 1950cd4095 refactor(VirtualList): refactor VirtualList with modern svelte 5 patterns 2026-01-06 21:38:53 +03:00
Ilia Mashkov 7a9f7e238c refactor(createVirtualizer): refactor createVirtualizerStore with modern svelte 5 patterns 2026-01-06 21:38:18 +03:00
Ilia Mashkov 1f19e964ca fix: import/export paths 2026-01-06 21:36:29 +03:00
Ilia Mashkov eb10d58128 chore: move store creators to separate directories 2026-01-06 21:35:49 +03:00
Ilia Mashkov c78ab826a2 chore: move fetch directory into shared/lib 2026-01-06 21:35:16 +03:00
Ilia Mashkov 931a2df1ee feat: test coverage for store creators 2026-01-06 21:34:05 +03:00