From 10b7457f21a827ac038ef525006da2c5c3be3f5b Mon Sep 17 00:00:00 2001 From: Ilia Mashkov Date: Tue, 6 Jan 2026 18:55:07 +0300 Subject: [PATCH] refactor(virtual): use store pattern instead of hook, fix styling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Store Pattern Migration: - Created createVirtualizerStore using Svelte stores (writable/derived) - Replaced useVirtualList hook with createVirtualizerStore - Matches existing store patterns (createFilterStore, createControlStore) - More Svelte-idiomatic than React-inspired hook pattern Component Refactoring: - Renamed FontVirtualList.svelte → VirtualList.svelte - Moved component from shared/virtual/ → shared/ui/ - Updated to use store pattern instead of hook - Removed pixel values from style tags (uses Tailwind CSS) - Height now configurable via Tailwind classes (e.g., 'h-96', 'h-[500px]') - Props changed from shorthand {fonts} to explicit items prop File Changes: - Deleted: useVirtualList.ts (replaced by store pattern) - Deleted: FontVirtualList.svelte (renamed and moved) - Deleted: useVirtualList.test.ts (updated to test store pattern) - Updated: README.md with store pattern usage examples - Updated: index.ts with migration guide - Created: createVirtualizerStore.ts in shared/store/ - Created: VirtualList.svelte in shared/ui/ - Created: createVirtualizerStore.test.ts - Created: barrel exports (shared/store/index.ts, shared/ui/index.ts) Styling Improvements: - All pixel values removed from