From 57fa29cc6e79fc161ad0e8bdd7540900a9b9ef42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Sat, 15 Jun 2024 13:24:53 -0500 Subject: [PATCH] feat: cleaner exempt --- .../[id]/components/Characteristics/index.tsx | 22 +++--- .../Model/CharacteristicsSection.tsx | 72 ++++++++++--------- src/app/tools/tankopedia/[id]/page.tsx | 10 +-- src/app/tools/tankopedia/page.tsx | 14 ++-- src/components/Ad.tsx | 4 -- src/hooks/useAdExempt.ts | 2 + 6 files changed, 69 insertions(+), 55 deletions(-) diff --git a/src/app/tools/tankopedia/[id]/components/Characteristics/index.tsx b/src/app/tools/tankopedia/[id]/components/Characteristics/index.tsx index e0898aefe..be696b587 100644 --- a/src/app/tools/tankopedia/[id]/components/Characteristics/index.tsx +++ b/src/app/tools/tankopedia/[id]/components/Characteristics/index.tsx @@ -26,6 +26,7 @@ import { CREW_MEMBER_NAMES, GUN_TYPE_NAMES, } from '../../../../../../core/blitzkit/tankDefinitions/constants'; +import { useAdExempt } from '../../../../../../hooks/useAdExempt'; import { useEquipment } from '../../../../../../hooks/useEquipment'; import { mutateDuel, useDuel } from '../../../../../../stores/duel'; import { useTankopediaTemporary } from '../../../../../../stores/tankopedia'; @@ -33,6 +34,7 @@ import { Info } from './components/Info'; import { InfoWithDelta } from './components/InfoWithDelta'; export function Characteristics() { + const exempt = useAdExempt(); const awaitedEquipmentDefinitions = use(equipmentDefinitions); const awaitedModelDefinitions = use(modelDefinitions); const awaitedProvisionDefinitions = use(provisionDefinitions); @@ -485,15 +487,17 @@ export function Characteristics() { - - - + {!exempt && ( + + + + )} diff --git a/src/app/tools/tankopedia/[id]/components/Model/CharacteristicsSection.tsx b/src/app/tools/tankopedia/[id]/components/Model/CharacteristicsSection.tsx index baa78d9bf..ac49fd42b 100644 --- a/src/app/tools/tankopedia/[id]/components/Model/CharacteristicsSection.tsx +++ b/src/app/tools/tankopedia/[id]/components/Model/CharacteristicsSection.tsx @@ -1,5 +1,6 @@ import { Flex, Heading } from '@radix-ui/themes'; import { Ad, AdType } from '../../../../../../components/Ad'; +import { useAdExempt } from '../../../../../../hooks/useAdExempt'; import { Characteristics } from '../Characteristics'; import { Consumables } from '../Characteristics/components/Consumables'; import { Equipment } from '../Characteristics/components/Equipment'; @@ -9,8 +10,11 @@ import { Provisions } from '../Characteristics/components/Provisions'; import { Skills } from '../Characteristics/components/Skills'; export function CharacteristicsSection() { + const exempt = useAdExempt(); + return ( - - - - + {!exempt && ( + + + + + )} - - - - + {!exempt && ( + + + + + )} ); } diff --git a/src/app/tools/tankopedia/[id]/page.tsx b/src/app/tools/tankopedia/[id]/page.tsx index b2e50731e..d1b2a9191 100644 --- a/src/app/tools/tankopedia/[id]/page.tsx +++ b/src/app/tools/tankopedia/[id]/page.tsx @@ -2,9 +2,9 @@ import { useEffect } from 'react'; import { AdMidSectionResponsive } from '../../../../components/AdMidSectionResponsive'; -import { AdMidSectionWideOnly } from '../../../../components/AdMidSectionWideOnly'; import PageWrapper from '../../../../components/PageWrapper'; import { assignDuelMember } from '../../../../core/blitzkit/assignDuelMember'; +import { useAdExempt } from '../../../../hooks/useAdExempt'; import { mutateDuel, useDuel } from '../../../../stores/duel'; import { mutateTankopediaTemporary } from '../../../../stores/tankopedia'; import { HistorySection } from './components/HistorySection'; @@ -16,6 +16,7 @@ import { VideoSection } from './components/VideoSection'; export default function Page({ params }: { params: { id: string } }) { const initialId = parseInt(params.id); const assigned = useDuel((state) => state.assigned); + const exempt = useAdExempt(); useEffect(() => { assignDuelMember('both', initialId); @@ -76,14 +77,13 @@ export default function Page({ params }: { params: { id: string } }) { {assigned && ( <> - + {!exempt && } - + {!exempt && } - + {!exempt && } - {/* */} )} diff --git a/src/app/tools/tankopedia/page.tsx b/src/app/tools/tankopedia/page.tsx index 31d7bd068..99d25801b 100644 --- a/src/app/tools/tankopedia/page.tsx +++ b/src/app/tools/tankopedia/page.tsx @@ -5,10 +5,12 @@ import { times } from 'lodash'; import { useRouter } from 'next/navigation'; import { Ad, AdType } from '../../../components/Ad'; import PageWrapper from '../../../components/PageWrapper'; +import { useAdExempt } from '../../../hooks/useAdExempt'; import { TankSearch } from './components/TankSearch'; export default function Page() { const router = useRouter(); + const exempt = useAdExempt(); return ( @@ -18,11 +20,13 @@ export default function Page() { }} /> - - {times(2, (index) => ( - - ))} - + {!exempt && ( + + {times(2, (index) => ( + + ))} + + )} ); } diff --git a/src/components/Ad.tsx b/src/components/Ad.tsx index e6893d264..529fdbf64 100644 --- a/src/components/Ad.tsx +++ b/src/components/Ad.tsx @@ -5,7 +5,6 @@ import { uniqueId } from 'lodash'; import { useEffect, useRef } from 'react'; import { Vector2Tuple } from 'three'; import { imgur } from '../core/blitzkit/imgur'; -import { useAdExempt } from '../hooks/useAdExempt'; export enum AdType { MediumRectangleHorizontalPurple = 738182777, @@ -28,9 +27,6 @@ type AdProps = BoxProps & { export function Ad({ type, style, ...props }: AdProps) { const id = useRef(uniqueId()); const dimensions = AD_DIMENSIONS[type]; - const exempt = useAdExempt(); - - if (exempt) return null; useEffect(() => { (window as any).msAdsQueue.push(function () { diff --git a/src/hooks/useAdExempt.ts b/src/hooks/useAdExempt.ts index 1aae3da9a..77617de48 100644 --- a/src/hooks/useAdExempt.ts +++ b/src/hooks/useAdExempt.ts @@ -2,6 +2,8 @@ import { use } from 'react'; import { useApp } from '../stores/app'; export function useAdExempt() { + return true; + const patreon = useApp((state) => state.logins.patreon); if (!patreon) return false;