From cf6cf255ed8cf747b872bfbc4cae3f27f732f96a Mon Sep 17 00:00:00 2001 From: seongwon030 <105052068+seongwon030@users.noreply.github.com> Date: Sun, 3 Aug 2025 01:01:14 +0900 Subject: [PATCH 1/4] =?UTF-8?q?feat:=20snsLink=20=EC=9D=B4=EB=B2=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=B6=94=EC=A0=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/SnsLinkIcons/SnsLinkIcons.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/frontend/src/pages/ClubDetailPage/components/SnsLinkIcons/SnsLinkIcons.tsx b/frontend/src/pages/ClubDetailPage/components/SnsLinkIcons/SnsLinkIcons.tsx index 103cb50f0..9488e1165 100644 --- a/frontend/src/pages/ClubDetailPage/components/SnsLinkIcons/SnsLinkIcons.tsx +++ b/frontend/src/pages/ClubDetailPage/components/SnsLinkIcons/SnsLinkIcons.tsx @@ -2,12 +2,15 @@ import React from 'react'; import * as Styled from './SnsLinkIcons.styles'; import { SNS_CONFIG } from '@/constants/snsConfig'; import { SNSPlatform } from '@/types/club'; +import useMixpanelTrack from '@/hooks/useMixpanelTrack'; interface SnsLinkIconsProps { apiSocialLinks: Partial>; } const SnsLinkIcons = ({ apiSocialLinks }: SnsLinkIconsProps) => { + const trackEvent = useMixpanelTrack(); + if (!apiSocialLinks) return null; return ( @@ -22,7 +25,11 @@ const SnsLinkIcons = ({ apiSocialLinks }: SnsLinkIconsProps) => { target='_blank' rel='noreferrer' > - + trackEvent('sns링크 버튼 클릭', { platform })} + /> ); })} From b507b1d05f9ed75bbc3e48fdeb196c89706b0d85 Mon Sep 17 00:00:00 2001 From: seongwon030 <105052068+seongwon030@users.noreply.github.com> Date: Sun, 3 Aug 2025 15:05:13 +0900 Subject: [PATCH 2/4] =?UTF-8?q?refactor:=20SNS=20=EB=A7=81=ED=81=AC=20?= =?UTF-8?q?=ED=81=B4=EB=A6=AD=20=EC=9D=B4=EB=B2=A4=ED=8A=B8=EB=A5=BC=20?= =?UTF-8?q?=EC=95=84=EC=9D=B4=EC=BD=98=EC=97=90=EC=84=9C=20=EB=A7=81?= =?UTF-8?q?=ED=81=AC=EB=A1=9C=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - SnsIcon의 onClick을 SnsLink로 이동하여 이벤트 전파 문제 해결 - 링크 클릭과 이벤트 추적이 독립적으로 동작하도록 개선 --- .../components/SnsLinkIcons/SnsLinkIcons.tsx | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/frontend/src/pages/ClubDetailPage/components/SnsLinkIcons/SnsLinkIcons.tsx b/frontend/src/pages/ClubDetailPage/components/SnsLinkIcons/SnsLinkIcons.tsx index 9488e1165..ce71270a0 100644 --- a/frontend/src/pages/ClubDetailPage/components/SnsLinkIcons/SnsLinkIcons.tsx +++ b/frontend/src/pages/ClubDetailPage/components/SnsLinkIcons/SnsLinkIcons.tsx @@ -24,12 +24,14 @@ const SnsLinkIcons = ({ apiSocialLinks }: SnsLinkIconsProps) => { href={url} target='_blank' rel='noreferrer' + onClick={() => + trackEvent('sns링크 버튼 클릭', { + platform, + clubName, + }) + } > - trackEvent('sns링크 버튼 클릭', { platform })} - /> + ); })} From 14a4bcdf165870242da530f61537b60a8155b231 Mon Sep 17 00:00:00 2001 From: seongwon030 <105052068+seongwon030@users.noreply.github.com> Date: Sun, 3 Aug 2025 15:06:00 +0900 Subject: [PATCH 3/4] =?UTF-8?q?feat:=20SnsLinkIcons=20=EC=BB=B4=ED=8F=AC?= =?UTF-8?q?=EB=84=8C=ED=8A=B8=EC=97=90=20clubName=20props=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - SNS 링크 클릭 시 동아리 이름과 플랫폼 정보 추적 --- .../pages/ClubDetailPage/components/InfoBox/InfoBox.tsx | 7 ++++++- .../components/SnsLinkIcons/SnsLinkIcons.tsx | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/frontend/src/pages/ClubDetailPage/components/InfoBox/InfoBox.tsx b/frontend/src/pages/ClubDetailPage/components/InfoBox/InfoBox.tsx index a922e1194..104ffe404 100644 --- a/frontend/src/pages/ClubDetailPage/components/InfoBox/InfoBox.tsx +++ b/frontend/src/pages/ClubDetailPage/components/InfoBox/InfoBox.tsx @@ -40,7 +40,12 @@ const InfoBox = ({ sectionRefs, clubDetail }: InfoBoxProps) => { { label: '전화번호', value: clubDetail.presidentPhoneNumber }, { label: 'SNS', - render: , + render: ( + + ), }, ], refIndex: INFOTABS_SCROLL_INDEX.CLUB_INFO_TAB, diff --git a/frontend/src/pages/ClubDetailPage/components/SnsLinkIcons/SnsLinkIcons.tsx b/frontend/src/pages/ClubDetailPage/components/SnsLinkIcons/SnsLinkIcons.tsx index ce71270a0..4ca845bc1 100644 --- a/frontend/src/pages/ClubDetailPage/components/SnsLinkIcons/SnsLinkIcons.tsx +++ b/frontend/src/pages/ClubDetailPage/components/SnsLinkIcons/SnsLinkIcons.tsx @@ -6,9 +6,10 @@ import useMixpanelTrack from '@/hooks/useMixpanelTrack'; interface SnsLinkIconsProps { apiSocialLinks: Partial>; + clubName?: string; } -const SnsLinkIcons = ({ apiSocialLinks }: SnsLinkIconsProps) => { +const SnsLinkIcons = ({ apiSocialLinks, clubName }: SnsLinkIconsProps) => { const trackEvent = useMixpanelTrack(); if (!apiSocialLinks) return null; From 7853a0c173e8419894a92e1f47e5fcdd26b13fd8 Mon Sep 17 00:00:00 2001 From: seongwon030 <105052068+seongwon030@users.noreply.github.com> Date: Sun, 3 Aug 2025 15:06:08 +0900 Subject: [PATCH 4/4] =?UTF-8?q?refactor:=20ShareButton=20=EC=9D=B4?= =?UTF-8?q?=EB=B2=A4=ED=8A=B8=20=EC=9D=B4=EB=A6=84=EC=9D=84=20'=EA=B3=B5?= =?UTF-8?q?=EC=9C=A0=ED=95=98=EA=B8=B0=20=EB=B2=84=ED=8A=BC=20=ED=81=B4?= =?UTF-8?q?=EB=A6=AD'=EC=9C=BC=EB=A1=9C=20=ED=86=B5=EC=9D=BC=ED=95=98?= =?UTF-8?q?=EA=B3=A0=20clubName=EC=9D=84=20=ED=95=84=EB=93=9C=EB=A1=9C=20?= =?UTF-8?q?=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/ClubDetailPage/components/ShareButton/ShareButton.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/pages/ClubDetailPage/components/ShareButton/ShareButton.tsx b/frontend/src/pages/ClubDetailPage/components/ShareButton/ShareButton.tsx index eea5ea29e..935ab62ba 100644 --- a/frontend/src/pages/ClubDetailPage/components/ShareButton/ShareButton.tsx +++ b/frontend/src/pages/ClubDetailPage/components/ShareButton/ShareButton.tsx @@ -43,7 +43,7 @@ const ShareButton = ({ clubId }: ShareButtonProps) => { }, ], }); - trackEvent(`${clubDetail.name} 공유하기 버튼 클릭`); + trackEvent('공유하기 버튼 클릭', { clubName: clubDetail.name }); }; return (