MCPcopy Create free account
hub / github.com/dailydotdev/apps / usePlusEntry

Function usePlusEntry

packages/shared/src/hooks/usePlusEntry.ts:9–41  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

7import { useViewSize, ViewSize } from './useViewSize';
8
9const usePlusEntry = (): {
10 plusEntryFeed: MarketingCta | null;
11 plusEntryBookmark: MarketingCta | null;
12 plusEntryForYou: MarketingCta | null;
13 plusEntryAnnouncementBar: MarketingCta | null;
14} => {
15 const { getPlusEntryData } = useBoot();
16 const plusEntry = getPlusEntryData();
17 const isMobile = useViewSize(ViewSize.MobileXL);
18 const shouldEvaluate = isMobile && !!plusEntry;
19 const { value: plusEntryExp } = useConditionalFeature({
20 feature: featurePlusEntryMobile,
21 shouldEvaluate,
22 });
23 const shouldShow = shouldEvaluate && plusEntryExp;
24
25 return useMemo(() => {
26 const getVariantEntry = (
27 variant: MarketingCtaVariant,
28 ): MarketingCta | null => {
29 return shouldShow && plusEntry?.variant === variant ? plusEntry : null;
30 };
31
32 return {
33 plusEntryFeed: getVariantEntry(MarketingCtaVariant.PlusCard),
34 plusEntryBookmark: getVariantEntry(MarketingCtaVariant.PlusBookmarkTab),
35 plusEntryForYou: getVariantEntry(MarketingCtaVariant.PlusForYouTab),
36 plusEntryAnnouncementBar: getVariantEntry(
37 MarketingCtaVariant.PlusAnnouncementBar,
38 ),
39 };
40 }, [shouldShow, plusEntry]);
41};
42
43export default usePlusEntry;

Callers 4

MainLayoutComponentFunction · 0.85
BookmarkFeedLayoutFunction · 0.85
FeedFunction · 0.85
FeedNavFunction · 0.85

Calls 5

useBootFunction · 0.90
useViewSizeFunction · 0.90
useConditionalFeatureFunction · 0.90
getPlusEntryDataFunction · 0.85
getVariantEntryFunction · 0.85

Tested by

no test coverage detected