Ilia Mashkov
|
20accb9c93
|
feat: implement createFontRowSizeResolver with canvas-measured heights and reactive status check
|
2026-04-13 08:54:19 +03:00 |
|
Ilia Mashkov
|
5f38996665
|
chore: purge legacy font provider types and normalization logic
|
2026-04-10 16:05:57 +03:00 |
|
Ilia Mashkov
|
dc6e15492a
|
test: mock fontStore and update FontStore type signatures
|
2026-04-09 19:40:31 +03:00 |
|
Ilia Mashkov
|
b40e651be4
|
refactor(Font/model): move baseFontStore and unifiedFontStore to subdirectories, rename errors/index to errors/errors
|
2026-04-05 11:02:42 +03:00 |
|
Ilia Mashkov
|
9427f4e50f
|
feat(Font): re-export FontNetworkError and FontResponseError from entity barrel
|
2026-04-05 09:33:58 +03:00 |
|
Ilia Mashkov
|
ed9791c176
|
feat(Font/lib): add FontNetworkError and FontResponseError
|
2026-04-05 09:04:47 +03:00 |
|
Ilia Mashkov
|
af4137f47f
|
refactor(Font): consolidate API layer and update type structure
|
2026-03-02 22:18:21 +03:00 |
|
Ilia Mashkov
|
da79dd2e35
|
feat: storybook cases and mocks
|
2026-02-19 13:58:12 +03:00 |
|
Ilia Mashkov
|
8195e9baa8
|
feat(getFontUrl): create a helper function to choose font url
|
2026-02-05 11:40:23 +03:00 |
|
Ilia Mashkov
|
0554fcada7
|
feat(normalize): use type UnifiedFontVariant instead of string
|
2026-02-05 11:39:56 +03:00 |
|
Ilia Mashkov
|
75ea5ab382
|
chore: change dprint formatting
|
2026-01-30 01:09:39 +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
|
5fcb381b11
|
chore(normalize): move font api responce normalization functions to lib
|
2026-01-13 19:53:26 +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
|
ea1f46f780
|
feat(fontCollection): create font collection state manager
|
2026-01-09 16:17:49 +03:00 |
|
Ilia Mashkov
|
e1af950442
|
chore: create index files for better import/export api
|
2026-01-09 16:14:38 +03:00 |
|