* feat: unread state for entry
* mark feed as read
* fix type
* feat: mark as read when entering entry detail
* prefetch unread
* show unread count for view
* fix: use feed subscription for view unread count
* fix: clean not exist subscriptions
* Pre fetch subscriptions in advance
* fix: add entry ids to list
- Remove Media.xcassets and Accent color set
- Update Utils.swift to hardcode accent color
- Enhance AISummary component with error handling and retry functionality
- Adjust layout and styling for AI summary
- Update image size calculation to handle undefined dimensions
Signed-off-by: Innei <tukon479@gmail.com>
- Implement AI summary feature for entry details
- Add summaries table to database schema
- Create summary service and store for managing summaries
- Introduce new components for displaying AI-generated summaries
- Add header actions for generating and toggling summaries
- Integrate with API for summary generation
Signed-off-by: Innei <tukon479@gmail.com>
- Replace PlatformPressable with Pressable in tab layout
- Add separator between views and lists in view selector
- Use ReAnimatedTouchableOpacity and useAnimatedStyle
- Simplify color and styling imports
Signed-off-by: Innei <tukon479@gmail.com>
- Restructure preview media action buttons container
- Remove unnecessary pointer-events-none class from inner div
- Wrap action buttons in an additional container for better overflow handling
- Maintain existing functionality for download and open in browser actions
Signed-off-by: Innei <tukon479@gmail.com>
- Replace custom iOS context menu with zeego/context-menu
- Add dropdown menu for entry detail header actions
- Implement copy link and open in browser functionality
- Update entry hook to support optional selector
- Rename action components for clarity
- Remove deprecated context menu implementation
Signed-off-by: Innei <tukon479@gmail.com>
- Update SafeNavigationScrollView to support custom headerLeft prop
- Optimize EntryListScreen with memoized header actions and simplified conditions
- Simplify EntryListContent by removing BottomTabBarHeightContext.Consumer
- Add Link to Terms of Service in login screen
- Wrap Feed screen with BottomTabBarHeightContext.Provider
Signed-off-by: Innei <tukon479@gmail.com>
- Memoize `entriesOptions` to improve performance
- Add conditional logic to remove `listId` for business feed IDs
- Import `isBizId` utility function for ID type checking
- Enhance query parameter generation with more flexible configuration
Signed-off-by: Innei <tukon479@gmail.com>
- Add active state highlighting for selected feed items
- Implement event propagation prevention in feed item click handler
- Update ListFeedList component to pass current feed ID for active state
- Refine padding and styling for feed list items
Signed-off-by: Innei <tukon479@gmail.com>
- Rename `feed-column` directory to `timeline-column`
- Update import paths and references across the application
- Refactor sidebar and column-related atoms and hooks
- Improve naming consistency for timeline-related components and functions
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: update routes from /feeds to /timeline and improve timeline navigation
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: improve timeline selector and list view rendering
- Optimize timeline selector with auto-scrolling and dynamic rendering
- Enhance list switch button with improved styling and title display
- Memoize and optimize timeline-related hooks and components
- Add utility functions for scrolling and visibility detection
Signed-off-by: Innei <tukon479@gmail.com>
* fix: prevent timeline selector error when timelineId is undefined
- Add null check for timelineId before processing timeline selection
- Ensure safe handling of timeline selector when no timeline is selected
Signed-off-by: Innei <tukon479@gmail.com>
* feat: add InboxSwitchButton for timeline navigation
- Implement InboxSwitchButton component for inbox timeline selection
- Add handling for inbox timeline in TimelineSwitchButton
- Support unread indicator and navigation for inbox timelines
Signed-off-by: Innei <tukon479@gmail.com>
---------
Signed-off-by: Innei <tukon479@gmail.com>