Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
0e422f7
feat: introduce dual desktop sidebar
tsahimatsliah May 11, 2026
741e26b
refactor(sidebar): polish dual sidebar, drop nested boxes
tsahimatsliah May 11, 2026
e9b0d72
refactor(sidebar): swap surface tones, surface profile identity
tsahimatsliah May 11, 2026
3fc335e
fix(sidebar): restore layout behavior after color swap
tsahimatsliah May 11, 2026
f864b91
fix(sidebar): restore exact layout and swap only container colors
tsahimatsliah May 11, 2026
27a69f7
fix(sidebar): complete color swap by recoloring active rail state
tsahimatsliah May 11, 2026
82d5fb9
style(sidebar): unify sidebar and feed bg on primary background
tsahimatsliah May 11, 2026
b3bd362
style(sidebar): set sidebar surface to surface-float for contrast
tsahimatsliah May 11, 2026
0dd9b97
style(sidebar): polish dual sidebar layout
tsahimatsliah May 12, 2026
41c9ab8
feat(sidebar): dedicated settings and game center panels
tsahimatsliah May 12, 2026
976247f
feat(sidebar): add dedicated Discover rail panel
tsahimatsliah May 12, 2026
8b9bef1
feat(sidebar): add profile rail shortcut
tsahimatsliah May 12, 2026
cc19653
feat(sidebar): track recently visited feeds in Home panel
tsahimatsliah May 12, 2026
6d22c70
fix(feed): style cards-layout actions strip as a header
tsahimatsliah May 12, 2026
db33029
refactor(sidebar): unify utility panel header
tsahimatsliah May 12, 2026
5d27887
style(sidebar): place profile rail link below Game Center
tsahimatsliah May 12, 2026
8ceec0a
fix(settings): persist client-only sidebar flags locally
tsahimatsliah May 12, 2026
6e911b9
refactor(profile-menu): move profile entries into sidebar Profile panel
tsahimatsliah May 12, 2026
4f0d3a7
style(feed): tighten list-frame header and search controls
tsahimatsliah May 12, 2026
f8a6098
fix(sidebar): resolve CI lint, build, and test failures
tsahimatsliah May 12, 2026
28c4a69
chore: re-trigger CI
tsahimatsliah May 12, 2026
404228b
feat(sidebar): polish dual-sidebar UX
tsahimatsliah May 12, 2026
e2754f7
style(sidebar): match rail hover panel to support dropdown
tsahimatsliah May 12, 2026
2526de6
style(sidebar): tighten rail hover panel to match Support dropdown
tsahimatsliah May 12, 2026
fb20955
feat(sidebar): rail icon click navigates to category landing page
tsahimatsliah May 12, 2026
1424a13
style(sidebar): match rail hover panel rows to Support exactly
tsahimatsliah May 12, 2026
a5c3722
fix(sidebar): squads rail click is instant + first item highlights
tsahimatsliah May 12, 2026
dd5907c
feat(layout): unify page header strip across feed pages
tsahimatsliah May 13, 2026
6032002
feat(sidebar): WIP profile stats, recent pages, and rail polish
tsahimatsliah May 13, 2026
acbab32
feat(layout): extend PageHeader to more sidebar destinations
tsahimatsliah May 13, 2026
514e441
fix(sidebar): daily.dev logo + snug tooltips on the rail top
tsahimatsliah May 13, 2026
558150a
feat(layout): finish PageHeader rollout and stabilize settings header
tsahimatsliah May 13, 2026
cde9cfd
feat(sidebar): animated collapse toggle slides between rail and panel
tsahimatsliah May 13, 2026
042586e
fix(settings): page header reflects current page + notifications tabs
tsahimatsliah May 13, 2026
15d93f9
fix(shared): unblock CI for staging deploy
tsahimatsliah May 13, 2026
3becd25
feat(extension): logged-out parity, top hero cards, profile widget po…
tsahimatsliah May 14, 2026
f08b007
feat(sidebar): right-align achievements + tighten stats strip
tsahimatsliah May 14, 2026
57648b9
feat(sidebar): refine profile widget hover, alignment, and streak pop…
tsahimatsliah May 14, 2026
f05cecf
fix(sidebar): rebalance profile widget vertical rhythm
tsahimatsliah May 14, 2026
624b41a
fix(sidebar): scope hover underline to display name and bump stats→Ne…
tsahimatsliah May 14, 2026
7745791
chore(settings): remove duplicate Hot Takes entry from Gamification
tsahimatsliah May 14, 2026
cf8af4b
fix(ci): resolve lint, strict, and test regressions on dual-sidebar b…
tsahimatsliah May 14, 2026
5e50d9f
fix(sidebar): keep streak popup below button instead of overlapping
tsahimatsliah May 14, 2026
4feebdc
chore(extension): add mockup panel to force-show top banners and sign…
tsahimatsliah May 28, 2026
2be543a
chore(mockup): move panel + banners to shared and mount on webapp feed
tsahimatsliah May 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions packages/extension/src/newtab/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ import { ExtensionContextProvider } from '../contexts/ExtensionContext';
import CustomRouter from '../lib/CustomRouter';
import { version } from '../../package.json';
import MainFeedPage from './MainFeedPage';
import HijackingLoginStrip from './HijackingLoginStrip';
import { BootDataProvider } from '../../../shared/src/contexts/BootProvider';
import { getContentScriptPermissionAndRegister } from '../lib/extensionScripts';
import { useContentScriptStatus } from '../../../shared/src/hooks';
Expand Down Expand Up @@ -67,7 +66,7 @@ const feedErrorFallback: ReactElement = (
</div>
);

function HijackingPage({
function OnboardingHijackPage({
onPageChanged,
}: {
onPageChanged: (page: string) => void;
Expand All @@ -87,7 +86,6 @@ function HijackingPage({
onPageChanged={onPageChanged}
initialPage="/"
shouldInitializeCurrentPage={false}
shortcuts={<HijackingLoginStrip />}
/>
);
}
Expand All @@ -108,8 +106,12 @@ function InternalApp(): ReactElement {
const { growthbook } = useGrowthBookContext();
const isPageReady =
(growthbook?.ready && router?.isReady && isAuthReady) || isTesting;
// Logged-out users now stay on the regular MainFeedPage (with the
// sticky sign-in strip up top + the public Popular feed). Only users
// who have signed up but haven't finished onboarding still get the
// onboarding hijack so we keep nudging them through the flow.
const shouldRedirectOnboarding =
isPageReady && (!user || !isOnboardingComplete) && !isTesting;
isPageReady && !!user && !isOnboardingComplete && !isTesting;

useCheckLocation();
useCheckCoresRole();
Expand Down Expand Up @@ -150,7 +152,7 @@ function InternalApp(): ReactElement {
return (
<ErrorBoundary feature="extension-feed" fallback={feedErrorFallback}>
<DndContextProvider>
<HijackingPage onPageChanged={onPageChanged} />
<OnboardingHijackPage onPageChanged={onPageChanged} />
</DndContextProvider>
</ErrorBoundary>
);
Expand Down
131 changes: 0 additions & 131 deletions packages/extension/src/newtab/HijackingLoginStrip.spec.tsx

This file was deleted.

95 changes: 0 additions & 95 deletions packages/extension/src/newtab/HijackingLoginStrip.tsx

This file was deleted.

27 changes: 15 additions & 12 deletions packages/extension/src/newtab/MainFeedPage.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { ReactElement, ReactNode } from 'react';
import type { ReactElement } from 'react';
import React, {
useCallback,
useContext,
Expand All @@ -18,7 +18,6 @@ import { useSettingsContext } from '@dailydotdev/shared/src/contexts/SettingsCon
import { SearchProviderEnum } from '@dailydotdev/shared/src/graphql/search';
import { LogEvent } from '@dailydotdev/shared/src/lib/log';
import { useLogContext } from '@dailydotdev/shared/src/contexts/LogContext';
import { useFeedLayout } from '@dailydotdev/shared/src/hooks';
import { useDndContext } from '@dailydotdev/shared/src/contexts/DndContext';
import { FeedLayoutProvider } from '@dailydotdev/shared/src/contexts/FeedContext';
import useCustomDefaultFeed from '@dailydotdev/shared/src/hooks/feed/useCustomDefaultFeed';
Expand All @@ -30,6 +29,9 @@ import { CustomizeNewTabSidebar } from '@dailydotdev/shared/src/features/customi
import { isFocusActiveAt } from '@dailydotdev/shared/src/features/customizeNewTab/lib/focusSchedule';
import { normaliseNewTabMode } from '@dailydotdev/shared/src/features/customizeNewTab/lib/newTabMode';
import { DndBanner } from '@dailydotdev/shared/src/components/DndBanner';
import { ExtensionTopBanners } from '@dailydotdev/shared/src/features/extensionMockupPreview/ExtensionTopBanners';
import { ExtensionSignInStrip } from '@dailydotdev/shared/src/features/extensionMockupPreview/ExtensionSignInStrip';
import { ExtensionMockupPanel } from '@dailydotdev/shared/src/features/extensionMockupPreview/ExtensionMockupPanel';
import ShortcutLinks from './ShortcutLinks/ShortcutLinks';
import { CompanionPopupButton } from '../companion/CompanionPopupButton';
import { useCompanionSettings } from '../companion/useCompanionSettings';
Expand All @@ -50,7 +52,6 @@ export type MainFeedPageProps = {
onPageChanged: (page: string) => unknown;
initialPage?: string;
shouldInitializeCurrentPage?: boolean;
shortcuts?: ReactNode;
};

const normalizePage = (page: string): string =>
Expand Down Expand Up @@ -100,7 +101,6 @@ const MainFeedPageInner = ({
onPageChanged,
initialPage,
shouldInitializeCurrentPage = true,
shortcuts,
}: MainFeedPageProps): ReactElement => {
const { logEvent } = useLogContext();
const [isSearchOn, setIsSearchOn] = useState(false);
Expand All @@ -109,7 +109,6 @@ const MainFeedPageInner = ({
getInitialFeedName(initialPage),
);
const [searchQuery, setSearchQuery] = useState<string>();
const { shouldUseListFeedLayout } = useFeedLayout({ feedRelated: false });
useCompanionSettings();
const { isActive: isDndActive, showDnd, setShowDnd } = useDndContext();
const { isCustomDefaultFeed } = useCustomDefaultFeed();
Expand Down Expand Up @@ -176,6 +175,7 @@ const MainFeedPageInner = ({
// visual signal that customizer changes affect THEIR feed, not just
// a panel-shaped overlay.
const { panelWidth } = useCustomizeNewTab();
const shortcutLinks = <ShortcutLinks shouldUseListFeedLayout={false} />;

return (
<>
Expand All @@ -195,6 +195,15 @@ const MainFeedPageInner = ({
onNavTabClick={onNavTabClick}
screenCentered={false}
customBanner={isDndActive && <DndBanner />}
topBanner={
<>
<ExtensionSignInStrip />
<div className="mx-4 flex justify-center pt-2 laptop:mx-0 [&:empty]:hidden">
{shortcutLinks}
</div>
<ExtensionTopBanners />
</>
}
additionalButtons={
!loadingUser && !optOutCompanion && <CompanionPopupButton />
}
Expand Down Expand Up @@ -224,19 +233,13 @@ const MainFeedPageInner = ({
}}
/>
}
shortcuts={
shortcuts ?? (
<ShortcutLinks
shouldUseListFeedLayout={shouldUseListFeedLayout}
/>
)
}
/>
</FeedLayoutProvider>
<DndModal isOpen={showDnd} onRequestClose={() => setShowDnd(false)} />
</MainLayout>
</div>
<CustomizeNewTabSidebar />
<ExtensionMockupPanel />
</>
);
};
Expand Down
Loading
Loading