diff --git a/packages/shared/src/components/MainFeedLayout.tsx b/packages/shared/src/components/MainFeedLayout.tsx index dd26b0bca49..5f7108585ff 100644 --- a/packages/shared/src/components/MainFeedLayout.tsx +++ b/packages/shared/src/components/MainFeedLayout.tsx @@ -699,12 +699,11 @@ export default function MainFeedLayout({ tab={tab} setTab={onTabChange} showBreadcrumbs={false} - showDropdown={false} className={{ container: - 'sticky top-[7.5rem] z-header w-full border-b border-border-subtlest-tertiary bg-background-default', + 'sticky top-[4.5rem] z-header w-full border-b border-border-subtlest-tertiary bg-background-default', tabBarHeader: 'no-scrollbar overflow-x-auto', - tabBarContainer: 'w-full', + tabBarContainer: 'min-w-0 flex-1', }} /> ); diff --git a/packages/shared/src/components/header/MobileExploreHeader.tsx b/packages/shared/src/components/header/MobileExploreHeader.tsx deleted file mode 100644 index f14d5e7f805..00000000000 --- a/packages/shared/src/components/header/MobileExploreHeader.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import type { ReactElement } from 'react'; -import React from 'react'; -import { OtherFeedPage } from '../../lib/query'; -import { QueryStateKeys, useQueryState } from '../../hooks/utils/useQueryState'; -import { Dropdown } from '../fields/Dropdown'; -import { CalendarIcon } from '../icons'; -import { IconSize } from '../Icon'; -import { ButtonSize } from '../buttons/common'; -import { periodTexts } from '../layout/common'; - -const withDateRange = [ - OtherFeedPage.ExploreUpvoted, - OtherFeedPage.ExploreDiscussed, -]; - -interface ExploreHeaderProps { - path: string; -} - -export function MobileExploreHeader({ - path, -}: ExploreHeaderProps): ReactElement { - const [period, setPeriod] = useQueryState({ - key: [QueryStateKeys.FeedPeriod], - defaultValue: 0, - }); - - return ( -

- Explore - {withDateRange.includes(path as OtherFeedPage) && ( - } - selectedIndex={period} - options={periodTexts} - buttonSize={ButtonSize.Medium} - onChange={(_, index) => setPeriod(index)} - /> - )} -

- ); -} diff --git a/packages/shared/src/components/layout/MainLayoutHeader.spec.tsx b/packages/shared/src/components/layout/MainLayoutHeader.spec.tsx index 412683c9d68..233aab9f9a4 100644 --- a/packages/shared/src/components/layout/MainLayoutHeader.spec.tsx +++ b/packages/shared/src/components/layout/MainLayoutHeader.spec.tsx @@ -13,9 +13,12 @@ import { useScrollTopClassName } from '../../hooks/useScrollTopClassName'; import { useFeedName } from '../../hooks/feed/useFeedName'; import useActiveNav from '../../hooks/useActiveNav'; -jest.mock('next/dynamic', () => () => { +jest.mock('next/dynamic', () => (loader: () => Promise) => { + const name = String(loader).includes('spotlightTrigger') + ? 'spotlight-trigger' + : 'dynamic-component'; return function MockDynamicComponent() { - return
; + return
; }; }); @@ -52,12 +55,6 @@ jest.mock('../../hooks/feed/useFeedName', () => ({ jest.mock('../../hooks/useActiveNav', () => jest.fn()); -jest.mock('../header/MobileExploreHeader', () => ({ - MobileExploreHeader: ({ path }: { path: string }) => ( -
{path}
- ), -})); - const mockUseSettingsContext = useSettingsContext as jest.Mock; const mockUseActiveFeedNameContext = useActiveFeedNameContext as jest.Mock; const mockUseViewSize = useViewSize as jest.Mock; @@ -115,9 +112,7 @@ describe('MainLayoutHeader', () => { expect(hydratedHeader).toBe(initialHeader); expect(hydratedHeader).toHaveClass('sticky', 'top-0'); - expect(screen.getByTestId('mobile-explore-header')).toHaveTextContent( - 'posts', - ); + expect(screen.getByTestId('spotlight-trigger')).toBeInTheDocument(); expect(recoverableErrors).toHaveLength(0); await act(async () => { diff --git a/packages/shared/src/components/layout/MainLayoutHeader.tsx b/packages/shared/src/components/layout/MainLayoutHeader.tsx index e8de3627e61..b7b13c070d4 100644 --- a/packages/shared/src/components/layout/MainLayoutHeader.tsx +++ b/packages/shared/src/components/layout/MainLayoutHeader.tsx @@ -14,7 +14,6 @@ import { useFeedName } from '../../hooks/feed/useFeedName'; import { useCustomizeNewTab } from '../../features/customizeNewTab/CustomizeNewTabContext'; import { SharedFeedPage } from '../utilities'; import FeedNav from '../feeds/FeedNav'; -import { MobileExploreHeader } from '../header/MobileExploreHeader'; import useActiveNav from '../../hooks/useActiveNav'; export interface MainLayoutHeaderProps { @@ -121,29 +120,24 @@ function MainLayoutHeader({ : undefined, }} > - {isMobileSearchPage ? ( - <> - {renderSearchPanel()} - {!isSearch && } - - ) : ( - sidebarRendered !== undefined && ( - <> -
- -
- {renderSearchPanel()} - - - ) - )} + {isMobileSearchPage + ? renderSearchPanel() + : sidebarRendered !== undefined && ( + <> +
+ +
+ {renderSearchPanel()} + + + )} ); } diff --git a/packages/shared/src/components/spotlight/SpotlightTrigger.tsx b/packages/shared/src/components/spotlight/SpotlightTrigger.tsx index 79c8b4f6e33..2cfe53595bb 100644 --- a/packages/shared/src/components/spotlight/SpotlightTrigger.tsx +++ b/packages/shared/src/components/spotlight/SpotlightTrigger.tsx @@ -1,7 +1,7 @@ import type { ReactElement } from 'react'; import React from 'react'; import classNames from 'classnames'; -import { AiIcon, SearchIcon } from '../icons'; +import { AiIcon } from '../icons'; import { IconSize } from '../Icon'; import { isAppleDevice } from '../../lib/func'; import { KeyboadShortcutLabel } from '../KeyboardShortcutLabel'; @@ -26,29 +26,12 @@ export const SpotlightTrigger = ({ const { open } = useSpotlight(); const isLaptop = useViewSize(ViewSize.Laptop); - if (!isLaptop) { - return ( - - ); - } - return (