diff --git a/packages/extension/src/newtab/ExtensionTopBanners.tsx b/packages/extension/src/newtab/ExtensionTopBanners.tsx index 3b7be57051f..6d67ff6dbfd 100644 --- a/packages/extension/src/newtab/ExtensionTopBanners.tsx +++ b/packages/extension/src/newtab/ExtensionTopBanners.tsx @@ -88,6 +88,7 @@ const ShortcutsIllustration = (): ReactElement => { type UseShortcutsOnboardingResult = { shouldShow: boolean; onAddClick: () => void; + onClose: () => void; }; const useShortcutsOnboarding = (): UseShortcutsOnboardingResult => { @@ -98,7 +99,8 @@ const useShortcutsOnboarding = (): UseShortcutsOnboardingResult => { const { shortcutLinks } = useShortcutLinks(); const hasShortcuts = (shortcutLinks?.length ?? 0) > 0; - const shouldShow = !hasShortcuts; + const hasClosedBanner = checkHasCompleted(ActionType.ClosedShortcutsBanner); + const shouldShow = !hasShortcuts && !hasClosedBanner; const completeFirstSession = () => { if (!checkHasCompleted(ActionType.FirstShortcutsSession)) { @@ -116,7 +118,9 @@ const useShortcutsOnboarding = (): UseShortcutsOnboardingResult => { }); }; - return { shouldShow, onAddClick }; + const onClose = () => completeAction(ActionType.ClosedShortcutsBanner); + + return { shouldShow, onAddClick, onClose }; }; export const ExtensionTopBanners = (): ReactElement | null => { @@ -177,6 +181,7 @@ export const ExtensionTopBanners = (): ReactElement | null => { ctaLabel="Add shortcuts" illustration={} onCtaClick={shortcuts.onAddClick} + onClose={shortcuts.onClose} />, ); } diff --git a/packages/shared/src/components/sidebar/SidebarDesktopV2.tsx b/packages/shared/src/components/sidebar/SidebarDesktopV2.tsx index ce8508479cc..066b1959b63 100644 --- a/packages/shared/src/components/sidebar/SidebarDesktopV2.tsx +++ b/packages/shared/src/components/sidebar/SidebarDesktopV2.tsx @@ -1139,25 +1139,6 @@ export const SidebarDesktopV2 = ({ const isHoverExpanded = isCollapsedHoverMode && isRailHovered; const isExpanded = sidebarExpanded || forceExpanded || isHoverExpanded; - // ChatGPT-style affordance: while collapsed, the whole sidebar reads as a - // resize handle (ew cursor). Clicking the empty surface pins it open — same - // as the toggle — while clicks on nav items / avatar / toggle keep their own - // behavior. - const pinFromEmptyClick = (event: React.MouseEvent) => { - if (!isCollapsedHoverMode) { - return; - } - const target = event.target as HTMLElement; - if ( - target.closest( - 'a, button, input, select, textarea, [role="tab"], [role="button"], [role="menuitem"]', - ) - ) { - return; - } - onToggleExpanded(); - }; - const renderCategoryTab = ( categoryId: SidebarCategoryId, ): ReactElement | null => { @@ -1324,7 +1305,6 @@ export const SidebarDesktopV2 = ({ onMouseEnter={handleRailMouseEnter} onMouseLeave={handleRailMouseLeave} onMouseMove={handleRailMouseMove} - onClick={pinFromEmptyClick} className={classNames( 'laptop:bottom-0 laptop:h-dvh laptop:min-h-dvh laptop:flex-row laptop:border-r-0', isExpanded ? railExpandedWidth : railCollapsedWidth, @@ -1341,9 +1321,6 @@ export const SidebarDesktopV2 = ({ // its edge reads clearly against the content behind it. isHoverExpanded && 'laptop:!border-r laptop:border-border-subtlest-tertiary', - // Collapsed sidebar reads as a resize handle: click the empty surface - // to pin it open. - isCollapsedHoverMode && 'laptop:cursor-ew-resize', featureTheme && 'bg-transparent', suppressTransition, )} diff --git a/packages/shared/src/graphql/actions.ts b/packages/shared/src/graphql/actions.ts index 4bc6fb3d0f0..f844689718c 100644 --- a/packages/shared/src/graphql/actions.ts +++ b/packages/shared/src/graphql/actions.ts @@ -68,6 +68,7 @@ export enum ActionType { AskUpsellSearch = 'ask_upsell_search', DismissCompanionDemoWidget = 'dismiss_companion_demo_widget', ClickedNewStripCta = 'click_new_strip_cta', + ClosedShortcutsBanner = 'closed_shortcuts_banner', } export const cvActions = [