- Added a new hook, useAttachScrollBeyond, to manage scroll behavior and state across components.
- Updated ChatInterface and WelcomeScreen to utilize the new hook for handling scroll events, improving the user experience by ensuring consistent scroll threshold management.
- Refactored AIChatRoot to maintain clean code structure.
These changes enhance the chat interface by providing a centralized way to manage scroll interactions, improving overall usability.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a new hook, useAIShortcut, to manage keyboard shortcuts for creating new chats and closing the AI chat panel.
- Integrated the useAIShortcut hook into the AIChatRoot component to enable these shortcuts when the AI chat is focused.
These changes improve user experience by providing quick access to essential chat functions through keyboard shortcuts.
Signed-off-by: Innei <tukon479@gmail.com>
- Added a "Close Sidebar" option in the ChatMoreDropdown for improved user control over the AI panel.
- Updated AIIndicator to simplify visibility logic for the spline button.
- Refactored AIEntryLayout to better manage AI panel visibility and layout based on the current panel style.
These changes improve the user experience by providing more intuitive controls and ensuring consistent behavior of the AI panel across components.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced AIRootStateContext to manage the scroll threshold state across components.
- Updated AIChatRoot, ChatHeader, ChatInterface, and WelcomeScreen to utilize the new context for scroll behavior.
- Added SCROLLED_BEYOND_THRESHOLD constant to define the scroll limit for triggering state changes.
These changes enhance the chat interface by allowing components to react to scroll position, improving user experience and interaction dynamics.
Signed-off-by: Innei <tukon479@gmail.com>
- Modified the AIEntryLayout component to include a relative positioning class for better layout management.
- This change enhances the overall rendering and interaction experience within the entry column.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated AIEntryLayout to include a wrapper div for better pointer event management and layout structure.
- Removed unnecessary layout animation div in EntryContent to streamline rendering.
- Adjusted padding in SocialMediaLayout for improved spacing.
These changes enhance the user experience by ensuring smoother animations and better layout consistency across components.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the TimelineViewSelector component to exclude the 'All' view from the active views list.
- Enhanced the rendering logic to ensure only relevant views are displayed, improving user experience and clarity.
These changes streamline the timeline view selection process, making it more intuitive for users.
Signed-off-by: Innei <tukon479@gmail.com>
- Adjusted highlight styles in the AllItem component to remove text color for better visual clarity.
- Reduced the minimum height of media elements in AllItem for a more compact layout.
- Updated the column width in AllMasonry for improved responsiveness and layout.
- Simplified the class names in MasonryItemRender for cleaner code.
These changes enhance the overall user interface by providing a more consistent and visually appealing layout across components.
- Renamed timeline column hooks to subscription column hooks for clarity and consistency.
- Updated zen mode handling in the settings and sidebar components to streamline functionality.
- Adjusted Tailwind CSS configurations for improved variant handling related to zen mode and left column visibility.
These changes enhance code readability and maintainability while improving the user experience in managing subscription visibility and settings.
Signed-off-by: Innei <tukon479@gmail.com>
- Added z-index to ChatInput for improved layering.
- Refactored ChatInterface to simplify rendering logic and ensure consistent display of messages and loading indicators.
- Introduced a backdrop for the ChatInput when not centered, enhancing visual separation.
These changes improve the user interface and interaction experience within the AI chat components.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced custom ordering for timeline views to improve swipe direction calculations.
- Updated state management to reflect the active view index accurately.
- Replaced animation transition properties with predefined spring presets for smoother animations.
These changes enhance the user experience by providing more intuitive swipe interactions and improved animation performance.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated `useEntryActions` to include `routeEntryId` for better context handling.
- Added `isCurrentVisitEntry` logic to conditionally hide the export action in the entry menu.
- Modified `MoreActions` component to conditionally render the customize toolbar action based on the new prop.
- Adjusted animation properties in `EntryItemWrapper` for smoother transitions.
- Added `data-hide-in-print` attribute to `AIChatFixedPanel` for improved print handling.
These changes improve the functionality and user experience of entry actions and related UI components.
Signed-off-by: Innei <tukon479@gmail.com>
- Added AIEntryHeader component to display entry details dynamically.
- Implemented entry header animation using AnimatePresence for smoother transitions.
- Updated entry content rendering logic to improve visual consistency and user experience.
These changes enhance the layout and interaction of the AI entry components.
Signed-off-by: Innei <tukon479@gmail.com>
* init
Signed-off-by: Innei <tukon479@gmail.com>
* feat(ai): add showSplineButton setting and update UI components
- Introduced a new setting `showSplineButton` to control the visibility of the AI assistant indicator.
- Updated the `createDefaultSettings` function to include the new setting with a default value of true.
- Modified the `AISplineButton` component to conditionally render based on the `showSplineButton` setting.
- Adjusted the modal content width in the `useDialog` hook for better layout.
- Enhanced the settings tab to define the new `showSplineButton` item with appropriate labels and descriptions.
- Updated localization files to include translations for the new setting.
These changes improve user control over the AI assistant's visibility and enhance the overall UI experience.
Signed-off-by: Innei <tukon479@gmail.com>
* feat(ai): implement AISmartSidebar with CSS animations
- Added AISmartSidebar component to replace motion/react animations with CSS animations for improved performance and visual effects.
- Introduced corresponding AISmartSidebar.css file to define animations and styles for the sidebar elements.
- Updated AISplineButton to conditionally render AISmartSidebar based on visibility settings.
- Refactored AIEntryLayout to use the new AIIndicator component, enhancing the integration of the sidebar.
These changes enhance the user experience by providing smoother animations and better control over the AI assistant's visibility.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor(ui): update icon usage and improve layout spacing
- Replaced icons in the EntryMoreActions and MoreActions components for consistency.
- Adjusted padding and margin in various components, including AIEntryHeader and SubscriptionColumn, to enhance layout and visual appeal.
- Added a new label 'View' to the ai-block-constants for better clarity.
These changes improve the overall user interface and maintain consistency across components.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor(ui): enhance ChatHeader and EntryListHeader layouts
- Updated the ChatHeaderLayout to conditionally render styles based on the floating state, improving visual consistency.
- Adjusted the EntryListHeader component to set a fixed height, ensuring uniformity in layout across different views.
These changes improve the overall user interface and maintain a consistent layout experience.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor(ui): update ChatHeader and ChatMoreDropdown components
- Replaced GlassButton with ActionButton in ChatHeader for improved consistency and styling.
- Simplified the rendering of TaskReportDropdown and ChatMoreDropdown components.
- Adjusted layout styles in WelcomeScreen for better alignment.
- Enhanced ChatInterface to improve input positioning when no messages are present.
These changes enhance the user interface and maintain a consistent look across components.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor(ai): adjust AI chat layout width for improved styling
- Updated the AI chat component to set a custom layout width of 65rem, enhancing the overall appearance and usability of the chat interface.
This change aims to provide a more consistent and visually appealing layout for the AI chat experience.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor(ui): adjust spacing in EntryListHeader component
- Increased the gap between items in the EntryListHeader from 1 to 2 for improved layout and visual consistency.
This change enhances the overall user interface by providing better spacing in the header layout.
Signed-off-by: Innei <tukon479@gmail.com>
---------
Signed-off-by: Innei <tukon479@gmail.com>
* feat(feed): a masonry view for all feed (wip)
* fix: adjust color and icons
* feat: all masonry
* feat: item details
* fix: styles
* fix: styles
* fix: default tab to be -1
* fix: selectable view
* fix: safe area
* fix: remove safe area
* fix: styles
* fix: styles
* fix: navigation
* fix: aspect-ratio
* fix: hooks
* fix: styles
* chore: comment
* fix: splash issue
* fix: style
* fix: style
* fix: style
* fix: style
* fix: close entry
* fix: styles
* fix: folder in all
* fix: styles
* fix: styles
* fix: styles
* refactor(desktop): enhance entry data handling in AllItem component
- Updated the AllItem component to destructure additional properties (content, description) from the entry state for improved data accessibility.
- Modified the rendering logic to display title, content, or description in the UI, enhancing user experience by providing more context.
This refactor aims to streamline data management and improve the presentation of entry information.
* refactor(desktop): improve entry display order in AllItem component
- Adjusted the rendering logic in the AllItem component to prioritize displaying the entry title before the description and content. This change enhances the clarity and relevance of the information presented to users.
This update aims to further refine the user experience by ensuring the most important entry information is highlighted first.
* feat: enhance AllItem component with keyword highlighting
- Added support for highlighting keywords in the title using a new `title_keyword` property in the ExtraModel.
- Introduced random card and highlight styles for visual differentiation.
- Updated the rendering logic to display highlighted keywords within the title.
This improves the user experience by making important keywords more prominent in the item display.
* refactor(AllItem): update media rendering logic to include Audios
- Modified the rendering conditions in the AllItem component to include Audios in the media display alongside Articles, Notifications, and Social Media.
- Removed the previously defined separate rendering block for Audios to streamline the component structure.
This update enhances the media display functionality by integrating Audios into the existing media rendering logic.
* fix: height calc
* feat(AllMasonry): add refetch and scroll handling functionality
- Introduced a `refetch` prop to the `AllMasonry` component for improved data fetching capabilities.
- Implemented a `handleScrollTo` function to facilitate scrolling to specific items within the masonry layout.
- Updated the component structure to accommodate these new features, enhancing user interaction and experience.
This update enhances the functionality of the AllMasonry component by allowing for better data management and item navigation.
* feat(AllItem): enhance title rendering and entry read tracking
- Updated the title rendering logic to improve keyword highlighting with case-insensitive matching.
- Integrated the `unreadSyncService` to mark entries as read when hovered, enhancing user interaction.
- Refactored highlight styles to support new underline and background options for better visual distinction.
This update improves the user experience by providing clearer title visibility and tracking read status effectively.
* refactor(AllItem): streamline hover behavior and enhance title keyword matching
- Refactored hover handling to utilize a timer for showing previews, improving performance and user experience.
- Updated title keyword matching logic to ensure proper escaping of special characters, enhancing accuracy in highlighting.
- Cleaned up unused underline-wavy styles for better code maintainability.
This update optimizes the interaction flow and improves the visual representation of keywords in titles.
* feat(timeline): filter views based on AI feature flag
- Introduced a check for the AI feature to conditionally filter out the 'All' view from the timeline list.
- Updated the logic to create view IDs based on the filtered views, enhancing the timeline's adaptability to feature availability.
This update improves the timeline's functionality by ensuring that the view options align with the current feature set.
* refactor(AllItem): simplify highlight styles and improve text decoration handling
- Removed unnecessary text-decoration-skip-ink styles from highlight class names for cleaner code.
- Added inline style to ensure consistent text decoration behavior in highlighted keywords.
This update enhances code maintainability and ensures proper rendering of highlighted text.
* fix(EntryColumnGrid): add refetch prop and update comments in AllItem
- Added the `refetch` prop to the `EntryColumnGrid` component for improved data handling.
- Updated comment in `AllItem` from "Social Media" to "Common views" for better clarity.
- Enhanced the no content display in `AllItem` for improved user experience.
This update improves functionality and clarity in the entry column components.
* refactor(AllItem): clean up media handling and improve preview logic
- Removed unused `firstMedia` variable and adjusted media cover logic for clarity.
- Updated aspect ratio handling to ensure default values are set correctly.
- Enhanced the no media available display for better user experience.
- Refactored preview display logic to improve readability and maintainability.
This update streamlines the media handling in the AllItem component and enhances the user interface.
* fix: index key
* refactor(AllItem): optimize title keyword highlighting logic
- Simplified the keyword highlighting logic in the AllItem component by extracting the regex pattern into a separate variable.
- Improved readability and maintainability of the code by reducing redundancy in the title rendering function.
This update enhances the performance and clarity of the title rendering process.
* fix: button width
* fix: first screen navigation
* fix: video hovering autoplay
* feat(timeline-tabs): implement customizable timeline tabs settings
- Added a new `TimelineTabsSettingsModal` component for managing visible and hidden timeline tabs.
- Introduced drag-and-drop functionality for reordering tabs and customizing their visibility.
- Updated `SubscriptionTabButton` to accept a shortcut prop for improved keyboard navigation.
- Enhanced global shortcuts handling to allow bypassing input restrictions for specific actions.
These changes provide users with greater flexibility in managing their timeline tabs, improving the overall user experience.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: clean up error handling in AllMasonry component and update UnreadSyncService to use new API method
- Removed console log from error handling in the AllMasonry component to streamline the code.
- Updated the UnreadSyncService to utilize the new `markAllAsRead` API method, improving the readability and structure of the request handling.
These changes enhance code clarity and maintainability across the affected components.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: optimize rendering performance in AllMasonry component
- Introduced `startTransition` for setting width in the ResizeObserver to improve rendering performance during layout updates.
- Updated the `LoadingSkeleton` component's class names for better styling consistency.
- Simplified key generation in the `SkeletonGrid` component by using `null` instead of `crypto.randomUUID()`.
These changes enhance the efficiency and maintainability of the AllMasonry component and its related elements.
Signed-off-by: Innei <tukon479@gmail.com>
* refactor: simplify icon rendering in TimelineTabsSettingsModal
- Removed conditional rendering for the icon in the TabItem component, directly displaying the icon for improved clarity and performance.
- This change streamlines the code and enhances the maintainability of the TimelineTabsSettingsModal component.
Signed-off-by: Innei <tukon479@gmail.com>
---------
Signed-off-by: Innei <tukon479@gmail.com>
Co-authored-by: Innei <tukon479@gmail.com>
- Updated the `PreviewMediaContent` and `SocialMediaGallery` components to improve click handling by stopping event propagation.
- Added cursor styles to indicate zoom functionality for better user experience.
These changes enhance the interactivity and visual feedback of media elements in the application.
* feat: add notification channels configuration
- Introduced NotifyChannelsConfig component for managing notification preferences.
- Updated AITaskModal to include options for notification channels.
- Enhanced task schema to support notification channels in task creation and updates.
- Added translations for notification-related strings in English, Japanese, and Chinese.
* fix: update error handling
* chore: set stale time for session list query to 1 minute
* fix: update refetch interval for AI chat session list query
* chore: update @follow-app/client-sdk to version 0.3.53
* fix: shamefully ignore ts error
- Removed the `tooltipDefaultOpen` prop from the `ActionButton` component to simplify the API.
- Refactored the tooltip structure for improved readability and maintainability, ensuring consistent rendering of tooltip content.
These changes enhance the clarity and efficiency of the `ActionButton` component's tooltip functionality.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a new `HeaderActions` component with animation effects for improved user interaction.
- Updated the `PreviewMediaContent` to include the `HeaderActions` component, enhancing the visual feedback during media preview.
These changes enhance the user experience by providing dynamic interaction elements in the media preview interface.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the AIModelIndicator to adjust the visibility of the model name based on medium screen sizes.
- Modified the ChatInterface to ensure the GlobalFileDropZone uses the correct container class for improved layout consistency.
These changes improve the adaptability and user experience of the UI components.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the AIModelIndicator to conditionally display the model name based on screen size, enhancing visibility on smaller devices.
- Modified the ChatInterface to utilize a container class for better layout management, ensuring consistent styling across different screen sizes.
These changes enhance the user experience by improving the adaptability of the UI components.
Signed-off-by: Innei <tukon479@gmail.com>
- Added a `hideArrow` prop to the `CollapseCss` component for better UI control.
- Introduced a new icon that appears on hover, improving the visual feedback for users interacting with the AI reasoning section.
This update enhances the user experience by providing clearer interaction cues in the AI chat display.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced the FollowClient from `@follow-app/client-sdk` to manage API requests and responses, enhancing the structure and maintainability of the API client.
- Refactored the API client to utilize the new FollowClient, including request and response interceptors for logging and error handling.
- Updated the `updateNotificationsToken` and `deleteNotificationsToken` functions to use the new API methods.
- Added a new IPC service for better communication between the main and renderer processes.
This update improves API interaction efficiency and enhances error handling across the application.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed unnecessary props and card wrappers from LoadingState and ErrorState components, streamlining their structure.
- Updated the withDisplayStateHandler function to reflect these changes, enhancing readability and maintainability.
- This refactor improves the overall performance and user experience of the AI chat display components.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the version of `@folo-services/ai-tools` from `0.2.34` to `0.2.36` in `pnpm-lock.yaml` and `package.json`.
- Updated the version of `@folo-services/drizzle` from `0.1.24` to `0.1.25` in `pnpm-lock.yaml`.
- Refactored the `AIDisplaySubscriptionsPart` component to streamline the rendering of subscription items and improve navigation handling.
- Removed unused code and optimized the component structure for better maintainability.
This update enhances the AI tools integration and improves the user experience in the AI display component.
Signed-off-by: Innei <tukon479@gmail.com>
- Added form validation schema to the DiscoverForm for better input handling.
- Refactored keyword handling in DiscoverForm to improve performance using startTransition.
- Updated InboxTable to display a message when no inboxes are available, enhancing user feedback.
- Added localization for the new no inbox message.
This update improves user experience and input validation in the discover module.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed the `onSend` prop from `EntrySummaryCard` and associated quick actions logic, streamlining the component.
- Updated the `WelcomeScreen` to reflect the changes in `EntrySummaryCard`.
- Removed the `useSmartQuickActions` hook as it was no longer needed.
- Cleaned up localization files by removing the "conversation_starters" key.
This refactor enhances the clarity and maintainability of the AI chat components.
- Introduced new state and refs to manage the minimum height of the message container dynamically, improving layout stability during message sending.
- Implemented scroll positioning adjustments to ensure user messages are displayed correctly after sending.
- Updated the Messages component to accept a ref for better height calculations, enhancing the overall user experience in the chat interface.
This update improves the responsiveness and visual consistency of the chat interface during interactions.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the `useHasModal` hook to utilize `useDeferredValue`, addressing issues with simultaneous hotkey responses during modal exit.
- This change enhances the responsiveness and reliability of modal interactions, ensuring a smoother user experience.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the modal's close logic to call `readyToClose()` before proceeding with the close action, ensuring that the animation state is properly managed.
- This change enhances the user experience by preventing premature closure of the modal during animations.
Signed-off-by: Innei <tukon479@gmail.com>