-
Notifications
You must be signed in to change notification settings - Fork 2
[Feat/native/#231] 회원가입 약관 페이지 연결 #232
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
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,14 +1,21 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import { forwardRef, useCallback, useMemo, useState } from 'react'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import { Text, View } from 'react-native'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import { Pressable, Text, View } from 'react-native'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import BottomSheet, { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| BottomSheetBackdrop, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| BottomSheetBackdropProps, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| BottomSheetView, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } from '@gorhom/bottom-sheet'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import * as WebBrowser from 'expo-web-browser'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import { colors } from '@theme/tokens'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import { CheckIcon, ChevronRightIcon } from 'lucide-react-native'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import { AnimatedPressable, Container } from '@components/common'; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| const TERMS_URLS = { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| service: 'https://www.notion.so/2b4fa6e6a8fe80119c13d84d794a63a3?source=copy_link', | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| privacy: 'https://www.notion.so/2b4fa6e6a8fe8031ac2aef3009552575?source=copy_link', | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| marketing: 'https://www.notion.so/2b4fa6e6a8fe80359e8bf33c870967d9?source=copy_link', | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } as const; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| type AgreementState = { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| age: boolean; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| service: boolean; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -124,23 +131,27 @@ const TermsConsentSheet = forwardRef<BottomSheet, TermsConsentSheetProps>( | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| onToggle={() => toggleAgreement('service')} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| label='(필수) 서비스 이용약관 동의' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| withChevron | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| onChevronPress={() => WebBrowser.openBrowserAsync(TERMS_URLS.service)} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <ConsentRow | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| checked={agreements.privacy} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| onToggle={() => toggleAgreement('privacy')} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| label='(필수) 개인정보 수집 및 이용 필수동의' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| withChevron | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| onChevronPress={() => WebBrowser.openBrowserAsync(TERMS_URLS.privacy)} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <ConsentRow | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| checked={agreements.marketing} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| onToggle={() => toggleAgreement('marketing')} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| label='(선택) 마케팅 정보 수신 동의' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| withChevron | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| onChevronPress={() => WebBrowser.openBrowserAsync(TERMS_URLS.marketing)} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+134
to
+148
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| onChevronPress={() => WebBrowser.openBrowserAsync(TERMS_URLS.service)} | |
| /> | |
| <ConsentRow | |
| checked={agreements.privacy} | |
| onToggle={() => toggleAgreement('privacy')} | |
| label='(필수) 개인정보 수집 및 이용 필수동의' | |
| withChevron | |
| onChevronPress={() => WebBrowser.openBrowserAsync(TERMS_URLS.privacy)} | |
| /> | |
| <ConsentRow | |
| checked={agreements.marketing} | |
| onToggle={() => toggleAgreement('marketing')} | |
| label='(선택) 마케팅 정보 수신 동의' | |
| withChevron | |
| onChevronPress={() => WebBrowser.openBrowserAsync(TERMS_URLS.marketing)} | |
| onChevronPress={() => { | |
| WebBrowser.openBrowserAsync(TERMS_URLS.service).catch(error => { | |
| console.error('Failed to open service terms URL:', error); | |
| }); | |
| }} | |
| /> | |
| <ConsentRow | |
| checked={agreements.privacy} | |
| onToggle={() => toggleAgreement('privacy')} | |
| label='(필수) 개인정보 수집 및 이용 필수동의' | |
| withChevron | |
| onChevronPress={() => { | |
| WebBrowser.openBrowserAsync(TERMS_URLS.privacy).catch(error => { | |
| console.error('Failed to open privacy terms URL:', error); | |
| }); | |
| }} | |
| /> | |
| <ConsentRow | |
| checked={agreements.marketing} | |
| onToggle={() => toggleAgreement('marketing')} | |
| label='(선택) 마케팅 정보 수신 동의' | |
| withChevron | |
| onChevronPress={() => { | |
| WebBrowser.openBrowserAsync(TERMS_URLS.marketing).catch(error => { | |
| console.error('Failed to open marketing terms URL:', error); | |
| }); | |
| }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consider moving the terms URLs to environment variables or a centralized configuration file. The app.config.ts file shows a pattern of using environment variables for URLs and configuration values (lines 134-145). Hardcoding Notion URLs directly in the component makes them harder to update across environments or when terms pages change. This would improve maintainability by centralizing configuration values.