diff --git a/nextjs/csp/generateCspPolicy.ts b/nextjs/csp/generateCspPolicy.ts index f10e576b76..92ceb81934 100644 --- a/nextjs/csp/generateCspPolicy.ts +++ b/nextjs/csp/generateCspPolicy.ts @@ -4,7 +4,6 @@ import { makePolicyString, mergeDescriptors } from './utils'; function generateCspPolicy() { const policyDescriptor = mergeDescriptors( descriptors.app(), - descriptors.ad(), descriptors.cloudFlare(), descriptors.googleAnalytics(), descriptors.googleFonts(), diff --git a/nextjs/csp/policies/ad.ts b/nextjs/csp/policies/ad.ts deleted file mode 100644 index 4b7905fdf2..0000000000 --- a/nextjs/csp/policies/ad.ts +++ /dev/null @@ -1,33 +0,0 @@ -import Base64 from 'crypto-js/enc-base64'; -import sha256 from 'crypto-js/sha256'; -import type CspDev from 'csp-dev'; - -import { connectAdbutler, placeAd } from 'ui/shared/ad/adbutlerScript'; - -export function ad(): CspDev.DirectiveDescriptor { - return { - 'connect-src': [ - 'coinzilla.com', - '*.coinzilla.com', - 'request-global.czilladx.com', - '*.slise.xyz', - ], - 'frame-src': [ - 'request-global.czilladx.com', - ], - 'script-src': [ - 'coinzillatag.com', - 'servedbyadbutler.com', - `'sha256-${ Base64.stringify(sha256(connectAdbutler)) }'`, - `'sha256-${ Base64.stringify(sha256(placeAd ?? '')) }'`, - '*.slise.xyz', - ], - 'img-src': [ - 'servedbyadbutler.com', - 'cdn.coinzilla.io', - ], - 'font-src': [ - 'request-global.czilladx.com', - ], - }; -} diff --git a/nextjs/csp/policies/index.ts b/nextjs/csp/policies/index.ts index 35528c3efa..6054f105d3 100644 --- a/nextjs/csp/policies/index.ts +++ b/nextjs/csp/policies/index.ts @@ -1,4 +1,3 @@ -export { ad } from './ad'; export { app } from './app'; export { cloudFlare } from './cloudFlare'; export { googleAnalytics } from './googleAnalytics'; diff --git a/ui/address/AddressDetails.tsx b/ui/address/AddressDetails.tsx index a95b1ea55b..d02e827011 100644 --- a/ui/address/AddressDetails.tsx +++ b/ui/address/AddressDetails.tsx @@ -13,7 +13,6 @@ import AddressCounterItem from 'ui/address/details/AddressCounterItem'; import AddressHeadingInfo from 'ui/shared/AddressHeadingInfo'; import DataFetchAlert from 'ui/shared/DataFetchAlert'; import DetailsInfoItem from 'ui/shared/DetailsInfoItem'; -import DetailsSponsoredItem from 'ui/shared/DetailsSponsoredItem'; import AddressEntity from 'ui/shared/entities/address/AddressEntity'; import BlockEntity from 'ui/shared/entities/block/BlockEntity'; import TxEntity from 'ui/shared/entities/tx/TxEntity'; @@ -213,7 +212,6 @@ const AddressDetails = ({ addressQuery, scrollRef }: Props) => { /> ) } - ); diff --git a/ui/pages/Address.tsx b/ui/pages/Address.tsx index 4155dd8a2d..59f284dc26 100644 --- a/ui/pages/Address.tsx +++ b/ui/pages/Address.tsx @@ -23,7 +23,6 @@ import AddressTokens from 'ui/address/AddressTokens'; import AddressTokenTransfers from 'ui/address/AddressTokenTransfers'; import AddressTxs from 'ui/address/AddressTxs'; import AddressWithdrawals from 'ui/address/AddressWithdrawals'; -import TextAd from 'ui/shared/ad/TextAd'; import EntityTags from 'ui/shared/EntityTags'; import NetworkExplorers from 'ui/shared/NetworkExplorers'; import PageTitle from 'ui/shared/Page/PageTitle'; @@ -171,7 +170,6 @@ const AddressPageContent = () => { return ( <> - { return ( <> - { - diff --git a/ui/pages/Token.tsx b/ui/pages/Token.tsx index 5502296d4a..c4ca1ce73d 100644 --- a/ui/pages/Token.tsx +++ b/ui/pages/Token.tsx @@ -23,7 +23,6 @@ import * as addressStubs from 'stubs/address'; import * as tokenStubs from 'stubs/token'; import { generateListStub } from 'stubs/utils'; import AddressContract from 'ui/address/AddressContract'; -import TextAd from 'ui/shared/ad/TextAd'; import * as TokenEntity from 'ui/shared/entities/token/TokenEntity'; import EntityTags from 'ui/shared/EntityTags'; import NetworkExplorers from 'ui/shared/NetworkExplorers'; @@ -265,7 +264,6 @@ const TokenPageContent = () => { return ( <> - { return ( <> - { return ( <> - { - const isMobile = useIsMobile(); - const hasAdblockCookie = cookies.get(cookies.NAMES.ADBLOCK_DETECTED); - - if (!feature.isEnabled || hasAdblockCookie) { - return null; - } - - if (isMobile) { - return ( - - - - ); - } - - return ( - - - - ); -}; - -export default React.memo(DetailsSponsoredItem); diff --git a/ui/shared/Page/PageTitle.tsx b/ui/shared/Page/PageTitle.tsx index 9d1879a6c5..caab1b0c10 100644 --- a/ui/shared/Page/PageTitle.tsx +++ b/ui/shared/Page/PageTitle.tsx @@ -4,7 +4,6 @@ import React from 'react'; import eastArrowIcon from 'icons/arrows/east.svg'; import useIsMobile from 'lib/hooks/useIsMobile'; -import TextAd from 'ui/shared/ad/TextAd'; import LinkInternal from 'ui/shared/LinkInternal'; type BackLinkProp = { label: string; url: string } | { label: string; onClick: () => void }; @@ -52,6 +51,7 @@ const BackLink = (props: BackLinkProp & { isLoading?: boolean }) => { ); }; +// eslint-disable-next-line @typescript-eslint/no-unused-vars const PageTitle = ({ title, contentAfter, withTextAd, backLink, className, isLoading, afterTitle, beforeTitle }: Props) => { const tooltip = useDisclosure(); const isMobile = useIsMobile(); @@ -140,7 +140,6 @@ const PageTitle = ({ title, contentAfter, withTextAd, backLink, className, isLoa { afterTitle } { contentAfter } - { withTextAd && } ); }; diff --git a/ui/shared/ad/AdBanner.tsx b/ui/shared/ad/AdBanner.tsx deleted file mode 100644 index dd948cdb77..0000000000 --- a/ui/shared/ad/AdBanner.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import { chakra, Skeleton } from '@chakra-ui/react'; -import React from 'react'; - -import config from 'configs/app'; -import { useAppContext } from 'lib/contexts/app'; -import * as cookies from 'lib/cookies'; - -import AdbutlerBanner from './AdbutlerBanner'; -import CoinzillaBanner from './CoinzillaBanner'; -import SliseBanner from './SliseBanner'; - -const feature = config.features.adsBanner; - -const AdBanner = ({ className, isLoading }: { className?: string; isLoading?: boolean }) => { - const hasAdblockCookie = cookies.get(cookies.NAMES.ADBLOCK_DETECTED, useAppContext().cookies); - - if (!feature.isEnabled || hasAdblockCookie) { - return null; - } - - const content = (() => { - switch (feature.provider) { - case 'adbutler': - return ; - case 'coinzilla': - return ; - case 'slise': - return ; - } - })(); - - return ( - - { content } - - ); -}; - -export default chakra(AdBanner); diff --git a/ui/shared/ad/AdbutlerBanner.tsx b/ui/shared/ad/AdbutlerBanner.tsx deleted file mode 100644 index 88df6961e8..0000000000 --- a/ui/shared/ad/AdbutlerBanner.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import { Flex, chakra } from '@chakra-ui/react'; -import { useRouter } from 'next/navigation'; -import Script from 'next/script'; -import React from 'react'; - -import config from 'configs/app'; -import useIsMobile from 'lib/hooks/useIsMobile'; -import isBrowser from 'lib/isBrowser'; -import { connectAdbutler, placeAd, ADBUTLER_ACCOUNT } from 'ui/shared/ad/adbutlerScript'; - -const feature = config.features.adsBanner; - -const AdbutlerBanner = ({ className }: { className?: string }) => { - const router = useRouter(); - const isMobile = useIsMobile(); - React.useEffect(() => { - if (!feature.isEnabled || feature.provider !== 'adbutler') { - return; - } - - if (isBrowser() && window.AdButler) { - const abkw = window.abkw || ''; - if (!window.AdButler.ads) { - window.AdButler.ads = []; - } - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: - let plc = window[`plc${ feature.adButler.config.mobile.id }`] || 0; - const adButlerConfig = isMobile ? feature.adButler.config.mobile : feature.adButler.config.desktop; - const banner = document.getElementById('ad-banner'); - if (banner) { - banner.innerHTML = '<' + 'div id="placement_' + adButlerConfig?.id + '_' + plc + '">'; - } - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: - window.AdButler.ads.push({ handler: function(opt) { - window.AdButler.register( - ADBUTLER_ACCOUNT, - adButlerConfig.id, - [ adButlerConfig.width, adButlerConfig.height ], - `placement_${ adButlerConfig.id }_` + opt.place, - opt, - ); - }, opt: { place: plc++, keywords: abkw, domain: 'servedbyadbutler.com', click: 'CLICK_MACRO_PLACEHOLDER' } }); - } - }, [ router, isMobile ]); - - return ( - - - -
-
- ); -}; - -export default chakra(AdbutlerBanner); diff --git a/ui/shared/ad/CoinzillaBanner.tsx b/ui/shared/ad/CoinzillaBanner.tsx deleted file mode 100644 index 2d979bf699..0000000000 --- a/ui/shared/ad/CoinzillaBanner.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { Flex, chakra } from '@chakra-ui/react'; -import Script from 'next/script'; -import React from 'react'; - -import isBrowser from 'lib/isBrowser'; - -const CoinzillaBanner = ({ className }: { className?: string }) => { - const isInBrowser = isBrowser(); - - React.useEffect(() => { - if (isInBrowser) { - window.coinzilla_display = window.coinzilla_display || []; - const cDisplayPreferences = { - zone: '26660bf627543e46851', - width: '728', - height: '90', - }; - window.coinzilla_display.push(cDisplayPreferences); - } - }, [ isInBrowser ]); - - return ( - -