- Implement drag-to-close feature for the media preview modal, allowing users to dismiss the modal by dragging.
- Introduce dynamic scaling and opacity adjustments during drag interactions.
- Update modal animations using Framer Motion for smoother transitions.
- Refactor child component handling to support zoom state changes and improve overall structure.
Signed-off-by: Innei <tukon479@gmail.com>
- Refactor image source selection to prioritize proxy and origin URLs based on user preferences.
- Implement error handling to retry loading from alternative sources upon failure.
- Add debug information for successful image loads and errors in development mode.
- Optimize state management for loading and error states.
Signed-off-by: Innei <tukon479@gmail.com>
* feat: enhance PagerView onScroll event to include position parameter for iOS
* feat: add TimelineSelectorDragProgress context and provider for managing drag state
* feat: enhance TimelineViewSelector with drag progress and animated item transitions
* feat: integrate drag progress into PagerList and TimelineViewSelector for enhanced user interaction
* feat: add animated icon transitions in ViewItem based on drag progress
* fix: add scrollViewDidEndDecelerating to trigger onScrollEnd callback
* fix: enhance PagerList to synchronize drag progress with timeline selection
* fix(dayjs): fix relative time not follow when language change
* fix: update world in grid item template
* fix: change dayjs locale to settings change
* fix: apply suggest review suggestion
- Added a TypeScript ignore comment for the `math` node in the `parseHtml` function to suppress type errors. This change ensures that the handling of math nodes does not interfere with TypeScript's type checking, allowing for smoother integration and functionality.
These changes aim to improve the robustness of the HTML parsing logic while maintaining type safety.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced two new cropping functions: `handleFullImageCrop` and `handleCenterCrop` to allow users to easily crop their avatars to full image size or center-focused size.
- Updated the modal layout to include buttons for these new cropping options, enhancing user experience and providing more flexibility in avatar customization.
These changes aim to improve the avatar upload process by offering users convenient cropping presets.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the `setAvatar` function to include success and error handling for the avatar update process.
- Integrated toast notifications to inform users of the outcome of their avatar update, improving user experience and feedback.
These changes aim to provide clearer communication to users regarding the status of their avatar updates.
Signed-off-by: Innei <tukon479@gmail.com>
- Added a helper function `constrainCropData` to ensure crop dimensions remain within image boundaries and maintain a 1:1 aspect ratio.
- Updated image loading and cropping logic to utilize the new helper function for better validation of crop data.
- Improved mouse event handling for cropping to ensure accurate resizing and positioning of the crop area.
- Adjusted crop style calculations to account for the actual display size of the image within its container.
These changes aim to provide a more robust and user-friendly experience when uploading and cropping avatars.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced `AvatarUploadModal` component for user-friendly avatar image uploads, including cropping and validation for file type and size.
- Added `uploadAvatarBlob` function to handle the upload process to the server.
- Updated `ProfileSettingForm` to integrate the avatar upload modal, allowing users to upload and preview their avatars seamlessly.
- Enhanced localization with new strings for avatar upload instructions and error messages.
These changes aim to improve the user experience by providing a straightforward method for uploading and managing profile images.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a constant `UN_CATEGORIZED` to manage uncategorized subscriptions more effectively.
- Updated the logic to assign uncategorized subscriptions to the `UN_CATEGORIZED` category.
- Implemented sorting for uncategorized subscriptions to display them last, improving the organization of subscription groups.
These changes aim to streamline the categorization process and enhance the user experience when viewing subscriptions.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced enhanced scroll state management to adjust header elevation and compactness based on scroll position.
- Updated the layout of the header and container components for better responsiveness and visual appeal.
- Improved logo and social media links sections with animations and transitions for a more dynamic user experience.
These changes aim to provide a more intuitive and visually appealing header that adapts to user interactions.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a constant `SIZE` to manage the number of feeds displayed, improving maintainability.
- Updated the feed count display to use `list.data.feedCount` for accuracy.
- Enhanced error handling in `callNotFound` to specifically manage `FetchError` instances, improving robustness.
These changes aim to streamline feed management and enhance error reporting in the application.
Signed-off-by: Innei <tukon479@gmail.com>
resolves FOL-1537
- Introduced `SimpleDiscoverModal` component to facilitate searching and adding feeds via keywords or URLs.
- Implemented form validation using Zod and integrated with the API for feed discovery.
- Updated `SubscriptionList` to show the modal when adding feeds, improving user experience.
- Enhanced localization with new strings for the discover functionality.
These changes aim to streamline the process of discovering and adding feeds, providing users with a more intuitive interface.
Signed-off-by: Innei <tukon479@gmail.com>
- Added `HeaderActionButton` and `HeaderActionGroup` components for improved action handling in the UI.
- Introduced `Media`, `MediaContainerWidthProvider`, and related context components to manage media dimensions and rendering.
- Enhanced markdown rendering components (`BlockImage`, `InlineImage`, `MarkdownLink`) to utilize the new media structure, improving image handling and layout.
- Updated various components to import from the new media structure, ensuring consistency and better organization.
These changes aim to enhance the media handling capabilities and improve the overall user experience in the application.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced `ApplyEntryActions` component to manage entry actions more effectively.
- Updated `NoContent` component to utilize `useShowSourceContent` for better state management.
- Refactored `EntryContent` to remove unnecessary readability and source content effects, enhancing performance.
- Enhanced `RuleCardToolbar` to include confirmation dialog for rule deletion, improving user experience and preventing accidental deletions.
These changes aim to improve the modularity and usability of the entry content features across the application.
Signed-off-by: Innei <tukon479@gmail.com>
- Redesigned the Discover, RSSHub, and Actions pages for a more modern and user-friendly experience.
- Introduced `HeaderActionButton` and `HeaderActionGroup` components to streamline action button layouts.
- Updated the `ActionSetting` and `RSSHub` components to utilize the new button components, improving functionality and visual consistency.
- Enhanced the `WhenSection` component with improved spacing and label styling for better readability.
These changes aim to elevate the overall user experience and maintain a cohesive design across the application.
Signed-off-by: Innei <tukon479@gmail.com>
- Improved the layout and styling of the ActionSetting, Recommendations, UserProfileModal, Trending, and RSSHub components for better visual consistency and responsiveness.
- Adjusted class names to center elements and enhance spacing, ensuring a more cohesive user experience.
- Updated the UserAvatar component to display either the user's name or handle when the name is not available.
- Refactored the discover page to include a more structured header and additional content sections, improving overall navigation and accessibility.
These changes aim to enhance the user interface and provide a more intuitive experience across the application.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the layout of the ActionSetting component for improved responsiveness and visual clarity.
- Replaced the animated placeholder with a simpler static design and adjusted icon sizes for better alignment.
- Enhanced the ActionButtonGroup with a more structured layout, including dynamic labels and improved spacing.
- Refined the overall user interface to provide a more cohesive experience when managing action rules.
This refactor aims to improve usability and maintainability of the action settings interface.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the ActionButtonGroup to conditionally render button labels based on the presence of actions.
- Added disabled states for the export and copy to clipboard options when no actions are available.
- Improved user interface by ensuring appropriate icons and labels are displayed for share and import actions.
This enhancement provides clearer feedback to users regarding available actions and improves overall usability.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced an `EmptyActionPlaceholder` component to display a message when no action rules are present.
- Updated `ActionSetting` to conditionally render the placeholder or the list of action rules based on their availability.
- Enhanced the user interface with animations for the empty state and a prompt to create new actions.
This addition improves user experience by guiding users to start creating action rules when none exist.
Signed-off-by: Innei <tukon479@gmail.com>
- Added a new utility function `copyToClipboard` to handle clipboard operations with error handling.
- Refactored existing clipboard interactions across various components and hooks to utilize the new utility function.
- Introduced import/export functionality for action rules, allowing users to copy rules to clipboard and import from clipboard.
- Enhanced user feedback with toast notifications for clipboard actions.
This update improves code reusability and user experience when interacting with the clipboard.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed ActionCard component and its associated imports.
- Introduced RuleCard component to handle action rules.
- Updated ActionSetting to utilize RuleCard instead of ActionCard.
- Added new sections for handling conditions and actions (WhenSection, ThenSection).
- Introduced constants for available actions and their configurations.
- Removed TargetActionList component as part of the refactor.
This refactor enhances the modularity and maintainability of the action settings UI.
Signed-off-by: Innei <tukon479@gmail.com>