diff --git a/src/App.tsx b/src/App.tsx index 6d98118..87631bb 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -94,11 +94,8 @@ function App() { } /> {/* 분석 페이지는 더 이상 인증이 필요하지 않음 */} } /> - - - - } /> + {/* 보안 및 개인정보 페이지도 로그인 없이 접근 가능하도록 수정 */} + } /> diff --git a/src/components/security/DataResetSection.tsx b/src/components/security/DataResetSection.tsx index a39ca89..b8cc37e 100644 --- a/src/components/security/DataResetSection.tsx +++ b/src/components/security/DataResetSection.tsx @@ -1,3 +1,4 @@ + import React, { useState } from 'react'; import { Trash2, Loader2 } from 'lucide-react'; import { Button } from '@/components/ui/button'; @@ -79,7 +80,6 @@ const DataResetSection = () => { toast({ title: "모든 데이터가 초기화되었습니다.", description: "모든 예산, 지출 내역, 설정이 초기화되었습니다.", - duration: 3000 }); setIsResetDialogOpen(false); console.log('모든 데이터 초기화 완료'); @@ -93,7 +93,6 @@ const DataResetSection = () => { title: "데이터 초기화 실패", description: "데이터를 초기화하는 중 문제가 발생했습니다.", variant: "destructive", - duration: 4000 }); } finally { setIsResetting(false); diff --git a/src/pages/SecurityPrivacySettings.tsx b/src/pages/SecurityPrivacySettings.tsx index 5d4de32..f17ce59 100644 --- a/src/pages/SecurityPrivacySettings.tsx +++ b/src/pages/SecurityPrivacySettings.tsx @@ -1,82 +1,55 @@ import React, { useState } from 'react'; -import { Shield, Lock, Key, Fingerprint, Eye, EyeOff, UserX } from 'lucide-react'; import SecurityHeader from '@/components/security/SecurityHeader'; import SecuritySettingsList from '@/components/security/SecuritySettingsList'; import DataResetSection from '@/components/security/DataResetSection'; import SaveSettingsButton from '@/components/security/SaveSettingsButton'; import { SecuritySetting } from '@/components/security/types'; +import { FingerPrintIcon, EyeOffIcon, LockIcon } from 'lucide-react'; const SecurityPrivacySettings = () => { - const [settings, setSettings] = useState([ + const [securitySettings, setSecuritySettings] = useState([ { - id: 'twoFactor', - title: '2단계 인증', - description: '로그인 시 추가 인증을 요구합니다.', - icon: , + id: 'biometric', + title: '생체 인증 사용', + description: '지문 또는 Face ID를 사용하여 앱에 로그인합니다.', + icon: , enabled: false, }, { - id: 'loginNotifications', - title: '로그인 알림', - description: '새로운 기기에서 로그인할 때 알림을 받습니다.', - icon: , + id: 'screen_lock', + title: '앱 화면 잠금', + description: '일정 시간 미사용 시 자동으로 앱 화면을 잠급니다.', + icon: , enabled: true, }, { - id: 'biometricLogin', - title: '생체 인증 로그인', - description: '지문이나 얼굴 인식을 통해 로그인합니다.', - icon: , - enabled: false, - }, - { - id: 'dataEncryption', - title: '데이터 암호화', - description: '모든 개인 데이터를 암호화합니다.', - icon: , - enabled: true, - }, - { - id: 'sessionTimeout', - title: '세션 자동 종료', - description: '일정 시간 후 자동으로 로그아웃합니다.', - icon: , - enabled: true, - }, - { - id: 'privacyMode', - title: '개인정보 보호 모드', - description: '타인이 거래 내역을 볼 수 없도록 합니다.', - icon: , - enabled: false, - }, - { - id: 'dataDeletion', - title: '계정 삭제 요청', - description: '모든 개인정보와 데이터를 영구 삭제합니다.', - icon: , + id: 'private_mode', + title: '프라이빗 모드', + description: '잔액과 지출 내역을 다른 사람에게 숨깁니다.', + icon: , enabled: false, }, ]); + const handleSaveSettings = () => { + // 설정 저장 로직 + console.log('보안 설정 저장:', securitySettings); + }; + return ( -
+
- {/* Header */} - {/* Security Settings */} - - {/* Data Reset Section */} + - - {/* Save Button */} - + +
); diff --git a/src/pages/Settings.tsx b/src/pages/Settings.tsx index 83fc951..772a1c4 100644 --- a/src/pages/Settings.tsx +++ b/src/pages/Settings.tsx @@ -1,3 +1,4 @@ + import React from 'react'; import { useNavigate } from 'react-router-dom'; import NavBar from '@/components/NavBar'; @@ -52,17 +53,8 @@ const Settings = () => { navigate('/login'); }; - const handleProtectedRouteClick = (path: string, label: string) => { - if (!user) { - toast({ - title: "로그인 필요", - description: `${label}에 접근하려면 로그인이 필요합니다.`, - variant: "destructive", - }); - navigate('/login'); - } else { - navigate(path); - } + const handleClick = (path: string) => { + navigate(path); }; return
@@ -112,19 +104,19 @@ const Settings = () => { icon={User} label="프로필 관리" description="프로필 및 비밀번호 설정" - onClick={() => handleProtectedRouteClick('/profile', '프로필 관리')} + onClick={() => user ? navigate('/profile') : navigate('/login')} /> handleProtectedRouteClick('/payment-methods', '결제 방법')} + onClick={() => user ? navigate('/payment-methods') : navigate('/login')} /> handleProtectedRouteClick('/notifications', '알림 설정')} + onClick={() => user ? navigate('/notifications') : navigate('/login')} />
@@ -134,7 +126,8 @@ const Settings = () => { icon={Lock} label="보안 및 개인정보" description="보안 및 데이터 설정" - onClick={() => handleProtectedRouteClick('/security-privacy', '보안 및 개인정보')} + // 로그인 상태와 관계없이 접근 가능하도록 변경 + onClick={() => navigate('/security-privacy')} />