Browsers wait for scroll/touch listeners to finish to check if
preventDefault() is called, which delays scrolling. Since these
handlers (navbar scroll detection, click-outside detection, and
onboarding tour position updates) never call preventDefault(),
marking them as passive lets the browser scroll without waiting.
Fixes#1053
Fix two timer cleanup bugs in onboarding-tour.tsx:
1. Remove cleanup return from useCallback (only works in useEffect).
Clear retryTimerRef at the start of updateTarget and in a
dedicated useEffect cleanup instead.
2. Track recursive setTimeout calls via startCheckTimerRef so they
are properly cancelled on unmount instead of leaking.
Fixes#1091
Remove useEffect that watched stepIndex to drive shouldAnimate/contentKey.
stepIndex only changes from handleNext/handlePrev, so set shouldAnimate
directly in those handlers. Replace contentKey state (always equal to
stepIndex) with stepIndex as the animation key.
Fixes#1017
- Removed the `documentTypeCountsAtom` and its associated logic from the document query atoms.
- Introduced `useZeroDocumentTypeCounts` hook to provide real-time document type counts, enhancing responsiveness as documents are indexed.
- Updated components to utilize the new hook for fetching document type counts, ensuring instant updates in the UI.
- Add cancelled flag to prevent state updates after unmount in
checkAndStartTour retry loop
- Store retry timer ID in a ref and clear it on cleanup in
updateTarget effect
Closes#950
- Added a new joyride step for the upload button to guide users in uploading documents.
- Updated existing tour steps to reflect changes in document management and tool configuration.
- Adjusted tooltip styles for improved visibility and user experience.
- Enhanced MorePagesContent button styling for better interaction feedback.
- Added a new onboarding tour step for the inbox, guiding users to view mentions and notifications.
- Updated tooltip positioning logic to accommodate the new inbox step, ensuring proper alignment during the tour.
- Enhanced the check for required elements to include the inbox step, improving the tour initiation process.
- Added logic to track previous user ID to detect changes and reset tour state accordingly.
- Updated localStorage checks to ensure the onboarding tour is displayed only for new users who haven't seen it.
- Improved validation logic to prevent auto-marking the tour as seen if the user has existing data.
- Integrated user data fetching and validation to determine if the onboarding tour should be displayed.
- Improved checks for user status by evaluating threads, documents, and connectors to identify new users.
- Added localStorage management to track whether users have completed or skipped the tour.
- Refactored the tour initiation logic to ensure it only runs when all necessary data is loaded and available.
- Updated tooltip and spotlight styles for improved visibility and animation.
- Adjusted background and text colors based on dark mode settings for better user experience.
- Introduced animation for tooltip content changes to enhance user engagement.
- Refactored rendering logic to ensure spotlight updates sync with tooltip animations.
- Updated onboarding tour messages to include Gmail and Drive for better clarity.
- Refactored Spotlight component to enhance element targeting and prevent flickering.
- Optimized rendering logic for Spotlight and TourTooltip to ensure they only display when target data is available.
- Introduced the OnboardingTour component to guide users through key features.
- Integrated the OnboardingTour into the DashboardClientLayout for improved user experience.
- Updated connector popup and sidebar navigation with data attributes for tour steps.