diff --git a/src/app/components/ATIAnalytics/canonical/sendBeaconTranscript.tsx b/src/app/components/ATIAnalytics/canonical/sendBeaconTranscript.tsx new file mode 100644 index 00000000000..a66cab9ae00 --- /dev/null +++ b/src/app/components/ATIAnalytics/canonical/sendBeaconTranscript.tsx @@ -0,0 +1,47 @@ +import React, { useEffect, useState } from 'react'; +import { getEnvConfig } from '#app/lib/utilities/getEnvConfig'; +import isOperaProxy from '#app/lib/utilities/isOperaProxy'; +import sendBeacon from '../../../lib/analyticsUtils/sendBeacon'; +import { ATIAnalyticsProps } from '../types'; + +// some other metric? +const getNoJsATIPageViewUrl = (atiPageViewUrl: string) => + atiPageViewUrl.includes('x8=[simorgh]') + ? atiPageViewUrl.replace('x8=[simorgh]', 'x8=[simorgh-nojs]') + : `${atiPageViewUrl}&x8=[BLAH]`; + +const renderNoScriptTrackingPixel = (atiPageViewUrl: string) => { + return ( + + ); +}; + +const MyAnalytics = ({ pageviewParams }: ATIAnalyticsProps) => { + const atiPageViewUrlString = + getEnvConfig().SIMORGH_ATI_BASE_URL + pageviewParams; + + console.log('atiPageViewUrlString', atiPageViewUrlString); + + const [atiPageViewUrl] = useState(atiPageViewUrlString); + + console.log('atiPageViewUrl', atiPageViewUrl); + + useEffect(() => { + if (!isOperaProxy()) sendBeacon(atiPageViewUrl); + }, [atiPageViewUrl]); + + return <>{renderNoScriptTrackingPixel(atiPageViewUrl)}; +}; + +export default MyAnalytics; diff --git a/src/app/components/ATIAnalytics/myAnalytics.tsx b/src/app/components/ATIAnalytics/myAnalytics.tsx new file mode 100644 index 00000000000..4d94f1f9353 --- /dev/null +++ b/src/app/components/ATIAnalytics/myAnalytics.tsx @@ -0,0 +1,22 @@ +import React, { useContext } from 'react'; +import { RequestContext } from '#contexts/RequestContext'; +import { ServiceContext } from '../../contexts/ServiceContext'; +import MyAnalytics from './canonical/sendBeaconTranscript'; +import { ATIProps } from './types'; +import buildATIUrl from './params'; + +const ATIAnalyticsTranscript = ({ data, atiData }: ATIProps) => { + const requestContext = useContext(RequestContext); + const serviceContext = useContext(ServiceContext); + + const pageviewParams = buildATIUrl({ + requestContext, + serviceContext, + data, + atiData, + }) as string; + + return ; +}; + +export default ATIAnalyticsTranscript; diff --git a/src/app/components/Transcript/index.styles.tsx b/src/app/components/Transcript/index.styles.tsx index d5919309ddf..e1b845afe82 100644 --- a/src/app/components/Transcript/index.styles.tsx +++ b/src/app/components/Transcript/index.styles.tsx @@ -3,6 +3,11 @@ import pixelsToRem from '#app/utilities/pixelsToRem'; import { focusIndicatorThickness } from '../ThemeProvider/focusIndicator'; export default { + isThisTerrible: () => + css({ + display: 'none', + }), + details: ({ spacings, palette, isDarkUi }: Theme) => css({ backgroundColor: isDarkUi ? palette.GREY_7 : palette.WHITE, @@ -19,6 +24,9 @@ export default { '&[open] summary svg': { transform: 'rotate(90deg)', }, + '&[open] #isThisTerrible': { + display: 'initial', + }, }), summary: ({ spacings, palette }: Theme) => diff --git a/src/app/components/Transcript/index.tsx b/src/app/components/Transcript/index.tsx index 07015dc05d9..ad80b4dcee5 100644 --- a/src/app/components/Transcript/index.tsx +++ b/src/app/components/Transcript/index.tsx @@ -7,6 +7,7 @@ import TranscriptTimestamp from './TranscriptTimestamp'; import VisuallyHiddenText from '../VisuallyHiddenText'; import { RightArrow as ArrowSvg } from '../icons'; import { TranscriptBlock, TranscriptItem } from './types'; +import ATIAnalyticsTranscript from '../ATIAnalytics/myAnalytics'; // TO DO - move this to BFF const removeHoursMilliseconds = (timestamp: string) => timestamp.slice(3, -4); @@ -37,6 +38,21 @@ const Transcript = ({ const formattedTitle = title ? `, ${title}` : ''; + const myATIData = { + categoryName: null, + contentId: 'urn:bbc:optimo:asset:ce42wzqr2mko', + contentType: 'article', + language: 'es', + ldpThingIds: null, + ldpThingLabels: null, + nationsProducer: null, + pageIdentifier: 'mundo.articles.ce42wzqr2mko.page', + pageTitle: + 'Este artículo de prueba ha sido creado para que podamos ejecutar pruebas', + timePublished: '2019-10-04T10:58:46.977Z', + timeUpdated: '2019-10-04T10:58:46.977Z', + }; + return (
@@ -49,6 +65,10 @@ const Transcript = ({ {title && {formattedTitle}} + {/* dont think this works */} + + +