@@ -122,9 +106,6 @@ const Navigation = ({
diff --git a/src/components/organisms/slider.spec.tsx b/src/components/organisms/slider.spec.tsx
index e39d26e74..a4b1a0873 100644
--- a/src/components/organisms/slider.spec.tsx
+++ b/src/components/organisms/slider.spec.tsx
@@ -33,7 +33,7 @@ describe('card slider', () => {
{
title: 'the_recording_title',
canonicalPath: 'the_recording_path',
- persons: [],
+ speakers: [],
} as any
}
/>
diff --git a/src/components/templates/andMiniplayer.graphql b/src/components/templates/andMiniplayer.graphql
index 8e6c8f27b..d83c7cc93 100644
--- a/src/components/templates/andMiniplayer.graphql
+++ b/src/components/templates/andMiniplayer.graphql
@@ -3,6 +3,13 @@ fragment andMiniplayer on Recording {
title
canonicalPath(useFuturePath: true)
duration
+ recordingContentType: contentType
+ speakers: persons(role: SPEAKER) {
+ ...personLockup
+ }
+ sponsor {
+ title
+ }
sequence {
title
contentType
diff --git a/src/components/templates/andMiniplayer.spec.tsx b/src/components/templates/andMiniplayer.spec.tsx
index a1c2cb98b..bc9c1f143 100644
--- a/src/components/templates/andMiniplayer.spec.tsx
+++ b/src/components/templates/andMiniplayer.spec.tsx
@@ -7,7 +7,10 @@ import AndPlaybackContext, {
} from '~components/templates/andPlaybackContext';
import { buildRenderer } from '~lib/test/buildRenderer';
import setPlayerMock from '~lib/test/setPlayerMock';
-import { SequenceContentType } from '~src/__generated__/graphql';
+import {
+ RecordingContentType,
+ SequenceContentType,
+} from '~src/__generated__/graphql';
const renderComponent = buildRenderer(AndPlaybackContext);
@@ -58,6 +61,8 @@ describe('miniplayer template', () => {
title: 'the_recording_title',
canonicalPath: 'the_recording_path',
duration: 60,
+ recordingContentType: RecordingContentType.Sermon,
+ speakers: [],
sequence: {
contentType: SequenceContentType.Series,
title: 'the_sequence_title',
@@ -73,6 +78,7 @@ describe('miniplayer template', () => {
audioFiles: [],
videoStreams: [],
collection: null,
+ sponsor: null,
},
'the_recording_id',
);
@@ -100,6 +106,7 @@ describe('miniplayer template', () => {
{
title: 'the_recording_title',
canonicalPath: 'the_recording_path',
+ speakers: [],
} as any,
'the_recording_id',
);
@@ -126,6 +133,7 @@ describe('miniplayer template', () => {
{
title: 'the_recording_title',
canonicalPath: 'the_recording_path',
+ speakers: [],
} as any,
'the_recording_id',
);
diff --git a/src/components/templates/andMiniplayer.tsx b/src/components/templates/andMiniplayer.tsx
index dc645e20d..1b0546e51 100644
--- a/src/components/templates/andMiniplayer.tsx
+++ b/src/components/templates/andMiniplayer.tsx
@@ -36,6 +36,18 @@ export default function AndMiniplayer({
className="video-js"
playsInline
data-testid="video-element"
+ data-content-type={recording?.recordingContentType}
+ data-media-type={
+ playbackContext.isShowingVideo() ? 'video' : 'audio'
+ }
+ data-id={recording?.id}
+ data-title={recording?.title}
+ data-presenter={recording?.speakers
+ .map((item) => item.name)
+ .join(';')}
+ data-sponsor={recording?.sponsor?.title}
+ data-conference={recording?.collection?.title}
+ data-series={recording?.sequence?.title}
onTimeUpdate={() => {
if (!player) return;
const t = player.currentTime();
diff --git a/src/components/templates/andNavigation.module.scss b/src/components/templates/andNavigation.module.scss
index 097d4d933..d178093c4 100644
--- a/src/components/templates/andNavigation.module.scss
+++ b/src/components/templates/andNavigation.module.scss
@@ -29,11 +29,6 @@
margin-bottom: 24px;
}
-.searchActive,
-.hideMobileSearch {
- display: none;
-}
-
@media (min-width: $breakpoint-lg) {
.base {
flex-direction: row;
diff --git a/src/components/templates/andNavigation.spec.tsx b/src/components/templates/andNavigation.spec.tsx
index 57729d524..16fe15802 100644
--- a/src/components/templates/andNavigation.spec.tsx
+++ b/src/components/templates/andNavigation.spec.tsx
@@ -31,7 +31,7 @@ const teaching: CardRecordingFragment = {
recordingContentType: 'AUDIOBOOK_TRACK',
sequence: null,
sponsor: null,
- persons: [],
+ speakers: [],
collection: null,
audioFiles: [],
videoFiles: [],
@@ -59,7 +59,7 @@ const series: CardSequenceFragment = {
contentType: SequenceContentType.Series,
duration: 0,
summary: '',
- speakers: {
+ sequenceSpeakers: {
nodes: [],
},
sequenceWriters: {
diff --git a/src/components/templates/andNavigation.tsx b/src/components/templates/andNavigation.tsx
index b6f6104ff..bd29fe982 100644
--- a/src/components/templates/andNavigation.tsx
+++ b/src/components/templates/andNavigation.tsx
@@ -1,4 +1,3 @@
-import clsx from 'clsx';
import Router, { useRouter } from 'next/router';
import React, { ReactNode, useEffect, useRef, useState } from 'react';
@@ -53,38 +52,14 @@ export default function AndNavigation({
};
}, []);
- const hideMobileSearch =
- contextualFilterId === 'all' &&
- ![
- '/[language]/discover',
- '/[language]/discover/collections',
- '/[language]',
- ].includes(pathname);
-
return (
-
setTerm(t)}
- entityType={entityType}
- onEntityTypeChange={setEntityType}
- />
- setShowingMenu(false)}
- onSearchChange={(v) => setTerm(v)}
- searchTerm={term}
- />
+
+ setShowingMenu(false)} />
setTerm(v)}
entityType={entityType}
diff --git a/src/containers/account/register.graphql b/src/containers/account/register.graphql
index b293708da..4c91759df 100644
--- a/src/containers/account/register.graphql
+++ b/src/containers/account/register.graphql
@@ -49,6 +49,7 @@ mutation registerSocial(
email
}
}
+ isNewUser
errors {
message
}
diff --git a/src/containers/bible/book.tsx b/src/containers/bible/book.tsx
index 24f733da4..fad56b89c 100644
--- a/src/containers/bible/book.tsx
+++ b/src/containers/bible/book.tsx
@@ -147,6 +147,10 @@ function BookInner({
)}`,
sequence: null,
collection: null,
+ recordingContentType: RecordingContentType.BibleChapter,
+ sponsor: {
+ title: 'Faith Comes By Hearing',
+ },
};
}
@@ -299,7 +303,7 @@ function BookInner({
...chapterToRecording(chapter),
recordingContentType: RecordingContentType.BibleChapter,
sequenceIndex: null,
- persons: [],
+ speakers: [],
}}
playlistRecordings={recordings.slice(
chapters.findIndex((c) => c.id === chapter.id),
diff --git a/src/containers/collection/detail.tsx b/src/containers/collection/detail.tsx
index 7cf81b4cb..3bcf94042 100644
--- a/src/containers/collection/detail.tsx
+++ b/src/containers/collection/detail.tsx
@@ -164,6 +164,9 @@ function CollectionDetail({
light
triggerClassName={styles.iconButton}
rssUrl={root.lang(lang).conferences.id(id).feed.get()}
+ contentType={contentType}
+ id={id}
+ title={title}
/>
diff --git a/src/containers/collection/presenter.tsx b/src/containers/collection/presenter.tsx
index 60089d8f3..a059f4544 100644
--- a/src/containers/collection/presenter.tsx
+++ b/src/containers/collection/presenter.tsx
@@ -21,6 +21,7 @@ import { useIsPersonFavorited } from '~lib/api/useIsPersonFavorited';
import { BaseColors } from '~lib/constants';
import root from '~lib/routes';
import useLanguageRoute from '~lib/useLanguageRoute';
+import { CatalogEntityType } from '~src/__generated__/graphql';
import Heading6 from '~src/components/atoms/heading6';
import { GetConferencePresenterDetailPageDataQuery } from '~src/containers/collection/__generated__/presenter';
import { Must } from '~src/types/types';
@@ -104,6 +105,9 @@ function PresenterDetail({
light
triggerClassName={styles.iconButton}
rssUrl={root.lang(lang).presenters.id(id).feed.get()}
+ contentType={CatalogEntityType.Person}
+ id={id}
+ title={name}
/>
diff --git a/src/containers/contact.tsx b/src/containers/contact.tsx
index 8af57441a..10b918895 100644
--- a/src/containers/contact.tsx
+++ b/src/containers/contact.tsx
@@ -13,6 +13,7 @@ import Textarea from '~components/molecules/form/textarea';
import { useLanguageId } from '~lib/useLanguageId';
import { PageContactRecipient } from '~src/__generated__/graphql';
import { Must } from '~src/types/types';
+import { gtmPushEvent } from '~src/utils/gtm';
import { useSubmitContactPageMutation } from './__generated__/contact';
import styles from './contact.module.scss';
@@ -54,6 +55,9 @@ export default function Contact({ type }: Must
): JSX.Element {
if (!formFilled) {
return;
}
+ gtmPushEvent('contact', {
+ contact_type: recipient,
+ });
mutate({
language,
recipient: recipient as PageContactRecipient,
diff --git a/src/containers/discover/index.spec.tsx b/src/containers/discover/index.spec.tsx
index 53b539d0b..dec546aef 100644
--- a/src/containers/discover/index.spec.tsx
+++ b/src/containers/discover/index.spec.tsx
@@ -51,7 +51,7 @@ const recentTeaching = {
title: 'recent_sermon_title',
canonicalPath: 'the_sermon_path',
recordingContentType: RecordingContentType.Sermon,
- persons: [],
+ speakers: [],
};
const recentTeachingsDefaults = {
@@ -76,7 +76,7 @@ const loadTrendingTeachings = buildLoader(
title: 'trending_sermon_title',
canonicalPath: 'the_sermon_path2',
recordingContentType: RecordingContentType.Sermon,
- persons: [],
+ speakers: [],
},
},
],
@@ -94,7 +94,7 @@ const loadFeaturedTeachings = buildLoader(
title: 'featured_sermon_title',
canonicalPath: 'the_sermon_path3',
recordingContentType: RecordingContentType.Sermon,
- persons: [],
+ speakers: [],
},
],
...base,
@@ -111,7 +111,7 @@ const loadStorySeasons = buildLoader(
title: 'the_story_title',
canonicalPath: 'the_story_path',
contentType: SequenceContentType.StorySeason,
- speakers: {
+ sequenceSpeakers: {
nodes: [],
},
recordings: {
diff --git a/src/containers/give.tsx b/src/containers/give.tsx
index b22d66b86..d49aa3617 100644
--- a/src/containers/give.tsx
+++ b/src/containers/give.tsx
@@ -135,7 +135,7 @@ export default function Blog(): JSX.Element {
text={
}
- href="http://www.wafsda.org/"
+ href="https://www.wafsda.org"
target="_blank"
/>
diff --git a/src/containers/home.spec.tsx b/src/containers/home.spec.tsx
index dd1db8d05..d9825e405 100644
--- a/src/containers/home.spec.tsx
+++ b/src/containers/home.spec.tsx
@@ -23,7 +23,7 @@ const audiobookTrack = {
title: 'the_audiobook_track_title',
canonicalPath: 'the_audiobook_track_path',
recordingContentType: RecordingContentType.AudiobookTrack,
- persons: [
+ speakers: [
{
id: 'the_audiobook_track_person_id',
canonicalPath: 'the_person_path',
@@ -56,7 +56,7 @@ const song = {
title: 'the_song_title',
canonicalPath: 'the_song_path',
recordingContentType: RecordingContentType.MusicTrack,
- persons: [
+ speakers: [
{
id: 'the_song_person_id',
canonicalPath: 'the_person_path',
@@ -89,7 +89,7 @@ const story = {
canonicalPath: 'the_story_path',
recordingContentType: RecordingContentType.Story,
duration: 21 * 60,
- persons: [
+ speakers: [
{
id: 'the_story_person_id',
canonicalPath: 'the_person_path',
@@ -125,7 +125,7 @@ const recording = {
title: 'the_recording_title',
canonicalPath: 'the_recording_path',
recordingContentType: RecordingContentType.Sermon,
- persons: [
+ speakers: [
{
id: 'the_recording_person_id',
canonicalPath: 'the_person_path',
@@ -190,7 +190,7 @@ const loadData = buildLoader(
},
canonicalPath: 'the_sequence_path',
contentType: SequenceContentType.BibleBook,
- speakers: {
+ sequenceSpeakers: {
nodes: [],
},
allRecordings: {
diff --git a/src/containers/library/playlist/detail.tsx b/src/containers/library/playlist/detail.tsx
index dea69b05d..68ead61ce 100644
--- a/src/containers/library/playlist/detail.tsx
+++ b/src/containers/library/playlist/detail.tsx
@@ -94,8 +94,9 @@ function PlaylistDetail({ playlist }: Must): JSX.Element {
shareUrl={`https://audioverse.org/${languageRoute}/playlists/${id}`}
backgroundColor={BaseColors.CREAM}
light={true}
- type="Playlist"
+ contentType="PLAYLIST"
id={id}
+ title={title}
/>
)}
{!isPublicRoute && (
diff --git a/src/containers/presenter/detail.tsx b/src/containers/presenter/detail.tsx
index 5bd2db022..40932108a 100644
--- a/src/containers/presenter/detail.tsx
+++ b/src/containers/presenter/detail.tsx
@@ -26,6 +26,7 @@ import { BaseColors } from '~lib/constants';
import root from '~lib/routes';
import useLanguageRoute from '~lib/useLanguageRoute';
import ForwardIcon from '~public/img/icons/icon-forward-light.svg';
+import { CatalogEntityType } from '~src/__generated__/graphql';
import { Must } from '~src/types/types';
import { GetPresenterDetailPageDataQuery } from './__generated__/detail';
@@ -158,6 +159,9 @@ function PresenterDetail({
light
triggerClassName={styles.iconButton}
rssUrl={root.lang(lang).presenters.id(id).feed.get()}
+ contentType={CatalogEntityType.Person}
+ id={id}
+ title={name}
/>