From 509d47d89ece25054ec9ddf9d2736a5ceb24d48f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Grellard?= Date: Fri, 20 Sep 2024 10:28:15 +0200 Subject: [PATCH] LLD - Braze Content cards clicks tracking (#7857) * fix(lld): content cards clicks tracking * remove log --- .changeset/gentle-fireants-nail.md | 5 +++++ .../renderer/components/Carousel/helpers.tsx | 6 ++++-- .../src/renderer/components/Carousel/index.tsx | 18 ++++++++++++------ .../src/renderer/hooks/useActionCards.tsx | 6 ++++-- .../src/renderer/hooks/useBraze.ts | 2 -- .../src/renderer/hooks/useNotifications.ts | 6 ++++-- 6 files changed, 29 insertions(+), 14 deletions(-) create mode 100644 .changeset/gentle-fireants-nail.md diff --git a/.changeset/gentle-fireants-nail.md b/.changeset/gentle-fireants-nail.md new file mode 100644 index 000000000000..13415ed5bc3a --- /dev/null +++ b/.changeset/gentle-fireants-nail.md @@ -0,0 +1,5 @@ +--- +"ledger-live-desktop": patch +--- + +LLD - Fix Content Cards clicks tracking and other issues diff --git a/apps/ledger-live-desktop/src/renderer/components/Carousel/helpers.tsx b/apps/ledger-live-desktop/src/renderer/components/Carousel/helpers.tsx index e4060a2b0afc..3543a018ccfe 100644 --- a/apps/ledger-live-desktop/src/renderer/components/Carousel/helpers.tsx +++ b/apps/ledger-live-desktop/src/renderer/components/Carousel/helpers.tsx @@ -107,8 +107,10 @@ export const useDefaultSlides = (): { if (currentCard) { // For some reason braze won't log the click event if the card url is empty // Setting it as the card id just to have a dummy non empty value - isTrackedUser && - braze.logContentCardClick({ ...currentCard, url: currentCard.id } as braze.ClassicCard); + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-expect-error + currentCard.url = currentCard.id; + isTrackedUser && braze.logContentCardClick(currentCard as braze.ClassicCard); } }, [cachedContentCards, isTrackedUser], diff --git a/apps/ledger-live-desktop/src/renderer/components/Carousel/index.tsx b/apps/ledger-live-desktop/src/renderer/components/Carousel/index.tsx index 5c9266111836..90ffed8ce072 100644 --- a/apps/ledger-live-desktop/src/renderer/components/Carousel/index.tsx +++ b/apps/ledger-live-desktop/src/renderer/components/Carousel/index.tsx @@ -154,17 +154,23 @@ const Carousel = ({ const [paused, setPaused] = useState(false); const [reverse, setReverse] = useState(false); const transitions = useTransition(index, p => p, getTransitions(type, reverse)); + const [hasLoggedFirstImpression, setHasLoggedFirstImpression] = useState(false); useEffect(() => { - logSlideImpression(0); - }, [logSlideImpression]); + if (!hasLoggedFirstImpression) { + setHasLoggedFirstImpression(true); + logSlideImpression(0); + } + }, [hasLoggedFirstImpression, logSlideImpression]); const changeVisibleSlide = useCallback( - (index: number) => { - setIndex(index); - logSlideImpression(index); + (newIndex: number) => { + if (index !== newIndex) { + setIndex(newIndex); + logSlideImpression(newIndex); + } }, - [logSlideImpression], + [index, logSlideImpression], ); const onChooseSlide = useCallback( diff --git a/apps/ledger-live-desktop/src/renderer/hooks/useActionCards.tsx b/apps/ledger-live-desktop/src/renderer/hooks/useActionCards.tsx index dbc74e121485..f468e4af1bd4 100644 --- a/apps/ledger-live-desktop/src/renderer/hooks/useActionCards.tsx +++ b/apps/ledger-live-desktop/src/renderer/hooks/useActionCards.tsx @@ -56,8 +56,10 @@ const useActionCards = () => { if (currentCard) { // For some reason braze won't log the click event if the card url is empty // Setting it as the card id just to have a dummy non empty value - isTrackedUser && - braze.logContentCardClick({ ...currentCard, url: currentCard.id } as braze.ClassicCard); + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-expect-error + currentCard.url = currentCard.id; + isTrackedUser && braze.logContentCardClick(currentCard as braze.ClassicCard); link && openURL(link); } if (actionCard) { diff --git a/apps/ledger-live-desktop/src/renderer/hooks/useBraze.ts b/apps/ledger-live-desktop/src/renderer/hooks/useBraze.ts index edcef3325e7c..66967366564f 100644 --- a/apps/ledger-live-desktop/src/renderer/hooks/useBraze.ts +++ b/apps/ledger-live-desktop/src/renderer/hooks/useBraze.ts @@ -117,8 +117,6 @@ export async function useBraze() { if (user) braze.changeUser(isTrackedUser ? user.id : anonymousBrazeId.current); - braze.requestPushPermission(); - braze.requestContentCardsRefresh(); braze.subscribeToContentCardsUpdates(cards => { diff --git a/apps/ledger-live-desktop/src/renderer/hooks/useNotifications.ts b/apps/ledger-live-desktop/src/renderer/hooks/useNotifications.ts index 2a524671ae19..dbfb31685c19 100644 --- a/apps/ledger-live-desktop/src/renderer/hooks/useNotifications.ts +++ b/apps/ledger-live-desktop/src/renderer/hooks/useNotifications.ts @@ -88,8 +88,10 @@ export function useNotifications() { if (currentCard) { // For some reason braze won't log the click event if the card url is empty // Setting it as the card id just to have a dummy non empty value - isTrackedUser && - braze.logContentCardClick({ ...currentCard, url: currentCard.id } as braze.ClassicCard); + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-expect-error + currentCard.url = currentCard.id; + isTrackedUser && braze.logContentCardClick(currentCard as braze.ClassicCard); } track("contentcard_clicked", {