Commit Graph

278 Commits

Author SHA1 Message Date
Ilia Mashkov
56e6e450e8 fix(createVirtualizer): add correct type to offset array
All checks were successful
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
6129ad61f4 fix: minor changes 2026-01-15 20:05:55 +03:00
Ilia Mashkov
462abdd2bc chore: add README 2026-01-15 20:05:37 +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
925d2eec3e chore(workflow): delete comments 2026-01-14 16:06:02 +03:00
Ilia Mashkov
211ed073e6 chore: specify yarn version
All checks were successful
Workflow / build (push) Successful in 44s
2026-01-14 16:02:45 +03:00
Ilia Mashkov
976672ce5e fix(workflow): turn cache on 2026-01-14 16:02:24 +03:00
Ilia Mashkov
83397f3786 fix(workflow): remove cache
All checks were successful
Workflow / build (push) Successful in 38s
2026-01-14 15:54:19 +03:00
Ilia Mashkov
a72c0e8136 fix(workflow): remove cache
Some checks failed
Workflow / build (push) Failing after 40s
2026-01-14 15:47:56 +03:00
Ilia Mashkov
61dd62af2d feat(workflow): simplify workflow
Some checks failed
Workflow / build (push) Failing after 46s
2026-01-14 15:44:30 +03:00
Ilia Mashkov
147ddd226a feat(workflow): simplify workflow
Some checks failed
Workflow / build (push) Failing after 44s
2026-01-14 15:32:24 +03:00
Ilia Mashkov
c6b18f6dd3 fix: svelte check
Some checks failed
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
c10bbb681a Merge pull request 'fix: lint warnings' (#15) from fixex/lint into main
Some checks failed
Build / build (push) Failing after 37s
Deploy Pipeline / pipeline (push) Failing after 35s
Lint / Lint Code (push) Failing after 28s
Test / Svelte Checks (push) Failing after 35s
Reviewed-on: #15
2026-01-14 12:15:53 +00:00
Ilia Mashkov
7678ab271d fix: lint warnings
Some checks failed
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
3302e4a012 Merge pull request 'feature/fetch-fonts' (#14) from feature/fetch-fonts into main
Some checks failed
Build / build (push) Failing after 38s
Deploy Pipeline / pipeline (push) Failing after 39s
Lint / Lint Code (push) Failing after 30s
Test / Svelte Checks (push) Failing after 36s
Reviewed-on: #14
2026-01-14 11:01:43 +00:00
Ilia Mashkov
f730dbc782 fix(workflow): change scripts
Some checks failed
Lint / Lint Code (push) Failing after 30s
Test / Svelte Checks (push) Failing after 35s
Build / build (pull_request) Failing after 1m28s
Lint / Lint Code (pull_request) Failing after 39s
Test / Svelte Checks (pull_request) Failing after 44s
2026-01-14 12:58:52 +03:00
Ilia Mashkov
8b704f1f82 fix(workflow): change the yarn install flags
Some checks failed
Test / Svelte Checks (push) Failing after 33s
Lint / Lint Code (push) Failing after 29s
2026-01-14 12:40:56 +03:00
Ilia Mashkov
36ed19e195 fix(workflow): yarn cache path 2026-01-14 12:39:30 +03:00
Ilia Mashkov
b209e051e5 fix(workflow): yarn cache path
Some checks failed
Lint / Lint Code (push) Failing after 11s
Test / Svelte Checks (push) Failing after 11s
2026-01-14 12:34:10 +03:00
Ilia Mashkov
f49e116408 fix(workflow): change node version
Some checks failed
Lint / Lint Code (push) Failing after 18s
Test / Svelte Checks (push) Failing after 11s
2026-01-14 12:25:14 +03:00
Ilia Mashkov
8d1d1cd60f chore: import/export changes due to code move
Some checks failed
Test / Svelte Checks (push) Failing after 5s
Lint / Lint Code (push) Failing after 1m48s
2026-01-13 20:11:58 +03:00
Ilia Mashkov
fb5c15ec32 fix: minor changes 2026-01-13 20:11:18 +03:00
Ilia Mashkov
955cc66916 feat: new version of unifiedFontStore 2026-01-13 20:10:44 +03:00
Ilia Mashkov
a9cdd15787 feat(GetFonts): separated types for filters 2026-01-13 20:10:20 +03:00
Ilia Mashkov
76172aaa6b fix: minor changes 2026-01-13 20:09:30 +03:00
Ilia Mashkov
7146328982 feat(mapManagerToParams): create mapper to transform filter values to query param values 2026-01-13 20:08:46 +03:00
Ilia Mashkov
52ecb9e304 fix: remove searchQuery from FilterModel 2026-01-13 20:07:42 +03:00
Ilia Mashkov
30cb9ada1a fix(Font): refresh types 2026-01-13 20:06:58 +03:00
Ilia Mashkov
4eeb43fa34 chore: delete unused code 2026-01-13 20:05:33 +03:00
Ilia Mashkov
ad6ba4f0a0 feat: add query provider to App.svelte 2026-01-13 20:04:39 +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
a29b80efbb feature: Create BaseFontStore class with Tanstack query logic and FontshareStore, GoogleFontsStore based on it 2026-01-13 20:02:20 +03:00
Ilia Mashkov
91451f7886 chore: import/export fixes due to code move 2026-01-13 20:00:36 +03:00
Ilia Mashkov
99d4b4e29a chore: rename FetchFonts to GetFonts 2026-01-13 19:59:07 +03:00
Ilia Mashkov
d9d45bf9fb chore: move Filters and Controls to GetFont feature 2026-01-13 19:57:22 +03:00
Ilia Mashkov
4810c2b228 chore: delete unused code 2026-01-13 19:56:20 +03:00
Ilia Mashkov
4c9b9f631f fix: minor type changes for fonts 2026-01-13 19:54:56 +03:00
Ilia Mashkov
5fcb381b11 chore(normalize): move font api responce normalization functions to lib 2026-01-13 19:53:26 +03:00
Ilia Mashkov
e098da2dbb feat(filterManager): add debouced state support and move manager 2026-01-13 19:52:36 +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
6e8376b8fc fix(arch): move unifiedFontStore context creation to Layout.svelte
- Moved unifiedFontStore creation from Page.svelte to Layout.svelte
- Layout now creates store instance and provides it via setContext()
- Page.svelte now receives store via getContext() instead of creating it
- Fixes context accessibility issue where FiltersSidebar and FontSearch
  (siblings of Page) could not access the store
- All child components now share the same store instance at Layout level

This resolves the architectural issue where context only flows downward,
not sideways. All components (FiltersSidebar, FontSearch, Page) are now
children of Layout and can access the unifiedFontStore context.
2026-01-12 08:51:36 +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
77de829b04 fix: types 2026-01-09 16:48:26 +03:00
Ilia Mashkov
7630802363 fix: minor changes in types 2026-01-09 16:20:25 +03:00
Ilia Mashkov
43175fd52a feat(FontSearch): create FontSearch component with SearchBar and FontList with list virtualization 2026-01-09 16:20:00 +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