Merge pull request #383 from Discours/feature/ga-tracker
include ga tracker
This commit is contained in:
commit
2977fe5283
6
package-lock.json
generated
6
package-lock.json
generated
|
@ -14,6 +14,7 @@
|
||||||
"@solid-primitives/pagination": "0.2.10",
|
"@solid-primitives/pagination": "0.2.10",
|
||||||
"cropperjs": "1.6.1",
|
"cropperjs": "1.6.1",
|
||||||
"form-data": "4.0.0",
|
"form-data": "4.0.0",
|
||||||
|
"ga-gtag": "1.2.0",
|
||||||
"i18next": "22.4.15",
|
"i18next": "22.4.15",
|
||||||
"i18next-icu": "2.3.0",
|
"i18next-icu": "2.3.0",
|
||||||
"idb": "7.1.1",
|
"idb": "7.1.1",
|
||||||
|
@ -9531,6 +9532,11 @@
|
||||||
"url": "https://github.com/sponsors/ljharb"
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/ga-gtag": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ga-gtag/-/ga-gtag-1.2.0.tgz",
|
||||||
|
"integrity": "sha512-j9gxutMdpGMdwaX1SzOG31Ddm+IGFjeNf+N3Z5g+BBpS8FSXOALlrM+ORIGc/QKszGJEDlw+6PfIsJZICsqsGQ=="
|
||||||
|
},
|
||||||
"node_modules/gensync": {
|
"node_modules/gensync": {
|
||||||
"version": "1.0.0-beta.2",
|
"version": "1.0.0-beta.2",
|
||||||
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
|
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
"@solid-primitives/pagination": "0.2.10",
|
"@solid-primitives/pagination": "0.2.10",
|
||||||
"cropperjs": "1.6.1",
|
"cropperjs": "1.6.1",
|
||||||
"form-data": "4.0.0",
|
"form-data": "4.0.0",
|
||||||
|
"ga-gtag": "1.2.0",
|
||||||
"i18next": "22.4.15",
|
"i18next": "22.4.15",
|
||||||
"i18next-icu": "2.3.0",
|
"i18next-icu": "2.3.0",
|
||||||
"idb": "7.1.1",
|
"idb": "7.1.1",
|
||||||
|
@ -149,7 +150,7 @@
|
||||||
"typograf": "7.1.0",
|
"typograf": "7.1.0",
|
||||||
"uniqolor": "1.1.0",
|
"uniqolor": "1.1.0",
|
||||||
"vike": "0.4.148",
|
"vike": "0.4.148",
|
||||||
"vite": "4.5.1",
|
"vite": "4.5.2",
|
||||||
"vite-plugin-mkcert": "1.16.0",
|
"vite-plugin-mkcert": "1.16.0",
|
||||||
"vite-plugin-sass-dts": "1.3.11",
|
"vite-plugin-sass-dts": "1.3.11",
|
||||||
"vite-plugin-solid": "2.7.2",
|
"vite-plugin-solid": "2.7.2",
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { gtag } from 'ga-gtag'
|
||||||
import { createSignal, For, lazy, Show } from 'solid-js'
|
import { createSignal, For, lazy, Show } from 'solid-js'
|
||||||
|
|
||||||
import { useLocalize } from '../../../context/localize'
|
import { useLocalize } from '../../../context/localize'
|
||||||
|
@ -24,6 +25,8 @@ type Props = {
|
||||||
onChangeMediaIndex?: (direction: 'up' | 'down', index) => void
|
onChangeMediaIndex?: (direction: 'up' | 'down', index) => void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const getMediaTitle = (itm: MediaItem, idx: number) => `${idx}. ${itm.artist} - ${itm.title}`
|
||||||
|
|
||||||
export const PlayerPlaylist = (props: Props) => {
|
export const PlayerPlaylist = (props: Props) => {
|
||||||
const { t } = useLocalize()
|
const { t } = useLocalize()
|
||||||
const [activeEditIndex, setActiveEditIndex] = createSignal(-1)
|
const [activeEditIndex, setActiveEditIndex] = createSignal(-1)
|
||||||
|
@ -34,6 +37,15 @@ export const PlayerPlaylist = (props: Props) => {
|
||||||
const handleMediaItemFieldChange = (field: keyof MediaItem, value: string) => {
|
const handleMediaItemFieldChange = (field: keyof MediaItem, value: string) => {
|
||||||
props.onMediaItemFieldChange(activeEditIndex(), field, value)
|
props.onMediaItemFieldChange(activeEditIndex(), field, value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const play = (index: number) => {
|
||||||
|
const mi = props.media[index]
|
||||||
|
gtag('event', 'select_item', {
|
||||||
|
item_list_id: props.articleSlug,
|
||||||
|
item_list_name: getMediaTitle(mi, index),
|
||||||
|
items: props.media.map((it, ix) => getMediaTitle(it, ix)),
|
||||||
|
})
|
||||||
|
}
|
||||||
return (
|
return (
|
||||||
<ul class={styles.playlist}>
|
<ul class={styles.playlist}>
|
||||||
<For each={props.media}>
|
<For each={props.media}>
|
||||||
|
@ -42,7 +54,7 @@ export const PlayerPlaylist = (props: Props) => {
|
||||||
<div class={styles.playlistItem}>
|
<div class={styles.playlistItem}>
|
||||||
<button
|
<button
|
||||||
class={styles.playlistItemPlayButton}
|
class={styles.playlistItemPlayButton}
|
||||||
onClick={() => props.onPlayMedia(index())}
|
onClick={() => play(index())}
|
||||||
type="button"
|
type="button"
|
||||||
aria-label="Play"
|
aria-label="Play"
|
||||||
>
|
>
|
||||||
|
|
|
@ -4,6 +4,7 @@ import { getPagePath } from '@nanostores/router'
|
||||||
import { createPopper } from '@popperjs/core'
|
import { createPopper } from '@popperjs/core'
|
||||||
import { Link, Meta } from '@solidjs/meta'
|
import { Link, Meta } from '@solidjs/meta'
|
||||||
import { clsx } from 'clsx'
|
import { clsx } from 'clsx'
|
||||||
|
import { install } from 'ga-gtag'
|
||||||
import { createEffect, For, createMemo, onMount, Show, createSignal, onCleanup, on } from 'solid-js'
|
import { createEffect, For, createMemo, onMount, Show, createSignal, onCleanup, on } from 'solid-js'
|
||||||
import { isServer } from 'solid-js/web'
|
import { isServer } from 'solid-js/web'
|
||||||
|
|
||||||
|
@ -321,9 +322,8 @@ export const FullArticle = (props: Props) => {
|
||||||
)
|
)
|
||||||
|
|
||||||
onMount(async () => {
|
onMount(async () => {
|
||||||
await loadReactionsBy({
|
install('G-LQ4B87H8C2')
|
||||||
by: { shout: props.article.slug },
|
await loadReactionsBy({ by: { shout: props.article.slug } })
|
||||||
})
|
|
||||||
setIsReactionsLoaded(true)
|
setIsReactionsLoaded(true)
|
||||||
document.title = props.article.title
|
document.title = props.article.title
|
||||||
window?.addEventListener('resize', updateIframeSizes)
|
window?.addEventListener('resize', updateIframeSizes)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user