SDK API only accepts single MessageType value, not array. Updated to use client-side filtering for Tab-based message type filtering (all/notice/other) instead of server-side filtering.
Changes:
- hooks/use-messages.ts: Changed type parameter from array to single value
- app/(tabs)/message.tsx: Replaced getMessageTypeByTab with filterMessagesByTab for client-side filtering
- Removed useEffect dependency on activeTab to prevent unnecessary refetches
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace mock data with useMessages hook and useMessageActions for real-time message management. Add support for tab-based filtering (all/notice/other), pull-to-refresh, infinite scroll pagination, and mark-as-read functionality. Integrate LoadingState, ErrorState, and PaginationLoader components for better UX.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 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>
Transform Generation Record from static detail view to dynamic list with:
- useTemplateGenerations hook for data fetching
- RefreshControl for pull-to-refresh functionality
- LoadingState and ErrorState for proper state handling
- PaginationLoader for infinite scroll
- FlatList with onEndReached for pagination
- Comprehensive test coverage following TDD principles
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace inline LoadingState, ErrorState, and FooterLoading components with reusable UI components (LoadingState, ErrorState, RefreshControl, PaginationLoader). Add retry functionality to ErrorState and maintain consistent styling with #FFE500 color theme.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace custom loading/error states with reusable components (RefreshControl, LoadingState, ErrorState). Add pull-to-refresh functionality and remove duplicate styles.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>