Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
80ca725
feat: weekly tech-news quiz (arcade leaderboard game)
tomeredlich Jul 29, 2026
68ea965
feat(weekly-quiz): add ?weekly-quiz-demo preview mode
tomeredlich Jul 29, 2026
901741b
feat(weekly-quiz): standalone /weekly-quiz-preview page
tomeredlich Jul 29, 2026
cdad147
fix(weekly-quiz): fill modal width so panels don't squeeze
tomeredlich Jul 29, 2026
44b3a37
fix(weekly-quiz): narrow modal to 52rem to match approved size
tomeredlich Jul 29, 2026
435bc9f
fix(weekly-quiz): strip Modal default background so surface isn't fra…
tomeredlich Jul 29, 2026
f533059
fix(weekly-quiz): always show logged-in player's own rank on the intr…
tomeredlich Jul 29, 2026
4abaa5b
feat(weekly-quiz): re-skin surface to daily.dev purple
tomeredlich Jul 29, 2026
330d91f
feat(weekly-quiz): show week date-range and source/story counts on intro
tomeredlich Jul 29, 2026
a4ff62a
feat(weekly-quiz): accessibility pass on the scoreboard
tomeredlich Jul 29, 2026
fb42913
feat(weekly-quiz): show top sources on the intro
tomeredlich Jul 29, 2026
80d095c
feat(weekly-quiz): redesign share image and add 'challenge your team'…
tomeredlich Jul 29, 2026
57ff4b7
feat(weekly-quiz): new dog-mascot logo, source logos, purple/orange S…
tomeredlich Jul 29, 2026
264767f
feat(weekly-quiz): use real daily.dev source logos, keep +N inline
tomeredlich Jul 29, 2026
8c78c70
feat(weekly-quiz): make results screen achievement-focused
tomeredlich Jul 29, 2026
4ea4651
chore(weekly-quiz): populate demo leaderboard with real public users
tomeredlich Jul 29, 2026
35d6b16
feat(weekly-quiz): enlarge intro logo (w-56 -> w-72)
tomeredlich Jul 29, 2026
fc02369
feat(weekly-quiz): move Start button above the date/context on the intro
tomeredlich Jul 29, 2026
5371e0a
feat(weekly-quiz): horizontal pressable social buttons + fix leaderbo…
tomeredlich Jul 29, 2026
85b4589
feat(weekly-quiz): stack intro social buttons vertically, full-width
tomeredlich Jul 29, 2026
d31d2f2
feat(weekly-quiz): 50-user demo board, period aggregation, scroll to #50
tomeredlich Jul 29, 2026
1ae5c08
feat(weekly-quiz): rework results screen + flatten leaderboard chrome
tomeredlich Jul 29, 2026
27a7a2b
feat(weekly-quiz): make results 'Share your result' button green
tomeredlich Jul 29, 2026
a0065d8
fix(weekly-quiz): fill leaderboard height + top-align preview modal
tomeredlich Jul 29, 2026
4754291
style(weekly-quiz): bump intro social button text to match leaderboar…
tomeredlich Jul 29, 2026
6b67fb0
fix(weekly-quiz): fix share image layout for the square mascot logo
tomeredlich Jul 29, 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
2 changes: 2 additions & 0 deletions packages/shared/src/components/MainFeedLayout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import { useFeeds } from '../hooks/feed/useFeeds';
import { WebappShortcutsRow } from '../features/shortcuts/components/WebappShortcutsRow';
import { LiveStandupsStrip } from './liveRooms/LiveStandupsStrip';
import { AskSearchBanner } from './marketing/banners/AskSearchBanner';
import { WeeklyQuizBanner } from '../features/weeklyQuiz/components/WeeklyQuizBanner';
import { FeedEngagementBanner } from './brand/FeedEngagementBanner';
import FeedContext from '../contexts/FeedContext';
import feedStyles from './Feed.module.css';
Expand Down Expand Up @@ -803,6 +804,7 @@ export default function MainFeedLayout({
>
<FeedEngagementBanner className="mb-3" />
</div>
{isHomePage && <WeeklyQuizBanner className="mx-4 mb-4 laptop:mx-0" />}
{isHomePage && (
<LiveStandupsStrip className="mx-0 mb-3 tablet:mx-2 laptop:mx-0" />
)}
Expand Down
7 changes: 7 additions & 0 deletions packages/shared/src/components/icons/Swords/filled.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions packages/shared/src/components/icons/Swords/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import type { ReactElement } from 'react';
import React from 'react';
import type { IconProps } from '../../Icon';
import Icon from '../../Icon';
import OutlinedIcon from './outlined.svg';
import FilledIcon from './filled.svg';

export const SwordsIcon = (props: IconProps): ReactElement => (
<Icon {...props} IconPrimary={OutlinedIcon} IconSecondary={FilledIcon} />
);
7 changes: 7 additions & 0 deletions packages/shared/src/components/icons/Swords/outlined.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 7 additions & 0 deletions packages/shared/src/components/icons/VolumeLow/filled.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions packages/shared/src/components/icons/VolumeLow/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import type { ReactElement } from 'react';
import React from 'react';
import type { IconProps } from '../../Icon';
import Icon from '../../Icon';
import OutlinedIcon from './outlined.svg';
import FilledIcon from './filled.svg';

export const VolumeLowIcon = (props: IconProps): ReactElement => (
<Icon {...props} IconPrimary={OutlinedIcon} IconSecondary={FilledIcon} />
);
7 changes: 7 additions & 0 deletions packages/shared/src/components/icons/VolumeLow/outlined.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions packages/shared/src/components/icons/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,9 @@ export * from './Upvote';
export * from './User';
export * from './UserShare';
export * from './V';
export * from './Swords';
export * from './Volume';
export * from './VolumeLow';
export * from './VolumeOff';
export * from './Warning';
export * from './Whatsapp';
Expand Down
8 changes: 8 additions & 0 deletions packages/shared/src/components/modals/common.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -526,6 +526,13 @@ const PostImpressionsModal = dynamic(
),
);

const WeeklyQuizModal = dynamic(
() =>
import(
/* webpackChunkName: "weeklyQuizModal" */ '../../features/weeklyQuiz/components/WeeklyQuizModal'
),
);

export const modals = {
[LazyModal.SquadMember]: SquadMemberModal,
[LazyModal.UpvotedPopup]: UpvotedPopupModal,
Expand Down Expand Up @@ -611,6 +618,7 @@ export const modals = {
[LazyModal.ReaderExtensionInstall]: ReaderExtensionInstallModal,
[LazyModal.ReaderPreview]: ReaderPreviewLazyModal,
[LazyModal.PostImpressions]: PostImpressionsModal,
[LazyModal.WeeklyQuiz]: WeeklyQuizModal,
};

type GetComponentProps<T> = T extends
Expand Down
1 change: 1 addition & 0 deletions packages/shared/src/components/modals/common/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ export enum LazyModal {
ReaderExtensionInstall = 'readerExtensionInstall',
ReaderPreview = 'readerPreview',
PostImpressions = 'postImpressions',
WeeklyQuiz = 'weeklyQuiz',
}

export type ModalTabItem = {
Expand Down
Loading
Loading