-
Notifications
You must be signed in to change notification settings - Fork 3
[release] v1.0.3 #405
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
[release] v1.0.3 #405
Changes from all commits
Commits
Show all changes
51 commits
Select commit
Hold shift + click to select a range
5e437aa
fix: ClubTag 컴포넌트의 중복 key 문제 해결
seongwon030 767f743
ix: 모바일 환경에서 배너 슬라이더 초기 렌더링 문제 해결
seongwon030 200b0d5
feat: 페이지 체류시간 추적 로직 개선
seongwon030 c9a5873
feat: clubName은 매개변수로 전달
seongwon030 eefb86c
Merge pull request #381 from Moadong/fix/#380-mobile-banner-initial-r…
seongwon030 f1d9824
refactor: 관리자 페이지 탭별 컴포넌트 분리 및 import 경로 수정
oesnuj 2098f72
feat: 동아리 SNS 링크 입력 영역 스타일 추가
oesnuj 634b0a2
feat: SNS 플랫폼 config 및 정규식 검증 기준 정의
oesnuj 87fc788
feat: ClubDetail 타입에 socialLinks 필드 추가
oesnuj b04d91a
feat: InputField 에러 상태 및 메시지 표시 기능 추가
oesnuj 2562d2f
feat: SNS 링크 유효성 검사 함수 추가
oesnuj 16095ca
feat: SNS 링크 입력 UI 및 수정 기능 통합
oesnuj bafce68
refactor: SNS 플랫폼 설정을 객체 기반 단일 구조로 통합
oesnuj 802b8f8
refactor: SNS 링크 설정 및 유효성 검사 로직 단일화
oesnuj 78becb2
refactor: SNS 링크 설정 및 검증 로직을 SNS_CONFIG 하나로 통합
oesnuj 9e22669
refactor: SNS_CONFIG 파일에 있는 SNSPlatform 타입 선언 제거
oesnuj f9b2acd
refactor: SNSPlatform 타입을 constants에서 types로 이동하여 책임 분리
oesnuj 6f63c5a
refactor: import 순서 정리 및 SNSPlatform 타입 경로 수정
oesnuj 7da94b3
refactor: SNSPlatform 타입 경로를 constants에서 types로 변경
oesnuj f88695e
test: SNS 링크 유효성 검사 테스트 코드 작성
oesnuj 00c5c28
Merge pull request #398 from Moadong/feature/#397-mixpanel-clubname-a…
seongwon030 831790a
Merge pull request #400 from Moadong/feature/#395-admin-club-sns-inpu…
oesnuj a2ebcb2
chore: sentry 라이브러리 추가
seongwon030 dead7b8
chore: ignore에 sentry env 추가
seongwon030 be3513a
feat: sentry 연결 추가
seongwon030 58b46db
fix: sendDefaultPii false로 변경
seongwon030 9b3b36b
Merge pull request #404 from Moadong/feature/#402-add-sentry-FE-113
seongwon030 4dc9330
feat: X(Twitter) 플랫폼용 아이콘 추가
oesnuj 14e8f6d
feat: YouTube 플랫폼용 아이콘 추가
oesnuj 2641daf
fix: startTime.current 프로퍼티 추가
seongwon030 024349f
fix: 중복 visited 제거
seongwon030 972f888
feat: Instagram 플랫폼용 아이콘(png) 추가
oesnuj f27a998
refactor: YouTube 플랫폼용 아이콘 비율 변경
oesnuj 09a16f7
feat: SNS_CONFIG에 플랫폼별 아이콘 이미지 속성 추가
oesnuj 4fa9f23
feat: SNS 링크 영역 추가를 위해 동아리 정보 섹션 height 조정
oesnuj c37acf8
feat: SNS 링크 아이콘 컴포넌트
oesnuj b3b6882
feat: SNS 링크 아이콘 컴포넌트
oesnuj cb40300
feat: InfoBox 동아리정보 섹션에 SNS 아이콘 추가
oesnuj e380a5f
fix: 모바일 환경에서 InfoBox 레이아웃 깨짐 문제 수정
oesnuj 836c188
refactor: SnsLinkIcons 컴포넌트의 재사용성과 일반성 개선
oesnuj 9ea3cee
refactor: SnsLinkIcons 컴포넌트 props 네이밍 개선
oesnuj 3194092
fix: 모바일 환경에서 InfoBox의 gap 속성 수정
oesnuj c456740
feat: form스타일 컴포넌트 추가
seongwon030 b00a18c
feat: onClick 선택적 프로퍼티로 설정
seongwon030 a45168e
feat: type 프로퍼티 추가
seongwon030 4bf5e2c
feat: 로그인박스 form태그로 감싸기
seongwon030 a34ebfc
feat: 버튼 type속성 컴포넌트에 전달
seongwon030 3540bca
Merge pull request #408 from Moadong/fix/#407-useref-start-time-curre…
seongwon030 c914817
Merge pull request #379 from Moadong/fix/#378-club-tag-duplicate-key-…
seongwon030 8c30dce
Merge pull request #411 from Moadong/feature/#410-adminPage-login-ent…
seongwon030 0cff80b
Merge pull request #409 from Moadong/feature/#403-club-detail-sns-dis…
oesnuj File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -16,4 +16,6 @@ build-storybook.log | |
| *.csr | ||
|
|
||
| *storybook.log | ||
| coverage/ | ||
| coverage/ | ||
| # Sentry Config File | ||
| .env.sentry-build-plugin | ||
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| import youtube_icon from '@/assets/images/icons/sns/youtube_icon.svg'; | ||
| import instagram_icon from '@/assets/images/icons/sns/instagram_icon.png'; | ||
| import x_icon from '@/assets/images/icons/sns/x_icon.svg'; | ||
|
|
||
| export const SNS_CONFIG = { | ||
| instagram: { | ||
| label: '인스타그램', | ||
| placeholder: 'https://www.instagram.com/id', | ||
| regex: /^https:\/\/(www\.)?instagram\.com\/[A-Za-z0-9._%-]+\/?$/, | ||
| icon: instagram_icon, | ||
| }, | ||
| youtube: { | ||
| label: '유튜브', | ||
| placeholder: 'https://www.youtube.com/@id', | ||
| regex: /^https:\/\/(www\.)?youtube\.com\/(channel\/|@)[A-Za-z0-9._%-]+\/?$/, | ||
| icon: youtube_icon, | ||
| }, | ||
| x: { | ||
| label: 'X', | ||
| placeholder: 'https://x.com/id', | ||
| regex: /^https:\/\/(www\.)?x\.com\/[A-Za-z0-9._%-]+\/?$/, | ||
| icon: x_icon, | ||
| }, | ||
| } as const; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,44 +1,45 @@ | ||
| import { useEffect } from 'react'; | ||
| import { useEffect, useRef } from 'react'; | ||
| import { useLocation } from 'react-router-dom'; | ||
| import mixpanel from 'mixpanel-browser'; | ||
|
|
||
| const useTrackPageView = (pageName: string) => { | ||
| const useTrackPageView = (pageName: string, clubName?: string) => { | ||
| const location = useLocation(); | ||
| const isTracked = useRef(false); | ||
| const startTime = useRef(Date.now()); | ||
|
|
||
| useEffect(() => { | ||
| const startTime = Date.now(); | ||
|
|
||
| // 페이지 방문 이벤트 | ||
| mixpanel.track(`${pageName} Visited`, { | ||
| url: window.location.href, | ||
| timestamp: startTime, | ||
| timestamp: startTime.current, | ||
| referrer: document.referrer || 'direct', | ||
| clubName, | ||
| }); | ||
|
|
||
| const trackPageDuration = () => { | ||
| const duration = Date.now() - startTime; | ||
| if (isTracked.current) return; | ||
| const duration = Date.now() - startTime.current; | ||
| mixpanel.track(`${pageName} Duration`, { | ||
| url: window.location.href, | ||
| duration: duration, // milliseconds | ||
| duration_seconds: Math.round(duration / 1000), // Convert to seconds | ||
| duration: duration, | ||
| duration_seconds: Math.round(duration / 1000), | ||
| clubName, | ||
| }); | ||
| isTracked.current = true; | ||
| }; | ||
|
|
||
| // 사용자가 페이지를 떠날 때 (페이지 종료 또는 새 페이지 이동) | ||
| window.addEventListener('beforeunload', trackPageDuration); | ||
|
|
||
| // 사용자가 탭을 변경하거나 백그라운드로 이동할 때 | ||
| document.addEventListener('visibilitychange', () => { | ||
| if (document.hidden) { | ||
| trackPageDuration(); | ||
| } | ||
| }); | ||
|
|
||
| return () => { | ||
| trackPageDuration(); | ||
| window.removeEventListener('beforeunload', trackPageDuration); | ||
| document.removeEventListener('visibilitychange', trackPageDuration); | ||
| }; | ||
| }, [location.pathname]); | ||
| }, [location.pathname, clubName]); | ||
| }; | ||
|
|
||
| export default useTrackPageView; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.