- Make callback handlers async and await the API calls
- Add localLoading state to prevent duplicate clicks
- Add ActivityIndicator during loading
- Fix issue where API might not be called properly
- Use vertical layout with icon above count (TikTok style)
- Show correct liked/favorited state with filled icons
- Add count formatting (1.5k, 2.8w)
- Improve button background and positioning
- Update tests for new component structure
- Create vertical social button layout similar to TikTok/Kuaishou
- Support like and favorite actions with proper state management
- Include loading state handling
- Add comprehensive tests covering all props and interactions
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
feat: modify TemplateCard and TemplateGrid to handle optional id and filter templates
refactor: clean up use-template-filter to use CategoryTemplate type
- Implemented TemplateGrid component for displaying templates in a grid layout.
- Added calculateCardWidth helper function for dynamic card sizing.
- Created TitleBar component for displaying the title and points with interaction.
- Added unit tests for TemplateGrid and TitleBar components to ensure proper functionality.
- Introduced useStickyTabs and useTabNavigation hooks with tests for managing sticky tab behavior and navigation logic.
- Implemented useTemplateFilter hook for filtering templates based on video content.
- Added comprehensive tests for all new hooks and components to validate behavior and edge cases.
- Add useDebounce hook for future search optimization
- Integrate LoadingState, ErrorState, RefreshControl, and PaginationLoader into searchResults.tsx
- Add pull-to-refresh functionality with RefreshControl component
- Implement pagination with loadMore and PaginationLoader
- Add error handling with retry functionality using ErrorState
- Update SearchResultsGrid to support refreshControl, onEndReached, and ListFooterComponent props
- Add scroll event handling for pagination trigger
- Add TODO comment in searchWorksResults.tsx for backend API integration
- Reduce initial search limit from 50 to 20 for better performance
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add useWorksList hook for data fetching with pagination support
- Integrate RefreshControl for pull-to-refresh functionality
- Add LoadingState for initial loading display
- Add ErrorState with retry functionality
- Add PaginationLoader for load more indication
- Update WorksGallery to support refresh control and pagination
- Add comprehensive tests for worksList screen and hook
- Use useMemo for performance optimization
TODO: Replace mock API with actual backend endpoint when available
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add minimal PaginationLoader component for infinite scroll/pagination scenarios. Displays small ActivityIndicator with optional text, supports theme colors, and is designed for use in FlatList ListFooterComponent.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add minimal ErrorState component for displaying error messages with optional retry functionality. Supports light/dark themes via TailwindCSS and follows project patterns. All 6 tests passing.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add minimal LoadingState component for displaying loading states across the app. Includes ActivityIndicator, optional message text, theme support, and comprehensive test coverage.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add minimal RefreshControl wrapper component for pull-to-refresh functionality across screens. Includes theme colors for light/dark mode support.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>