diff --git a/src/views/RecruitPage/components/ActivityReview/ActivityReview.tsx b/src/views/RecruitPage/components/ActivityReview/ActivityReview.tsx index a57886bc..2af9e214 100644 --- a/src/views/RecruitPage/components/ActivityReview/ActivityReview.tsx +++ b/src/views/RecruitPage/components/ActivityReview/ActivityReview.tsx @@ -1,3 +1,4 @@ +import { track } from '@amplitude/analytics-browser'; import Link from 'next/link'; import { ReactComponent as ArrowLeft } from '@src/assets/icons/arrow_left_28x28.svg'; import { ReactComponent as ArrowRight } from '@src/assets/icons/arrow_right_28x28.svg'; @@ -44,7 +45,11 @@ export function ActivityReview() { {reviews.data.map((review) => ( - + track('click_recruit_review_detail')} + > {review.title} @@ -52,7 +57,12 @@ export function ActivityReview() { {parsePartToKorean(review.part)}파트 {review.semester}기{'\n'} {review.reviewer} - + @@ -62,7 +72,7 @@ export function ActivityReview() { - + track('click_recruit_review_more')}> 활동후기 더보기 diff --git a/src/views/RecruitPage/components/ChapterInfo/index.tsx b/src/views/RecruitPage/components/ChapterInfo/index.tsx index 94f7a1ee..9015395b 100644 --- a/src/views/RecruitPage/components/ChapterInfo/index.tsx +++ b/src/views/RecruitPage/components/ChapterInfo/index.tsx @@ -16,7 +16,12 @@ const ChapterInfo = () => { Positions {'SOPT는 33기는 총 6개의 파트로\n이루어져 있어요.'} - + {parsePartToKorean(selectedTab)} 파트가 배우는 것 {infoMap[selectedTab].info} diff --git a/src/views/RecruitPage/components/FAQ/index.tsx b/src/views/RecruitPage/components/FAQ/index.tsx index 0f1e899f..5a0618b1 100644 --- a/src/views/RecruitPage/components/FAQ/index.tsx +++ b/src/views/RecruitPage/components/FAQ/index.tsx @@ -24,7 +24,12 @@ const FaqInfo = () => { 자주 묻는 질문 - + {faqMap[selectedTab].map((info, index) => (
toggleBox(index)}> diff --git a/src/views/RecruitPage/components/NotificationSection/index.tsx b/src/views/RecruitPage/components/NotificationSection/index.tsx index 85c7bda3..e3ee9370 100644 --- a/src/views/RecruitPage/components/NotificationSection/index.tsx +++ b/src/views/RecruitPage/components/NotificationSection/index.tsx @@ -1,3 +1,4 @@ +import { track } from '@amplitude/analytics-browser'; import styled from '@emotion/styled'; import { useRef, useState } from 'react'; import axios from 'axios'; @@ -42,8 +43,17 @@ const NotificationSection = () => { onRegister(); }} > - - + track('click_recruit_notification_input')} + /> + track('click_recruit_notification_apply')} + /> 신청 완료되었습니다! diff --git a/src/views/RecruitPage/components/common/Tabs/index.tsx b/src/views/RecruitPage/components/common/Tabs/index.tsx index 857a60c8..2c2d2916 100644 --- a/src/views/RecruitPage/components/common/Tabs/index.tsx +++ b/src/views/RecruitPage/components/common/Tabs/index.tsx @@ -1,3 +1,4 @@ +import { track } from '@amplitude/analytics-browser'; import { ExtraPart, ExtraTabType, Part, PartExtraType, TabType } from '@src/lib/types/universal'; import * as S from './style'; @@ -6,8 +7,14 @@ type TabBarProps = type: 'with-all'; selectedTab: ExtraPart; onTabClick(targetTab: ExtraPart): void; + amplitudeTrackingName: string; } - | { type: 'without-all'; selectedTab: Part; onTabClick(targetTab: Part): void }; + | { + type: 'without-all'; + selectedTab: Part; + onTabClick(targetTab: Part): void; + amplitudeTrackingName: string; + }; const allTabs: ExtraTabType[] = [ { @@ -67,14 +74,17 @@ const tabs: TabType[] = [ }, ]; -const TabBar = ({ type, onTabClick, selectedTab }: TabBarProps) => { +const TabBar = ({ type, onTabClick, selectedTab, amplitudeTrackingName }: TabBarProps) => { if (type === 'with-all') return ( {allTabs.map((tab) => ( onTabClick(tab.value)} + onClick={() => { + onTabClick(tab.value); + track(amplitudeTrackingName, { part: tab.label }); + }} tab={tab} selected={selectedTab === tab.value} /> @@ -86,7 +96,10 @@ const TabBar = ({ type, onTabClick, selectedTab }: TabBarProps) => { {tabs.map((tab) => ( onTabClick(tab.value)} + onClick={() => { + onTabClick(tab.value); + track(amplitudeTrackingName, { part: tab.label }); + }} tab={tab} selected={selectedTab === tab.value} /> diff --git a/src/views/SponsorPage/components/CorporateJob/FieldTabs/index.tsx b/src/views/SponsorPage/components/CorporateJob/FieldTabs/index.tsx index ebc97116..a885db11 100644 --- a/src/views/SponsorPage/components/CorporateJob/FieldTabs/index.tsx +++ b/src/views/SponsorPage/components/CorporateJob/FieldTabs/index.tsx @@ -1,3 +1,4 @@ +import { track } from '@amplitude/analytics-browser'; import { JobField } from '@src/lib/types/job'; import { fieldTabs } from '..'; import { St } from './style'; @@ -11,7 +12,14 @@ const FieldTabs = ({ currentTabType, changeTab }: FieldTabsProps) => { return ( {fieldTabs.map(({ type, text }) => ( - changeTab(type)} isactive={type === currentTabType}> + { + changeTab(type); + track('click_sponsor_recruit_part', { part: text }); + }} + isactive={type === currentTabType} + > {text} ))} diff --git a/src/views/SponsorPage/components/CorporateJob/JobPostings/index.tsx b/src/views/SponsorPage/components/CorporateJob/JobPostings/index.tsx index c915f57b..28b884b8 100644 --- a/src/views/SponsorPage/components/CorporateJob/JobPostings/index.tsx +++ b/src/views/SponsorPage/components/CorporateJob/JobPostings/index.tsx @@ -1,3 +1,4 @@ +import { track } from '@amplitude/analytics-browser'; import { useQuery } from 'react-query'; import JobPostingCard from '@src/components/corporate/JobPostingCard'; import { api } from '@src/lib/api'; @@ -15,7 +16,13 @@ const JobPostings = ({ field }: JopPostingsProps) => { {data?.map(({ id, url, imgSrc, type, title, corporation, career, location }) => ( - + track('click_sponsor_recruit')} + > {
onClickLeftButton(scrollableRef.current)} + onClick={() => { + onClickLeftButton(scrollableRef.current); + track('click_sponsor_activity_next'); + }} >
@@ -44,7 +48,10 @@ const CorporateLinkedActivities = () => {
onClickRightButton(scrollableRef.current)} + onClick={() => { + onClickRightButton(scrollableRef.current); + track('click_sponsor_activity_next'); + }} >
diff --git a/src/views/SponsorPage/components/CorporatePartner/index.tsx b/src/views/SponsorPage/components/CorporatePartner/index.tsx index 76d41cde..be6a2532 100644 --- a/src/views/SponsorPage/components/CorporatePartner/index.tsx +++ b/src/views/SponsorPage/components/CorporatePartner/index.tsx @@ -1,3 +1,4 @@ +import { track } from '@amplitude/analytics-browser'; import Image from 'next/image'; import { ReactComponent as ArrowLeft } from '@src/assets/icons/arrow_left_28x28.svg'; import { ReactComponent as ArrowRight } from '@src/assets/icons/arrow_right_28x28.svg'; @@ -20,7 +21,10 @@ const CoporatePartner = () => {
onClickLeftButton(scrollableRef.current)} + onClick={() => { + onClickLeftButton(scrollableRef.current); + track('cclick_sponsor_logo_next'); + }} >
@@ -43,7 +47,10 @@ const CoporatePartner = () => {
onClickRightButton(scrollableRef.current)} + onClick={() => { + onClickRightButton(scrollableRef.current); + track('cclick_sponsor_logo_next'); + }} >