From 6340475544a777fac14765b4145c655a7bd7c7ee Mon Sep 17 00:00:00 2001 From: "elogio.mi@gmail.com" Date: Fri, 18 Jul 2025 17:33:41 +0900 Subject: [PATCH 01/86] =?UTF-8?q?[FEAT]=20PR=20=EB=A9=94=EB=AA=A8=EC=82=AC?= =?UTF-8?q?=ED=95=AD=20=ED=85=9C=ED=94=8C=EB=A6=BF=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/pull_request_template.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/pull_request_template.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..b63a08d --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1 @@ +## 🚧 작업 내용 \ No newline at end of file From 5556f3d24c608e956371f47143c1c43ca9684784 Mon Sep 17 00:00:00 2001 From: yhy0009 Date: Tue, 22 Jul 2025 11:03:23 +0900 Subject: [PATCH 02/86] =?UTF-8?q?feat:=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EA=B2=B0=EA=B3=BC=20DB=20=EC=A0=80=EC=9E=A5,=20=EC=9A=94?= =?UTF-8?q?=EA=B5=AC=EC=82=AC=ED=95=AD(testid=20=EB=B0=98=ED=99=98)=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/api.js | 26 +++++++------ src/pages/TestPage.jsx | 87 ++++++++++++++++++++++-------------------- 2 files changed, 60 insertions(+), 53 deletions(-) diff --git a/src/lib/api.js b/src/lib/api.js index f7f1f63..300e88e 100644 --- a/src/lib/api.js +++ b/src/lib/api.js @@ -69,28 +69,31 @@ export const authAPI = { }, } -// 테스트 관련 API +// 테스트 관련 API (수정함) export const testAPI = { saveTestResult: async (testData) => { try { - return await apiRequest("/test/save", { + const response = await apiRequest("/test/save", { method: "POST", body: JSON.stringify(testData), - }) + }); + + // 백엔드 응답: { testId: 123 } + return response; // { testId: ... } 형태 그대로 반환 } catch (error) { - console.log("Backend API not available, saving to localStorage (dev mode)...") + console.log("Backend API not available, saving to localStorage (dev mode)..."); - // 로컬 스토리지에 저장 (개발용) - const history = JSON.parse(localStorage.getItem("dev-test-history") || "[]") + const history = JSON.parse(localStorage.getItem("dev-test-history") || "[]"); const newResult = { - id: Date.now().toString(), + id: Date.now().toString(), // testId 대신 ...testData, completedAt: testData.completedAt || new Date().toISOString(), - } - history.unshift(newResult) // 최신 결과가 맨 앞으로 오도록 - localStorage.setItem("dev-test-history", JSON.stringify(history)) + }; + history.unshift(newResult); + localStorage.setItem("dev-test-history", JSON.stringify(history)); - return { success: true, result: newResult } + // 백엔드 구조와 동일하게 맞춰서 testId처럼 반환 + return { testId: newResult.id }; } }, @@ -116,4 +119,5 @@ export const testAPI = { return MOCK_RECOMMENDATIONS[personality] || MOCK_RECOMMENDATIONS["균형잡힌 분석형"] } }, + } diff --git a/src/pages/TestPage.jsx b/src/pages/TestPage.jsx index ed02f3d..b7d38fb 100644 --- a/src/pages/TestPage.jsx +++ b/src/pages/TestPage.jsx @@ -77,51 +77,54 @@ export default function TestPage() { } } + // 테스트 결과 제출 (수정함) const handleSubmit = async () => { - setIsSubmitting(true) - - try { - // 점수 계산 로직 - const totalScore = Object.values(answers).reduce((sum, score) => sum + score, 0) - const averageScore = totalScore / questions.length - - let personality = "" - if (averageScore >= 4) { - personality = "외향적 리더형" - } else if (averageScore >= 3) { - personality = "균형잡힌 분석형" - } else { - personality = "신중한 사색형" - } - - // 백엔드에 테스트 결과 저장 - const testResult = { - personality, - score: averageScore, - answers, - completedAt: new Date().toISOString(), - } - - await testAPI.saveTestResult(testResult) - - // 결과 페이지로 이동 (결과는 백엔드에서 조회) - navigate("/result") // router.push 대신 navigate 사용 - - toast({ - title: "테스트 완료", - description: "결과를 확인해보세요!", - }) - } catch (error) { - console.error("Test submission failed:", error) - toast({ - title: "오류", - description: "테스트 결과 저장 중 오류가 발생했습니다.", - variant: "destructive", - }) - } finally { - setIsSubmitting(false) + setIsSubmitting(true) + + try { + const totalScore = Object.values(answers).reduce((sum, score) => sum + score, 0) + const averageScore = totalScore / questions.length + + let personality = "" + if (averageScore >= 4) { + personality = "외향적 리더형" + } else if (averageScore >= 3) { + personality = "균형잡힌 분석형" + } else { + personality = "신중한 사색형" } + + const testResult = { + userId: user.id, // 반드시 존재해야 함 + userType: personality, + typeDescription: "당신은 " + personality + " 성향입니다.", + completedAt: new Date().toISOString() + } + + // 백엔드에 저장 + testId 응답 받기 + const response = await testAPI.saveTestResult(testResult) + // console.log("백엔드 응답:", response); + const testId = response.testId + + // 결과 페이지로 이동 (testId 넘기기) + navigate(`/result?testId=${testId}`) + + toast({ + title: "테스트 완료", + description: "결과를 확인해보세요!", + }) + } catch (error) { + console.error("Test submission failed:", error) + toast({ + title: "오류", + description: "테스트 결과 저장 중 오류가 발생했습니다.", + variant: "destructive", + }) + } finally { + setIsSubmitting(false) } +} + const progress = ((currentQuestion + 1) / questions.length) * 100 const isAnswered = answers[currentQuestion] !== undefined From 38e883fc0e50912789e1349fb6a2e83e35bafc99 Mon Sep 17 00:00:00 2001 From: "elogio.mi@gmail.com" Date: Tue, 22 Jul 2025 22:45:55 +0900 Subject: [PATCH 03/86] =?UTF-8?q?[FIX]=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20?= =?UTF-8?q?=EC=8B=9C,=20=20email=20->=20accountId=EB=A1=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/auth-provider.jsx | 72 ++++++++----------------- src/components/header.jsx | 2 +- src/lib/api.js | 91 ++++++++++++++++++++++++++------ src/pages/LoginPage.jsx | 47 ++++++++--------- src/pages/RegisterPage.jsx | 16 +++--- 5 files changed, 127 insertions(+), 101 deletions(-) diff --git a/src/components/auth-provider.jsx b/src/components/auth-provider.jsx index fdafd5a..7fe56b4 100644 --- a/src/components/auth-provider.jsx +++ b/src/components/auth-provider.jsx @@ -1,9 +1,8 @@ "use client" import React, { createContext, useContext, useState, useEffect } from "react" -import { authAPI } from "../lib/api" // 상대 경로로 변경 -import { getCookie, deleteCookie } from "../lib/cookie-utils" // 상대 경로로 변경 -import { TEST_ACCOUNTS, MOCK_TEST_HISTORY } from "../lib/mock-data" // 상대 경로로 변경 +import { authAPI } from "../lib/api" +import { TEST_ACCOUNTS, MOCK_TEST_HISTORY } from "../lib/mock-data" const AuthContext = createContext(undefined) @@ -17,14 +16,12 @@ export function AuthProvider({ children }) { const checkAuthStatus = async () => { try { - const token = getCookie("auth-token") - if (token) { - const userData = await authAPI.getCurrentUser() - setUser(userData) - } + // AccessToken은 HttpOnly 쿠키로 자동 전송됨 + const userData = await authAPI.getCurrentUser() + console.log("Current user data:", userData) // 디버깅용 + setUser(userData) } catch (error) { - console.log("Backend API not available, checking local storage for dev user...") - + console.log("Auth check failed, checking test accounts...") // 백엔드가 없을 경우 로컬 스토리지 확인 const savedUser = localStorage.getItem("dev-user") if (savedUser) { @@ -35,79 +32,54 @@ export function AuthProvider({ children }) { } } - const login = async (email, password) => { + const login = async (accountId, password) => { try { - // 먼저 백엔드 API 시도 - const response = await authAPI.login(email, password) + const response = await authAPI.login(accountId, password) + console.log("Login response:", response) // 디버깅용 + if (response.success) { - setUser(response.user) + // 로그인 성공 후 사용자 정보 다시 조회 + await checkAuthStatus() return true } } catch (error) { - console.log("Backend API not available, trying test accounts...") + console.log("Login failed, trying test accounts...") // 백엔드가 없을 경우 테스트 계정으로 fallback - const testAccount = TEST_ACCOUNTS.find((account) => account.email === email && account.password === password) + const testAccount = TEST_ACCOUNTS.find( + (account) => account.username === username && account.password === password + ) if (testAccount) { const userData = { id: testAccount.id, name: testAccount.name, - email: testAccount.email, - personality: "외향적 리더형", // 테스트 계정의 기본 성향 + username: testAccount.username, + personality: "외향적 리더형", } setUser(userData) - - // 로컬 스토리지에 임시 저장 (개발용) localStorage.setItem("dev-user", JSON.stringify(userData)) localStorage.setItem("dev-test-history", JSON.stringify(MOCK_TEST_HISTORY)) - return true } } return false } - const register = async (name, email, password) => { - try { - const response = await authAPI.register(name, email, password) - if (response.success) { - setUser(response.user) - return true - } - } catch (error) { - console.log("Backend API not available, creating test account...") - - // 백엔드가 없을 경우 임시 계정 생성 - const userData = { - id: Date.now().toString(), - name: name, - email: email, - personality: null, - } - setUser(userData) - localStorage.setItem("dev-user", JSON.stringify(userData)) - return true - } - return false - } - const logout = async () => { try { await authAPI.logout() } catch (error) { console.error("Logout failed:", error) } finally { - // 클라이언트 상태 초기화 setUser(null) - deleteCookie("auth-token") - localStorage.removeItem("dev-user") // 개발용 로컬 스토리지도 삭제 - localStorage.removeItem("dev-test-history") // 개발용 테스트 히스토리도 삭제 + localStorage.removeItem("dev-user") + localStorage.removeItem("dev-test-history") } } return ( - + {children} ) diff --git a/src/components/header.jsx b/src/components/header.jsx index 887db2a..b2a130d 100644 --- a/src/components/header.jsx +++ b/src/components/header.jsx @@ -24,7 +24,7 @@ export function Header() {
{user ? ( <> - 안녕하세요, {user.name}님 + 안녕하세요, {user.username}님
- {/* 테스트 계정 안내 섹션을 더 명확하게 표시: */}

🧪 테스트 계정

- 계정 1: test@example.com / password123 + 계정 1: testuser / password123

- 계정 2: dev@example.com / dev123 + 계정 2: devuser / dev123

* 백엔드 서버가 없어도 테스트 가능합니다

diff --git a/src/pages/RegisterPage.jsx b/src/pages/RegisterPage.jsx index 5cd190f..94a7113 100644 --- a/src/pages/RegisterPage.jsx +++ b/src/pages/RegisterPage.jsx @@ -14,7 +14,7 @@ import { useToast } from "../hooks/use-toast" // 상대 경로로 변경 export default function RegisterPage() { const [name, setName] = useState("") - const [email, setEmail] = useState("") + const [username, setUsername] = useState("") // email 대신 username으로 변경 const [password, setPassword] = useState("") const [confirmPassword, setConfirmPassword] = useState("") const [isLoading, setIsLoading] = useState(false) @@ -46,7 +46,7 @@ export default function RegisterPage() { setIsLoading(true) try { - const success = await register(name, email, password) + const success = await register(name, username, password) // email 대신 username 전달 if (success) { toast({ title: "회원가입 성공", @@ -102,13 +102,13 @@ export default function RegisterPage() { />
- + setEmail(e.target.value)} + id="username" + type="text" + placeholder="사용할 아이디를 입력하세요" + value={username} + onChange={(e) => setUsername(e.target.value)} required />
From d35578e923bea00cfd0cf7f69669d8498c7ba631 Mon Sep 17 00:00:00 2001 From: "elogio.mi@gmail.com" Date: Wed, 23 Jul 2025 02:30:56 +0900 Subject: [PATCH 04/86] =?UTF-8?q?[FEAT]=20entity=EC=97=90=20=EB=A7=9E?= =?UTF-8?q?=EA=B2=8C=20=EB=B3=80=EC=88=98=EB=AA=85=20=EC=9E=AC=EC=A0=95?= =?UTF-8?q?=EC=9D=98=20=EB=B0=8F=20=EC=95=84=EC=9D=B4=EB=94=94=20=EC=A4=91?= =?UTF-8?q?=EB=B3=B5=ED=99=95=EC=9D=B8,=20=ED=9A=8C=EC=9B=90=EA=B0=80?= =?UTF-8?q?=EC=9E=85=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/api.js | 29 +++++-- src/pages/RegisterPage.jsx | 170 +++++++++++++++++-------------------- 2 files changed, 102 insertions(+), 97 deletions(-) diff --git a/src/lib/api.js b/src/lib/api.js index 0a6bd41..c862661 100644 --- a/src/lib/api.js +++ b/src/lib/api.js @@ -83,11 +83,17 @@ export const authAPI = { }, // 회원가입 - register: async (name, email, password) => { - return apiRequest("/auth/register", { - method: "POST", - body: JSON.stringify({ name, email, password }), - }) + register: async (username, accountId, password) => { + try { + const response = await apiRequest("/auth/join", { + method: "POST", + body: JSON.stringify({ username, accountId, password }), + }) + return response + } catch (error) { + console.error("Register failed:", error) + throw error + } }, // 로그아웃 @@ -124,6 +130,19 @@ export const authAPI = { throw error } }, + + // 아이디 중복 확인 + checkAccountId: async (accountId) => { + try { + const response = await apiRequest(`/auth/duplicate?accountId=${encodeURIComponent(accountId)}`, { + method: "GET" + }) + return response + } catch (error) { + console.error("AccountId check failed:", error) + throw error + } + }, } // 테스트 관련 API diff --git a/src/pages/RegisterPage.jsx b/src/pages/RegisterPage.jsx index 94a7113..68ac326 100644 --- a/src/pages/RegisterPage.jsx +++ b/src/pages/RegisterPage.jsx @@ -1,43 +1,65 @@ "use client" -import React from 'react' -import { useState } from "react" -import { useNavigate, Link } from "react-router-dom" // useNavigate와 Link 임포트 -import { useAuth } from "../components/auth-provider" // 상대 경로로 변경 -import { Header } from "../components/header" // 상대 경로로 변경 -import { Button } from "../components/ui/button" // 상대 경로로 변경 -import { Card, CardContent, CardHeader, CardTitle } from "../components/ui/card" // 상대 경로로 변경 -import { Input } from "../components/ui/input" // 상대 경로로 변경 -import { Label } from "../components/ui/label" // 상대 경로로 변경 -import { Separator } from "../components/ui/separator" // 상대 경로로 변경 -import { useToast } from "../hooks/use-toast" // 상대 경로로 변경 +import React, { useState } from "react" +import { useNavigate, Link } from "react-router-dom" +import { Header } from "../components/header" +import { Button } from "../components/ui/button" +import { Card, CardContent, CardHeader, CardTitle } from "../components/ui/card" +import { Input } from "../components/ui/input" +import { Label } from "../components/ui/label" +import { Separator } from "../components/ui/separator" +import { useToast } from "../hooks/use-toast" +import { authAPI } from "../lib/api" export default function RegisterPage() { - const [name, setName] = useState("") - const [username, setUsername] = useState("") // email 대신 username으로 변경 + const [username, setUsername] = useState("") + const [accountId, setAccountId] = useState("") const [password, setPassword] = useState("") const [confirmPassword, setConfirmPassword] = useState("") const [isLoading, setIsLoading] = useState(false) - const { register } = useAuth() - const navigate = useNavigate() // useRouter 대신 useNavigate 사용 + const [isAccountIdValid, setIsAccountIdValid] = useState(false) + const navigate = useNavigate() const { toast } = useToast() + // 중복확인 + const checkAccountId = async () => { + if (!accountId.trim()) { + toast({ + description: "아이디를 입력해주세요.", + variant: "destructive", + }) + return + } + + try { + const response = await authAPI.checkAccountId(accountId) + setIsAccountIdValid(true) + toast({ + description: "사용 가능한 아이디입니다." + }) + } catch (error) { + setIsAccountIdValid(false) + toast({ + description: "이미 사용중인 아이디입니다.", + variant: "destructive", + }) + } + } + const handleSubmit = async (e) => { e.preventDefault() - if (password !== confirmPassword) { + if (!isAccountIdValid) { toast({ - title: "비밀번호 불일치", - description: "비밀번호가 일치하지 않습니다.", + description: "아이디 중복확인을 해주세요.", variant: "destructive", }) return } - if (password.length < 6) { + if (password !== confirmPassword) { toast({ - title: "비밀번호 오류", - description: "비밀번호는 6자 이상이어야 합니다.", + description: "비밀번호가 일치하지 않습니다.", variant: "destructive", }) return @@ -46,23 +68,15 @@ export default function RegisterPage() { setIsLoading(true) try { - const success = await register(name, username, password) // email 대신 username 전달 - if (success) { + const response = await authAPI.register(username, accountId, password) + if (response.success) { toast({ - title: "회원가입 성공", - description: "환영합니다! 로그인되었습니다.", - }) - navigate("/") // router.push 대신 navigate 사용 - } else { - toast({ - title: "회원가입 실패", - description: "회원가입 중 오류가 발생했습니다.", - variant: "destructive", + description: "회원가입이 완료되었습니다." }) + navigate("/login") } } catch (error) { toast({ - title: "오류", description: "회원가입 중 오류가 발생했습니다.", variant: "destructive", }) @@ -71,53 +85,54 @@ export default function RegisterPage() { } } - const handleGoogleRegister = () => { - // Google OAuth 회원가입 - 백엔드 엔드포인트로 리다이렉트 - // Vite 환경 변수는 import.meta.env.VITE_ 접두사를 사용합니다. - window.location.href = `${import.meta.env.VITE_API_URL || "http://localhost:8080/api"}/auth/google` - } - return (
-
회원가입 -

새 계정을 만들어 성향 테스트를 시작하세요

- - setName(e.target.value)} - required - /> -
-
- + setUsername(e.target.value)} required />
+
+ +
+ { + setAccountId(e.target.value) + setIsAccountIdValid(false) + }} + required + /> + +
+
setPassword(e.target.value)} required @@ -129,49 +144,20 @@ export default function RegisterPage() { setConfirmPassword(e.target.value)} required />
- - - - - - -
-

- 이미 계정이 있으신가요?{" "} - - 로그인 - -

-
From 65d85ce81f18a27269676c007b9f12360d86362f Mon Sep 17 00:00:00 2001 From: "elogio.mi@gmail.com" Date: Wed, 23 Jul 2025 02:41:41 +0900 Subject: [PATCH 05/86] =?UTF-8?q?[FIX]=20=EB=B9=84=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20=EC=83=81=ED=83=9C=20console=20=EC=98=88=EC=99=B8?= =?UTF-8?q?=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/auth-provider.jsx | 22 ++++++++++++++-------- src/lib/api.js | 26 +++++++++++++++++++++++--- src/main.jsx | 4 +--- 3 files changed, 38 insertions(+), 14 deletions(-) diff --git a/src/components/auth-provider.jsx b/src/components/auth-provider.jsx index 7fe56b4..437b271 100644 --- a/src/components/auth-provider.jsx +++ b/src/components/auth-provider.jsx @@ -16,17 +16,23 @@ export function AuthProvider({ children }) { const checkAuthStatus = async () => { try { - // AccessToken은 HttpOnly 쿠키로 자동 전송됨 const userData = await authAPI.getCurrentUser() - console.log("Current user data:", userData) // 디버깅용 - setUser(userData) + if (userData) { + console.log("✅ 로그인된 사용자:", userData.username) + setUser(userData) + } else { + // 백엔드가 없을 경우 로컬 스토리지 확인 + const savedUser = localStorage.getItem("dev-user") + if (savedUser) { + console.log("💾 개발 모드: 로컬 스토리지에서 사용자 정보 복원") + setUser(JSON.parse(savedUser)) + } + } } catch (error) { - console.log("Auth check failed, checking test accounts...") - // 백엔드가 없을 경우 로컬 스토리지 확인 - const savedUser = localStorage.getItem("dev-user") - if (savedUser) { - setUser(JSON.parse(savedUser)) + if (error.message !== "Unauthorized") { + console.error("❌ 인증 상태 확인 중 오류 발생:", error) } + setUser(null) } finally { setIsLoading(false) } diff --git a/src/lib/api.js b/src/lib/api.js index c862661..9561cc0 100644 --- a/src/lib/api.js +++ b/src/lib/api.js @@ -8,7 +8,7 @@ const apiRequest = async (endpoint, options = {}) => { const url = `${API_BASE_URL}${endpoint}` const defaultOptions = { - credentials: "include", // 쿠키 자동 전송을 위해 필수 + credentials: "include", headers: { "Content-Type": "application/json", "Accept": "application/json", @@ -20,6 +20,12 @@ const apiRequest = async (endpoint, options = {}) => { try { const response = await fetch(url, defaultOptions) + // 401 에러는 조용히 처리 + if (response.status === 401) { + console.log("🔒 로그인이 필요한 서비스입니다.") + throw new Error("Unauthorized") + } + // 응답의 Content-Type 헤더 확인 const contentType = response.headers.get("content-type") @@ -48,11 +54,17 @@ const apiRequest = async (endpoint, options = {}) => { status: response.status } } catch (error) { + if (error.message === "Unauthorized") { + throw error + } console.error("API request failed:", error) throw error } } +// 로그 상태를 추적하기 위한 변수 +let isAuthChecked = false; + // 인증 관련 API export const authAPI = { // 로그인 @@ -103,6 +115,7 @@ export const authAPI = { method: "POST", }) // HttpOnly 쿠키는 서버에서 제거됨 + isAuthChecked = false // 로그아웃 시 상태 초기화 } catch (error) { console.error("Logout failed:", error) throw error @@ -113,10 +126,17 @@ export const authAPI = { getCurrentUser: async () => { try { const response = await apiRequest("/auth/me") + if (!response.success && !isAuthChecked) { + console.log("👤 현재 비로그인 상태입니다.") + isAuthChecked = true + } return response.data } catch (error) { - console.error("Failed to get current user:", error) - throw error + if (!isAuthChecked) { + console.log("👤 현재 비로그인 상태입니다.") + isAuthChecked = true + } + return null } }, diff --git a/src/main.jsx b/src/main.jsx index f101ceb..b1f661f 100644 --- a/src/main.jsx +++ b/src/main.jsx @@ -4,7 +4,5 @@ import App from "./App.jsx" import "./index.css" // 전역 CSS 파일 ReactDOM.createRoot(document.getElementById("root")).render( - - - , + ) From 31fad4e381060ae975f92706a938d6450a84eb77 Mon Sep 17 00:00:00 2001 From: yhy0009 Date: Wed, 23 Jul 2025 14:44:05 +0900 Subject: [PATCH 06/86] =?UTF-8?q?feat:=20=EB=A7=88=EC=9D=B4=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=20=EA=B8=B0=EB=8A=A5=20=EC=99=84=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/api.js | 24 +++++++++++++--------- src/pages/MyPage.jsx | 49 +++++++++++++++++++++++++------------------- 2 files changed, 42 insertions(+), 31 deletions(-) diff --git a/src/lib/api.js b/src/lib/api.js index 300e88e..1d6b3d8 100644 --- a/src/lib/api.js +++ b/src/lib/api.js @@ -96,18 +96,22 @@ export const testAPI = { return { testId: newResult.id }; } }, + +// 테스트 히스토리 조회 (수정) + getTestHistory: async (userId) => { + try { + return await apiRequest(`/test/history?userId=${userId}`); + } catch (error) { + console.log("Backend API not available, using localStorage (dev mode)..."); + + // 로컬 스토리지에서 조회 (개발용) + const history = JSON.parse(localStorage.getItem("dev-test-history") || "[]"); + // userId로 필터링 (userId가 저장되어 있다면) + return history.filter(item => item.userId === userId); + } +}, - getTestHistory: async () => { - try { - return await apiRequest("/test/history") - } catch (error) { - console.log("Backend API not available, using localStorage (dev mode)...") - // 로컬 스토리지에서 조회 (개발용) - const history = JSON.parse(localStorage.getItem("dev-test-history") || "[]") - return history - } - }, getRecommendations: async (personality) => { try { diff --git a/src/pages/MyPage.jsx b/src/pages/MyPage.jsx index 2046f77..b227ac1 100644 --- a/src/pages/MyPage.jsx +++ b/src/pages/MyPage.jsx @@ -29,29 +29,35 @@ export default function MyPage() { if (user) { fetchTestHistory() } - }, [user, isLoading, navigate]) // 의존성 배열에 navigate 추가 - - const fetchTestHistory = async () => { - try { - const historyData = await testAPI.getTestHistory() - setHistory(historyData) - } catch (error) { - console.error("Failed to fetch test history:", error) - toast({ - title: "오류", - description: "테스트 히스토리를 불러오는 중 오류가 발생했습니다.", - variant: "destructive", - }) - } finally { - setLoading(false) - } + }, [user, isLoading]) + + + // 마이페이지 컨텐츠 히스토리 (수정) +const fetchTestHistory = async () => { + try { + const historyData = await testAPI.getTestHistory(user.id); + console.log("API 응답 데이터:", historyData); + setHistory(historyData); + } catch (error) { + console.error("Failed to fetch test history:", error); + toast({ + title: "오류", + description: "테스트 히스토리를 불러오는 중 오류가 발생했습니다.", + variant: "destructive", + }); + } finally { + setLoading(false); } +} + + const handleHistoryClick = async (item) => { try { setSelectedHistory(item) // 해당 성향의 추천 컨텐츠 조회 - const recs = await testAPI.getRecommendations(item.personality) + // const recs = await testAPI.getRecommendations(item.personality) + const recs = await testAPI.getRecommendations(item.userType) // userType으로 변경 setRecommendations(recs) } catch (error) { console.error("Failed to fetch recommendations:", error) @@ -103,7 +109,7 @@ export default function MyPage() {

내 성향

-

{history.length > 0 ? history[0].personality : "테스트를 완료해주세요"}

+

{history.length > 0 ? history[0].userType : "테스트를 완료해주세요"}

@@ -130,9 +136,10 @@ export default function MyPage() { >
-

{item.personality}

-

{formatDate(item.completedAt)}

-

점수: {item.score.toFixed(1)}점

+

{item.userType}

{/*personality -> 수정: userType 사용 */} +

{formatDate(item.createdAt)}

{/* item.completedAt -> 수정: createdAt 사용 */} + {/*

점수: {item.score.toFixed(1)}점

*/} +

점수: {typeof item.score === "number" ? item.score.toFixed(1) : "-"}점

{/* navigate 사용 */} + ) : (
- {history.map((item, index) => ( -
handleHistoryClick(item)} - > -
-
-

{item.userType}

{/*personality -> 수정: userType 사용 */} -

{formatDate(item.createdAt)}

{/* item.completedAt -> 수정: createdAt 사용 */} - {/*

점수: {item.score.toFixed(1)}점

*/} - {/*

점수: {typeof item.score === "number" ? item.score.toFixed(1) : "-"}점

*/} + {history.map((item, index) => { + const testInfo = getTestInfoById(item.testId); // ← 여기서 매칭 + return ( +
handleHistoryClick(item)} + > +
+
+

+ {testInfo?.userType || "성향 없음"} +

+

+ {testInfo?.typeDescription || "설명 없음"} +

+

+ {testInfo?.createdAt ? formatDate(testInfo.createdAt) : "날짜 없음"} +

+
+
-
-
- ))} + ); + })}
)} + + {/* 선택된 히스토리 상세 */} {selectedHistory && recommendations && ( @@ -163,40 +193,77 @@ origin/feat/test-to-connect-auth {/* Movie 탭 */} -
- {selectedHistory.Recommend?.Movie?.map((movie, index) => ( -
-

{movie.title}

-

개봉일: {movie.releaseDate.slice(0, 10)}

-

{movie.description}

- {movie.title} +
+ {recommendations?.Movie?.map((movie, index) => ( +
+ {movie.poster_path && ( + {movie.title} + )} +
+

제목: {movie.title}

+ + {movie.release_date && ( +

+ 개봉일: {new Date(movie.release_date).toLocaleDateString("ko-KR")} +

+ )} + + {movie.overview && ( +

+ 설명: {movie.overview} +

+ )}
- ))} -
- +
+ ))} +
+ {/* Book 탭 */} - -
- {selectedHistory.Recommend?.Book?.map((book, index) => ( -
-

{book.title}

-

저자: {book.author}

-

{book.description}

- {book.title} -
- ))} + + +
+ {recommendations?.Book?.map((book, index) => ( +
+ {book.image && ( + {book.title} + )} +
+

{book.title}

+ {book.author &&

저자: {book.author}

} + {book.description &&

설명: {book.description}

} +
- + ))} +
+
{/* Music 탭 */}
- {selectedHistory.Recommend?.Music?.map((music, index) => ( -
-

{music.title}

-

아티스트: {music.artist}

- {music.title} + {recommendations?.Music?.map((music, index) => ( +
+ {music.album && ( + {music.title} + )} +
+

제목: {music.title}

+ {music.artist && ( +

아티스트: {music.artist}

+ )} +
))}
diff --git a/src/pages/ResultPage.jsx b/src/pages/ResultPage.jsx index 77bfb04..f349b6e 100644 --- a/src/pages/ResultPage.jsx +++ b/src/pages/ResultPage.jsx @@ -15,7 +15,8 @@ import { useToast } from "../hooks/use-toast" // 상대 경로로 변경 export default function ResultPage() { const { user, isLoading } = useAuth() const navigate = useNavigate() // useRouter 대신 useNavigate 사용 - const [testResult, setTestResult] = useState(null) + const [latestResult, setLatestResult] = useState(null); // 👉 상단 성향용 + const [testDetail, setTestDetail] = useState(null); const [recommendations, setRecommendations] = useState(null) const [loading, setLoading] = useState(true) const { toast } = useToast() @@ -24,63 +25,44 @@ export default function ResultPage() { console.log("넘겨받은 testId:", testId); useEffect(() => { - if (!isLoading && !user) { - navigate("/login") // router.push 대신 navigate 사용 - return - } - - // if (user) { - // fetchLatestResult() - // } - // }, [user, isLoading, navigate]) // 의존성 배열에 navigate 추가 - if (user && testId) { - console.log("📦 testId 기반 기록 요청:", testId) // ✅ 로그로 확인 - contentAPI.getTestHistory(testId) // 이 호출이 있는지? - .then((res) => { - console.log("✅ 받아온 기록 전체:", res) - setTestResult(res) // 여기서 testResult로 저장 - setRecommendations(res.Recommend) // 추천 결과도 저장 - }) - .catch(err => console.error("❌ 요청 실패:", err)) - } -}, [user, isLoading, testId]) - -const fetchLatestResult = async () => { - try { - if (testId) { - // testId가 있으면 해당 ID로 추천만 불러오기 - const recs = await contentAPI.requestRecommendation(testId) - setRecommendations(recs) - } else { - // testId가 없으면 기존 로직으로 사용자 기반 최신 결과 조회 - // const history = await testAPI.getTestHistory(user.id) - // user.id를 인자로 전달 - const history = await testAPI.getTestResultHistory(user.id); - - if (history.length === 0) { - navigate("/test") - return + const fetchBoth = async () => { + if (!user || isLoading) return; + + try { + // 1. testId로 상세 테스트 결과 조회 + if (testId) { + const res = await contentAPI.getTestHistory(testId); + console.log("✅ testId 기반 결과:", res); + setTestDetail(res); + setRecommendations(res.Recommend); + console.log("✅ testId 기반 결과- Recommend만:", res.Recommend); } - const latestResult = history[0] - setTestResult(latestResult) + // 2. user.id로 테스트 기록 조회 + const history = await testAPI.getTestResultHistory(user.id); + console.log("📦 전체 기록 목록:", history); + + if (history && history.length > 0) { + const sorted = history.sort((a, b) => b.testId - a.testId); + const latest = sorted[0]; + console.log("🔥 testId 가장 큰 최신 기록:", latest); + setLatestResult(latest); //최신 결과 + } - const recs = await testAPI.getRecommendations(latestResult.personality || latestResult.userType) - setRecommendations(recs) + } catch (error) { + console.error("❌ 데이터 요청 실패:", error); + toast({ + title: "오류", + description: "결과를 불러오는 중 문제가 발생했습니다.", + variant: "destructive", + }); + } finally { + setLoading(false); } - } catch (error) { - console.error("추천 조회 실패:", error) - toast({ - title: "오류", - description: "추천 정보를 불러오는 중 문제가 발생했습니다.", - variant: "destructive", - }) - navigate("/test") - } finally { - setLoading(false) - } -} + }; + fetchBoth(); +}, [user, isLoading, testId]); if (isLoading || loading) { @@ -106,26 +88,13 @@ const fetchLatestResult = async () => { 테스트 결과
🎯
-

{testResult.personality || testResult.userType || "성향 정보 없음"}

- {/*

평균 점수: {testResult.score.toFixed(1)}점

*/} +

+ {latestResult?.userType || "성향 없음"} +

- {["D", "I", "S", "C"].includes(testResult.personality || testResult.userType) ? ( - <> - {testResult.personality === "D" || testResult.userType === "D" - ? "당신은 사교적이고 리더십이 뛰어난 성향입니다. 새로운 도전을 즐기고 팀을 이끄는 것을 좋아합니다." - : testResult.personality === "I" || testResult.userType === "I" - ? "당신은 논리적이면서도 감정적 균형을 잘 맞추는 성향입니다. 신중하게 판단하고 합리적인 결정을 내립니다." - : testResult.personality === "S" || testResult.userType === "S" - ? "당신은 깊이 있게 생각하고 신중한 성향입니다. 혼자만의 시간을 소중히 여기고 내면의 성찰을 중요하게 생각합니다." - : testResult.personality === "C" || testResult.userType === "C" - ? "당신은 창의적이고 혁신적인 성향입니다. 새로운 아이디어와 가능성을 탐구하는 것을 좋아합니다." - : null} - - ) : ( - "성향 설명을 찾을 수 없습니다." - )} + {latestResult?.typeDescription || "설명 없음"}

@@ -146,25 +115,27 @@ const fetchLatestResult = async () => {
- {recommendations?.Recommend?.Movie?.map((movie, index) => ( + {recommendations?.Movie?.map((movie, index) => (
- {movie.poster && ( + {movie.poster_path && ( {movie.title} )}

제목: {movie.title}

- {movie.releaseDate && ( + + {movie.release_date && (

- 개봉일: {new Date(movie.releaseDate).toLocaleDateString("ko-KR")} + 개봉일: {new Date(movie.release_date).toLocaleDateString("ko-KR")}

)} - {movie.description && ( + + {movie.overview && (

- 설명: {movie.description} + 설명: {movie.overview}

)}
@@ -175,7 +146,7 @@ const fetchLatestResult = async () => {
- {recommendations?.Recommend?.Book?.map((book, index) => ( + {recommendations?.Book?.map((book, index) => (
{book.image && ( {
- {recommendations?.Recommend?.Music?.map((music, index) => ( + {recommendations?.Music?.map((music, index) => (
- {music.elbum && ( + {music.album && ( {music.title} )}

제목: {music.title}

- {music.artist &&

아티스트: {music.artist}

} + {music.artist && ( +

아티스트: {music.artist}

+ )}
))} diff --git a/src/pages/TestPage.jsx b/src/pages/TestPage.jsx index eb9f97c..d4b5ae0 100644 --- a/src/pages/TestPage.jsx +++ b/src/pages/TestPage.jsx @@ -15,25 +15,25 @@ import { useToast } from "../hooks/use-toast" // 상대 경로로 변경 const questions = [ "나는 새로운 사람들과 만나는 것을 좋아한다", - "나는 계획을 세우고 그대로 실행하는 것을 선호한다", - "나는 감정보다는 논리적으로 판단하는 편이다", - "나는 마감일이 다가와야 일을 시작하는 편이다", - "나는 파티나 모임에서 에너지를 얻는다", - "나는 세부사항보다는 큰 그림을 보는 것을 좋아한다", - "나는 다른 사람의 감정을 잘 이해한다", - "나는 즉흥적인 결정을 내리는 것을 좋아한다", - "나는 혼자 있는 시간이 필요하다", - "나는 실용적이고 현실적인 해결책을 선호한다", - "나는 갈등 상황을 피하려고 한다", - "나는 여러 가지 일을 동시에 처리하는 것을 좋아한다", - "나는 사교적이고 외향적이다", - "나는 미래의 가능성에 대해 생각하는 것을 좋아한다", - "나는 객관적이고 분석적으로 사고한다", - "나는 구조화되고 조직적인 환경을 선호한다", - "나는 팀워크보다는 개인 작업을 선호한다", - "나는 전통적인 방법보다는 새로운 방법을 시도한다", - "나는 결정을 내릴 때 다른 사람의 의견을 고려한다", - "나는 융통성 있고 적응력이 좋다", + // "나는 계획을 세우고 그대로 실행하는 것을 선호한다", + // "나는 감정보다는 논리적으로 판단하는 편이다", + // "나는 마감일이 다가와야 일을 시작하는 편이다", + // "나는 파티나 모임에서 에너지를 얻는다", + // "나는 세부사항보다는 큰 그림을 보는 것을 좋아한다", + // "나는 다른 사람의 감정을 잘 이해한다", + // "나는 즉흥적인 결정을 내리는 것을 좋아한다", + // "나는 혼자 있는 시간이 필요하다", + // "나는 실용적이고 현실적인 해결책을 선호한다", + // "나는 갈등 상황을 피하려고 한다", + // "나는 여러 가지 일을 동시에 처리하는 것을 좋아한다", + // "나는 사교적이고 외향적이다", + // "나는 미래의 가능성에 대해 생각하는 것을 좋아한다", + // "나는 객관적이고 분석적으로 사고한다", + // "나는 구조화되고 조직적인 환경을 선호한다", + // "나는 팀워크보다는 개인 작업을 선호한다", + // "나는 전통적인 방법보다는 새로운 방법을 시도한다", + // "나는 결정을 내릴 때 다른 사람의 의견을 고려한다", + // "나는 융통성 있고 적응력이 좋다", ] export default function TestPage() { From be5c225e220a9522cf0314a2f44fa7525dff72c1 Mon Sep 17 00:00:00 2001 From: yhy0009 Date: Fri, 25 Jul 2025 13:50:31 +0900 Subject: [PATCH 16/86] =?UTF-8?q?fix:=20typeDescription=20=EC=96=91?= =?UTF-8?q?=EC=8B=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/TestPage.jsx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/pages/TestPage.jsx b/src/pages/TestPage.jsx index d4b5ae0..8b4b6a4 100644 --- a/src/pages/TestPage.jsx +++ b/src/pages/TestPage.jsx @@ -86,20 +86,25 @@ export default function TestPage() { const averageScore = totalScore / questions.length let personality = "" + let typeDescription = "" if (averageScore >= 4) { - personality = "D" + personality = "D형 (지배형)" + typeDescription = "당신은 도전적이고 리더십이 강한 D형입니다!" } else if (averageScore >= 3) { - personality = "I" + personality = "I형 (사교형)" + typeDescription = "당신은 활발하고 사람을 좋아하는 I형입니다!" } else if (averageScore >= 2) { - personality = "S" + personality = "S형 (안정형)" + typeDescription = "당신은 따뜻하고 성실한 S형입니다!" } else { - personality = "C" + personality = "C형 (신중형)" + typeDescription = "당신은 분석적이고 꼼꼼한 C형입니다!" } const testResult = { userId: user.id, // 반드시 존재해야 함 userType: personality, - typeDescription: "당신은 " + personality + " 성향입니다.", + typeDescription: typeDescription, completedAt: new Date().toISOString() } From 2cf7d4b99e2959aa96072a664f3bd403e229ea8a Mon Sep 17 00:00:00 2001 From: ju0204 Date: Fri, 25 Jul 2025 13:55:54 +0900 Subject: [PATCH 17/86] =?UTF-8?q?[fix]=20gemini=ED=98=B8=EC=B6=9C=20?= =?UTF-8?q?=ED=9B=84=20=EC=99=B8=EB=B6=80=20api=20=EC=9A=94=EC=B2=AD=20?= =?UTF-8?q?=EB=94=9C=EB=A0=88=EC=9D=B4=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/TestPage.jsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/pages/TestPage.jsx b/src/pages/TestPage.jsx index 8b4b6a4..90315d0 100644 --- a/src/pages/TestPage.jsx +++ b/src/pages/TestPage.jsx @@ -119,9 +119,10 @@ export default function TestPage() { console.log("✅ 추천 생성 완료"); // 3. book/music/movie 추천 요청 보내기 (응답은 무시) - contentAPI.bookRecommendation(testId); - contentAPI.musicRecommendation(testId); - contentAPI.movieRecommendation(testId); + await contentAPI.bookRecommendation(testId); + await contentAPI.musicRecommendation(testId); + await contentAPI.movieRecommendation(testId); + console.log("📚 음악/책/영화 추천 저장 완료"); // 결과 페이지로 이동 (testId 넘기기) navigate(`/result?testId=${testId}`) From 1e81e350ccd52851505c434a4f1edd3e10ce9c64 Mon Sep 17 00:00:00 2001 From: ju0204 Date: Fri, 25 Jul 2025 15:05:19 +0900 Subject: [PATCH 18/86] =?UTF-8?q?[fix]google=20=EA=B2=BD=EB=A1=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/LoginPage.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/LoginPage.jsx b/src/pages/LoginPage.jsx index 80fcd0d..108f542 100644 --- a/src/pages/LoginPage.jsx +++ b/src/pages/LoginPage.jsx @@ -50,7 +50,7 @@ export default function LoginPage() { } const handleGoogleLogin = () => { - window.location.href = `${import.meta.env.VITE_API_URL || "http://localhost:8080/api"}/auth/google` + window.location.href = `${import.meta.env.VITE_API_URL}/oauth2/authorization/google` } return ( From 286e72a133f5a5cecbb9c1d5761732f4d85bc64c Mon Sep 17 00:00:00 2001 From: ju0204 Date: Fri, 25 Jul 2025 17:55:57 +0900 Subject: [PATCH 19/86] =?UTF-8?q?[fix]=20logo=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/logo.png | Bin 0 -> 665527 bytes src/components/header.jsx | 4 ++-- src/pages/TestPage.jsx | 38 +++++++++++++++++++------------------- 3 files changed, 21 insertions(+), 21 deletions(-) create mode 100644 public/logo.png diff --git a/public/logo.png b/public/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..958be81825ccb87ba9a0fe72178f7be432959e2e GIT binary patch literal 665527 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

2t5lp1-{N?3Eqo7N^c$ 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

UQWsJf-t7mcT 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

  • S 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�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

    L-;Z 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%0AW?e-hhyIU*wcGT~`QNQ`l=6l;3 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 -

    +
    - 성향 테스트 + 로고
    diff --git a/src/pages/TestPage.jsx b/src/pages/TestPage.jsx index 90315d0..5cec0c1 100644 --- a/src/pages/TestPage.jsx +++ b/src/pages/TestPage.jsx @@ -15,25 +15,25 @@ import { useToast } from "../hooks/use-toast" // 상대 경로로 변경 const questions = [ "나는 새로운 사람들과 만나는 것을 좋아한다", - // "나는 계획을 세우고 그대로 실행하는 것을 선호한다", - // "나는 감정보다는 논리적으로 판단하는 편이다", - // "나는 마감일이 다가와야 일을 시작하는 편이다", - // "나는 파티나 모임에서 에너지를 얻는다", - // "나는 세부사항보다는 큰 그림을 보는 것을 좋아한다", - // "나는 다른 사람의 감정을 잘 이해한다", - // "나는 즉흥적인 결정을 내리는 것을 좋아한다", - // "나는 혼자 있는 시간이 필요하다", - // "나는 실용적이고 현실적인 해결책을 선호한다", - // "나는 갈등 상황을 피하려고 한다", - // "나는 여러 가지 일을 동시에 처리하는 것을 좋아한다", - // "나는 사교적이고 외향적이다", - // "나는 미래의 가능성에 대해 생각하는 것을 좋아한다", - // "나는 객관적이고 분석적으로 사고한다", - // "나는 구조화되고 조직적인 환경을 선호한다", - // "나는 팀워크보다는 개인 작업을 선호한다", - // "나는 전통적인 방법보다는 새로운 방법을 시도한다", - // "나는 결정을 내릴 때 다른 사람의 의견을 고려한다", - // "나는 융통성 있고 적응력이 좋다", + "나는 계획을 세우고 그대로 실행하는 것을 선호한다", + "나는 감정보다는 논리적으로 판단하는 편이다", + "나는 마감일이 다가와야 일을 시작하는 편이다", + "나는 파티나 모임에서 에너지를 얻는다", + "나는 세부사항보다는 큰 그림을 보는 것을 좋아한다", + "나는 다른 사람의 감정을 잘 이해한다", + "나는 즉흥적인 결정을 내리는 것을 좋아한다", + "나는 혼자 있는 시간이 필요하다", + "나는 실용적이고 현실적인 해결책을 선호한다", + "나는 갈등 상황을 피하려고 한다", + "나는 여러 가지 일을 동시에 처리하는 것을 좋아한다", + "나는 사교적이고 외향적이다", + "나는 미래의 가능성에 대해 생각하는 것을 좋아한다", + "나는 객관적이고 분석적으로 사고한다", + "나는 구조화되고 조직적인 환경을 선호한다", + "나는 팀워크보다는 개인 작업을 선호한다", + "나는 전통적인 방법보다는 새로운 방법을 시도한다", + "나는 결정을 내릴 때 다른 사람의 의견을 고려한다", + "나는 융통성 있고 적응력이 좋다", ] export default function TestPage() { From ccd805853075e663f820f1153f2b80dfb98cf57b Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Tue, 29 Jul 2025 11:23:17 +0900 Subject: [PATCH 20/86] feat(terraform): terraform test --- terraform/main.tf | 78 ++++++++++++++++++++ terraform/modules/acm/main.tf | 44 ++++++++++++ terraform/modules/acm/outputs.tf | 24 +++++++ terraform/modules/acm/variables.tf | 27 +++++++ terraform/modules/cloudfront/main.tf | 80 +++++++++++++++++++++ terraform/modules/cloudfront/outputs.tf | 19 +++++ terraform/modules/cloudfront/variables.tf | 25 +++++++ terraform/modules/oidc/main.tf | 88 +++++++++++++++++++++++ terraform/modules/oidc/outputs.tf | 15 ++++ terraform/modules/oidc/variables.tf | 27 +++++++ terraform/modules/route53/main.tf | 59 +++++++++++++++ terraform/modules/route53/outputs.tf | 23 ++++++ terraform/modules/route53/variables.tf | 30 ++++++++ terraform/modules/s3/main.tf | 67 +++++++++++++++++ terraform/modules/s3/outputs.tf | 19 +++++ terraform/modules/s3/variables.tf | 14 ++++ terraform/outputs.tf | 30 ++++++++ terraform/variables.tf | 27 +++++++ 18 files changed, 696 insertions(+) create mode 100644 terraform/main.tf create mode 100644 terraform/modules/acm/main.tf create mode 100644 terraform/modules/acm/outputs.tf create mode 100644 terraform/modules/acm/variables.tf create mode 100644 terraform/modules/cloudfront/main.tf create mode 100644 terraform/modules/cloudfront/outputs.tf create mode 100644 terraform/modules/cloudfront/variables.tf create mode 100644 terraform/modules/oidc/main.tf create mode 100644 terraform/modules/oidc/outputs.tf create mode 100644 terraform/modules/oidc/variables.tf create mode 100644 terraform/modules/route53/main.tf create mode 100644 terraform/modules/route53/outputs.tf create mode 100644 terraform/modules/route53/variables.tf create mode 100644 terraform/modules/s3/main.tf create mode 100644 terraform/modules/s3/outputs.tf create mode 100644 terraform/modules/s3/variables.tf create mode 100644 terraform/outputs.tf create mode 100644 terraform/variables.tf diff --git a/terraform/main.tf b/terraform/main.tf new file mode 100644 index 0000000..3b0f960 --- /dev/null +++ b/terraform/main.tf @@ -0,0 +1,78 @@ +terraform { + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 6.0" + } + } +} + +provider "aws" { + region = var.aws_region +} + +# ACM cert provider (Cloudfront = us-east-1 인증서만 사용 가능) +provider "aws" { + alias = "us-east-1" + region = "us-east-1" +} + +module "acm" { + source = "./modules/acm" + + providers = { + "aws.us-east-1" = aws.us-east-1 + } + + domain_name = var.domain_name + subject_alternative_names = ["*.${var.domain_name}"] + validation_method = "DNS" + validation_record_fqdns = [ for record in module.route53.cert_calidation_records : record.fqdn ] + prefix = var.prefix + + depends_on = [ module.route53 ] +} + +module "cloudfront" { + source = "./modules/cloudfront" + + prefix = var.prefix + bucket_id = module.s3_bucket_id + bucket_regional_domain_name = module.s3.bucket_regional_domain_name + domain_names = [ var.domain_name, "www.${var.domain_name}" ] + acm_certificate_arn = module.acm.certificate_arn + + depends_on = [ module.acm ] +} + +module "s3" { + source = "./modules/s3" + + bucket_name = var.bucket_name + prefix = var.prefix + cloudfront_distribution_arn = module.cloudfront.distribution_arn +} + +module "route53" { + source = "./modules/route53" + + domain_name = var.domain_name + subdomain_names = ["", "www"] + cloudfront_domain_name = module.cloudfront.distribution_domain_name + cloudfront_hosted_zone_id = module.cloudfront.distribution_hosted_zone_id + acm_certificate_domain_validation_options = module.acm.domain_validation_options +} + +module "github_oidc" { + source = "./modules/oidc" + + prefix = var.prefix + allowed_repositories = var.github_allowed_repo + bucket_arn = module.s3.bucket_arn + distribution_arn = module.cloudfront.distribution_arn +} + +# S3 퍼블릭 전면 차단 +# CloudFront origin access control(OAC)통해서만 (Cloudfront캐시 계층 경유 요청만 허용) 버킷 내 객체 읽을 수 있도록 s3 버킷 정책 +# Cloudfront 생성시 OAC 생성 필요 (S3 에 서명기반 요청) → OAC ID 를 s3 정책/CloudFront origin 설정에 연결하면 Cloudfornt 만 s3에 접근 가능 == oidc 생성 필요 +# OIDC로 GitHub actions에서 s3로 배포 가능 (s3 퍼블릭 만 차단 → oidc로 자격 증명) \ No newline at end of file diff --git a/terraform/modules/acm/main.tf b/terraform/modules/acm/main.tf new file mode 100644 index 0000000..25a2bb1 --- /dev/null +++ b/terraform/modules/acm/main.tf @@ -0,0 +1,44 @@ +terraform { + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 6.0" + # 별도 리전용 프로바이더 지정하도록 alias 설정 + configuration_aliases = [ aws.us-east-1 ] + } + } +} + +# ACM cert 생성 (cloudfront acm cert = us-east-1에서만 생성가능) +resource "aws_acm_certificate" "fe" { + provider = aws.us-east-1 + + # 기본 도메인 + domain_name = var.domain_name + # 추가 도메인 목록 + subject_alternative_names = var.subject_alternative_names + validation_method = var.validation_method + + lifecycle { + # 갱신시 새 인증서 생성후 기존 인증서 파괴 + create_before_destroy = true + } + + tags = { + "Name" = "${var.prefix}-certificate" + } +} + +# ACM cert validation +resource "aws_acm_certificate_validation" "fe" { + provider = aws.us-east-1 + + certificate_arn = aws_acm_certificate.fe.arn + # dns 검증용 레코드 fqdn(fully qualified domain name) 목록 + validation_record_fqdns = var.validation_record_fqdns + + timeouts { + # 인증서 검증 완료까지 대기 시간 + create = "30m" + } +} \ No newline at end of file diff --git a/terraform/modules/acm/outputs.tf b/terraform/modules/acm/outputs.tf new file mode 100644 index 0000000..2d34169 --- /dev/null +++ b/terraform/modules/acm/outputs.tf @@ -0,0 +1,24 @@ +output "certificate_arn" { + description = "ACM cert ARN" + value = aws_acm_certificate.fe.arn +} + +output "certificate_id" { + description = "ACM cert ID" + value = aws_acm_certificate.fe.id +} + +output "certificate_status" { + description = "ACM cert status" + value = aws_acm_certificate.fe.status +} + +output "domain_validation_options" { + description = "Domain validation option" + value = aws_acm_certificate.fe.domain_validation_options +} + +output "validation_id" { + description = "ACM cert validation ID" + value = aws_acm_certificate_validation.fe.id +} \ No newline at end of file diff --git a/terraform/modules/acm/variables.tf b/terraform/modules/acm/variables.tf new file mode 100644 index 0000000..d1ab3e7 --- /dev/null +++ b/terraform/modules/acm/variables.tf @@ -0,0 +1,27 @@ +variable "prefix" { + description = "Prefix for ACM module" + type = string +} + +variable "domain_name" { + description = "Domain name" + type = string +} + +variable "subject_alternative_names" { + description = "Subject alternative names" + type = list(string) + default = [] +} + +variable "validation_method" { + description = "Cert validation method (DNS or EMAIL)" + type = string + default = "DNS" +} + +variable "validation_record_fqdns" { + description = "FQDN list for DNS validation" + type = list(string) + default = [ ] +} \ No newline at end of file diff --git a/terraform/modules/cloudfront/main.tf b/terraform/modules/cloudfront/main.tf new file mode 100644 index 0000000..e3f5380 --- /dev/null +++ b/terraform/modules/cloudfront/main.tf @@ -0,0 +1,80 @@ + +# 클라우드프론트 Origin access control 생성 +resource "aws_cloudfront_origin_access_control" "fe" { + name = "${var.prefix}-oac" + description = "OAC for ${var.prefix}-s3" + origin_access_control_origin_type = "s3" + # 요청마다 서명 + signing_behavior = "ALWAYS" + signing_protocol = "sigv4" +} + +#CF 생성 및 설정 +resource "aws_cloudfront_distribution" "fe" { + # origin = s3 + origin { + domain_name = var.bucket_regional_domain_name + origin_access_control_id = aws_cloudfront_origin_access_control.fe.id + origin_id = var.bucket_id + } + + enabled = true + is_ipv6_enabled = true + comment = "${var.prefix}-cf-distribution" + # 루트 요청시 반환 기본 객체 + default_root_object = "index.html" + aliases = var.domain_names + + # logging_config { + # include_cookies = false + # bucket = var.bucket_regional_doma + # } + + + # 기본 캐싱 정책 + default_cache_behavior { + allowed_methods = ["GET", "HEAD", "OPTIONS"] + cached_methods = ["GET", "HEAD"] + target_origin_id = var.bucket_id + + forwarded_values { + # query 스트링 포워딩 안함 + query_string = false + # CORS 처리 위해 Origin, Access-Control-* 헤더만 전달 + headers = ["Origin", "Access-Control-Request-Method", "Access-Control-Request-Headers"] + + cookies { + # 쿠키 전달 안함 + forward = "none" + } + } + + # https 리다이렉트 + viewer_protocol_policy = "redirect-to-https" + # 캐시 유효기간 초 + min_ttl = 0 + default_ttl = 3600 + max_ttl = 86400 + compress = true + } + + # 접속 국가 제한 + restrictions { + geo_restriction { + restriction_type = "none" + } + } + + # SSL TLS 인증성 + viewer_certificate { + cloudfront_default_certificate = var.acm_certificate_arn == "" ? true : false + acm_certificate_arn = var.acm_certificate_arn != "" ? var.acm_certificate_arn : null + ssl_support_method = var.acm_certificate_arn != "" ? "sni-only" : null + minimum_protocol_version = var.acm_certificate_arn != "" ? "TLSv1.2_2021" : null + + } + + tags = { + "Name" = "${var.prefix}-cf-distribution" + } +} diff --git a/terraform/modules/cloudfront/outputs.tf b/terraform/modules/cloudfront/outputs.tf new file mode 100644 index 0000000..77435cc --- /dev/null +++ b/terraform/modules/cloudfront/outputs.tf @@ -0,0 +1,19 @@ +output "distribution_id" { + description = "CloudFront distribution ID" + value = aws_cloudfront_distribution.FE.id +} + +output "distribution_arn" { + description = "CloudFront distribution ARN" + value = aws_cloudfront_distribution.FE.arn +} + +output "distribution_domain_name" { + description = "CloudFront distribution domain name" + value = aws_cloudfront_distribution.FE.domain_name +} + +output "distribution_hosted_zone_id" { + description = "CloudFront distribution hosting zone ID" + value = aws_cloudfront_distribution.FE.hosted_zone_id +} \ No newline at end of file diff --git a/terraform/modules/cloudfront/variables.tf b/terraform/modules/cloudfront/variables.tf new file mode 100644 index 0000000..9e1fd41 --- /dev/null +++ b/terraform/modules/cloudfront/variables.tf @@ -0,0 +1,25 @@ +variable "prefix" { + description = "Prefix for CloudFront module" + type = string +} + +variable "bucket_regional_domain_name" { + description = "S3 bucket region domain name" + type = string +} + +variable "bucket_id" { + description = "S3 bucket ID" + type = string +} + +variable "acm_certificate_arn" { + description = "ACM certificate ARN" + type = string + default = "" +} + +variable "domain_names" { + description = "Domain CNAME list" + type = list(string) +} \ No newline at end of file diff --git a/terraform/modules/oidc/main.tf b/terraform/modules/oidc/main.tf new file mode 100644 index 0000000..99d3849 --- /dev/null +++ b/terraform/modules/oidc/main.tf @@ -0,0 +1,88 @@ +# github에서 AWS에 oidc 방식으로 연동할 수 있도록 하는 oidc provider 생성 +resource "aws_iam_openid_connect_provider" "github" { + # Github actions가 토큰 발급하는 oidc endpoint url + url = "https://token.actions.githubusercontent.com" + + # 발급받은 토큰을 aws sts통해 교환시 허용할 클라이언트 id + client_id_list = ["sts.amazonaws.com"] + + # github oidc 제공자의 tls 인증서 thumbprint -> aws가 provider ep와 안전하게 통신했음 검증 + thumbprint_list = var.thumbprint_list + + tags = { + "Name" = "${var.prefix}-github-oidc" + } +} + +# github actions가 aws 리소스 접근시 사용할 iam role +resource "aws_iam_role" "github" { + name = "${var.prefix}-github-actions-role" + + assume_role_policy = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Effect = "Allow" + Principal = { + # 만든 oidc provider로 부터 발급된 토큰만 + Federated = aws_iam_openid_connect_provider.github.arn + } + # oidc 토큰으로 role 획득하는 sts api 호출 + Action = "sts:AssumeRoleWithWebIdentity" + Condition = { + StringEquals = { + # 토큰 audience 가 aws sts용인지 검증 + "token.actions.githubusercontent.com:aud" = "sts.amazonaws.com" + } + StringLike = { + # 토큰 subject가 특정 레포에서 발급된 것만 허용 + "token.actions.githubusercontent.com:sub" = [ + for repo in var.allowed_repositories : "repo:${repo}:*" + ] + } + } + } + ] + }) + + tags = { + "Name" = "${var.prefix}-github-actions-role" + } +} + +# 생성한 iam role에 policy 부여 +resource "aws_iam_role_policy" "github" { + name = "${var.prefix}-github-actions-role-policy" + + role = aws_iam_role.github.id + + policy = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + # 버킷자체, 버킷내 모든 객체에 대한 crud + Effect = "Allow" + Action = [ + "s3:ListBucket", + "s3:PutObject", + "s3:GetObject", + "s3:DeleteObject", + "s3:PutObjectAcl" + ] + Resource = [ + var.bucket_arn, "${var.bucket_arn}/*" + ] + }, + { + # cloudfront 캐시 무효화 + Effect = "Allow" + Action = [ + "cloudfront:CreateInvalidation" + ] + Resource = [ + var.distribution_arn + ] + } + ] + }) +} \ No newline at end of file diff --git a/terraform/modules/oidc/outputs.tf b/terraform/modules/oidc/outputs.tf new file mode 100644 index 0000000..350aea0 --- /dev/null +++ b/terraform/modules/oidc/outputs.tf @@ -0,0 +1,15 @@ +output "role_arn" { + description = "Github IAM Role ARN" + value = aws_iam_role.github.arn +} + +output "role_name" { + description = "Github IAM ROle name" + value = aws_iam_role.github.name +} + +output "oidc_provider_arn" { + description = "Github OIDC Provider ARN" + value = aws_iam_openid_connect_provider.github.arn +} + diff --git a/terraform/modules/oidc/variables.tf b/terraform/modules/oidc/variables.tf new file mode 100644 index 0000000..bd43cd2 --- /dev/null +++ b/terraform/modules/oidc/variables.tf @@ -0,0 +1,27 @@ +variable "thumbprint_list" { + description = "Github OIDC thumbprint list" + type = list(string) + default = [ + "6938fd4d98bab03faadb97b34396831e3780aea1" + ] +} + +variable "prefix" { + description = "Prefix for OIDC module" + type = string +} + +variable "allowed_repositories" { + description = "Allowed github repo list (username/repo-name)" + type = list(string) +} + +variable "bucket_arn" { + description = "Allowed S3 bucket ARN" + type = string +} + +variable "distribution_arn" { + description = "Allowed CloudFront distribution ARN for invalidation" + type = string +} \ No newline at end of file diff --git a/terraform/modules/route53/main.tf b/terraform/modules/route53/main.tf new file mode 100644 index 0000000..bb2bdd1 --- /dev/null +++ b/terraform/modules/route53/main.tf @@ -0,0 +1,59 @@ +# 이미 존재하는 hosted zone 조회 +data "aws_route53_zone" "main" { + name = var.domain_name +} + +# A record 생성 (ipv4) +resource "aws_route53_record" "a_record" { + # 서브도메인 리스트에 대해 각각 레코드 생성 + for_each = toset(var.subdomain_names) + + zone_id = data.aws_route53_zone.main.zone_id + # 빈 값이면 서브도메인 없음 + name = each.value == "" ? var.domain_name : "${each.value}.${var.domain_name}" + type = "A" + + # cloudfront로 포인팅 + alias { + name = var.cloudfront_domain_name + zone_id = var.cloudfront_hosted_zone_id + evaluate_target_health = false + } +} + +# AAAA record 생성 (ipv6) +resource "aws_route53_record" "aaaa_record" { + for_each = toset(var.subdomain_names) + + zone_id = data.aws_route53_zone.main.zone_id + name = each.value == "" ? var.domain_name : "${each.value}.${var.domain_name}" + type = "AAAA" + + alias { + name = var.cloudfront_domain_name + zone_id = var.cloudfront_hosted_zone_id + evaluate_target_health = false + } +} + +# acm 인증서 검증용 record +resource "aws_route53_record" "cert_validation" { + for_each = { + # acm 반환된 검증용 cname 정보 목록 순회 + for dvo in var.acm_certificate_domain_validation_options : dvo.domain_name => { + name = dvo.resource_record_name + record = dvo.resource_record_value + type = dvo.resource_record_type + } + } + + # 동일 레코드 있으면 덮어쓰기 + allow_overwrite = true + + # dns 검증용 cname 레코드 생성 + name = each.value.name + records = [each.value.record] + ttl = 60 + type = each.value.type + zone_id = data.aws_route53_zone.main.zone_id +} \ No newline at end of file diff --git a/terraform/modules/route53/outputs.tf b/terraform/modules/route53/outputs.tf new file mode 100644 index 0000000..c64487e --- /dev/null +++ b/terraform/modules/route53/outputs.tf @@ -0,0 +1,23 @@ +output "zone_id" { + description = "Route53 hosting zone ID" + value = data.aws_route53_zone.main.zone_id +} + +output "name_servers" { + description = "Route53 nameserver" + value = data.aws_route53_zone.main.name_servers +} + +output "fe_urls" { + description = "Frontend url list" + value = [ + for subdomain in var.subdomain_names : + subdomain == "" ? "https://${var.domain_name}" : "https://${subdomain}.${var.domain_name}" + + ] +} + +output "cert_validation_records" { + description = "ACM certificate validation record" + value = aws_route53_record.cert_validation +} diff --git a/terraform/modules/route53/variables.tf b/terraform/modules/route53/variables.tf new file mode 100644 index 0000000..aa63319 --- /dev/null +++ b/terraform/modules/route53/variables.tf @@ -0,0 +1,30 @@ +variable "domain_name" { + description = "Route domain name" + type = string +} + +variable "subdomain_names" { + description = "Subdomain list" + type = list(string) +} + +variable "cloudfront_domain_name" { + description = "Cloudfront distribution domain name" + type = string +} + +variable "cloudfront_hosted_zone_id" { + description = "Cloudfront hosting zone ID" + type = string +} + +variable "acm_certificate_domain_validation_options" { + description = "ACM domain validation" + type = list(object({ + domain_name = string + resource_record_name = string + resource_record_type = string + resource_record_value = string + })) + default = [] +} \ No newline at end of file diff --git a/terraform/modules/s3/main.tf b/terraform/modules/s3/main.tf new file mode 100644 index 0000000..7c23f8a --- /dev/null +++ b/terraform/modules/s3/main.tf @@ -0,0 +1,67 @@ +# bucket 생성 +resource "aws_s3_bucket" "fe" { + bucket = var.bucket_name + + tags = { + "Name" = "${var.prefix}-bucket" + } +} + +resource "aws_s3_bucket_versioning" "fe" { + bucket = aws_s3_bucket.fe.id + + versioning_configuration { + status = "Enabled" + } +} + +# 퍼블릭 엑세스 전면 차단 +resource "aws_s3_bucket_public_access_block" "fe" { + bucket = aws_s3_bucket.fe.id + + block_public_acls = true + block_public_policy = true + ignore_public_acls = true + restrict_public_buckets = true +} + +# 모든 객체 서버사이드 암호화 / 별도 키 관리 필요 없는 s3 관리형 키로 객체 암호화 +resource "aws_s3_bucket_server_side_encryption_configuration" "fe" { + bucket = aws_s3_bucket.fe.id + + rule { + apply_server_side_encryption_by_default { + sse_algorithm = "AES256" + } + } + +} + +# CloudFront Origin access control 통해서만 버킷 객체 읽을 수 있도록 정책 설정 +resource "aws_s3_bucket_policy" "fe" { + bucket = aws_s3_bucket.fe.id + + policy = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Effect = "Allow" + # CloudFront에 권한 부여 + Principal = { + Service = "cloudfront.amazonaws.com" + } + # Resource의 S3 getObject 권한 + Action = "s3:GetObject" + Resource = "${aws_s3_bucket.fe.arn}/*" + + # "AWS:SourceArn"의 값이 var.cloudfront_distribution_arn와 똑같을 때만 + Condition = { + StringEquals = { + "AWS:SourceArn" = var.cloudfront_distribution_arn + } + } + } + ] + } + ) +} diff --git a/terraform/modules/s3/outputs.tf b/terraform/modules/s3/outputs.tf new file mode 100644 index 0000000..d8a7e7b --- /dev/null +++ b/terraform/modules/s3/outputs.tf @@ -0,0 +1,19 @@ +output "bucket_id" { + description = "S3 bucket ID" + value = aws_s3_bucket.fe.id +} + +output "bucket_arn" { + description = "S3 bucket ARN" + value = aws_s3_bucket.fe.arn +} + +output "bucket_domain_name" { + description = "S3 bucket domain name" + value = aws_s3_bucket.fe.bucket_domain_name +} + +output "bucket_regional_domain_name" { + description = "S3 bucket region domain name" + value = aws_s3_bucket.fe.bucket_regional_domain_name +} \ No newline at end of file diff --git a/terraform/modules/s3/variables.tf b/terraform/modules/s3/variables.tf new file mode 100644 index 0000000..d040f0e --- /dev/null +++ b/terraform/modules/s3/variables.tf @@ -0,0 +1,14 @@ +variable "bucket_name" { + default = "S3 Bucket Name" + type = string +} + +variable "prefix" { + description = "Prefix for S3 module" + type = string +} + +variable "cloudfront_distribution_arn" { + description = "CloudFront distribution ARN" + type = string +} \ No newline at end of file diff --git a/terraform/outputs.tf b/terraform/outputs.tf new file mode 100644 index 0000000..07a377e --- /dev/null +++ b/terraform/outputs.tf @@ -0,0 +1,30 @@ +output "cloudfront_distribution_domain" { + description = "CloudFront distribution domain" + value = module.cloudfront.distribution_domain_name +} + +output "s3_bucket_id" { + description = "S3 bukcet ID" + value = module.s3.bucket_id +} + +output "s3_bucket domain name" { + description = "S3 bukcet domain name" + value = module.s3.bucket_domain_name +} + +output "web_urls" { + description = "Website URL" + value = module.route53.fe_urls +} + +output "acm_certificate_status" { + description = "ACM certificate status" + value = module.acm.certificate_status +} + +output "github_role_arn" { + description = "Github IAM Role ARN (Paste to github secret)" + value = module.github_oidc[0].role_arn +} + diff --git a/terraform/variables.tf b/terraform/variables.tf new file mode 100644 index 0000000..bc1efff --- /dev/null +++ b/terraform/variables.tf @@ -0,0 +1,27 @@ +variable "aws_region" { + description = "AWS Region" + type = string + default = "ap-northeast-2" +} + +variable "prefix" { + description = "Prefix" + type = string + default = "Team1-front" +} + +variable "domain_name" { + description = "Domain name" + type = string +} + +variable "bucket_name" { + description = "S3 bucket name" + type = string +} + +variable "github_allowed_repo" { + description = "Allowed github repo list" + type = list(string) + default = [ ] +} \ No newline at end of file From 584b3aafb56823b9aa5ae2daafb4815dd7e29489 Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Tue, 29 Jul 2025 11:29:49 +0900 Subject: [PATCH 21/86] feat(terraform): terraform test --- terraform/variables.tf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/terraform/variables.tf b/terraform/variables.tf index bc1efff..a0ace9c 100644 --- a/terraform/variables.tf +++ b/terraform/variables.tf @@ -1,7 +1,7 @@ variable "aws_region" { description = "AWS Region" type = string - default = "ap-northeast-2" + default = "us-east-1" } variable "prefix" { @@ -21,7 +21,7 @@ variable "bucket_name" { } variable "github_allowed_repo" { - description = "Allowed github repo list" + description = "Allowed github repo list (username/repo-name)" type = list(string) - default = [ ] + default = [ "jyoungmin-com/Final-Team1-Frontend-test" ] } \ No newline at end of file From bd5b258aa6c357bea6721e663d523b53c3da7d02 Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Tue, 29 Jul 2025 11:33:09 +0900 Subject: [PATCH 22/86] feat(terraform): terraform test --- terraform/outputs.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terraform/outputs.tf b/terraform/outputs.tf index 07a377e..67ad164 100644 --- a/terraform/outputs.tf +++ b/terraform/outputs.tf @@ -8,7 +8,7 @@ output "s3_bucket_id" { value = module.s3.bucket_id } -output "s3_bucket domain name" { +output "s3_bucket_domain_name" { description = "S3 bukcet domain name" value = module.s3.bucket_domain_name } From 9855467b095fbd37f2e758d27c602cbdc7a5f1aa Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Tue, 29 Jul 2025 11:50:08 +0900 Subject: [PATCH 23/86] feat(terraform): terraform test --- terraform/main.tf | 18 +++++++++++++++++- terraform/modules/acm/main.tf | 13 ------------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/terraform/main.tf b/terraform/main.tf index 3b0f960..ca4e3be 100644 --- a/terraform/main.tf +++ b/terraform/main.tf @@ -21,7 +21,7 @@ module "acm" { source = "./modules/acm" providers = { - "aws.us-east-1" = aws.us-east-1 + aws.us-east-1 = aws.us-east-1 } domain_name = var.domain_name @@ -63,6 +63,22 @@ module "route53" { acm_certificate_domain_validation_options = module.acm.domain_validation_options } +# ACM cert validation +resource "aws_acm_certificate_validation" "fe" { + provider = aws.us-east-1 + + certificate_arn = module.acm.certificate_arn + # dns 검증용 레코드 fqdn(fully qualified domain name) 목록 + validation_record_fqdns = [ for record in module.route53.cert_validation_records : record.fqdn ] + + timeouts { + # 인증서 검증 완료까지 대기 시간 + create = "30m" + } + + depends_on = [ module.route53 ] +} + module "github_oidc" { source = "./modules/oidc" diff --git a/terraform/modules/acm/main.tf b/terraform/modules/acm/main.tf index 25a2bb1..7702b40 100644 --- a/terraform/modules/acm/main.tf +++ b/terraform/modules/acm/main.tf @@ -29,16 +29,3 @@ resource "aws_acm_certificate" "fe" { } } -# ACM cert validation -resource "aws_acm_certificate_validation" "fe" { - provider = aws.us-east-1 - - certificate_arn = aws_acm_certificate.fe.arn - # dns 검증용 레코드 fqdn(fully qualified domain name) 목록 - validation_record_fqdns = var.validation_record_fqdns - - timeouts { - # 인증서 검증 완료까지 대기 시간 - create = "30m" - } -} \ No newline at end of file From b2231baca32ce7959997274c0836265d61cb43fe Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Tue, 29 Jul 2025 12:04:20 +0900 Subject: [PATCH 24/86] feat(terraform): terraform test --- terraform/main.tf | 31 ++++++++++++++++++- terraform/modules/route53/main.tf | 4 +-- terraform/modules/s3/main.tf | 50 +++++++++++++++---------------- terraform/modules/s3/variables.tf | 8 ++--- 4 files changed, 61 insertions(+), 32 deletions(-) diff --git a/terraform/main.tf b/terraform/main.tf index ca4e3be..d6c438c 100644 --- a/terraform/main.tf +++ b/terraform/main.tf @@ -50,7 +50,7 @@ module "s3" { bucket_name = var.bucket_name prefix = var.prefix - cloudfront_distribution_arn = module.cloudfront.distribution_arn + # cloudfront_distribution_arn = module.cloudfront.distribution_arn } module "route53" { @@ -79,6 +79,35 @@ resource "aws_acm_certificate_validation" "fe" { depends_on = [ module.route53 ] } +# CloudFront Origin access control 통해서만 버킷 객체 읽을 수 있도록 정책 설정 +resource "aws_s3_bucket_policy" "fe" { + bucket = aws_s3_bucket.fe.id + + policy = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Effect = "Allow" + # CloudFront에 권한 부여 + Principal = { + Service = "cloudfront.amazonaws.com" + } + # Resource의 S3 getObject 권한 + Action = "s3:GetObject" + Resource = "${module.s3.bucket_arn}/*" + + # "AWS:SourceArn"의 값이 var.cloudfront_distribution_arn와 똑같을 때만 + Condition = { + StringEquals = { + "AWS:SourceArn" = module.cloudfront.distribution_arn + } + } + } + ] + } + ) +} + module "github_oidc" { source = "./modules/oidc" diff --git a/terraform/modules/route53/main.tf b/terraform/modules/route53/main.tf index bb2bdd1..46138ec 100644 --- a/terraform/modules/route53/main.tf +++ b/terraform/modules/route53/main.tf @@ -38,14 +38,14 @@ resource "aws_route53_record" "aaaa_record" { # acm 인증서 검증용 record resource "aws_route53_record" "cert_validation" { - for_each = { + for_each = length(var.acm_certificate_domain_validation_options) > 0 ? { # acm 반환된 검증용 cname 정보 목록 순회 for dvo in var.acm_certificate_domain_validation_options : dvo.domain_name => { name = dvo.resource_record_name record = dvo.resource_record_value type = dvo.resource_record_type } - } + } : {} # 동일 레코드 있으면 덮어쓰기 allow_overwrite = true diff --git a/terraform/modules/s3/main.tf b/terraform/modules/s3/main.tf index 7c23f8a..1e91c5e 100644 --- a/terraform/modules/s3/main.tf +++ b/terraform/modules/s3/main.tf @@ -38,30 +38,30 @@ resource "aws_s3_bucket_server_side_encryption_configuration" "fe" { } # CloudFront Origin access control 통해서만 버킷 객체 읽을 수 있도록 정책 설정 -resource "aws_s3_bucket_policy" "fe" { - bucket = aws_s3_bucket.fe.id +# resource "aws_s3_bucket_policy" "fe" { +# bucket = aws_s3_bucket.fe.id - policy = jsonencode({ - Version = "2012-10-17" - Statement = [ - { - Effect = "Allow" - # CloudFront에 권한 부여 - Principal = { - Service = "cloudfront.amazonaws.com" - } - # Resource의 S3 getObject 권한 - Action = "s3:GetObject" - Resource = "${aws_s3_bucket.fe.arn}/*" +# policy = jsonencode({ +# Version = "2012-10-17" +# Statement = [ +# { +# Effect = "Allow" +# # CloudFront에 권한 부여 +# Principal = { +# Service = "cloudfront.amazonaws.com" +# } +# # Resource의 S3 getObject 권한 +# Action = "s3:GetObject" +# Resource = "${aws_s3_bucket.fe.arn}/*" - # "AWS:SourceArn"의 값이 var.cloudfront_distribution_arn와 똑같을 때만 - Condition = { - StringEquals = { - "AWS:SourceArn" = var.cloudfront_distribution_arn - } - } - } - ] - } - ) -} +# # "AWS:SourceArn"의 값이 var.cloudfront_distribution_arn와 똑같을 때만 +# Condition = { +# StringEquals = { +# "AWS:SourceArn" = var.cloudfront_distribution_arn +# } +# } +# } +# ] +# } +# ) +# } diff --git a/terraform/modules/s3/variables.tf b/terraform/modules/s3/variables.tf index d040f0e..005925a 100644 --- a/terraform/modules/s3/variables.tf +++ b/terraform/modules/s3/variables.tf @@ -8,7 +8,7 @@ variable "prefix" { type = string } -variable "cloudfront_distribution_arn" { - description = "CloudFront distribution ARN" - type = string -} \ No newline at end of file +# variable "cloudfront_distribution_arn" { +# description = "CloudFront distribution ARN" +# type = string +# } \ No newline at end of file From 1b0397e8155868784ce1c2179b6ac8f1491cafc9 Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Tue, 29 Jul 2025 12:16:55 +0900 Subject: [PATCH 25/86] feat(terraform): terraform test --- terraform/main.tf | 17 ++++++++--------- terraform/modules/acm/outputs.tf | 5 ----- terraform/modules/acm/variables.tf | 6 ------ 3 files changed, 8 insertions(+), 20 deletions(-) diff --git a/terraform/main.tf b/terraform/main.tf index d6c438c..782cb55 100644 --- a/terraform/main.tf +++ b/terraform/main.tf @@ -17,6 +17,14 @@ provider "aws" { region = "us-east-1" } +module "s3" { + source = "./modules/s3" + + bucket_name = var.bucket_name + prefix = var.prefix + # cloudfront_distribution_arn = module.cloudfront.distribution_arn +} + module "acm" { source = "./modules/acm" @@ -27,10 +35,7 @@ module "acm" { domain_name = var.domain_name subject_alternative_names = ["*.${var.domain_name}"] validation_method = "DNS" - validation_record_fqdns = [ for record in module.route53.cert_calidation_records : record.fqdn ] prefix = var.prefix - - depends_on = [ module.route53 ] } module "cloudfront" { @@ -45,13 +50,7 @@ module "cloudfront" { depends_on = [ module.acm ] } -module "s3" { - source = "./modules/s3" - bucket_name = var.bucket_name - prefix = var.prefix - # cloudfront_distribution_arn = module.cloudfront.distribution_arn -} module "route53" { source = "./modules/route53" diff --git a/terraform/modules/acm/outputs.tf b/terraform/modules/acm/outputs.tf index 2d34169..3f0eef2 100644 --- a/terraform/modules/acm/outputs.tf +++ b/terraform/modules/acm/outputs.tf @@ -17,8 +17,3 @@ output "domain_validation_options" { description = "Domain validation option" value = aws_acm_certificate.fe.domain_validation_options } - -output "validation_id" { - description = "ACM cert validation ID" - value = aws_acm_certificate_validation.fe.id -} \ No newline at end of file diff --git a/terraform/modules/acm/variables.tf b/terraform/modules/acm/variables.tf index d1ab3e7..f73f895 100644 --- a/terraform/modules/acm/variables.tf +++ b/terraform/modules/acm/variables.tf @@ -19,9 +19,3 @@ variable "validation_method" { type = string default = "DNS" } - -variable "validation_record_fqdns" { - description = "FQDN list for DNS validation" - type = list(string) - default = [ ] -} \ No newline at end of file From edacd96c7c4fb88581978249b603f13aa238d301 Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Tue, 29 Jul 2025 12:18:55 +0900 Subject: [PATCH 26/86] feat(terraform): terraform test --- terraform/main.tf | 2 +- terraform/modules/cloudfront/main.tf | 2 +- terraform/modules/cloudfront/outputs.tf | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/terraform/main.tf b/terraform/main.tf index 782cb55..8da0c97 100644 --- a/terraform/main.tf +++ b/terraform/main.tf @@ -42,7 +42,7 @@ module "cloudfront" { source = "./modules/cloudfront" prefix = var.prefix - bucket_id = module.s3_bucket_id + bucket_id = module.bucket_id bucket_regional_domain_name = module.s3.bucket_regional_domain_name domain_names = [ var.domain_name, "www.${var.domain_name}" ] acm_certificate_arn = module.acm.certificate_arn diff --git a/terraform/modules/cloudfront/main.tf b/terraform/modules/cloudfront/main.tf index e3f5380..0593749 100644 --- a/terraform/modules/cloudfront/main.tf +++ b/terraform/modules/cloudfront/main.tf @@ -5,7 +5,7 @@ resource "aws_cloudfront_origin_access_control" "fe" { description = "OAC for ${var.prefix}-s3" origin_access_control_origin_type = "s3" # 요청마다 서명 - signing_behavior = "ALWAYS" + signing_behavior = "always" signing_protocol = "sigv4" } diff --git a/terraform/modules/cloudfront/outputs.tf b/terraform/modules/cloudfront/outputs.tf index 77435cc..1ae77bd 100644 --- a/terraform/modules/cloudfront/outputs.tf +++ b/terraform/modules/cloudfront/outputs.tf @@ -1,19 +1,19 @@ output "distribution_id" { description = "CloudFront distribution ID" - value = aws_cloudfront_distribution.FE.id + value = aws_cloudfront_distribution.fe.id } output "distribution_arn" { description = "CloudFront distribution ARN" - value = aws_cloudfront_distribution.FE.arn + value = aws_cloudfront_distribution.fe.arn } output "distribution_domain_name" { description = "CloudFront distribution domain name" - value = aws_cloudfront_distribution.FE.domain_name + value = aws_cloudfront_distribution.fe.domain_name } output "distribution_hosted_zone_id" { description = "CloudFront distribution hosting zone ID" - value = aws_cloudfront_distribution.FE.hosted_zone_id + value = aws_cloudfront_distribution.fe.hosted_zone_id } \ No newline at end of file From e770afa8c62c37f003cf4ac7eb485219c10c07ab Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Tue, 29 Jul 2025 12:19:51 +0900 Subject: [PATCH 27/86] feat(terraform): terraform test --- terraform/main.tf | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/terraform/main.tf b/terraform/main.tf index 8da0c97..dced442 100644 --- a/terraform/main.tf +++ b/terraform/main.tf @@ -42,12 +42,15 @@ module "cloudfront" { source = "./modules/cloudfront" prefix = var.prefix - bucket_id = module.bucket_id + bucket_id = module.s3.bucket_id bucket_regional_domain_name = module.s3.bucket_regional_domain_name domain_names = [ var.domain_name, "www.${var.domain_name}" ] acm_certificate_arn = module.acm.certificate_arn - depends_on = [ module.acm ] + depends_on = [ + module.acm, + aws_acm_certificate_validation.fe + ] } From 602b60814b8e8075e5d28685110e01d819c713d1 Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Tue, 29 Jul 2025 12:22:13 +0900 Subject: [PATCH 28/86] feat(terraform): terraform test --- terraform/main.tf | 28 ++++++++++++++++++++++++ terraform/modules/route53/main.tf | 32 ---------------------------- terraform/modules/route53/outputs.tf | 8 ------- terraform/outputs.tf | 7 ++++-- 4 files changed, 33 insertions(+), 42 deletions(-) diff --git a/terraform/main.tf b/terraform/main.tf index dced442..00e1319 100644 --- a/terraform/main.tf +++ b/terraform/main.tf @@ -81,6 +81,34 @@ resource "aws_acm_certificate_validation" "fe" { depends_on = [ module.route53 ] } +data "aws_route53_zone" "main" { + name = var.domain_name +} + +resource "aws_route53_record" "frontend_a" { + for_each = toset(["", "www"]) + zone_id = data.aws_route53_zone.main.zone_id + name = each.value == "" ? var.domain_name : "${each.value}.${var.domain_name}" + type = "A" + alias { + name = module.cloudfront.distribution_domain_name + zone_id = module.cloudfront.distribution_hosted_zone_id + evaluate_target_health = false + } +} + +resource "aws_route53_record" "frontend_aaaa" { + for_each = toset(["", "www"]) + zone_id = data.aws_route53_zone.main.zone_id + name = each.value == "" ? var.domain_name : "${each.value}.${var.domain_name}" + type = "AAAA" + alias { + name = module.cloudfront.distribution_domain_name + zone_id = module.cloudfront.distribution_hosted_zone_id + evaluate_target_health = false + } +} + # CloudFront Origin access control 통해서만 버킷 객체 읽을 수 있도록 정책 설정 resource "aws_s3_bucket_policy" "fe" { bucket = aws_s3_bucket.fe.id diff --git a/terraform/modules/route53/main.tf b/terraform/modules/route53/main.tf index 46138ec..78d0d48 100644 --- a/terraform/modules/route53/main.tf +++ b/terraform/modules/route53/main.tf @@ -3,38 +3,6 @@ data "aws_route53_zone" "main" { name = var.domain_name } -# A record 생성 (ipv4) -resource "aws_route53_record" "a_record" { - # 서브도메인 리스트에 대해 각각 레코드 생성 - for_each = toset(var.subdomain_names) - - zone_id = data.aws_route53_zone.main.zone_id - # 빈 값이면 서브도메인 없음 - name = each.value == "" ? var.domain_name : "${each.value}.${var.domain_name}" - type = "A" - - # cloudfront로 포인팅 - alias { - name = var.cloudfront_domain_name - zone_id = var.cloudfront_hosted_zone_id - evaluate_target_health = false - } -} - -# AAAA record 생성 (ipv6) -resource "aws_route53_record" "aaaa_record" { - for_each = toset(var.subdomain_names) - - zone_id = data.aws_route53_zone.main.zone_id - name = each.value == "" ? var.domain_name : "${each.value}.${var.domain_name}" - type = "AAAA" - - alias { - name = var.cloudfront_domain_name - zone_id = var.cloudfront_hosted_zone_id - evaluate_target_health = false - } -} # acm 인증서 검증용 record resource "aws_route53_record" "cert_validation" { diff --git a/terraform/modules/route53/outputs.tf b/terraform/modules/route53/outputs.tf index c64487e..cc40529 100644 --- a/terraform/modules/route53/outputs.tf +++ b/terraform/modules/route53/outputs.tf @@ -8,14 +8,6 @@ output "name_servers" { value = data.aws_route53_zone.main.name_servers } -output "fe_urls" { - description = "Frontend url list" - value = [ - for subdomain in var.subdomain_names : - subdomain == "" ? "https://${var.domain_name}" : "https://${subdomain}.${var.domain_name}" - - ] -} output "cert_validation_records" { description = "ACM certificate validation record" diff --git a/terraform/outputs.tf b/terraform/outputs.tf index 67ad164..7045c9c 100644 --- a/terraform/outputs.tf +++ b/terraform/outputs.tf @@ -14,8 +14,11 @@ output "s3_bucket_domain_name" { } output "web_urls" { - description = "Website URL" - value = module.route53.fe_urls + description = "Frontend URLs" + value = [ + "https://${var.domain_name}", + "https://www.${var.domain_name}" + ] } output "acm_certificate_status" { From 72567ac3d6bfa943ca34065c0957583bd5da9775 Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Tue, 29 Jul 2025 12:23:26 +0900 Subject: [PATCH 29/86] feat(terraform): terraform test --- terraform/main.tf | 2 -- terraform/modules/route53/variables.tf | 9 --------- 2 files changed, 11 deletions(-) diff --git a/terraform/main.tf b/terraform/main.tf index 00e1319..048eb25 100644 --- a/terraform/main.tf +++ b/terraform/main.tf @@ -60,8 +60,6 @@ module "route53" { domain_name = var.domain_name subdomain_names = ["", "www"] - cloudfront_domain_name = module.cloudfront.distribution_domain_name - cloudfront_hosted_zone_id = module.cloudfront.distribution_hosted_zone_id acm_certificate_domain_validation_options = module.acm.domain_validation_options } diff --git a/terraform/modules/route53/variables.tf b/terraform/modules/route53/variables.tf index aa63319..cf72c5a 100644 --- a/terraform/modules/route53/variables.tf +++ b/terraform/modules/route53/variables.tf @@ -8,15 +8,6 @@ variable "subdomain_names" { type = list(string) } -variable "cloudfront_domain_name" { - description = "Cloudfront distribution domain name" - type = string -} - -variable "cloudfront_hosted_zone_id" { - description = "Cloudfront hosting zone ID" - type = string -} variable "acm_certificate_domain_validation_options" { description = "ACM domain validation" From 5060eeb0fedd234ba35e8c2027e7cd405f714f2d Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Tue, 29 Jul 2025 12:24:49 +0900 Subject: [PATCH 30/86] feat(terraform): terraform test --- terraform/main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terraform/main.tf b/terraform/main.tf index 048eb25..d731d4f 100644 --- a/terraform/main.tf +++ b/terraform/main.tf @@ -109,7 +109,7 @@ resource "aws_route53_record" "frontend_aaaa" { # CloudFront Origin access control 통해서만 버킷 객체 읽을 수 있도록 정책 설정 resource "aws_s3_bucket_policy" "fe" { - bucket = aws_s3_bucket.fe.id + bucket = module.s3.bucket_id policy = jsonencode({ Version = "2012-10-17" From 60fe44f1bbb159a3334cd707b04ffdb2d71d568d Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Tue, 29 Jul 2025 12:28:27 +0900 Subject: [PATCH 31/86] feat(terraform): terraform test --- terraform/main.tf | 14 ++++++++++++-- terraform/modules/route53/main.tf | 22 ---------------------- terraform/modules/route53/outputs.tf | 4 ---- terraform/outputs.tf | 2 +- 4 files changed, 13 insertions(+), 29 deletions(-) diff --git a/terraform/main.tf b/terraform/main.tf index d731d4f..405387f 100644 --- a/terraform/main.tf +++ b/terraform/main.tf @@ -60,7 +60,6 @@ module "route53" { domain_name = var.domain_name subdomain_names = ["", "www"] - acm_certificate_domain_validation_options = module.acm.domain_validation_options } # ACM cert validation @@ -69,7 +68,7 @@ resource "aws_acm_certificate_validation" "fe" { certificate_arn = module.acm.certificate_arn # dns 검증용 레코드 fqdn(fully qualified domain name) 목록 - validation_record_fqdns = [ for record in module.route53.cert_validation_records : record.fqdn ] + validation_record_fqdns = [ for record in aws_route53_record.cert_validation : record.fqdn ] timeouts { # 인증서 검증 완료까지 대기 시간 @@ -79,6 +78,17 @@ resource "aws_acm_certificate_validation" "fe" { depends_on = [ module.route53 ] } +# Create DNS records for ACM validation +resource "aws_route53_record" "cert_validation" { + for_each = { for dvo in module.acm.domain_validation_options : dvo.domain_name => dvo } + name = each.value.resource_record_name + type = each.value.resource_record_type + records = [ each.value.resource_record_value ] + ttl = 60 + zone_id = data.aws_route53_zone.main.zone_id + allow_overwrite = true +} + data "aws_route53_zone" "main" { name = var.domain_name } diff --git a/terraform/modules/route53/main.tf b/terraform/modules/route53/main.tf index 78d0d48..63d9bc4 100644 --- a/terraform/modules/route53/main.tf +++ b/terraform/modules/route53/main.tf @@ -3,25 +3,3 @@ data "aws_route53_zone" "main" { name = var.domain_name } - -# acm 인증서 검증용 record -resource "aws_route53_record" "cert_validation" { - for_each = length(var.acm_certificate_domain_validation_options) > 0 ? { - # acm 반환된 검증용 cname 정보 목록 순회 - for dvo in var.acm_certificate_domain_validation_options : dvo.domain_name => { - name = dvo.resource_record_name - record = dvo.resource_record_value - type = dvo.resource_record_type - } - } : {} - - # 동일 레코드 있으면 덮어쓰기 - allow_overwrite = true - - # dns 검증용 cname 레코드 생성 - name = each.value.name - records = [each.value.record] - ttl = 60 - type = each.value.type - zone_id = data.aws_route53_zone.main.zone_id -} \ No newline at end of file diff --git a/terraform/modules/route53/outputs.tf b/terraform/modules/route53/outputs.tf index cc40529..a819d0f 100644 --- a/terraform/modules/route53/outputs.tf +++ b/terraform/modules/route53/outputs.tf @@ -9,7 +9,3 @@ output "name_servers" { } -output "cert_validation_records" { - description = "ACM certificate validation record" - value = aws_route53_record.cert_validation -} diff --git a/terraform/outputs.tf b/terraform/outputs.tf index 7045c9c..4e62a6f 100644 --- a/terraform/outputs.tf +++ b/terraform/outputs.tf @@ -28,6 +28,6 @@ output "acm_certificate_status" { output "github_role_arn" { description = "Github IAM Role ARN (Paste to github secret)" - value = module.github_oidc[0].role_arn + value = module.github_oidc.role_arn } From 138ae8fe2cf99803419eee8f80a7c1852ebb0be7 Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Tue, 29 Jul 2025 13:17:35 +0900 Subject: [PATCH 32/86] fix(terraform): fix circular reference --- terraform/main.tf | 133 +++++----------------- terraform/modules/acm/main.tf | 4 +- terraform/modules/acm/outputs.tf | 8 +- terraform/modules/acm/variables.tf | 12 +- terraform/modules/cloudfront/main.tf | 52 +++++++-- terraform/modules/cloudfront/outputs.tf | 8 +- terraform/modules/cloudfront/variables.tf | 17 ++- terraform/modules/oidc/main.tf | 6 +- terraform/modules/oidc/outputs.tf | 6 +- terraform/modules/oidc/variables.tf | 16 +-- terraform/modules/route53/main.tf | 62 ++++++++++ terraform/modules/route53/variables.tf | 32 +++++- terraform/modules/s3/main.tf | 29 ----- terraform/modules/s3/outputs.tf | 8 +- terraform/modules/s3/variables.tf | 11 +- terraform/outputs.tf | 10 +- terraform/variables.tf | 20 ++-- 17 files changed, 222 insertions(+), 212 deletions(-) diff --git a/terraform/main.tf b/terraform/main.tf index 405387f..def6e2d 100644 --- a/terraform/main.tf +++ b/terraform/main.tf @@ -13,44 +13,45 @@ provider "aws" { # ACM cert provider (Cloudfront = us-east-1 인증서만 사용 가능) provider "aws" { - alias = "us-east-1" + alias = "us-east-1" region = "us-east-1" } +locals { + # ACM 인증서에 사용될 SAN 목록 정의 + acm_sans = ["*.${var.domain_name}"] +} + module "s3" { source = "./modules/s3" bucket_name = var.bucket_name - prefix = var.prefix + prefix = var.prefix # cloudfront_distribution_arn = module.cloudfront.distribution_arn } module "acm" { source = "./modules/acm" - + providers = { aws.us-east-1 = aws.us-east-1 } - domain_name = var.domain_name + domain_name = var.domain_name subject_alternative_names = ["*.${var.domain_name}"] - validation_method = "DNS" - prefix = var.prefix + validation_method = "DNS" + prefix = var.prefix } module "cloudfront" { source = "./modules/cloudfront" - prefix = var.prefix - bucket_id = module.s3.bucket_id + prefix = var.prefix + bucket_id = module.s3.bucket_id + bucket_arn = module.s3.bucket_arn bucket_regional_domain_name = module.s3.bucket_regional_domain_name - domain_names = [ var.domain_name, "www.${var.domain_name}" ] - acm_certificate_arn = module.acm.certificate_arn - - depends_on = [ - module.acm, - aws_acm_certificate_validation.fe - ] + domain_names = [var.domain_name, "www.${var.domain_name}"] + acm_certificate_arn = module.acm.certificate_arn } @@ -58,101 +59,29 @@ module "cloudfront" { module "route53" { source = "./modules/route53" - domain_name = var.domain_name - subdomain_names = ["", "www"] -} - -# ACM cert validation -resource "aws_acm_certificate_validation" "fe" { - provider = aws.us-east-1 - - certificate_arn = module.acm.certificate_arn - # dns 검증용 레코드 fqdn(fully qualified domain name) 목록 - validation_record_fqdns = [ for record in aws_route53_record.cert_validation : record.fqdn ] - - timeouts { - # 인증서 검증 완료까지 대기 시간 - create = "30m" - } - - depends_on = [ module.route53 ] -} - -# Create DNS records for ACM validation -resource "aws_route53_record" "cert_validation" { - for_each = { for dvo in module.acm.domain_validation_options : dvo.domain_name => dvo } - name = each.value.resource_record_name - type = each.value.resource_record_type - records = [ each.value.resource_record_value ] - ttl = 60 - zone_id = data.aws_route53_zone.main.zone_id - allow_overwrite = true -} - -data "aws_route53_zone" "main" { - name = var.domain_name -} - -resource "aws_route53_record" "frontend_a" { - for_each = toset(["", "www"]) - zone_id = data.aws_route53_zone.main.zone_id - name = each.value == "" ? var.domain_name : "${each.value}.${var.domain_name}" - type = "A" - alias { - name = module.cloudfront.distribution_domain_name - zone_id = module.cloudfront.distribution_hosted_zone_id - evaluate_target_health = false - } -} - -resource "aws_route53_record" "frontend_aaaa" { - for_each = toset(["", "www"]) - zone_id = data.aws_route53_zone.main.zone_id - name = each.value == "" ? var.domain_name : "${each.value}.${var.domain_name}" - type = "AAAA" - alias { - name = module.cloudfront.distribution_domain_name - zone_id = module.cloudfront.distribution_hosted_zone_id - evaluate_target_health = false + providers = { + aws.us-east-1 = aws.us-east-1 } -} -# CloudFront Origin access control 통해서만 버킷 객체 읽을 수 있도록 정책 설정 -resource "aws_s3_bucket_policy" "fe" { - bucket = module.s3.bucket_id - - policy = jsonencode({ - Version = "2012-10-17" - Statement = [ - { - Effect = "Allow" - # CloudFront에 권한 부여 - Principal = { - Service = "cloudfront.amazonaws.com" - } - # Resource의 S3 getObject 권한 - Action = "s3:GetObject" - Resource = "${module.s3.bucket_arn}/*" - - # "AWS:SourceArn"의 값이 var.cloudfront_distribution_arn와 똑같을 때만 - Condition = { - StringEquals = { - "AWS:SourceArn" = module.cloudfront.distribution_arn - } - } - } - ] - } - ) + domain_name = var.domain_name + subdomain_names = ["", "www"] + # ACM 인증이 필요한 전체 도메인 목록을 전달 + acm_domains_for_validation = concat([var.domain_name], local.acm_sans) + acm_certificate_domain_validation_options = module.acm.domain_validation_options + acm_certificate_arn = module.acm.certificate_arn + cloudfront_distribution_domain_name = module.cloudfront.distribution_domain_name + cloudfront_distribution_hosted_zone_id = module.cloudfront.distribution_hosted_zone_id + + depends_on = [module.acm] } module "github_oidc" { source = "./modules/oidc" - prefix = var.prefix + prefix = var.prefix allowed_repositories = var.github_allowed_repo - bucket_arn = module.s3.bucket_arn - distribution_arn = module.cloudfront.distribution_arn + bucket_arn = module.s3.bucket_arn + distribution_arn = module.cloudfront.distribution_arn } # S3 퍼블릭 전면 차단 diff --git a/terraform/modules/acm/main.tf b/terraform/modules/acm/main.tf index 7702b40..25585d0 100644 --- a/terraform/modules/acm/main.tf +++ b/terraform/modules/acm/main.tf @@ -4,7 +4,7 @@ terraform { source = "hashicorp/aws" version = "~> 6.0" # 별도 리전용 프로바이더 지정하도록 alias 설정 - configuration_aliases = [ aws.us-east-1 ] + configuration_aliases = [aws.us-east-1] } } } @@ -17,7 +17,7 @@ resource "aws_acm_certificate" "fe" { domain_name = var.domain_name # 추가 도메인 목록 subject_alternative_names = var.subject_alternative_names - validation_method = var.validation_method + validation_method = var.validation_method lifecycle { # 갱신시 새 인증서 생성후 기존 인증서 파괴 diff --git a/terraform/modules/acm/outputs.tf b/terraform/modules/acm/outputs.tf index 3f0eef2..6dd41ab 100644 --- a/terraform/modules/acm/outputs.tf +++ b/terraform/modules/acm/outputs.tf @@ -1,19 +1,19 @@ output "certificate_arn" { description = "ACM cert ARN" - value = aws_acm_certificate.fe.arn + value = aws_acm_certificate.fe.arn } output "certificate_id" { description = "ACM cert ID" - value = aws_acm_certificate.fe.id + value = aws_acm_certificate.fe.id } output "certificate_status" { description = "ACM cert status" - value = aws_acm_certificate.fe.status + value = aws_acm_certificate.fe.status } output "domain_validation_options" { description = "Domain validation option" - value = aws_acm_certificate.fe.domain_validation_options + value = aws_acm_certificate.fe.domain_validation_options } diff --git a/terraform/modules/acm/variables.tf b/terraform/modules/acm/variables.tf index f73f895..e9c1d13 100644 --- a/terraform/modules/acm/variables.tf +++ b/terraform/modules/acm/variables.tf @@ -1,21 +1,21 @@ variable "prefix" { description = "Prefix for ACM module" - type = string + type = string } variable "domain_name" { description = "Domain name" - type = string + type = string } variable "subject_alternative_names" { description = "Subject alternative names" - type = list(string) - default = [] + type = list(string) + default = [] } variable "validation_method" { description = "Cert validation method (DNS or EMAIL)" - type = string - default = "DNS" + type = string + default = "DNS" } diff --git a/terraform/modules/cloudfront/main.tf b/terraform/modules/cloudfront/main.tf index 0593749..dae5215 100644 --- a/terraform/modules/cloudfront/main.tf +++ b/terraform/modules/cloudfront/main.tf @@ -1,4 +1,3 @@ - # 클라우드프론트 Origin access control 생성 resource "aws_cloudfront_origin_access_control" "fe" { name = "${var.prefix}-oac" @@ -18,12 +17,12 @@ resource "aws_cloudfront_distribution" "fe" { origin_id = var.bucket_id } - enabled = true - is_ipv6_enabled = true - comment = "${var.prefix}-cf-distribution" + enabled = true + is_ipv6_enabled = true + comment = "${var.prefix}-cf-distribution" # 루트 요청시 반환 기본 객체 default_root_object = "index.html" - aliases = var.domain_names + aliases = var.domain_names # logging_config { # include_cookies = false @@ -41,7 +40,7 @@ resource "aws_cloudfront_distribution" "fe" { # query 스트링 포워딩 안함 query_string = false # CORS 처리 위해 Origin, Access-Control-* 헤더만 전달 - headers = ["Origin", "Access-Control-Request-Method", "Access-Control-Request-Headers"] + headers = ["Origin", "Access-Control-Request-Method", "Access-Control-Request-Headers"] cookies { # 쿠키 전달 안함 @@ -52,10 +51,10 @@ resource "aws_cloudfront_distribution" "fe" { # https 리다이렉트 viewer_protocol_policy = "redirect-to-https" # 캐시 유효기간 초 - min_ttl = 0 - default_ttl = 3600 - max_ttl = 86400 - compress = true + min_ttl = 0 + default_ttl = 3600 + max_ttl = 86400 + compress = true } # 접속 국가 제한 @@ -69,8 +68,8 @@ resource "aws_cloudfront_distribution" "fe" { viewer_certificate { cloudfront_default_certificate = var.acm_certificate_arn == "" ? true : false acm_certificate_arn = var.acm_certificate_arn != "" ? var.acm_certificate_arn : null - ssl_support_method = var.acm_certificate_arn != "" ? "sni-only" : null - minimum_protocol_version = var.acm_certificate_arn != "" ? "TLSv1.2_2021" : null + ssl_support_method = var.acm_certificate_arn != "" ? "sni-only" : null + minimum_protocol_version = var.acm_certificate_arn != "" ? "TLSv1.2_2021" : null } @@ -78,3 +77,32 @@ resource "aws_cloudfront_distribution" "fe" { "Name" = "${var.prefix}-cf-distribution" } } + +# CloudFront Origin access control 통해서만 버킷 객체 읽을 수 있도록 정책 설정 +resource "aws_s3_bucket_policy" "fe" { + bucket = var.bucket_id + + policy = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Effect = "Allow" + # CloudFront에 권한 부여 + Principal = { + Service = "cloudfront.amazonaws.com" + } + # Resource의 S3 getObject 권한 + Action = "s3:GetObject" + Resource = "${var.bucket_arn}/*" + + # "AWS:SourceArn"의 값이 var.cloudfront_distribution_arn와 똑같을 때만 + Condition = { + StringEquals = { + "AWS:SourceArn" = aws_cloudfront_distribution.fe.arn + } + } + } + ] + } + ) +} diff --git a/terraform/modules/cloudfront/outputs.tf b/terraform/modules/cloudfront/outputs.tf index 1ae77bd..fa566fb 100644 --- a/terraform/modules/cloudfront/outputs.tf +++ b/terraform/modules/cloudfront/outputs.tf @@ -1,19 +1,19 @@ output "distribution_id" { description = "CloudFront distribution ID" - value = aws_cloudfront_distribution.fe.id + value = aws_cloudfront_distribution.fe.id } output "distribution_arn" { description = "CloudFront distribution ARN" - value = aws_cloudfront_distribution.fe.arn + value = aws_cloudfront_distribution.fe.arn } output "distribution_domain_name" { description = "CloudFront distribution domain name" - value = aws_cloudfront_distribution.fe.domain_name + value = aws_cloudfront_distribution.fe.domain_name } output "distribution_hosted_zone_id" { description = "CloudFront distribution hosting zone ID" - value = aws_cloudfront_distribution.fe.hosted_zone_id + value = aws_cloudfront_distribution.fe.hosted_zone_id } \ No newline at end of file diff --git a/terraform/modules/cloudfront/variables.tf b/terraform/modules/cloudfront/variables.tf index 9e1fd41..c63818e 100644 --- a/terraform/modules/cloudfront/variables.tf +++ b/terraform/modules/cloudfront/variables.tf @@ -1,25 +1,30 @@ variable "prefix" { description = "Prefix for CloudFront module" - type = string + type = string } variable "bucket_regional_domain_name" { description = "S3 bucket region domain name" - type = string + type = string } variable "bucket_id" { description = "S3 bucket ID" - type = string + type = string +} + +variable "bucket_arn" { + description = "S3 bucket ARN" + type = string } variable "acm_certificate_arn" { description = "ACM certificate ARN" - type = string - default = "" + type = string + default = "" } variable "domain_names" { description = "Domain CNAME list" - type = list(string) + type = list(string) } \ No newline at end of file diff --git a/terraform/modules/oidc/main.tf b/terraform/modules/oidc/main.tf index 99d3849..e386f66 100644 --- a/terraform/modules/oidc/main.tf +++ b/terraform/modules/oidc/main.tf @@ -37,7 +37,7 @@ resource "aws_iam_role" "github" { StringLike = { # 토큰 subject가 특정 레포에서 발급된 것만 허용 "token.actions.githubusercontent.com:sub" = [ - for repo in var.allowed_repositories : "repo:${repo}:*" + for repo in var.allowed_repositories : "repo:${repo}:*" ] } } @@ -70,7 +70,7 @@ resource "aws_iam_role_policy" "github" { "s3:PutObjectAcl" ] Resource = [ - var.bucket_arn, "${var.bucket_arn}/*" + var.bucket_arn, "${var.bucket_arn}/*" ] }, { @@ -80,7 +80,7 @@ resource "aws_iam_role_policy" "github" { "cloudfront:CreateInvalidation" ] Resource = [ - var.distribution_arn + var.distribution_arn ] } ] diff --git a/terraform/modules/oidc/outputs.tf b/terraform/modules/oidc/outputs.tf index 350aea0..6b1be43 100644 --- a/terraform/modules/oidc/outputs.tf +++ b/terraform/modules/oidc/outputs.tf @@ -1,15 +1,15 @@ output "role_arn" { description = "Github IAM Role ARN" - value = aws_iam_role.github.arn + value = aws_iam_role.github.arn } output "role_name" { description = "Github IAM ROle name" - value = aws_iam_role.github.name + value = aws_iam_role.github.name } output "oidc_provider_arn" { description = "Github OIDC Provider ARN" - value = aws_iam_openid_connect_provider.github.arn + value = aws_iam_openid_connect_provider.github.arn } diff --git a/terraform/modules/oidc/variables.tf b/terraform/modules/oidc/variables.tf index bd43cd2..68d0b9a 100644 --- a/terraform/modules/oidc/variables.tf +++ b/terraform/modules/oidc/variables.tf @@ -1,27 +1,27 @@ variable "thumbprint_list" { description = "Github OIDC thumbprint list" - type = list(string) - default = [ - "6938fd4d98bab03faadb97b34396831e3780aea1" - ] + type = list(string) + default = [ + "6938fd4d98bab03faadb97b34396831e3780aea1" + ] } variable "prefix" { description = "Prefix for OIDC module" - type = string + type = string } variable "allowed_repositories" { description = "Allowed github repo list (username/repo-name)" - type = list(string) + type = list(string) } variable "bucket_arn" { description = "Allowed S3 bucket ARN" - type = string + type = string } variable "distribution_arn" { description = "Allowed CloudFront distribution ARN for invalidation" - type = string + type = string } \ No newline at end of file diff --git a/terraform/modules/route53/main.tf b/terraform/modules/route53/main.tf index 63d9bc4..96962db 100644 --- a/terraform/modules/route53/main.tf +++ b/terraform/modules/route53/main.tf @@ -1,5 +1,67 @@ +terraform { + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 6.0" + # 별도 리전용 프로바이더 지정하도록 alias 설정 + configuration_aliases = [aws.us-east-1] + } + } +} + # 이미 존재하는 hosted zone 조회 data "aws_route53_zone" "main" { name = var.domain_name } +# ACM validation dns records 생성 +resource "aws_route53_record" "cert_validation" { + for_each = { for idx, domain in var.acm_domains_for_validation : idx => domain } + + name = var.acm_certificate_domain_validation_options[each.key].resource_record_name + type = var.acm_certificate_domain_validation_options[each.key].resource_record_type + records = [var.acm_certificate_domain_validation_options[each.key].resource_record_value] + ttl = 60 + zone_id = data.aws_route53_zone.main.zone_id + allow_overwrite = true +} + +# ACM cert validation +resource "aws_acm_certificate_validation" "fe" { + provider = aws.us-east-1 + + certificate_arn = var.acm_certificate_arn + # dns 검증용 레코드 fqdn(fully qualified domain name) 목록 + validation_record_fqdns = [for record in aws_route53_record.cert_validation : record.fqdn] + + timeouts { + # 인증서 검증 완료까지 대기 시간 + create = "30m" + } +} + +# a record 생성 (ipv4) +resource "aws_route53_record" "frontend_a" { + for_each = toset(var.subdomain_names) + zone_id = data.aws_route53_zone.main.zone_id + name = each.value == "" ? var.domain_name : "${each.value}.${var.domain_name}" + type = "A" + alias { + name = var.cloudfront_distribution_domain_name + zone_id = var.cloudfront_distribution_hosted_zone_id + evaluate_target_health = false + } +} + +# aaaa record 생성 (ipv6) +resource "aws_route53_record" "frontend_aaaa" { + for_each = toset(var.subdomain_names) + zone_id = data.aws_route53_zone.main.zone_id + name = each.value == "" ? var.domain_name : "${each.value}.${var.domain_name}" + type = "AAAA" + alias { + name = var.cloudfront_distribution_domain_name + zone_id = var.cloudfront_distribution_hosted_zone_id + evaluate_target_health = false + } +} \ No newline at end of file diff --git a/terraform/modules/route53/variables.tf b/terraform/modules/route53/variables.tf index cf72c5a..3543b1a 100644 --- a/terraform/modules/route53/variables.tf +++ b/terraform/modules/route53/variables.tf @@ -1,21 +1,41 @@ variable "domain_name" { description = "Route domain name" - type = string + type = string } variable "subdomain_names" { description = "Subdomain list" - type = list(string) + type = list(string) } +variable "acm_domains_for_validation" { + description = "Domain list for ACM validation" + type = list(string) + default = [] +} variable "acm_certificate_domain_validation_options" { description = "ACM domain validation" type = list(object({ - domain_name = string - resource_record_name = string - resource_record_type = string - resource_record_value = string + domain_name = string + resource_record_name = string + resource_record_type = string + resource_record_value = string })) default = [] +} + +variable "acm_certificate_arn" { + description = "ACM certificate ARN for validation" + type = string +} + +variable "cloudfront_distribution_domain_name" { + description = "Cloudfront distribution domain name for alias record" + type = string +} + +variable "cloudfront_distribution_hosted_zone_id" { + description = "Cloudfront distribution hosted zone ID for alias record" + type = string } \ No newline at end of file diff --git a/terraform/modules/s3/main.tf b/terraform/modules/s3/main.tf index 1e91c5e..273c187 100644 --- a/terraform/modules/s3/main.tf +++ b/terraform/modules/s3/main.tf @@ -36,32 +36,3 @@ resource "aws_s3_bucket_server_side_encryption_configuration" "fe" { } } - -# CloudFront Origin access control 통해서만 버킷 객체 읽을 수 있도록 정책 설정 -# resource "aws_s3_bucket_policy" "fe" { -# bucket = aws_s3_bucket.fe.id - -# policy = jsonencode({ -# Version = "2012-10-17" -# Statement = [ -# { -# Effect = "Allow" -# # CloudFront에 권한 부여 -# Principal = { -# Service = "cloudfront.amazonaws.com" -# } -# # Resource의 S3 getObject 권한 -# Action = "s3:GetObject" -# Resource = "${aws_s3_bucket.fe.arn}/*" - -# # "AWS:SourceArn"의 값이 var.cloudfront_distribution_arn와 똑같을 때만 -# Condition = { -# StringEquals = { -# "AWS:SourceArn" = var.cloudfront_distribution_arn -# } -# } -# } -# ] -# } -# ) -# } diff --git a/terraform/modules/s3/outputs.tf b/terraform/modules/s3/outputs.tf index d8a7e7b..fccdf1a 100644 --- a/terraform/modules/s3/outputs.tf +++ b/terraform/modules/s3/outputs.tf @@ -1,19 +1,19 @@ output "bucket_id" { description = "S3 bucket ID" - value = aws_s3_bucket.fe.id + value = aws_s3_bucket.fe.id } output "bucket_arn" { description = "S3 bucket ARN" - value = aws_s3_bucket.fe.arn + value = aws_s3_bucket.fe.arn } output "bucket_domain_name" { description = "S3 bucket domain name" - value = aws_s3_bucket.fe.bucket_domain_name + value = aws_s3_bucket.fe.bucket_domain_name } output "bucket_regional_domain_name" { description = "S3 bucket region domain name" - value = aws_s3_bucket.fe.bucket_regional_domain_name + value = aws_s3_bucket.fe.bucket_regional_domain_name } \ No newline at end of file diff --git a/terraform/modules/s3/variables.tf b/terraform/modules/s3/variables.tf index 005925a..6aba527 100644 --- a/terraform/modules/s3/variables.tf +++ b/terraform/modules/s3/variables.tf @@ -1,14 +1,9 @@ variable "bucket_name" { default = "S3 Bucket Name" - type = string + type = string } variable "prefix" { description = "Prefix for S3 module" - type = string -} - -# variable "cloudfront_distribution_arn" { -# description = "CloudFront distribution ARN" -# type = string -# } \ No newline at end of file + type = string +} \ No newline at end of file diff --git a/terraform/outputs.tf b/terraform/outputs.tf index 4e62a6f..2bb620c 100644 --- a/terraform/outputs.tf +++ b/terraform/outputs.tf @@ -1,16 +1,16 @@ output "cloudfront_distribution_domain" { description = "CloudFront distribution domain" - value = module.cloudfront.distribution_domain_name + value = module.cloudfront.distribution_domain_name } output "s3_bucket_id" { description = "S3 bukcet ID" - value = module.s3.bucket_id + value = module.s3.bucket_id } output "s3_bucket_domain_name" { - description = "S3 bukcet domain name" - value = module.s3.bucket_domain_name + description = "S3 bukcet domain name" + value = module.s3.bucket_domain_name } output "web_urls" { @@ -23,7 +23,7 @@ output "web_urls" { output "acm_certificate_status" { description = "ACM certificate status" - value = module.acm.certificate_status + value = module.acm.certificate_status } output "github_role_arn" { diff --git a/terraform/variables.tf b/terraform/variables.tf index a0ace9c..7571b2c 100644 --- a/terraform/variables.tf +++ b/terraform/variables.tf @@ -1,27 +1,27 @@ variable "aws_region" { - description = "AWS Region" - type = string - default = "us-east-1" + description = "AWS Region" + type = string + default = "us-east-1" } variable "prefix" { - description = "Prefix" - type = string - default = "Team1-front" + description = "Prefix" + type = string + default = "Team1-front" } variable "domain_name" { description = "Domain name" - type = string + type = string } variable "bucket_name" { description = "S3 bucket name" - type = string + type = string } variable "github_allowed_repo" { description = "Allowed github repo list (username/repo-name)" - type = list(string) - default = [ "jyoungmin-com/Final-Team1-Frontend-test" ] + type = list(string) + default = ["jyoungmin-com/Final-Team1-Frontend-test"] } \ No newline at end of file From 0784608dbb01c60fc32f41e1dabca06189ee6c7a Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Tue, 29 Jul 2025 13:38:15 +0900 Subject: [PATCH 33/86] fix(terraform): fix circular reference --- .github/workflows/deploy.yaml | 63 +++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 .github/workflows/deploy.yaml diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml new file mode 100644 index 0000000..1f0334b --- /dev/null +++ b/.github/workflows/deploy.yaml @@ -0,0 +1,63 @@ +name: Deploy FE to AWS + +on: + workflow_dispatch: + + +permissions: + # oidc 인증용 + id-token: write + # 체크아웃용 + contents: read + +jobs: + build: + name: Build + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup node.js + uses: actions/setup-node@v4 + with: + node-version: "20" + cache: "npm" + + - name: Install dependencies + run: npm install + + - name: Build + run: npm run build + + - name: Upload build artifact + uses: actions/upload-artifact@v4 + with: + name: build-artifact + path: ./build + + deploy: + name: Deploy to AWS + needs: build + runs-on: ubuntu-latest + steps: + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: ${{ secrets.AWS_ROLE_ARN }} + aws-region: ${{ secrets.AWS_REGION }} + + - name: Download build artifact + uses: actions/download-artifact@v4 + with: + name: build-artifact + path: . + + - name: Upload to S3 + run: | + aws s3 sync . s3://${{ secrets.S3_BUCKET_NAME }} --delete + + - name: Invalidate Cloudfront cache + # Cloudfront cache 무효화 -> 즉시 최신 버전 볼 수 있게 함 + run: | + aws cloudfront create-invalidation --distribution-id ${{ secrets.CLOUDFRONT_DISTRIBUTION_ID }} --paths "/*" From 2b137a1122969373b86e2cc1154e9a36b83adeff Mon Sep 17 00:00:00 2001 From: Youngmin Jung <126688150+jyoungmin-com@users.noreply.github.com> Date: Tue, 29 Jul 2025 13:45:49 +0900 Subject: [PATCH 34/86] Update deploy.yaml --- .github/workflows/deploy.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index 1f0334b..8c1d1fd 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -1,7 +1,9 @@ name: Deploy FE to AWS on: - workflow_dispatch: + push: + branches: + - dev permissions: From cf69e502fcb406df85107d506541dd56e4d93817 Mon Sep 17 00:00:00 2001 From: Youngmin Jung <126688150+jyoungmin-com@users.noreply.github.com> Date: Tue, 29 Jul 2025 13:48:52 +0900 Subject: [PATCH 35/86] Update deploy.yaml --- .github/workflows/deploy.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index 8c1d1fd..3983f43 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -36,7 +36,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: build-artifact - path: ./build + path: ./dist deploy: name: Deploy to AWS From 05d2290765c2d21117317357ce1b83e6b3034a07 Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Tue, 29 Jul 2025 14:46:48 +0900 Subject: [PATCH 36/86] fix(terraform): fix all --- .github/workflows/deploy.yaml | 8 +- terraform/main.tf | 11 +-- terraform/modules/acm/main.tf | 1 + terraform/modules/cloudfront/main.tf | 12 +-- terraform/modules/cloudfront/variables.tf | 6 ++ terraform/modules/route53/main.tf | 2 + terraform/modules/s3/main.tf | 33 +++++++- terraform/modules/s3/outputs.tf | 5 ++ terraform/modules/s3/variables.tf | 5 ++ terraform/outputs.tf | 97 ++++++++++++++++++++--- terraform/variables.tf | 8 +- 11 files changed, 158 insertions(+), 30 deletions(-) diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index 3983f43..1b7b2ab 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -1,9 +1,11 @@ name: Deploy FE to AWS on: - push: - branches: - - dev +# push: +# branches: +# - dev + workflow_dispatch: + permissions: diff --git a/terraform/main.tf b/terraform/main.tf index def6e2d..817a336 100644 --- a/terraform/main.tf +++ b/terraform/main.tf @@ -7,6 +7,7 @@ terraform { } } +# Default provider provider "aws" { region = var.aws_region } @@ -18,7 +19,7 @@ provider "aws" { } locals { - # ACM 인증서에 사용될 SAN 목록 정의 + # acm 인증서에 사용될 san 목록 => 와일드카드로 acm_sans = ["*.${var.domain_name}"] } @@ -26,8 +27,8 @@ module "s3" { source = "./modules/s3" bucket_name = var.bucket_name + log_bucket_name = var.log_bucket_name prefix = var.prefix - # cloudfront_distribution_arn = module.cloudfront.distribution_arn } module "acm" { @@ -39,6 +40,7 @@ module "acm" { domain_name = var.domain_name subject_alternative_names = ["*.${var.domain_name}"] + # DNS 방식으로 도메인 검증 validation_method = "DNS" prefix = var.prefix } @@ -52,10 +54,9 @@ module "cloudfront" { bucket_regional_domain_name = module.s3.bucket_regional_domain_name domain_names = [var.domain_name, "www.${var.domain_name}"] acm_certificate_arn = module.acm.certificate_arn + log_bucket_domain_name = module.s3.log_bucket_domain_name } - - module "route53" { source = "./modules/route53" @@ -65,7 +66,7 @@ module "route53" { domain_name = var.domain_name subdomain_names = ["", "www"] - # ACM 인증이 필요한 전체 도메인 목록을 전달 + # acm 인증이 필요한 전체 도메인 목록을 전달 acm_domains_for_validation = concat([var.domain_name], local.acm_sans) acm_certificate_domain_validation_options = module.acm.domain_validation_options acm_certificate_arn = module.acm.certificate_arn diff --git a/terraform/modules/acm/main.tf b/terraform/modules/acm/main.tf index 25585d0..80686af 100644 --- a/terraform/modules/acm/main.tf +++ b/terraform/modules/acm/main.tf @@ -17,6 +17,7 @@ resource "aws_acm_certificate" "fe" { domain_name = var.domain_name # 추가 도메인 목록 subject_alternative_names = var.subject_alternative_names + # 도메인 소유권 검증 방식 (DNS or EMAIL) validation_method = var.validation_method lifecycle { diff --git a/terraform/modules/cloudfront/main.tf b/terraform/modules/cloudfront/main.tf index dae5215..b8dbfbc 100644 --- a/terraform/modules/cloudfront/main.tf +++ b/terraform/modules/cloudfront/main.tf @@ -24,11 +24,11 @@ resource "aws_cloudfront_distribution" "fe" { default_root_object = "index.html" aliases = var.domain_names - # logging_config { - # include_cookies = false - # bucket = var.bucket_regional_doma - # } - + logging_config { + include_cookies = false + bucket = var.log_bucket_domain_name + prefix = "${var.prefix}" + } # 기본 캐싱 정책 default_cache_behavior { @@ -79,6 +79,8 @@ resource "aws_cloudfront_distribution" "fe" { } # CloudFront Origin access control 통해서만 버킷 객체 읽을 수 있도록 정책 설정 +# S3 버킷 정책 - Cloudfront 배포 정보 필요하므로 순환참조 문제 해결 위해 cloudfront모듈에서 선언 +# Cloudfront -> S3 필요 (aws_cloudfront_distribution에서 원본으로 사용할 s3 정보 필요), S3 버킷 정책 -> Cloudfront 필요 (특정 cloudfront에서 오는 요청만 허용하도록 정책하기 위해서) resource "aws_s3_bucket_policy" "fe" { bucket = var.bucket_id diff --git a/terraform/modules/cloudfront/variables.tf b/terraform/modules/cloudfront/variables.tf index c63818e..c840cc2 100644 --- a/terraform/modules/cloudfront/variables.tf +++ b/terraform/modules/cloudfront/variables.tf @@ -27,4 +27,10 @@ variable "acm_certificate_arn" { variable "domain_names" { description = "Domain CNAME list" type = list(string) +} + +variable "log_bucket_domain_name" { + description = "S3 bucket name for log" + type = string + default = "" } \ No newline at end of file diff --git a/terraform/modules/route53/main.tf b/terraform/modules/route53/main.tf index 96962db..83455cd 100644 --- a/terraform/modules/route53/main.tf +++ b/terraform/modules/route53/main.tf @@ -27,6 +27,8 @@ resource "aws_route53_record" "cert_validation" { } # ACM cert validation +# acm 인증서 유효성 검증 - Route53에서 만든 dns 레코드로 유효성 검증해야하므로 순환참조 문제 해결 위해 route53모듈에서 선언 +# acm 모듈이 인증서 생성(aws_acm_certificate) -> route53이 acm 모듈의 정보 받아 dns 레코드 생성(aws_route53_record) -> 만든 dns 레코드 기반으로 acm 인증서 유효성 검증 (aws_acm_certificate_validation) resource "aws_acm_certificate_validation" "fe" { provider = aws.us-east-1 diff --git a/terraform/modules/s3/main.tf b/terraform/modules/s3/main.tf index 273c187..bdf3d47 100644 --- a/terraform/modules/s3/main.tf +++ b/terraform/modules/s3/main.tf @@ -1,4 +1,12 @@ -# bucket 생성 +terraform { + required_providers { + aws = { + source = "hashicorp/aws" + version = "5.81.0" + } + } +} +# content bucket 생성 resource "aws_s3_bucket" "fe" { bucket = var.bucket_name @@ -34,5 +42,28 @@ resource "aws_s3_bucket_server_side_encryption_configuration" "fe" { sse_algorithm = "AES256" } } +} +# log bucket 생성 +resource "aws_s3_bucket" "fe_log" { + bucket = var.log_bucket_name + + tags = { + "Name" = "${var.prefix}-log-bucket" + } } + +resource "aws_s3_bucket_public_access_block" "fe_log" { + bucket = aws_s3_bucket.fe_log.id + + block_public_acls = true + block_public_policy = true + ignore_public_acls = true + restrict_public_buckets = true +} + +# AWS log delivery service가 로그 쓸 수 있도록 acl 설정 +resource "aws_s3_bucket_acl" "fe_log_bucket_acl" { + bucket = aws_s3_bucket.fe_log.id + acl = "log-delivery-write" +} \ No newline at end of file diff --git a/terraform/modules/s3/outputs.tf b/terraform/modules/s3/outputs.tf index fccdf1a..70db528 100644 --- a/terraform/modules/s3/outputs.tf +++ b/terraform/modules/s3/outputs.tf @@ -16,4 +16,9 @@ output "bucket_domain_name" { output "bucket_regional_domain_name" { description = "S3 bucket region domain name" value = aws_s3_bucket.fe.bucket_regional_domain_name +} + +output "log_bucket_domain_name" { + description = "S3 log bucket domain name" + value = aws_s3_bucket.fe_log.bucket_domain_name } \ No newline at end of file diff --git a/terraform/modules/s3/variables.tf b/terraform/modules/s3/variables.tf index 6aba527..8f57571 100644 --- a/terraform/modules/s3/variables.tf +++ b/terraform/modules/s3/variables.tf @@ -6,4 +6,9 @@ variable "bucket_name" { variable "prefix" { description = "Prefix for S3 module" type = string +} + +variable "log_bucket_name" { + description = "S3 bucket name for log" + type = string } \ No newline at end of file diff --git a/terraform/outputs.tf b/terraform/outputs.tf index 2bb620c..f4d8fe2 100644 --- a/terraform/outputs.tf +++ b/terraform/outputs.tf @@ -1,33 +1,104 @@ -output "cloudfront_distribution_domain" { - description = "CloudFront distribution domain" - value = module.cloudfront.distribution_domain_name -} - output "s3_bucket_id" { - description = "S3 bukcet ID" + description = "GitHub secrets(S3_BUCKET_NAME) - S3 bukcet ID" value = module.s3.bucket_id } -output "s3_bucket_domain_name" { - description = "S3 bukcet domain name" - value = module.s3.bucket_domain_name +output "github_role_arn" { + description = "GitHub secrets(AWS_ROLE_ARN) - Github IAM Role ARN" + value = module.github_oidc.role_arn +} + +output "cloudfront_distribution_id" { + description = "GitHub secrets(CLOUDFRONT_DISTRIBUTION_ID) - Cloudfront distribution ID" + value = module.cloudfront.distribution_id +} + +output "aws_region" { + description = "GitHub secrets(AWS_REGION) - AWS region" + value = var.aws_region } output "web_urls" { - description = "Frontend URLs" + description = "Frontend access URL" value = [ "https://${var.domain_name}", "https://www.${var.domain_name}" ] } +output "cloudfront_distribution_domain" { + description = "CloudFront distribution domain" + value = module.cloudfront.distribution_domain_name +} + output "acm_certificate_status" { description = "ACM certificate status" value = module.acm.certificate_status } -output "github_role_arn" { - description = "Github IAM Role ARN (Paste to github secret)" - value = module.github_oidc.role_arn + + +output "s3_bucket_arn" { + description = "S3 bucket ARN" + value = module.s3.bucket_arn +} + +output "s3_bucket_domain_name" { + description = "S3 bukcet domain name" + value = module.s3.bucket_domain_name +} + +output "s3_bucket_regional_domain_name" { + description = "S3 bucket region domain name" + value = module.s3.bucket_regional_domain_name +} + +output "s3_fe_log_bucket_domain_name" { + description = "Frontend CloudFront access log S3 bucket" + value = module.s3.log_bucket_domain_name +} + +output "route53_zone_id" { + description = "Route53 hosting zone ID" + value = module.route53.zone_id +} + +output "route53_name_servers" { + description = "Route53 nameserver" + value = module.route53.name_servers +} + +output "github_role_name" { + description = "Github IAM Role name" + value = module.github_oidc.role_name +} + +output "github_oidc_provider_arn" { + description = "Github OIDC Provider ARN" + value = module.github_oidc.oidc_provider_arn +} + +output "cf_distribution_arn" { + description = "CloudFront distribution ARN" + value = module.cloudfront.distribution_arn +} + +output "cf_distribution_hosted_zone_id" { + description = "CloudFront distribution hosted zone ID" + value = module.cloudfront.distribution_hosted_zone_id +} + +output "acm_cert_arn" { + description = "ACM certificate ARN" + value = module.acm.certificate_arn +} + +output "acm_cert_id" { + description = "ACM certificate ID" + value = module.acm.certificate_id } +output "acm_dom_val_opt" { + description = "ACM Domain validation option" + value = module.acm.domain_validation_options +} \ No newline at end of file diff --git a/terraform/variables.tf b/terraform/variables.tf index 7571b2c..5f7e3b9 100644 --- a/terraform/variables.tf +++ b/terraform/variables.tf @@ -1,13 +1,11 @@ variable "aws_region" { description = "AWS Region" type = string - default = "us-east-1" } variable "prefix" { description = "Prefix" type = string - default = "Team1-front" } variable "domain_name" { @@ -23,5 +21,9 @@ variable "bucket_name" { variable "github_allowed_repo" { description = "Allowed github repo list (username/repo-name)" type = list(string) - default = ["jyoungmin-com/Final-Team1-Frontend-test"] +} + +variable "log_bucket_name" { + description = "S3 bucket name for Cloudfront access log" + type = string } \ No newline at end of file From 4c9f2c9aae30038bf77c3472b7b7da8419a209b3 Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Tue, 29 Jul 2025 15:05:43 +0900 Subject: [PATCH 37/86] fix(terraform): fix all --- terraform/modules/s3/main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terraform/modules/s3/main.tf b/terraform/modules/s3/main.tf index bdf3d47..7f29295 100644 --- a/terraform/modules/s3/main.tf +++ b/terraform/modules/s3/main.tf @@ -2,7 +2,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = "5.81.0" + version = "~> 6.0" } } } From 3e9774966396446922dce12e6602863a19ebcc92 Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Tue, 29 Jul 2025 15:18:14 +0900 Subject: [PATCH 38/86] fix(terraform): fix all --- terraform/modules/s3/main.tf | 41 ++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/terraform/modules/s3/main.tf b/terraform/modules/s3/main.tf index 7f29295..bc1d6e6 100644 --- a/terraform/modules/s3/main.tf +++ b/terraform/modules/s3/main.tf @@ -56,14 +56,43 @@ resource "aws_s3_bucket" "fe_log" { resource "aws_s3_bucket_public_access_block" "fe_log" { bucket = aws_s3_bucket.fe_log.id - block_public_acls = true - block_public_policy = true - ignore_public_acls = true + # 버킷 acl 활성화 + block_public_acls = false + block_public_policy = false + ignore_public_acls = false restrict_public_buckets = true } -# AWS log delivery service가 로그 쓸 수 있도록 acl 설정 -resource "aws_s3_bucket_acl" "fe_log_bucket_acl" { +# 버킷 객체 소유권 => 버킷 owner, cloudfront가 로그 업로드 허용 +resource "aws_s3_bucket_ownership_controls" "fe_log" { + bucket = aws_s3_bucket.fe_log.id + rule { + object_ownership = "BucketOwnerPreferred" + } +} + +resource "aws_s3_bucket_policy" "fe_log" { bucket = aws_s3_bucket.fe_log.id - acl = "log-delivery-write" + policy = jsonencode({ + Version = "2012-10-17", + Statement = [ + { + Effect = "Allow", + Principal = { Service = "delivery.logs.amazonaws.com" }, + Action = "s3:PutObject", + Resource = "${aws_s3_bucket.fe_log.arn}/*", + Condition = { + StringEquals = { + "s3:x-amz-acl" = "bucket-owner-full-control" + } + } + }, + { + Effect = "Allow", + Principal = { Service = "delivery.logs.amazonaws.com" }, + Action = "s3:GetBucketAcl", + Resource = aws_s3_bucket.fe_log.arn + }] + }) + depends_on = [aws_s3_bucket_ownership_controls.fe_log] } \ No newline at end of file From 6c18f4980c2cd67fe07ebcfbb0e0da8bb91be15d Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Tue, 29 Jul 2025 15:23:23 +0900 Subject: [PATCH 39/86] fix(terraform): fix all --- terraform/modules/s3/main.tf | 29 ++++++----------------------- 1 file changed, 6 insertions(+), 23 deletions(-) diff --git a/terraform/modules/s3/main.tf b/terraform/modules/s3/main.tf index bc1d6e6..1ec30c9 100644 --- a/terraform/modules/s3/main.tf +++ b/terraform/modules/s3/main.tf @@ -71,28 +71,11 @@ resource "aws_s3_bucket_ownership_controls" "fe_log" { } } -resource "aws_s3_bucket_policy" "fe_log" { - bucket = aws_s3_bucket.fe_log.id - policy = jsonencode({ - Version = "2012-10-17", - Statement = [ - { - Effect = "Allow", - Principal = { Service = "delivery.logs.amazonaws.com" }, - Action = "s3:PutObject", - Resource = "${aws_s3_bucket.fe_log.arn}/*", - Condition = { - StringEquals = { - "s3:x-amz-acl" = "bucket-owner-full-control" - } - } - }, - { - Effect = "Allow", - Principal = { Service = "delivery.logs.amazonaws.com" }, - Action = "s3:GetBucketAcl", - Resource = aws_s3_bucket.fe_log.arn - }] - }) +# AWS log delivery 서비스가 로그를 쓸 수 있도록 acl 설정 +resource "aws_s3_bucket_acl" "fe_log" { + # 소유권 설정 먼저 적용 depends_on = [aws_s3_bucket_ownership_controls.fe_log] + + bucket = aws_s3_bucket.fe_log.id + acl = "log-delivery-write" } \ No newline at end of file From 6c621f09de7911dea4155acd57dc7bf42299dcda Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Tue, 29 Jul 2025 15:44:01 +0900 Subject: [PATCH 40/86] fix(terraform): fix all --- terraform/modules/cloudfront/main.tf | 2 +- terraform/outputs.tf | 152 +++++++++++++-------------- 2 files changed, 77 insertions(+), 77 deletions(-) diff --git a/terraform/modules/cloudfront/main.tf b/terraform/modules/cloudfront/main.tf index b8dbfbc..a27b72c 100644 --- a/terraform/modules/cloudfront/main.tf +++ b/terraform/modules/cloudfront/main.tf @@ -27,7 +27,7 @@ resource "aws_cloudfront_distribution" "fe" { logging_config { include_cookies = false bucket = var.log_bucket_domain_name - prefix = "${var.prefix}" + prefix = "${var.prefix}/" } # 기본 캐싱 정책 diff --git a/terraform/outputs.tf b/terraform/outputs.tf index f4d8fe2..7d65ec2 100644 --- a/terraform/outputs.tf +++ b/terraform/outputs.tf @@ -26,79 +26,79 @@ output "web_urls" { ] } -output "cloudfront_distribution_domain" { - description = "CloudFront distribution domain" - value = module.cloudfront.distribution_domain_name -} - -output "acm_certificate_status" { - description = "ACM certificate status" - value = module.acm.certificate_status -} - - - -output "s3_bucket_arn" { - description = "S3 bucket ARN" - value = module.s3.bucket_arn -} - -output "s3_bucket_domain_name" { - description = "S3 bukcet domain name" - value = module.s3.bucket_domain_name -} - -output "s3_bucket_regional_domain_name" { - description = "S3 bucket region domain name" - value = module.s3.bucket_regional_domain_name -} - -output "s3_fe_log_bucket_domain_name" { - description = "Frontend CloudFront access log S3 bucket" - value = module.s3.log_bucket_domain_name -} - -output "route53_zone_id" { - description = "Route53 hosting zone ID" - value = module.route53.zone_id -} - -output "route53_name_servers" { - description = "Route53 nameserver" - value = module.route53.name_servers -} - -output "github_role_name" { - description = "Github IAM Role name" - value = module.github_oidc.role_name -} - -output "github_oidc_provider_arn" { - description = "Github OIDC Provider ARN" - value = module.github_oidc.oidc_provider_arn -} - -output "cf_distribution_arn" { - description = "CloudFront distribution ARN" - value = module.cloudfront.distribution_arn -} - -output "cf_distribution_hosted_zone_id" { - description = "CloudFront distribution hosted zone ID" - value = module.cloudfront.distribution_hosted_zone_id -} - -output "acm_cert_arn" { - description = "ACM certificate ARN" - value = module.acm.certificate_arn -} - -output "acm_cert_id" { - description = "ACM certificate ID" - value = module.acm.certificate_id -} - -output "acm_dom_val_opt" { - description = "ACM Domain validation option" - value = module.acm.domain_validation_options -} \ No newline at end of file +# output "cloudfront_distribution_domain" { +# description = "CloudFront distribution domain" +# value = module.cloudfront.distribution_domain_name +# } +# +# output "acm_certificate_status" { +# description = "ACM certificate status" +# value = module.acm.certificate_status +# } +# +# +# +# output "s3_bucket_arn" { +# description = "S3 bucket ARN" +# value = module.s3.bucket_arn +# } +# +# output "s3_bucket_domain_name" { +# description = "S3 bukcet domain name" +# value = module.s3.bucket_domain_name +# } +# +# output "s3_bucket_regional_domain_name" { +# description = "S3 bucket region domain name" +# value = module.s3.bucket_regional_domain_name +# } +# +# output "s3_fe_log_bucket_domain_name" { +# description = "Frontend CloudFront access log S3 bucket" +# value = module.s3.log_bucket_domain_name +# } +# +# output "route53_zone_id" { +# description = "Route53 hosting zone ID" +# value = module.route53.zone_id +# } +# +# output "route53_name_servers" { +# description = "Route53 nameserver" +# value = module.route53.name_servers +# } +# +# output "github_role_name" { +# description = "Github IAM Role name" +# value = module.github_oidc.role_name +# } +# +# output "github_oidc_provider_arn" { +# description = "Github OIDC Provider ARN" +# value = module.github_oidc.oidc_provider_arn +# } +# +# output "cf_distribution_arn" { +# description = "CloudFront distribution ARN" +# value = module.cloudfront.distribution_arn +# } +# +# output "cf_distribution_hosted_zone_id" { +# description = "CloudFront distribution hosted zone ID" +# value = module.cloudfront.distribution_hosted_zone_id +# } +# +# output "acm_cert_arn" { +# description = "ACM certificate ARN" +# value = module.acm.certificate_arn +# } +# +# output "acm_cert_id" { +# description = "ACM certificate ID" +# value = module.acm.certificate_id +# } +# +# output "acm_dom_val_opt" { +# description = "ACM Domain validation option" +# value = module.acm.domain_validation_options +# } \ No newline at end of file From f9da895f522ad9b548821e150e03df7d954bd10e Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Tue, 29 Jul 2025 15:45:16 +0900 Subject: [PATCH 41/86] fix(terraform): fix all --- terraform/outputs.tf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/terraform/outputs.tf b/terraform/outputs.tf index 7d65ec2..c07e099 100644 --- a/terraform/outputs.tf +++ b/terraform/outputs.tf @@ -1,19 +1,19 @@ -output "s3_bucket_id" { +output "S3_BUCKET_NAME" { description = "GitHub secrets(S3_BUCKET_NAME) - S3 bukcet ID" value = module.s3.bucket_id } -output "github_role_arn" { +output "AWS_ROLE_ARN" { description = "GitHub secrets(AWS_ROLE_ARN) - Github IAM Role ARN" value = module.github_oidc.role_arn } -output "cloudfront_distribution_id" { +output "CLOUDFRONT_DISTRIBUTION_ID" { description = "GitHub secrets(CLOUDFRONT_DISTRIBUTION_ID) - Cloudfront distribution ID" value = module.cloudfront.distribution_id } -output "aws_region" { +output "AWS_REGION" { description = "GitHub secrets(AWS_REGION) - AWS region" value = var.aws_region } From d6d3c47147133a9f0a89ca11770f086e5b8fd34e Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Tue, 29 Jul 2025 16:26:21 +0900 Subject: [PATCH 42/86] refactoring(terraform): apply terraform fmt - Apply `terraform fmt --recursive` --- terraform/main.tf | 10 +++++----- terraform/modules/acm/main.tf | 2 +- terraform/modules/cloudfront/main.tf | 4 ++-- terraform/modules/cloudfront/variables.tf | 4 ++-- terraform/modules/s3/outputs.tf | 2 +- terraform/modules/s3/variables.tf | 2 +- terraform/outputs.tf | 2 +- terraform/variables.tf | 2 +- 8 files changed, 14 insertions(+), 14 deletions(-) diff --git a/terraform/main.tf b/terraform/main.tf index 817a336..b0fb3aa 100644 --- a/terraform/main.tf +++ b/terraform/main.tf @@ -26,9 +26,9 @@ locals { module "s3" { source = "./modules/s3" - bucket_name = var.bucket_name + bucket_name = var.bucket_name log_bucket_name = var.log_bucket_name - prefix = var.prefix + prefix = var.prefix } module "acm" { @@ -41,8 +41,8 @@ module "acm" { domain_name = var.domain_name subject_alternative_names = ["*.${var.domain_name}"] # DNS 방식으로 도메인 검증 - validation_method = "DNS" - prefix = var.prefix + validation_method = "DNS" + prefix = var.prefix } module "cloudfront" { @@ -54,7 +54,7 @@ module "cloudfront" { bucket_regional_domain_name = module.s3.bucket_regional_domain_name domain_names = [var.domain_name, "www.${var.domain_name}"] acm_certificate_arn = module.acm.certificate_arn - log_bucket_domain_name = module.s3.log_bucket_domain_name + log_bucket_domain_name = module.s3.log_bucket_domain_name } module "route53" { diff --git a/terraform/modules/acm/main.tf b/terraform/modules/acm/main.tf index 80686af..d0e8cd7 100644 --- a/terraform/modules/acm/main.tf +++ b/terraform/modules/acm/main.tf @@ -18,7 +18,7 @@ resource "aws_acm_certificate" "fe" { # 추가 도메인 목록 subject_alternative_names = var.subject_alternative_names # 도메인 소유권 검증 방식 (DNS or EMAIL) - validation_method = var.validation_method + validation_method = var.validation_method lifecycle { # 갱신시 새 인증서 생성후 기존 인증서 파괴 diff --git a/terraform/modules/cloudfront/main.tf b/terraform/modules/cloudfront/main.tf index a27b72c..b37776a 100644 --- a/terraform/modules/cloudfront/main.tf +++ b/terraform/modules/cloudfront/main.tf @@ -26,8 +26,8 @@ resource "aws_cloudfront_distribution" "fe" { logging_config { include_cookies = false - bucket = var.log_bucket_domain_name - prefix = "${var.prefix}/" + bucket = var.log_bucket_domain_name + prefix = "${var.prefix}/" } # 기본 캐싱 정책 diff --git a/terraform/modules/cloudfront/variables.tf b/terraform/modules/cloudfront/variables.tf index c840cc2..8d3a77b 100644 --- a/terraform/modules/cloudfront/variables.tf +++ b/terraform/modules/cloudfront/variables.tf @@ -31,6 +31,6 @@ variable "domain_names" { variable "log_bucket_domain_name" { description = "S3 bucket name for log" - type = string - default = "" + type = string + default = "" } \ No newline at end of file diff --git a/terraform/modules/s3/outputs.tf b/terraform/modules/s3/outputs.tf index 70db528..0e5af8b 100644 --- a/terraform/modules/s3/outputs.tf +++ b/terraform/modules/s3/outputs.tf @@ -20,5 +20,5 @@ output "bucket_regional_domain_name" { output "log_bucket_domain_name" { description = "S3 log bucket domain name" - value = aws_s3_bucket.fe_log.bucket_domain_name + value = aws_s3_bucket.fe_log.bucket_domain_name } \ No newline at end of file diff --git a/terraform/modules/s3/variables.tf b/terraform/modules/s3/variables.tf index 8f57571..583bbea 100644 --- a/terraform/modules/s3/variables.tf +++ b/terraform/modules/s3/variables.tf @@ -10,5 +10,5 @@ variable "prefix" { variable "log_bucket_name" { description = "S3 bucket name for log" - type = string + type = string } \ No newline at end of file diff --git a/terraform/outputs.tf b/terraform/outputs.tf index c07e099..d9010c2 100644 --- a/terraform/outputs.tf +++ b/terraform/outputs.tf @@ -15,7 +15,7 @@ output "CLOUDFRONT_DISTRIBUTION_ID" { output "AWS_REGION" { description = "GitHub secrets(AWS_REGION) - AWS region" - value = var.aws_region + value = var.aws_region } output "web_urls" { diff --git a/terraform/variables.tf b/terraform/variables.tf index 5f7e3b9..cd0a36e 100644 --- a/terraform/variables.tf +++ b/terraform/variables.tf @@ -25,5 +25,5 @@ variable "github_allowed_repo" { variable "log_bucket_name" { description = "S3 bucket name for Cloudfront access log" - type = string + type = string } \ No newline at end of file From cc48460aa59646ea25e1fde5e778472741f13add Mon Sep 17 00:00:00 2001 From: Youngmin Jung <126688150+jyoungmin-com@users.noreply.github.com> Date: Wed, 30 Jul 2025 10:42:42 +0900 Subject: [PATCH 43/86] Update deploy.yaml --- .github/workflows/deploy.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index 1b7b2ab..8c7dffc 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -1,10 +1,10 @@ name: Deploy FE to AWS on: -# push: -# branches: -# - dev - workflow_dispatch: + push: + branches: + - dev + # workflow_dispatch: From 1630f0ea9e4d760257d86c2502ccc631a902cdf6 Mon Sep 17 00:00:00 2001 From: "elogio.mi@gmail.com" Date: Wed, 30 Jul 2025 15:27:39 +0900 Subject: [PATCH 44/86] =?UTF-8?q?[FEAT]=20favicon=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?=EB=B0=8F=20=EC=9D=B4=EB=A6=84=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dist/favicon.png | Bin 0 -> 202054 bytes dist/index.html | 25 +++++++++++++------------ 2 files changed, 13 insertions(+), 12 deletions(-) create mode 100644 dist/favicon.png diff --git a/dist/favicon.png b/dist/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..0ad5ec451fe1ee212c7b7be0414bfcd8ecd90317 GIT binary patch literal 202054 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

    ^3u(V2>tE&@0#l9spc6c?j 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

    eTRsMJoK2UtZHB2JBi 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®AW(VaXSOpMNP*Xkja!CF!;U2W($V+Syapa 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 A&j0`b literal 0 HcmV?d00001 diff --git a/dist/index.html b/dist/index.html index 2777543..081cd22 100644 --- a/dist/index.html +++ b/dist/index.html @@ -1,14 +1,15 @@ - - - - - - - 성향 테스트 + + + + + + + MindScape - - -

    - - + + +
    + + + From b916236d6f35788ee77d1ca1e1b63567c0354f5b Mon Sep 17 00:00:00 2001 From: "elogio.mi@gmail.com" Date: Wed, 30 Jul 2025 15:28:44 +0900 Subject: [PATCH 45/86] =?UTF-8?q?[FIX]=20API=20=EC=97=94=EB=93=9C=ED=8F=AC?= =?UTF-8?q?=EC=9D=B8=ED=8A=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 1 - src/lib/api.js | 8 ++++---- 2 files changed, 4 insertions(+), 5 deletions(-) delete mode 100644 .env diff --git a/.env b/.env deleted file mode 100644 index b2dc881..0000000 --- a/.env +++ /dev/null @@ -1 +0,0 @@ -VITE_API_URL = http://localhost:8080 diff --git a/src/lib/api.js b/src/lib/api.js index b42fc6f..a62f717 100644 --- a/src/lib/api.js +++ b/src/lib/api.js @@ -1,7 +1,7 @@ // API 호출을 위한 기본 설정 -const API_BASE_URL = import.meta.env.VITE_API_URL || "http://localhost:8080/api" -const CONTENT_SERVER_BASE_URL = import.meta.env.VITE_CONTENT_SERVER_URL || "http://localhost:8081/api" -const TEST_SERVER_BASE_URL = import.meta.env.VITE_CONTENT_SERVER_URL || "http://localhost:8082/api" +const API_BASE_URL = import.meta.env.VITE_API_URL || "http://localhost:8080" +const CONTENT_SERVER_BASE_URL = import.meta.env.VITE_CONTENT_API_URL || "http://localhost:8081/api" +const INFO_SERVER_BASE_URL = import.meta.env.VITE_INFO_SERVER_API_URL || "http://localhost:8082/api" import { MOCK_RECOMMENDATIONS } from "./mock-data" @@ -91,7 +91,7 @@ const contentApiRequest = async (endpoint, options = {}) => { // 8082 테스트 서버용 요청 함수 추가 const testApiRequest = async (endpoint, options = {}) => { - const url = `${TEST_SERVER_BASE_URL}${endpoint}`; + const url = `${INFO_SERVER_BASE_URL}${endpoint}`; const token = localStorage.getItem("accessToken"); const defaultOptions = { From f1c15f0948bcfcbb00a4a75eb16c4bfd849701ea Mon Sep 17 00:00:00 2001 From: "elogio.mi@gmail.com" Date: Wed, 30 Jul 2025 15:37:43 +0900 Subject: [PATCH 46/86] =?UTF-8?q?[FIX]=20=EB=B9=8C=EB=93=9C=EA=B4=80?= =?UTF-8?q?=EB=A0=A8=20gitignore=20=EB=B0=8F=20ci/cd=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yaml | 4 ++ .gitignore | 46 ++++++++++++- dist/assets/index-BhnV90tO.css | 1 - dist/assets/index-C2MZhA2F.js | 103 ------------------------------ dist/assets/index-C2MZhA2F.js.map | 1 - dist/favicon.png | Bin 202054 -> 0 bytes dist/index.html | 15 ----- 7 files changed, 49 insertions(+), 121 deletions(-) delete mode 100644 dist/assets/index-BhnV90tO.css delete mode 100644 dist/assets/index-C2MZhA2F.js delete mode 100644 dist/assets/index-C2MZhA2F.js.map delete mode 100644 dist/favicon.png delete mode 100644 dist/index.html diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index 8c7dffc..126b211 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -31,6 +31,10 @@ jobs: - name: Install dependencies run: npm install + - name: Create .env file + run: | + echo "${{ secrets.env }}" >> .env + - name: Build run: npm run build diff --git a/.gitignore b/.gitignore index 693f51b..44eb75e 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,48 @@ psd thumb sketch -# End of https://www.toptal.com/developers/gitignore/api/react \ No newline at end of file + +# End of https://www.toptal.com/developers/gitignore/api/react + +dist + +# Created by https://www.toptal.com/developers/gitignore/api/terraform +# Edit at https://www.toptal.com/developers/gitignore?templates=terraform + +### Terraform ### +# Local .terraform directories +**/.terraform/* + +# .tfstate files +*.tfstate +*.tfstate.* + +# Crash log files +crash.log +crash.*.log + +# Exclude all .tfvars files, which are likely to contain sensitive data, such as +# password, private keys, and other secrets. These should not be part of version +# control as they are data points which are potentially sensitive and subject +# to change depending on the environment. +*.tfvars +*.tfvars.json + +# Ignore override files as they are usually used to override resources locally and so +# are not checked in +override.tf +override.tf.json +*_override.tf +*_override.tf.json + +# Include override files you do wish to add to version control using negated pattern +# !example_override.tf + +# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan +# example: *tfplan* + +# Ignore CLI configuration files +.terraformrc +terraform.rc + +# End of https://www.toptal.com/developers/gitignore/api/terraform \ No newline at end of file diff --git a/dist/assets/index-BhnV90tO.css b/dist/assets/index-BhnV90tO.css deleted file mode 100644 index e94540d..0000000 --- a/dist/assets/index-BhnV90tO.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}:root{--background: 0 0% 100%;--foreground: 222.2 84% 4.9%;--card: 0 0% 100%;--card-foreground: 222.2 84% 4.9%;--popover: 0 0% 100%;--popover-foreground: 222.2 84% 4.9%;--primary: 222.2 47.4% 11.2%;--primary-foreground: 210 40% 98%;--secondary: 210 40% 96.1%;--secondary-foreground: 222.2 47.4% 11.2%;--muted: 210 40% 96.1%;--muted-foreground: 215.4 16.3% 46.9%;--accent: 210 40% 96.1%;--accent-foreground: 222.2 47.4% 11.2%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 210 40% 98%;--border: 214.3 31.8% 91.4%;--input: 214.3 31.8% 91.4%;--ring: 222.2 84% 4.9%;--radius: .5rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.pointer-events-auto{pointer-events:auto}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.right-2{right:.5rem}.top-0{top:0}.top-2{top:.5rem}.z-\[100\]{z-index:100}.mx-auto{margin-left:auto;margin-right:auto}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.aspect-square{aspect-ratio:1 / 1}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[1px\]{height:1px}.h-full{height:100%}.max-h-screen{max-height:100vh}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-\[1px\]{width:1px}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-destructive{border-color:hsl(var(--destructive))}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.bg-background{background-color:hsl(var(--background))}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity))}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity))}.bg-muted{background-color:hsl(var(--muted))}.bg-primary{background-color:hsl(var(--primary))}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-50{--tw-gradient-from: #eff6ff var(--tw-gradient-from-position);--tw-gradient-from-position: ;--tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-from-position);--tw-gradient-to-position: ;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-500{--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-from-position: ;--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-from-position);--tw-gradient-to-position: ;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-indigo-100{--tw-gradient-to: #e0e7ff var(--tw-gradient-to-position);--tw-gradient-to-position: }.to-purple-600{--tw-gradient-to: #9333ea var(--tw-gradient-to-position);--tw-gradient-to-position: }.fill-current{fill:currentColor}.p-1{padding:.25rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-12{padding-left:3rem;padding-right:3rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.text-left{text-align:left}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-6xl{font-size:3.75rem;line-height:1}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-90{opacity:.9}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:underline:hover{text-decoration-line:underline}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity))}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive) / .3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity))}.group.destructive .group-\[\.destructive\]\:focus-visible\:ring-destructive:focus-visible{--tw-ring-color: hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:focus-visible\:ring-red-400:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity))}.group.destructive .group-\[\.destructive\]\:focus-visible\:ring-offset-red-600:focus-visible{--tw-ring-offset-color: #dc2626}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}@media (min-width: 640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:top-auto{top:auto}.sm\:flex-col{flex-direction:column}}@media (min-width: 768px){.md\:max-w-\[420px\]{max-width:420px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}} diff --git a/dist/assets/index-C2MZhA2F.js b/dist/assets/index-C2MZhA2F.js deleted file mode 100644 index da8ff30..0000000 --- a/dist/assets/index-C2MZhA2F.js +++ /dev/null @@ -1,103 +0,0 @@ -function Xh(o,s){for(var i=0;iu[c]})}}}return Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))u(c);new MutationObserver(c=>{for(const f of c)if(f.type==="childList")for(const h of f.addedNodes)h.tagName==="LINK"&&h.rel==="modulepreload"&&u(h)}).observe(document,{childList:!0,subtree:!0});function i(c){const f={};return c.integrity&&(f.integrity=c.integrity),c.referrerPolicy&&(f.referrerPolicy=c.referrerPolicy),c.crossOrigin==="use-credentials"?f.credentials="include":c.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function u(c){if(c.ep)return;c.ep=!0;const f=i(c);fetch(c.href,f)}})();function ua(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}var Us={exports:{}},fe={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var xd;function Jh(){if(xd)return fe;xd=1;var o=Symbol.for("react.element"),s=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),u=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),f=Symbol.for("react.provider"),h=Symbol.for("react.context"),w=Symbol.for("react.forward_ref"),g=Symbol.for("react.suspense"),y=Symbol.for("react.memo"),k=Symbol.for("react.lazy"),x=Symbol.iterator;function I(C){return C===null||typeof C!="object"?null:(C=x&&C[x]||C["@@iterator"],typeof C=="function"?C:null)}var z={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},b=Object.assign,T={};function N(C,L,Z){this.props=C,this.context=L,this.refs=T,this.updater=Z||z}N.prototype.isReactComponent={},N.prototype.setState=function(C,L){if(typeof C!="object"&&typeof C!="function"&&C!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,C,L,"setState")},N.prototype.forceUpdate=function(C){this.updater.enqueueForceUpdate(this,C,"forceUpdate")};function U(){}U.prototype=N.prototype;function V(C,L,Z){this.props=C,this.context=L,this.refs=T,this.updater=Z||z}var j=V.prototype=new U;j.constructor=V,b(j,N.prototype),j.isPureReactComponent=!0;var G=Array.isArray,ie=Object.prototype.hasOwnProperty,se={current:null},oe={key:!0,ref:!0,__self:!0,__source:!0};function $(C,L,Z){var te,pe={},he=null,ue=null;if(L!=null)for(te in L.ref!==void 0&&(ue=L.ref),L.key!==void 0&&(he=""+L.key),L)ie.call(L,te)&&!oe.hasOwnProperty(te)&&(pe[te]=L[te]);var ge=arguments.length-2;if(ge===1)pe.children=Z;else if(1>>1,L=O[C];if(0>>1;Cc(pe,W))hec(ue,pe)?(O[C]=ue,O[he]=W,C=he):(O[C]=pe,O[te]=W,C=te);else if(hec(ue,W))O[C]=ue,O[he]=W,C=he;else break e}}return ee}function c(O,ee){var W=O.sortIndex-ee.sortIndex;return W!==0?W:O.id-ee.id}if(typeof performance=="object"&&typeof performance.now=="function"){var f=performance;o.unstable_now=function(){return f.now()}}else{var h=Date,w=h.now();o.unstable_now=function(){return h.now()-w}}var g=[],y=[],k=1,x=null,I=3,z=!1,b=!1,T=!1,N=typeof setTimeout=="function"?setTimeout:null,U=typeof clearTimeout=="function"?clearTimeout:null,V=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function j(O){for(var ee=i(y);ee!==null;){if(ee.callback===null)u(y);else if(ee.startTime<=O)u(y),ee.sortIndex=ee.expirationTime,s(g,ee);else break;ee=i(y)}}function G(O){if(T=!1,j(O),!b)if(i(g)!==null)b=!0,ce(ie);else{var ee=i(y);ee!==null&&me(G,ee.startTime-O)}}function ie(O,ee){b=!1,T&&(T=!1,U($),$=-1),z=!0;var W=I;try{for(j(ee),x=i(g);x!==null&&(!(x.expirationTime>ee)||O&&!Le());){var C=x.callback;if(typeof C=="function"){x.callback=null,I=x.priorityLevel;var L=C(x.expirationTime<=ee);ee=o.unstable_now(),typeof L=="function"?x.callback=L:x===i(g)&&u(g),j(ee)}else u(g);x=i(g)}if(x!==null)var Z=!0;else{var te=i(y);te!==null&&me(G,te.startTime-ee),Z=!1}return Z}finally{x=null,I=W,z=!1}}var se=!1,oe=null,$=-1,we=5,Te=-1;function Le(){return!(o.unstable_now()-TeO||125C?(O.sortIndex=W,s(y,O),i(g)===null&&O===i(y)&&(T?(U($),$=-1):T=!0,me(G,W-C))):(O.sortIndex=L,s(g,O),b||z||(b=!0,ce(ie))),O},o.unstable_shouldYield=Le,o.unstable_wrapCallback=function(O){var ee=I;return function(){var W=I;I=ee;try{return O.apply(this,arguments)}finally{I=W}}}}(Bs)),Bs}var Cd;function qh(){return Cd||(Cd=1,Vs.exports=Zh()),Vs.exports}/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Nd;function ev(){if(Nd)return at;Nd=1;var o=ca(),s=qh();function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),g=Object.prototype.hasOwnProperty,y=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,k={},x={};function I(e){return g.call(x,e)?!0:g.call(k,e)?!1:y.test(e)?x[e]=!0:(k[e]=!0,!1)}function z(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function b(e,t,n,r){if(t===null||typeof t>"u"||z(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function T(e,t,n,r,l,a,d){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=d}var N={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){N[e]=new T(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];N[t]=new T(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){N[e]=new T(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){N[e]=new T(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){N[e]=new T(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){N[e]=new T(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){N[e]=new T(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){N[e]=new T(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){N[e]=new T(e,5,!1,e.toLowerCase(),null,!1,!1)});var U=/[\-:]([a-z])/g;function V(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(U,V);N[t]=new T(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(U,V);N[t]=new T(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(U,V);N[t]=new T(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){N[e]=new T(e,1,!1,e.toLowerCase(),null,!1,!1)}),N.xlinkHref=new T("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){N[e]=new T(e,1,!1,e.toLowerCase(),null,!0,!0)});function j(e,t,n,r){var l=N.hasOwnProperty(t)?N[t]:null;(l!==null?l.type!==0:r||!(2v||l[d]!==a[v]){var E=` -`+l[d].replace(" at new "," at ");return e.displayName&&E.includes("")&&(E=E.replace("",e.displayName)),E}while(1<=d&&0<=v);break}}}finally{Z=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?L(e):""}function pe(e){switch(e.tag){case 5:return L(e.type);case 16:return L("Lazy");case 13:return L("Suspense");case 19:return L("SuspenseList");case 0:case 2:case 15:return e=te(e.type,!1),e;case 11:return e=te(e.type.render,!1),e;case 1:return e=te(e.type,!0),e;default:return""}}function he(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case oe:return"Fragment";case se:return"Portal";case we:return"Profiler";case $:return"StrictMode";case De:return"Suspense";case le:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Le:return(e.displayName||"Context")+".Consumer";case Te:return(e._context.displayName||"Context")+".Provider";case Me:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Ee:return t=e.displayName||null,t!==null?t:he(e.type)||"Memo";case ce:t=e._payload,e=e._init;try{return he(e(t))}catch{}}return null}function ue(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return he(t);case 8:return t===$?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function ge(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function xe(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function We(e){var t=xe(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(d){r=""+d,a.call(this,d)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(d){r=""+d},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Kt(e){e._valueTracker||(e._valueTracker=We(e))}function wn(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=xe(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function wo(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Kl(e,t){var n=t.checked;return W({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Ra(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ge(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function _a(e,t){t=t.checked,t!=null&&j(e,"checked",t,!1)}function Ql(e,t){_a(e,t);var n=ge(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Yl(e,t.type,n):t.hasOwnProperty("defaultValue")&&Yl(e,t.type,ge(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Ia(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Yl(e,t,n){(t!=="number"||wo(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Cr=Array.isArray;function Hn(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=Eo.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Nr(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Pr={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},em=["Webkit","ms","Moz","O"];Object.keys(Pr).forEach(function(e){em.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Pr[t]=Pr[e]})});function Da(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Pr.hasOwnProperty(e)&&Pr[e]?(""+t).trim():t+"px"}function ba(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=Da(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var tm=W({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Zl(e,t){if(t){if(tm[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(i(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(i(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(t.style!=null&&typeof t.style!="object")throw Error(i(62))}}function ql(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var ei=null;function ti(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var ni=null,Gn=null,Kn=null;function Fa(e){if(e=Qr(e)){if(typeof ni!="function")throw Error(i(280));var t=e.stateNode;t&&(t=Bo(t),ni(e.stateNode,e.type,t))}}function ja(e){Gn?Kn?Kn.push(e):Kn=[e]:Gn=e}function Ua(){if(Gn){var e=Gn,t=Kn;if(Kn=Gn=null,Fa(e),t)for(e=0;e>>=0,e===0?32:31-(fm(e)/pm|0)|0}var No=64,Po=4194304;function Ir(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function To(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,a=e.pingedLanes,d=n&268435455;if(d!==0){var v=d&~l;v!==0?r=Ir(v):(a&=d,a!==0&&(r=Ir(a)))}else d=n&~l,d!==0?r=Ir(d):a!==0&&(r=Ir(a));if(r===0)return 0;if(t!==0&&t!==r&&(t&l)===0&&(l=r&-r,a=t&-t,l>=a||l===16&&(a&4194240)!==0))return t;if((r&4)!==0&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Or(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Et(t),e[t]=n}function gm(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=jr),mu=" ",hu=!1;function vu(e,t){switch(e){case"keyup":return Hm.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function gu(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Xn=!1;function Km(e,t){switch(e){case"compositionend":return gu(t);case"keypress":return t.which!==32?null:(hu=!0,mu);case"textInput":return e=t.data,e===mu&&hu?null:e;default:return null}}function Qm(e,t){if(Xn)return e==="compositionend"||!Ei&&vu(e,t)?(e=au(),Lo=mi=Zt=null,Xn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Cu(n)}}function Pu(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Pu(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Tu(){for(var e=window,t=wo();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=wo(e.document)}return t}function ki(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function rh(e){var t=Tu(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Pu(n.ownerDocument.documentElement,n)){if(r!==null&&ki(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,a=Math.min(r.start,l);r=r.end===void 0?a:Math.min(r.end,l),!e.extend&&a>r&&(l=r,r=a,a=l),l=Nu(n,a);var d=Nu(n,r);l&&d&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==d.node||e.focusOffset!==d.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),a>r?(e.addRange(t),e.extend(d.node,d.offset)):(t.setEnd(d.node,d.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,Jn=null,Ci=null,Br=null,Ni=!1;function Ru(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ni||Jn==null||Jn!==wo(r)||(r=Jn,"selectionStart"in r&&ki(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Br&&Vr(Br,r)||(Br=r,r=Uo(Ci,"onSelect"),0nr||(e.current=bi[nr],bi[nr]=null,nr--)}function ke(e,t){nr++,bi[nr]=e.current,e.current=t}var nn={},Je=tn(nn),rt=tn(!1),Sn=nn;function rr(e,t){var n=e.type.contextTypes;if(!n)return nn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},a;for(a in n)l[a]=t[a];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function ot(e){return e=e.childContextTypes,e!=null}function Wo(){Ne(rt),Ne(Je)}function Bu(e,t,n){if(Je.current!==nn)throw Error(i(168));ke(Je,t),ke(rt,n)}function Wu(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(i(108,ue(e)||"Unknown",l));return W({},n,r)}function Ho(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||nn,Sn=Je.current,ke(Je,e),ke(rt,rt.current),!0}function Hu(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=Wu(e,t,Sn),r.__reactInternalMemoizedMergedChildContext=e,Ne(rt),Ne(Je),ke(Je,e)):Ne(rt),ke(rt,n)}var At=null,Go=!1,Fi=!1;function Gu(e){At===null?At=[e]:At.push(e)}function hh(e){Go=!0,Gu(e)}function rn(){if(!Fi&&At!==null){Fi=!0;var e=0,t=Se;try{var n=At;for(Se=1;e>=d,l-=d,zt=1<<32-Et(t)+l|n<ae?(Ke=re,re=null):Ke=re.sibling;var ye=M(P,re,R[ae],F);if(ye===null){re===null&&(re=Ke);break}e&&re&&ye.alternate===null&&t(P,re),S=a(ye,S,ae),ne===null?q=ye:ne.sibling=ye,ne=ye,re=Ke}if(ae===R.length)return n(P,re),Re&&Cn(P,ae),q;if(re===null){for(;aeae?(Ke=re,re=null):Ke=re.sibling;var pn=M(P,re,ye.value,F);if(pn===null){re===null&&(re=Ke);break}e&&re&&pn.alternate===null&&t(P,re),S=a(pn,S,ae),ne===null?q=pn:ne.sibling=pn,ne=pn,re=Ke}if(ye.done)return n(P,re),Re&&Cn(P,ae),q;if(re===null){for(;!ye.done;ae++,ye=R.next())ye=D(P,ye.value,F),ye!==null&&(S=a(ye,S,ae),ne===null?q=ye:ne.sibling=ye,ne=ye);return Re&&Cn(P,ae),q}for(re=r(P,re);!ye.done;ae++,ye=R.next())ye=H(re,P,ae,ye.value,F),ye!==null&&(e&&ye.alternate!==null&&re.delete(ye.key===null?ae:ye.key),S=a(ye,S,ae),ne===null?q=ye:ne.sibling=ye,ne=ye);return e&&re.forEach(function(Yh){return t(P,Yh)}),Re&&Cn(P,ae),q}function Fe(P,S,R,F){if(typeof R=="object"&&R!==null&&R.type===oe&&R.key===null&&(R=R.props.children),typeof R=="object"&&R!==null){switch(R.$$typeof){case ie:e:{for(var q=R.key,ne=S;ne!==null;){if(ne.key===q){if(q=R.type,q===oe){if(ne.tag===7){n(P,ne.sibling),S=l(ne,R.props.children),S.return=P,P=S;break e}}else if(ne.elementType===q||typeof q=="object"&&q!==null&&q.$$typeof===ce&&Zu(q)===ne.type){n(P,ne.sibling),S=l(ne,R.props),S.ref=Yr(P,ne,R),S.return=P,P=S;break e}n(P,ne);break}else t(P,ne);ne=ne.sibling}R.type===oe?(S=Ln(R.props.children,P.mode,F,R.key),S.return=P,P=S):(F=El(R.type,R.key,R.props,null,P.mode,F),F.ref=Yr(P,S,R),F.return=P,P=F)}return d(P);case se:e:{for(ne=R.key;S!==null;){if(S.key===ne)if(S.tag===4&&S.stateNode.containerInfo===R.containerInfo&&S.stateNode.implementation===R.implementation){n(P,S.sibling),S=l(S,R.children||[]),S.return=P,P=S;break e}else{n(P,S);break}else t(P,S);S=S.sibling}S=zs(R,P.mode,F),S.return=P,P=S}return d(P);case ce:return ne=R._init,Fe(P,S,ne(R._payload),F)}if(Cr(R))return Q(P,S,R,F);if(ee(R))return J(P,S,R,F);Xo(P,R)}return typeof R=="string"&&R!==""||typeof R=="number"?(R=""+R,S!==null&&S.tag===6?(n(P,S.sibling),S=l(S,R),S.return=P,P=S):(n(P,S),S=As(R,P.mode,F),S.return=P,P=S),d(P)):n(P,S)}return Fe}var sr=qu(!0),ec=qu(!1),Jo=tn(null),Zo=null,ar=null,Wi=null;function Hi(){Wi=ar=Zo=null}function Gi(e){var t=Jo.current;Ne(Jo),e._currentValue=t}function Ki(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function ur(e,t){Zo=e,Wi=ar=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(lt=!0),e.firstContext=null)}function ht(e){var t=e._currentValue;if(Wi!==e)if(e={context:e,memoizedValue:t,next:null},ar===null){if(Zo===null)throw Error(i(308));ar=e,Zo.dependencies={lanes:0,firstContext:e}}else ar=ar.next=e;return t}var Nn=null;function Qi(e){Nn===null?Nn=[e]:Nn.push(e)}function tc(e,t,n,r){var l=t.interleaved;return l===null?(n.next=n,Qi(t)):(n.next=l.next,l.next=n),t.interleaved=n,bt(e,r)}function bt(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var on=!1;function Yi(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function nc(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Ft(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function ln(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(ve&2)!==0){var l=r.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),r.pending=t,bt(e,n)}return l=r.interleaved,l===null?(t.next=t,Qi(r)):(t.next=l.next,l.next=t),r.interleaved=t,bt(e,n)}function qo(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ui(e,n)}}function rc(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var l=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var d={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};a===null?l=a=d:a=a.next=d,n=n.next}while(n!==null);a===null?l=a=t:a=a.next=t}else l=a=t;n={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:a,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function el(e,t,n,r){var l=e.updateQueue;on=!1;var a=l.firstBaseUpdate,d=l.lastBaseUpdate,v=l.shared.pending;if(v!==null){l.shared.pending=null;var E=v,_=E.next;E.next=null,d===null?a=_:d.next=_,d=E;var A=e.alternate;A!==null&&(A=A.updateQueue,v=A.lastBaseUpdate,v!==d&&(v===null?A.firstBaseUpdate=_:v.next=_,A.lastBaseUpdate=E))}if(a!==null){var D=l.baseState;d=0,A=_=E=null,v=a;do{var M=v.lane,H=v.eventTime;if((r&M)===M){A!==null&&(A=A.next={eventTime:H,lane:0,tag:v.tag,payload:v.payload,callback:v.callback,next:null});e:{var Q=e,J=v;switch(M=t,H=n,J.tag){case 1:if(Q=J.payload,typeof Q=="function"){D=Q.call(H,D,M);break e}D=Q;break e;case 3:Q.flags=Q.flags&-65537|128;case 0:if(Q=J.payload,M=typeof Q=="function"?Q.call(H,D,M):Q,M==null)break e;D=W({},D,M);break e;case 2:on=!0}}v.callback!==null&&v.lane!==0&&(e.flags|=64,M=l.effects,M===null?l.effects=[v]:M.push(v))}else H={eventTime:H,lane:M,tag:v.tag,payload:v.payload,callback:v.callback,next:null},A===null?(_=A=H,E=D):A=A.next=H,d|=M;if(v=v.next,v===null){if(v=l.shared.pending,v===null)break;M=v,v=M.next,M.next=null,l.lastBaseUpdate=M,l.shared.pending=null}}while(!0);if(A===null&&(E=D),l.baseState=E,l.firstBaseUpdate=_,l.lastBaseUpdate=A,t=l.shared.interleaved,t!==null){l=t;do d|=l.lane,l=l.next;while(l!==t)}else a===null&&(l.shared.lanes=0);Rn|=d,e.lanes=d,e.memoizedState=D}}function oc(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=es.transition;es.transition={};try{e(!1),t()}finally{Se=n,es.transition=r}}function kc(){return vt().memoizedState}function wh(e,t,n){var r=cn(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Cc(e))Nc(t,n);else if(n=tc(e,t,n,r),n!==null){var l=nt();Pt(n,e,r,l),Pc(n,t,r)}}function Eh(e,t,n){var r=cn(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Cc(e))Nc(t,l);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var d=t.lastRenderedState,v=a(d,n);if(l.hasEagerState=!0,l.eagerState=v,xt(v,d)){var E=t.interleaved;E===null?(l.next=l,Qi(t)):(l.next=E.next,E.next=l),t.interleaved=l;return}}catch{}finally{}n=tc(e,t,l,r),n!==null&&(l=nt(),Pt(n,e,r,l),Pc(n,t,r))}}function Cc(e){var t=e.alternate;return e===Oe||t!==null&&t===Oe}function Nc(e,t){qr=rl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Pc(e,t,n){if((n&4194240)!==0){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ui(e,n)}}var il={readContext:ht,useCallback:Ze,useContext:Ze,useEffect:Ze,useImperativeHandle:Ze,useInsertionEffect:Ze,useLayoutEffect:Ze,useMemo:Ze,useReducer:Ze,useRef:Ze,useState:Ze,useDebugValue:Ze,useDeferredValue:Ze,useTransition:Ze,useMutableSource:Ze,useSyncExternalStore:Ze,useId:Ze,unstable_isNewReconciler:!1},xh={readContext:ht,useCallback:function(e,t){return Ot().memoizedState=[e,t===void 0?null:t],e},useContext:ht,useEffect:hc,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,ol(4194308,4,yc.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ol(4194308,4,e,t)},useInsertionEffect:function(e,t){return ol(4,2,e,t)},useMemo:function(e,t){var n=Ot();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ot();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=wh.bind(null,Oe,e),[r.memoizedState,e]},useRef:function(e){var t=Ot();return e={current:e},t.memoizedState=e},useState:pc,useDebugValue:ss,useDeferredValue:function(e){return Ot().memoizedState=e},useTransition:function(){var e=pc(!1),t=e[0];return e=yh.bind(null,e[1]),Ot().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Oe,l=Ot();if(Re){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),Ge===null)throw Error(i(349));(Tn&30)!==0||ac(r,t,n)}l.memoizedState=n;var a={value:n,getSnapshot:t};return l.queue=a,hc(cc.bind(null,r,a,e),[e]),r.flags|=2048,no(9,uc.bind(null,r,a,n,t),void 0,null),n},useId:function(){var e=Ot(),t=Ge.identifierPrefix;if(Re){var n=Dt,r=zt;n=(r&~(1<<32-Et(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=eo++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=d.createElement(n,{is:r.is}):(e=d.createElement(n),n==="select"&&(d=e,r.multiple?d.multiple=!0:r.size&&(d.size=r.size))):e=d.createElementNS(e,n),e[_t]=t,e[Kr]=r,Gc(e,t,!1,!1),t.stateNode=e;e:{switch(d=ql(n,r),n){case"dialog":Ce("cancel",e),Ce("close",e),l=r;break;case"iframe":case"object":case"embed":Ce("load",e),l=r;break;case"video":case"audio":for(l=0;lmr&&(t.flags|=128,r=!0,ro(a,!1),t.lanes=4194304)}else{if(!r)if(e=tl(d),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),ro(a,!0),a.tail===null&&a.tailMode==="hidden"&&!d.alternate&&!Re)return qe(t),null}else 2*be()-a.renderingStartTime>mr&&n!==1073741824&&(t.flags|=128,r=!0,ro(a,!1),t.lanes=4194304);a.isBackwards?(d.sibling=t.child,t.child=d):(n=a.last,n!==null?n.sibling=d:t.child=d,a.last=d)}return a.tail!==null?(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=be(),t.sibling=null,n=Ie.current,ke(Ie,r?n&1|2:n&1),t):(qe(t),null);case 22:case 23:return Os(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?(ft&1073741824)!==0&&(qe(t),t.subtreeFlags&6&&(t.flags|=8192)):qe(t),null;case 24:return null;case 25:return null}throw Error(i(156,t.tag))}function _h(e,t){switch(Ui(t),t.tag){case 1:return ot(t.type)&&Wo(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return cr(),Ne(rt),Ne(Je),qi(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return Ji(t),null;case 13:if(Ne(Ie),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));ir()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Ne(Ie),null;case 4:return cr(),null;case 10:return Gi(t.type._context),null;case 22:case 23:return Os(),null;case 24:return null;default:return null}}var cl=!1,et=!1,Ih=typeof WeakSet=="function"?WeakSet:Set,K=null;function fr(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Ae(e,t,r)}else n.current=null}function ws(e,t,n){try{n()}catch(r){Ae(e,t,r)}}var Yc=!1;function Oh(e,t){if(Oi=Io,e=Tu(),ki(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,a=r.focusNode;r=r.focusOffset;try{n.nodeType,a.nodeType}catch{n=null;break e}var d=0,v=-1,E=-1,_=0,A=0,D=e,M=null;t:for(;;){for(var H;D!==n||l!==0&&D.nodeType!==3||(v=d+l),D!==a||r!==0&&D.nodeType!==3||(E=d+r),D.nodeType===3&&(d+=D.nodeValue.length),(H=D.firstChild)!==null;)M=D,D=H;for(;;){if(D===e)break t;if(M===n&&++_===l&&(v=d),M===a&&++A===r&&(E=d),(H=D.nextSibling)!==null)break;D=M,M=D.parentNode}D=H}n=v===-1||E===-1?null:{start:v,end:E}}else n=null}n=n||{start:0,end:0}}else n=null;for(Li={focusedElem:e,selectionRange:n},Io=!1,K=t;K!==null;)if(t=K,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,K=e;else for(;K!==null;){t=K;try{var Q=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(Q!==null){var J=Q.memoizedProps,Fe=Q.memoizedState,P=t.stateNode,S=P.getSnapshotBeforeUpdate(t.elementType===t.type?J:kt(t.type,J),Fe);P.__reactInternalSnapshotBeforeUpdate=S}break;case 3:var R=t.stateNode.containerInfo;R.nodeType===1?R.textContent="":R.nodeType===9&&R.documentElement&&R.removeChild(R.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(i(163))}}catch(F){Ae(t,t.return,F)}if(e=t.sibling,e!==null){e.return=t.return,K=e;break}K=t.return}return Q=Yc,Yc=!1,Q}function oo(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var a=l.destroy;l.destroy=void 0,a!==void 0&&ws(t,n,a)}l=l.next}while(l!==r)}}function dl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Es(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Xc(e){var t=e.alternate;t!==null&&(e.alternate=null,Xc(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[_t],delete t[Kr],delete t[Di],delete t[ph],delete t[mh])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Jc(e){return e.tag===5||e.tag===3||e.tag===4}function Zc(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Jc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function xs(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Vo));else if(r!==4&&(e=e.child,e!==null))for(xs(e,t,n),e=e.sibling;e!==null;)xs(e,t,n),e=e.sibling}function Ss(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Ss(e,t,n),e=e.sibling;e!==null;)Ss(e,t,n),e=e.sibling}var Ye=null,Ct=!1;function sn(e,t,n){for(n=n.child;n!==null;)qc(e,t,n),n=n.sibling}function qc(e,t,n){if(Rt&&typeof Rt.onCommitFiberUnmount=="function")try{Rt.onCommitFiberUnmount(Co,n)}catch{}switch(n.tag){case 5:et||fr(n,t);case 6:var r=Ye,l=Ct;Ye=null,sn(e,t,n),Ye=r,Ct=l,Ye!==null&&(Ct?(e=Ye,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Ye.removeChild(n.stateNode));break;case 18:Ye!==null&&(Ct?(e=Ye,n=n.stateNode,e.nodeType===8?zi(e.parentNode,n):e.nodeType===1&&zi(e,n),Dr(e)):zi(Ye,n.stateNode));break;case 4:r=Ye,l=Ct,Ye=n.stateNode.containerInfo,Ct=!0,sn(e,t,n),Ye=r,Ct=l;break;case 0:case 11:case 14:case 15:if(!et&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var a=l,d=a.destroy;a=a.tag,d!==void 0&&((a&2)!==0||(a&4)!==0)&&ws(n,t,d),l=l.next}while(l!==r)}sn(e,t,n);break;case 1:if(!et&&(fr(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(v){Ae(n,t,v)}sn(e,t,n);break;case 21:sn(e,t,n);break;case 22:n.mode&1?(et=(r=et)||n.memoizedState!==null,sn(e,t,n),et=r):sn(e,t,n);break;default:sn(e,t,n)}}function ed(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Ih),t.forEach(function(r){var l=Uh.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function Nt(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=d),r&=~a}if(r=l,r=be()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Mh(r/1960))-r,10e?16:e,un===null)var r=!1;else{if(e=un,un=null,vl=0,(ve&6)!==0)throw Error(i(331));var l=ve;for(ve|=4,K=e.current;K!==null;){var a=K,d=a.child;if((K.flags&16)!==0){var v=a.deletions;if(v!==null){for(var E=0;Ebe()-Ns?In(e,0):Cs|=n),st(e,t)}function pd(e,t){t===0&&((e.mode&1)===0?t=1:(t=Po,Po<<=1,(Po&130023424)===0&&(Po=4194304)));var n=nt();e=bt(e,t),e!==null&&(Or(e,t,n),st(e,n))}function jh(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),pd(e,n)}function Uh(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(i(314))}r!==null&&r.delete(t),pd(e,n)}var md;md=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||rt.current)lt=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return lt=!1,Th(e,t,n);lt=(e.flags&131072)!==0}else lt=!1,Re&&(t.flags&1048576)!==0&&Ku(t,Qo,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;ul(e,t),e=t.pendingProps;var l=rr(t,Je.current);ur(t,n),l=ns(null,t,r,e,l,n);var a=rs();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,ot(r)?(a=!0,Ho(t)):a=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,Yi(t),l.updater=sl,t.stateNode=l,l._reactInternals=t,us(t,r,e,n),t=ps(null,t,r,!0,a,n)):(t.tag=0,Re&&a&&ji(t),tt(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(ul(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=Vh(r),e=kt(r,e),l){case 0:t=fs(null,t,r,e,n);break e;case 1:t=Uc(null,t,r,e,n);break e;case 11:t=zc(null,t,r,e,n);break e;case 14:t=Dc(null,t,r,kt(r.type,e),n);break e}throw Error(i(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:kt(r,l),fs(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:kt(r,l),Uc(e,t,r,l,n);case 3:e:{if($c(t),e===null)throw Error(i(387));r=t.pendingProps,a=t.memoizedState,l=a.element,nc(e,t),el(t,r,null,n);var d=t.memoizedState;if(r=d.element,a.isDehydrated)if(a={element:r,isDehydrated:!1,cache:d.cache,pendingSuspenseBoundaries:d.pendingSuspenseBoundaries,transitions:d.transitions},t.updateQueue.baseState=a,t.memoizedState=a,t.flags&256){l=dr(Error(i(423)),t),t=Vc(e,t,r,n,l);break e}else if(r!==l){l=dr(Error(i(424)),t),t=Vc(e,t,r,n,l);break e}else for(dt=en(t.stateNode.containerInfo.firstChild),ct=t,Re=!0,St=null,n=ec(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(ir(),r===l){t=jt(e,t,n);break e}tt(e,t,r,n)}t=t.child}return t;case 5:return lc(t),e===null&&Vi(t),r=t.type,l=t.pendingProps,a=e!==null?e.memoizedProps:null,d=l.children,Mi(r,l)?d=null:a!==null&&Mi(r,a)&&(t.flags|=32),jc(e,t),tt(e,t,d,n),t.child;case 6:return e===null&&Vi(t),null;case 13:return Bc(e,t,n);case 4:return Xi(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=sr(t,null,r,n):tt(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:kt(r,l),zc(e,t,r,l,n);case 7:return tt(e,t,t.pendingProps,n),t.child;case 8:return tt(e,t,t.pendingProps.children,n),t.child;case 12:return tt(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,a=t.memoizedProps,d=l.value,ke(Jo,r._currentValue),r._currentValue=d,a!==null)if(xt(a.value,d)){if(a.children===l.children&&!rt.current){t=jt(e,t,n);break e}}else for(a=t.child,a!==null&&(a.return=t);a!==null;){var v=a.dependencies;if(v!==null){d=a.child;for(var E=v.firstContext;E!==null;){if(E.context===r){if(a.tag===1){E=Ft(-1,n&-n),E.tag=2;var _=a.updateQueue;if(_!==null){_=_.shared;var A=_.pending;A===null?E.next=E:(E.next=A.next,A.next=E),_.pending=E}}a.lanes|=n,E=a.alternate,E!==null&&(E.lanes|=n),Ki(a.return,n,t),v.lanes|=n;break}E=E.next}}else if(a.tag===10)d=a.type===t.type?null:a.child;else if(a.tag===18){if(d=a.return,d===null)throw Error(i(341));d.lanes|=n,v=d.alternate,v!==null&&(v.lanes|=n),Ki(d,n,t),d=a.sibling}else d=a.child;if(d!==null)d.return=a;else for(d=a;d!==null;){if(d===t){d=null;break}if(a=d.sibling,a!==null){a.return=d.return,d=a;break}d=d.return}a=d}tt(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,ur(t,n),l=ht(l),r=r(l),t.flags|=1,tt(e,t,r,n),t.child;case 14:return r=t.type,l=kt(r,t.pendingProps),l=kt(r.type,l),Dc(e,t,r,l,n);case 15:return bc(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:kt(r,l),ul(e,t),t.tag=1,ot(r)?(e=!0,Ho(t)):e=!1,ur(t,n),Rc(t,r,l),us(t,r,l,n),ps(null,t,r,!0,e,n);case 19:return Hc(e,t,n);case 22:return Fc(e,t,n)}throw Error(i(156,t.tag))};function hd(e,t){return Qa(e,t)}function $h(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function yt(e,t,n,r){return new $h(e,t,n,r)}function Ms(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Vh(e){if(typeof e=="function")return Ms(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Me)return 11;if(e===Ee)return 14}return 2}function fn(e,t){var n=e.alternate;return n===null?(n=yt(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function El(e,t,n,r,l,a){var d=2;if(r=e,typeof e=="function")Ms(e)&&(d=1);else if(typeof e=="string")d=5;else e:switch(e){case oe:return Ln(n.children,l,a,t);case $:d=8,l|=8;break;case we:return e=yt(12,n,t,l|2),e.elementType=we,e.lanes=a,e;case De:return e=yt(13,n,t,l),e.elementType=De,e.lanes=a,e;case le:return e=yt(19,n,t,l),e.elementType=le,e.lanes=a,e;case me:return xl(n,l,a,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Te:d=10;break e;case Le:d=9;break e;case Me:d=11;break e;case Ee:d=14;break e;case ce:d=16,r=null;break e}throw Error(i(130,e==null?e:typeof e,""))}return t=yt(d,n,t,l),t.elementType=e,t.type=r,t.lanes=a,t}function Ln(e,t,n,r){return e=yt(7,e,r,t),e.lanes=n,e}function xl(e,t,n,r){return e=yt(22,e,r,t),e.elementType=me,e.lanes=n,e.stateNode={isHidden:!1},e}function As(e,t,n){return e=yt(6,e,null,t),e.lanes=n,e}function zs(e,t,n){return t=yt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Bh(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ai(0),this.expirationTimes=ai(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ai(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Ds(e,t,n,r,l,a,d,v,E){return e=new Bh(e,t,n,v,E),t===1?(t=1,a===!0&&(t|=8)):t=0,a=yt(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Yi(a),e}function Wh(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(o)}catch(s){console.error(s)}}return o(),$s.exports=ev(),$s.exports}var Td;function tv(){if(Td)return Rl;Td=1;var o=ef();return Rl.createRoot=o.createRoot,Rl.hydrateRoot=o.hydrateRoot,Rl}var nv=tv();const rv=ua(nv);var fa=ef();const ov=ua(fa);/** - * @remix-run/router v1.23.0 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function po(){return po=Object.assign?Object.assign.bind():function(o){for(var s=1;s"u")throw new Error(s)}function tf(o,s){if(!o){typeof console<"u"&&console.warn(s);try{throw new Error(s)}catch{}}}function iv(){return Math.random().toString(36).substr(2,8)}function _d(o,s){return{usr:o.state,key:o.key,idx:s}}function Zs(o,s,i,u){return i===void 0&&(i=null),po({pathname:typeof o=="string"?o:o.pathname,search:"",hash:""},typeof s=="string"?yr(s):s,{state:i,key:s&&s.key||u||iv()})}function Dl(o){let{pathname:s="/",search:i="",hash:u=""}=o;return i&&i!=="?"&&(s+=i.charAt(0)==="?"?i:"?"+i),u&&u!=="#"&&(s+=u.charAt(0)==="#"?u:"#"+u),s}function yr(o){let s={};if(o){let i=o.indexOf("#");i>=0&&(s.hash=o.substr(i),o=o.substr(0,i));let u=o.indexOf("?");u>=0&&(s.search=o.substr(u),o=o.substr(0,u)),o&&(s.pathname=o)}return s}function sv(o,s,i,u){u===void 0&&(u={});let{window:c=document.defaultView,v5Compat:f=!1}=u,h=c.history,w=vn.Pop,g=null,y=k();y==null&&(y=0,h.replaceState(po({},h.state,{idx:y}),""));function k(){return(h.state||{idx:null}).idx}function x(){w=vn.Pop;let N=k(),U=N==null?null:N-y;y=N,g&&g({action:w,location:T.location,delta:U})}function I(N,U){w=vn.Push;let V=Zs(T.location,N,U);y=k()+1;let j=_d(V,y),G=T.createHref(V);try{h.pushState(j,"",G)}catch(ie){if(ie instanceof DOMException&&ie.name==="DataCloneError")throw ie;c.location.assign(G)}f&&g&&g({action:w,location:T.location,delta:1})}function z(N,U){w=vn.Replace;let V=Zs(T.location,N,U);y=k();let j=_d(V,y),G=T.createHref(V);h.replaceState(j,"",G),f&&g&&g({action:w,location:T.location,delta:0})}function b(N){let U=c.location.origin!=="null"?c.location.origin:c.location.href,V=typeof N=="string"?N:Dl(N);return V=V.replace(/ $/,"%20"),Ue(U,"No window.location.(origin|href) available to create URL for href: "+V),new URL(V,U)}let T={get action(){return w},get location(){return o(c,h)},listen(N){if(g)throw new Error("A history only accepts one active listener");return c.addEventListener(Rd,x),g=N,()=>{c.removeEventListener(Rd,x),g=null}},createHref(N){return s(c,N)},createURL:b,encodeLocation(N){let U=b(N);return{pathname:U.pathname,search:U.search,hash:U.hash}},push:I,replace:z,go(N){return h.go(N)}};return T}var Id;(function(o){o.data="data",o.deferred="deferred",o.redirect="redirect",o.error="error"})(Id||(Id={}));function av(o,s,i){return i===void 0&&(i="/"),uv(o,s,i)}function uv(o,s,i,u){let c=typeof s=="string"?yr(s):s,f=pa(c.pathname||"/",i);if(f==null)return null;let h=nf(o);cv(h);let w=null;for(let g=0;w==null&&g{let g={relativePath:w===void 0?f.path||"":w,caseSensitive:f.caseSensitive===!0,childrenIndex:h,route:f};g.relativePath.startsWith("/")&&(Ue(g.relativePath.startsWith(u),'Absolute route path "'+g.relativePath+'" nested under path '+('"'+u+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),g.relativePath=g.relativePath.slice(u.length));let y=gn([u,g.relativePath]),k=i.concat(g);f.children&&f.children.length>0&&(Ue(f.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+y+'".')),nf(f.children,s,k,y)),!(f.path==null&&!f.index)&&s.push({path:y,score:gv(y,f.index),routesMeta:k})};return o.forEach((f,h)=>{var w;if(f.path===""||!((w=f.path)!=null&&w.includes("?")))c(f,h);else for(let g of rf(f.path))c(f,h,g)}),s}function rf(o){let s=o.split("/");if(s.length===0)return[];let[i,...u]=s,c=i.endsWith("?"),f=i.replace(/\?$/,"");if(u.length===0)return c?[f,""]:[f];let h=rf(u.join("/")),w=[];return w.push(...h.map(g=>g===""?f:[f,g].join("/"))),c&&w.push(...h),w.map(g=>o.startsWith("/")&&g===""?"/":g)}function cv(o){o.sort((s,i)=>s.score!==i.score?i.score-s.score:yv(s.routesMeta.map(u=>u.childrenIndex),i.routesMeta.map(u=>u.childrenIndex)))}const dv=/^:[\w-]+$/,fv=3,pv=2,mv=1,hv=10,vv=-2,Od=o=>o==="*";function gv(o,s){let i=o.split("/"),u=i.length;return i.some(Od)&&(u+=vv),s&&(u+=pv),i.filter(c=>!Od(c)).reduce((c,f)=>c+(dv.test(f)?fv:f===""?mv:hv),u)}function yv(o,s){return o.length===s.length&&o.slice(0,-1).every((u,c)=>u===s[c])?o[o.length-1]-s[s.length-1]:0}function wv(o,s,i){let{routesMeta:u}=o,c={},f="/",h=[];for(let w=0;w{let{paramName:I,isOptional:z}=k;if(I==="*"){let T=w[x]||"";h=f.slice(0,f.length-T.length).replace(/(.)\/+$/,"$1")}const b=w[x];return z&&!b?y[I]=void 0:y[I]=(b||"").replace(/%2F/g,"/"),y},{}),pathname:f,pathnameBase:h,pattern:o}}function xv(o,s,i){s===void 0&&(s=!1),i===void 0&&(i=!0),tf(o==="*"||!o.endsWith("*")||o.endsWith("/*"),'Route path "'+o+'" will be treated as if it were '+('"'+o.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+o.replace(/\*$/,"/*")+'".'));let u=[],c="^"+o.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(h,w,g)=>(u.push({paramName:w,isOptional:g!=null}),g?"/?([^\\/]+)?":"/([^\\/]+)"));return o.endsWith("*")?(u.push({paramName:"*"}),c+=o==="*"||o==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):i?c+="\\/*$":o!==""&&o!=="/"&&(c+="(?:(?=\\/|$))"),[new RegExp(c,s?void 0:"i"),u]}function Sv(o){try{return o.split("/").map(s=>decodeURIComponent(s).replace(/\//g,"%2F")).join("/")}catch(s){return tf(!1,'The URL path "'+o+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+s+").")),o}}function pa(o,s){if(s==="/")return o;if(!o.toLowerCase().startsWith(s.toLowerCase()))return null;let i=s.endsWith("/")?s.length-1:s.length,u=o.charAt(i);return u&&u!=="/"?null:o.slice(i)||"/"}function kv(o,s){s===void 0&&(s="/");let{pathname:i,search:u="",hash:c=""}=typeof o=="string"?yr(o):o;return{pathname:i?i.startsWith("/")?i:Cv(i,s):s,search:Tv(u),hash:Rv(c)}}function Cv(o,s){let i=s.replace(/\/+$/,"").split("/");return o.split("/").forEach(c=>{c===".."?i.length>1&&i.pop():c!=="."&&i.push(c)}),i.length>1?i.join("/"):"/"}function Ws(o,s,i,u){return"Cannot include a '"+o+"' character in a manually specified "+("`to."+s+"` field ["+JSON.stringify(u)+"]. Please separate it out to the ")+("`to."+i+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function Nv(o){return o.filter((s,i)=>i===0||s.route.path&&s.route.path.length>0)}function of(o,s){let i=Nv(o);return s?i.map((u,c)=>c===i.length-1?u.pathname:u.pathnameBase):i.map(u=>u.pathnameBase)}function lf(o,s,i,u){u===void 0&&(u=!1);let c;typeof o=="string"?c=yr(o):(c=po({},o),Ue(!c.pathname||!c.pathname.includes("?"),Ws("?","pathname","search",c)),Ue(!c.pathname||!c.pathname.includes("#"),Ws("#","pathname","hash",c)),Ue(!c.search||!c.search.includes("#"),Ws("#","search","hash",c)));let f=o===""||c.pathname==="",h=f?"/":c.pathname,w;if(h==null)w=i;else{let x=s.length-1;if(!u&&h.startsWith("..")){let I=h.split("/");for(;I[0]==="..";)I.shift(),x-=1;c.pathname=I.join("/")}w=x>=0?s[x]:"/"}let g=kv(c,w),y=h&&h!=="/"&&h.endsWith("/"),k=(f||h===".")&&i.endsWith("/");return!g.pathname.endsWith("/")&&(y||k)&&(g.pathname+="/"),g}const gn=o=>o.join("/").replace(/\/\/+/g,"/"),Pv=o=>o.replace(/\/+$/,"").replace(/^\/*/,"/"),Tv=o=>!o||o==="?"?"":o.startsWith("?")?o:"?"+o,Rv=o=>!o||o==="#"?"":o.startsWith("#")?o:"#"+o;function _v(o){return o!=null&&typeof o.status=="number"&&typeof o.statusText=="string"&&typeof o.internal=="boolean"&&"data"in o}const sf=["post","put","patch","delete"];new Set(sf);const Iv=["get",...sf];new Set(Iv);/** - * React Router v6.30.1 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function mo(){return mo=Object.assign?Object.assign.bind():function(o){for(var s=1;s{w.current=!0}),p.useCallback(function(y,k){if(k===void 0&&(k={}),!w.current)return;if(typeof y=="number"){u.go(y);return}let x=lf(y,JSON.parse(h),f,k.relative==="path");o==null&&s!=="/"&&(x.pathname=x.pathname==="/"?s:gn([s,x.pathname])),(k.replace?u.replace:u.push)(x,k.state,k)},[s,u,h,f,o])}function cf(o,s){let{relative:i}=s===void 0?{}:s,{future:u}=p.useContext($n),{matches:c}=p.useContext(Vn),{pathname:f}=Ul(),h=JSON.stringify(of(c,u.v7_relativeSplatPath));return p.useMemo(()=>lf(o,JSON.parse(h),f,i==="path"),[o,h,f,i])}function Av(o,s){return zv(o,s)}function zv(o,s,i,u){vo()||Ue(!1);let{navigator:c}=p.useContext($n),{matches:f}=p.useContext(Vn),h=f[f.length-1],w=h?h.params:{};h&&h.pathname;let g=h?h.pathnameBase:"/";h&&h.route;let y=Ul(),k;if(s){var x;let N=typeof s=="string"?yr(s):s;g==="/"||(x=N.pathname)!=null&&x.startsWith(g)||Ue(!1),k=N}else k=y;let I=k.pathname||"/",z=I;if(g!=="/"){let N=g.replace(/^\//,"").split("/");z="/"+I.replace(/^\//,"").split("/").slice(N.length).join("/")}let b=av(o,{pathname:z}),T=Uv(b&&b.map(N=>Object.assign({},N,{params:Object.assign({},w,N.params),pathname:gn([g,c.encodeLocation?c.encodeLocation(N.pathname).pathname:N.pathname]),pathnameBase:N.pathnameBase==="/"?g:gn([g,c.encodeLocation?c.encodeLocation(N.pathnameBase).pathname:N.pathnameBase])})),f,i,u);return s&&T?p.createElement(jl.Provider,{value:{location:mo({pathname:"/",search:"",hash:"",state:null,key:"default"},k),navigationType:vn.Pop}},T):T}function Dv(){let o=Wv(),s=_v(o)?o.status+" "+o.statusText:o instanceof Error?o.message:JSON.stringify(o),i=o instanceof Error?o.stack:null,c={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return p.createElement(p.Fragment,null,p.createElement("h2",null,"Unexpected Application Error!"),p.createElement("h3",{style:{fontStyle:"italic"}},s),i?p.createElement("pre",{style:c},i):null,null)}const bv=p.createElement(Dv,null);class Fv extends p.Component{constructor(s){super(s),this.state={location:s.location,revalidation:s.revalidation,error:s.error}}static getDerivedStateFromError(s){return{error:s}}static getDerivedStateFromProps(s,i){return i.location!==s.location||i.revalidation!=="idle"&&s.revalidation==="idle"?{error:s.error,location:s.location,revalidation:s.revalidation}:{error:s.error!==void 0?s.error:i.error,location:i.location,revalidation:s.revalidation||i.revalidation}}componentDidCatch(s,i){console.error("React Router caught the following error during render",s,i)}render(){return this.state.error!==void 0?p.createElement(Vn.Provider,{value:this.props.routeContext},p.createElement(af.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function jv(o){let{routeContext:s,match:i,children:u}=o,c=p.useContext(ma);return c&&c.static&&c.staticContext&&(i.route.errorElement||i.route.ErrorBoundary)&&(c.staticContext._deepestRenderedBoundaryId=i.route.id),p.createElement(Vn.Provider,{value:s},u)}function Uv(o,s,i,u){var c;if(s===void 0&&(s=[]),i===void 0&&(i=null),u===void 0&&(u=null),o==null){var f;if(!i)return null;if(i.errors)o=i.matches;else if((f=u)!=null&&f.v7_partialHydration&&s.length===0&&!i.initialized&&i.matches.length>0)o=i.matches;else return null}let h=o,w=(c=i)==null?void 0:c.errors;if(w!=null){let k=h.findIndex(x=>x.route.id&&w?.[x.route.id]!==void 0);k>=0||Ue(!1),h=h.slice(0,Math.min(h.length,k+1))}let g=!1,y=-1;if(i&&u&&u.v7_partialHydration)for(let k=0;k=0?h=h.slice(0,y+1):h=[h[0]];break}}}return h.reduceRight((k,x,I)=>{let z,b=!1,T=null,N=null;i&&(z=w&&x.route.id?w[x.route.id]:void 0,T=x.route.errorElement||bv,g&&(y<0&&I===0?(Gv("route-fallback"),b=!0,N=null):y===I&&(b=!0,N=x.route.hydrateFallbackElement||null)));let U=s.concat(h.slice(0,I+1)),V=()=>{let j;return z?j=T:b?j=N:x.route.Component?j=p.createElement(x.route.Component,null):x.route.element?j=x.route.element:j=k,p.createElement(jv,{match:x,routeContext:{outlet:k,matches:U,isDataRoute:i!=null},children:j})};return i&&(x.route.ErrorBoundary||x.route.errorElement||I===0)?p.createElement(Fv,{location:i.location,revalidation:i.revalidation,component:T,error:z,children:V(),routeContext:{outlet:null,matches:U,isDataRoute:!0}}):V()},null)}var df=function(o){return o.UseBlocker="useBlocker",o.UseRevalidator="useRevalidator",o.UseNavigateStable="useNavigate",o}(df||{}),ff=function(o){return o.UseBlocker="useBlocker",o.UseLoaderData="useLoaderData",o.UseActionData="useActionData",o.UseRouteError="useRouteError",o.UseNavigation="useNavigation",o.UseRouteLoaderData="useRouteLoaderData",o.UseMatches="useMatches",o.UseRevalidator="useRevalidator",o.UseNavigateStable="useNavigate",o.UseRouteId="useRouteId",o}(ff||{});function $v(o){let s=p.useContext(ma);return s||Ue(!1),s}function Vv(o){let s=p.useContext(Ov);return s||Ue(!1),s}function Bv(o){let s=p.useContext(Vn);return s||Ue(!1),s}function pf(o){let s=Bv(),i=s.matches[s.matches.length-1];return i.route.id||Ue(!1),i.route.id}function Wv(){var o;let s=p.useContext(af),i=Vv(),u=pf();return s!==void 0?s:(o=i.errors)==null?void 0:o[u]}function Hv(){let{router:o}=$v(df.UseNavigateStable),s=pf(ff.UseNavigateStable),i=p.useRef(!1);return uf(()=>{i.current=!0}),p.useCallback(function(c,f){f===void 0&&(f={}),i.current&&(typeof c=="number"?o.navigate(c):o.navigate(c,mo({fromRouteId:s},f)))},[o,s])}const Ld={};function Gv(o,s,i){Ld[o]||(Ld[o]=!0)}function Kv(o,s){o?.v7_startTransition,o?.v7_relativeSplatPath}function zn(o){Ue(!1)}function Qv(o){let{basename:s="/",children:i=null,location:u,navigationType:c=vn.Pop,navigator:f,static:h=!1,future:w}=o;vo()&&Ue(!1);let g=s.replace(/^\/*/,"/"),y=p.useMemo(()=>({basename:g,navigator:f,static:h,future:mo({v7_relativeSplatPath:!1},w)}),[g,w,f,h]);typeof u=="string"&&(u=yr(u));let{pathname:k="/",search:x="",hash:I="",state:z=null,key:b="default"}=u,T=p.useMemo(()=>{let N=pa(k,g);return N==null?null:{location:{pathname:N,search:x,hash:I,state:z,key:b},navigationType:c}},[g,k,x,I,z,b,c]);return T==null?null:p.createElement($n.Provider,{value:y},p.createElement(jl.Provider,{children:i,value:T}))}function Yv(o){let{children:s,location:i}=o;return Av(qs(s),i)}new Promise(()=>{});function qs(o,s){s===void 0&&(s=[]);let i=[];return p.Children.forEach(o,(u,c)=>{if(!p.isValidElement(u))return;let f=[...s,c];if(u.type===p.Fragment){i.push.apply(i,qs(u.props.children,f));return}u.type!==zn&&Ue(!1),!u.props.index||!u.props.children||Ue(!1);let h={id:u.props.id||f.join("-"),caseSensitive:u.props.caseSensitive,element:u.props.element,Component:u.props.Component,index:u.props.index,path:u.props.path,loader:u.props.loader,action:u.props.action,errorElement:u.props.errorElement,ErrorBoundary:u.props.ErrorBoundary,hasErrorBoundary:u.props.ErrorBoundary!=null||u.props.errorElement!=null,shouldRevalidate:u.props.shouldRevalidate,handle:u.props.handle,lazy:u.props.lazy};u.props.children&&(h.children=qs(u.props.children,f)),i.push(h)}),i}/** - * React Router DOM v6.30.1 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function ea(){return ea=Object.assign?Object.assign.bind():function(o){for(var s=1;s=0)&&(i[c]=o[c]);return i}function Jv(o){return!!(o.metaKey||o.altKey||o.ctrlKey||o.shiftKey)}function Zv(o,s){return o.button===0&&(!s||s==="_self")&&!Jv(o)}const qv=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],eg="6";try{window.__reactRouterVersion=eg}catch{}const tg="startTransition",Md=da[tg];function ng(o){let{basename:s,children:i,future:u,window:c}=o,f=p.useRef();f.current==null&&(f.current=lv({window:c,v5Compat:!0}));let h=f.current,[w,g]=p.useState({action:h.action,location:h.location}),{v7_startTransition:y}=u||{},k=p.useCallback(x=>{y&&Md?Md(()=>g(x)):g(x)},[g,y]);return p.useLayoutEffect(()=>h.listen(k),[h,k]),p.useEffect(()=>Kv(u),[u]),p.createElement(Qv,{basename:s,children:i,location:w.location,navigationType:w.action,navigator:h,future:u})}const rg=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",og=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Dn=p.forwardRef(function(s,i){let{onClick:u,relative:c,reloadDocument:f,replace:h,state:w,target:g,to:y,preventScrollReset:k,viewTransition:x}=s,I=Xv(s,qv),{basename:z}=p.useContext($n),b,T=!1;if(typeof y=="string"&&og.test(y)&&(b=y,rg))try{let j=new URL(window.location.href),G=y.startsWith("//")?new URL(j.protocol+y):new URL(y),ie=pa(G.pathname,z);G.origin===j.origin&&ie!=null?y=ie+G.search+G.hash:T=!0}catch{}let N=Lv(y,{relative:c}),U=lg(y,{replace:h,state:w,target:g,preventScrollReset:k,relative:c,viewTransition:x});function V(j){u&&u(j),j.defaultPrevented||U(j)}return p.createElement("a",ea({},I,{href:b||N,onClick:T||f?u:V,ref:i,target:g}))});var Ad;(function(o){o.UseScrollRestoration="useScrollRestoration",o.UseSubmit="useSubmit",o.UseSubmitFetcher="useSubmitFetcher",o.UseFetcher="useFetcher",o.useViewTransitionState="useViewTransitionState"})(Ad||(Ad={}));var zd;(function(o){o.UseFetcher="useFetcher",o.UseFetchers="useFetchers",o.UseScrollRestoration="useScrollRestoration"})(zd||(zd={}));function lg(o,s){let{target:i,replace:u,state:c,preventScrollReset:f,relative:h,viewTransition:w}=s===void 0?{}:s,g=Bn(),y=Ul(),k=cf(o,{relative:h});return p.useCallback(x=>{if(Zv(x,i)){x.preventDefault();let I=u!==void 0?u:Dl(y)===Dl(k);g(o,{replace:I,state:c,preventScrollReset:f,relative:h,viewTransition:w})}},[y,g,k,u,c,i,o,f,h,w])}const ig=[{id:"1",name:"김테스트",email:"test@example.com",password:"password123"},{id:"2",name:"이개발",email:"dev@example.com",password:"dev123"}],sg=[{id:"1",personality:"외향적 리더형",score:4.2,completedAt:"2024-01-15T10:30:00Z",answers:{}},{id:"2",personality:"균형잡힌 분석형",score:3.8,completedAt:"2024-01-10T14:20:00Z",answers:{}}],Dd={"외향적 리더형":{movies:[{title:"어벤져스: 엔드게임",description:"영웅들의 마지막 전투"},{title:"인터스텔라",description:"우주를 향한 인류의 도전"},{title:"다크 나이트",description:"정의와 악의 대결"},{title:"인셉션",description:"꿈 속의 꿈"},{title:"매드 맥스: 분노의 도로",description:"포스트 아포칼립스 액션"}],books:[{title:"리더십의 정석",author:"존 맥스웰",description:"리더십 개발 가이드"},{title:"성공하는 사람들의 7가지 습관",author:"스티븐 코비",description:"성공을 위한 습관들"},{title:"생각에 관한 생각",author:"다니엘 카너먼",description:"인간의 사고 과정 분석"},{title:"넛지",author:"리처드 탈러",description:"선택 설계의 힘"},{title:"린 스타트업",author:"에릭 리스",description:"혁신적 창업 방법론"}],music:[{name:"Imagine Dragons",genre:"얼터너티브 록",description:"에너지 넘치는 록 밴드"},{name:"OneRepublic",genre:"팝 록",description:"감성적인 팝 록"},{name:"Maroon 5",genre:"팝",description:"캐치한 팝 음악"},{name:"Coldplay",genre:"얼터너티브 록",description:"몽환적인 록 사운드"},{name:"The Chainsmokers",genre:"EDM",description:"댄스 일렉트로닉"}]},"균형잡힌 분석형":{movies:[{title:"쇼생크 탈출",description:"희망에 관한 이야기"},{title:"포레스트 검프",description:"인생의 여정"},{title:"굿 윌 헌팅",description:"재능과 성장"},{title:"어바웃 타임",description:"시간과 사랑"},{title:"라라랜드",description:"꿈과 현실"}],books:[{title:"사피엔스",author:"유발 하라리",description:"인류의 역사"},{title:"총, 균, 쇠",author:"재레드 다이아몬드",description:"문명의 발전"},{title:"팩트풀니스",author:"한스 로슬링",description:"데이터로 보는 세상"},{title:"코스모스",author:"칼 세이건",description:"우주에 대한 탐구"},{title:"정의란 무엇인가",author:"마이클 샌델",description:"도덕 철학"}],music:[{name:"Ed Sheeran",genre:"팝",description:"감성적인 싱어송라이터"},{name:"John Mayer",genre:"블루스 록",description:"기타 연주의 대가"},{name:"Adele",genre:"소울",description:"강력한 보컬"},{name:"Sam Smith",genre:"팝",description:"감성적인 발라드"},{name:"Billie Eilish",genre:"얼터너티브 팝",description:"독특한 음악 스타일"}]},"신중한 사색형":{movies:[{title:"기생충",description:"사회적 메시지가 담긴 작품"},{title:"올드보이",description:"복수와 운력"},{title:"버드맨",description:"예술가의 고뇌"},{title:"문라이트",description:"정체성에 대한 탐구"},{title:"노마드랜드",description:"현대 사회의 고독"}],books:[{title:"1984",author:"조지 오웰",description:"디스토피아 소설"},{title:"멋진 신세계",author:"올더스 헉슬리",description:"미래 사회 비판"},{title:"카라마조프 가의 형제들",author:"도스토예프스키",description:"인간 본성 탐구"},{title:"백년의 고독",author:"가브리엘 가르시아 마르케스",description:"마술적 리얼리즘"},{title:"데미안",author:"헤르만 헤세",description:"성장과 자아 발견"}],music:[{name:"Radiohead",genre:"얼터너티브 록",description:"실험적인 록 음악"},{name:"Bon Iver",genre:"인디 포크",description:"몽환적인 포크"},{name:"Sufjan Stevens",genre:"인디 포크",description:"서정적인 음악"},{name:"The National",genre:"인디 록",description:"우울한 감성의 록"},{name:"Arcade Fire",genre:"인디 록",description:"웅장한 인디 록"}]}},ag="http://localhost:8080/api",hn=async(o,s={})=>{const i=`${ag}${o}`,u={credentials:"include",headers:{"Content-Type":"application/json",...s.headers},...s};try{const c=await fetch(i,u);if(!c.ok){const f=await c.json().catch(()=>({message:c.statusText}));throw new Error(`HTTP error! status: ${c.status}, message: ${f.message||"Unknown error"}`)}return await c.json()}catch(c){throw console.error("API request failed:",c),c}},_l={login:async(o,s)=>hn("/auth/login",{method:"POST",body:JSON.stringify({email:o,password:s})}),register:async(o,s,i)=>hn("/auth/register",{method:"POST",body:JSON.stringify({name:o,email:s,password:i})}),logout:async()=>hn("/auth/logout",{method:"POST"}),getCurrentUser:async()=>hn("/auth/me"),validateToken:async()=>hn("/auth/validate")},ho={saveTestResult:async o=>{try{return await hn("/test/save",{method:"POST",body:JSON.stringify(o)})}catch{console.log("Backend API not available, saving to localStorage (dev mode)...");const i=JSON.parse(localStorage.getItem("dev-test-history")||"[]"),u={id:Date.now().toString(),...o,completedAt:o.completedAt||new Date().toISOString()};return i.unshift(u),localStorage.setItem("dev-test-history",JSON.stringify(i)),{success:!0,result:u}}},getTestHistory:async()=>{try{return await hn("/test/history")}catch{return console.log("Backend API not available, using localStorage (dev mode)..."),JSON.parse(localStorage.getItem("dev-test-history")||"[]")}},getRecommendations:async o=>{try{return await hn(`/recommendations/${o}`)}catch{return console.log("Backend API not available, using mock data (dev mode)..."),Dd[o]||Dd["균형잡힌 분석형"]}}},ug=o=>{if(typeof document>"u")return null;const i=`; ${document.cookie}`.split(`; ${o}=`);return i.length===2?i.pop().split(";").shift():null},cg=o=>{typeof document>"u"||(document.cookie=`${o}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/;SameSite=Lax`)},mf=p.createContext(void 0);function dg({children:o}){const[s,i]=p.useState(null),[u,c]=p.useState(!0);p.useEffect(()=>{f()},[]);const f=async()=>{try{if(ug("auth-token")){const k=await _l.getCurrentUser();i(k)}}catch{console.log("Backend API not available, checking local storage for dev user...");const k=localStorage.getItem("dev-user");k&&i(JSON.parse(k))}finally{c(!1)}},h=async(y,k)=>{try{const x=await _l.login(y,k);if(x.success)return i(x.user),!0}catch{console.log("Backend API not available, trying test accounts...");const I=ig.find(z=>z.email===y&&z.password===k);if(I){const z={id:I.id,name:I.name,email:I.email,personality:"외향적 리더형"};return i(z),localStorage.setItem("dev-user",JSON.stringify(z)),localStorage.setItem("dev-test-history",JSON.stringify(sg)),!0}}return!1},w=async(y,k,x)=>{try{const I=await _l.register(y,k,x);if(I.success)return i(I.user),!0}catch{console.log("Backend API not available, creating test account...");const z={id:Date.now().toString(),name:y,email:k,personality:null};return i(z),localStorage.setItem("dev-user",JSON.stringify(z)),!0}return!1},g=async()=>{try{await _l.logout()}catch(y){console.error("Logout failed:",y)}finally{i(null),cg("auth-token"),localStorage.removeItem("dev-user"),localStorage.removeItem("dev-test-history")}};return m.createElement(mf.Provider,{value:{user:s,login:h,register:w,logout:g,isLoading:u,checkAuthStatus:f}},o)}function wr(){const o=p.useContext(mf);if(o===void 0)throw new Error("useAuth must be used within an AuthProvider");return o}function hf(o){var s,i,u="";if(typeof o=="string"||typeof o=="number")u+=o;else if(typeof o=="object")if(Array.isArray(o)){var c=o.length;for(s=0;stypeof o=="boolean"?`${o}`:o===0?"0":o,Fd=vf,ha=(o,s)=>i=>{var u;if(s?.variants==null)return Fd(o,i?.class,i?.className);const{variants:c,defaultVariants:f}=s,h=Object.keys(c).map(y=>{const k=i?.[y],x=f?.[y];if(k===null)return null;const I=bd(k)||bd(x);return c[y][I]}),w=i&&Object.entries(i).reduce((y,k)=>{let[x,I]=k;return I===void 0||(y[x]=I),y},{}),g=s==null||(u=s.compoundVariants)===null||u===void 0?void 0:u.reduce((y,k)=>{let{class:x,className:I,...z}=k;return Object.entries(z).every(b=>{let[T,N]=b;return Array.isArray(N)?N.includes({...f,...w}[T]):{...f,...w}[T]===N})?[...y,x,I]:y},[]);return Fd(o,h,g,i?.class,i?.className)};/** - * @license lucide-react v0.525.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const fg=o=>o.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),pg=o=>o.replace(/^([A-Z])|[\s-_]+(\w)/g,(s,i,u)=>u?u.toUpperCase():i.toLowerCase()),jd=o=>{const s=pg(o);return s.charAt(0).toUpperCase()+s.slice(1)},gf=(...o)=>o.filter((s,i,u)=>!!s&&s.trim()!==""&&u.indexOf(s)===i).join(" ").trim(),mg=o=>{for(const s in o)if(s.startsWith("aria-")||s==="role"||s==="title")return!0};/** - * @license lucide-react v0.525.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */var hg={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** - * @license lucide-react v0.525.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const vg=p.forwardRef(({color:o="currentColor",size:s=24,strokeWidth:i=2,absoluteStrokeWidth:u,className:c="",children:f,iconNode:h,...w},g)=>p.createElement("svg",{ref:g,...hg,width:s,height:s,stroke:o,strokeWidth:u?Number(i)*24/Number(s):i,className:gf("lucide",c),...!f&&!mg(w)&&{"aria-hidden":"true"},...w},[...h.map(([y,k])=>p.createElement(y,k)),...Array.isArray(f)?f:[f]]));/** - * @license lucide-react v0.525.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const yf=(o,s)=>{const i=p.forwardRef(({className:u,...c},f)=>p.createElement(vg,{ref:f,iconNode:s,className:gf(`lucide-${fg(jd(o))}`,`lucide-${o}`,u),...c}));return i.displayName=jd(o),i};/** - * @license lucide-react v0.525.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const gg=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],yg=yf("circle",gg);/** - * @license lucide-react v0.525.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const wg=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Eg=yf("x",wg);function Pe(o,s,{checkForDefaultPrevented:i=!0}={}){return function(c){if(o?.(c),i===!1||!c.defaultPrevented)return s?.(c)}}function Ud(o,s){if(typeof o=="function")return o(s);o!=null&&(o.current=s)}function wf(...o){return s=>{let i=!1;const u=o.map(c=>{const f=Ud(c,s);return!i&&typeof f=="function"&&(i=!0),f});if(i)return()=>{for(let c=0;c{const{scope:I,children:z,...b}=x,T=I?.[o]?.[g]||w,N=p.useMemo(()=>b,Object.values(b));return B.jsx(T.Provider,{value:N,children:z})};y.displayName=f+"Provider";function k(x,I){const z=I?.[o]?.[g]||w,b=p.useContext(z);if(b)return b;if(h!==void 0)return h;throw new Error(`\`${x}\` must be used within \`${f}\``)}return[y,k]}const c=()=>{const f=i.map(h=>p.createContext(h));return function(w){const g=w?.[o]||f;return p.useMemo(()=>({[`__scope${o}`]:{...w,[o]:g}}),[w,g])}};return c.scopeName=o,[u,kg(c,...s)]}function kg(...o){const s=o[0];if(o.length===1)return s;const i=()=>{const u=o.map(c=>({useScope:c(),scopeName:c.scopeName}));return function(f){const h=u.reduce((w,{useScope:g,scopeName:y})=>{const x=g(f)[`__scope${y}`];return{...w,...x}},{});return p.useMemo(()=>({[`__scope${s.scopeName}`]:h}),[h])}};return i.scopeName=s.scopeName,i}function bl(o){const s=Ng(o),i=p.forwardRef((u,c)=>{const{children:f,...h}=u,w=p.Children.toArray(f),g=w.find(Tg);if(g){const y=g.props.children,k=w.map(x=>x===g?p.Children.count(y)>1?p.Children.only(null):p.isValidElement(y)?y.props.children:null:x);return B.jsx(s,{...h,ref:c,children:p.isValidElement(y)?p.cloneElement(y,void 0,k):null})}return B.jsx(s,{...h,ref:c,children:f})});return i.displayName=`${o}.Slot`,i}var Cg=bl("Slot");function Ng(o){const s=p.forwardRef((i,u)=>{const{children:c,...f}=i;if(p.isValidElement(c)){const h=_g(c),w=Rg(f,c.props);return c.type!==p.Fragment&&(w.ref=u?wf(u,h):h),p.cloneElement(c,w)}return p.Children.count(c)>1?p.Children.only(null):null});return s.displayName=`${o}.SlotClone`,s}var Pg=Symbol("radix.slottable");function Tg(o){return p.isValidElement(o)&&typeof o.type=="function"&&"__radixId"in o.type&&o.type.__radixId===Pg}function Rg(o,s){const i={...s};for(const u in s){const c=o[u],f=s[u];/^on[A-Z]/.test(u)?c&&f?i[u]=(...w)=>{const g=f(...w);return c(...w),g}:c&&(i[u]=c):u==="style"?i[u]={...c,...f}:u==="className"&&(i[u]=[c,f].filter(Boolean).join(" "))}return{...o,...i}}function _g(o){let s=Object.getOwnPropertyDescriptor(o.props,"ref")?.get,i=s&&"isReactWarning"in s&&s.isReactWarning;return i?o.ref:(s=Object.getOwnPropertyDescriptor(o,"ref")?.get,i=s&&"isReactWarning"in s&&s.isReactWarning,i?o.props.ref:o.props.ref||o.ref)}function Ef(o){const s=o+"CollectionProvider",[i,u]=Wn(s),[c,f]=i(s,{collectionRef:{current:null},itemMap:new Map}),h=T=>{const{scope:N,children:U}=T,V=m.useRef(null),j=m.useRef(new Map).current;return B.jsx(c,{scope:N,itemMap:j,collectionRef:V,children:U})};h.displayName=s;const w=o+"CollectionSlot",g=bl(w),y=m.forwardRef((T,N)=>{const{scope:U,children:V}=T,j=f(w,U),G=Tt(N,j.collectionRef);return B.jsx(g,{ref:G,children:V})});y.displayName=w;const k=o+"CollectionItemSlot",x="data-radix-collection-item",I=bl(k),z=m.forwardRef((T,N)=>{const{scope:U,children:V,...j}=T,G=m.useRef(null),ie=Tt(N,G),se=f(k,U);return m.useEffect(()=>(se.itemMap.set(G,{ref:G,...j}),()=>void se.itemMap.delete(G))),B.jsx(I,{[x]:"",ref:ie,children:V})});z.displayName=k;function b(T){const N=f(o+"CollectionConsumer",T);return m.useCallback(()=>{const V=N.collectionRef.current;if(!V)return[];const j=Array.from(V.querySelectorAll(`[${x}]`));return Array.from(N.itemMap.values()).sort((se,oe)=>j.indexOf(se.ref.current)-j.indexOf(oe.ref.current))},[N.collectionRef,N.itemMap])}return[{Provider:h,Slot:y,ItemSlot:z},b,u]}var Ig=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],_e=Ig.reduce((o,s)=>{const i=bl(`Primitive.${s}`),u=p.forwardRef((c,f)=>{const{asChild:h,...w}=c,g=h?i:s;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),B.jsx(g,{...w,ref:f})});return u.displayName=`Primitive.${s}`,{...o,[s]:u}},{});function xf(o,s){o&&fa.flushSync(()=>o.dispatchEvent(s))}function yn(o){const s=p.useRef(o);return p.useEffect(()=>{s.current=o}),p.useMemo(()=>(...i)=>s.current?.(...i),[])}function Og(o,s=globalThis?.document){const i=yn(o);p.useEffect(()=>{const u=c=>{c.key==="Escape"&&i(c)};return s.addEventListener("keydown",u,{capture:!0}),()=>s.removeEventListener("keydown",u,{capture:!0})},[i,s])}var Lg="DismissableLayer",ta="dismissableLayer.update",Mg="dismissableLayer.pointerDownOutside",Ag="dismissableLayer.focusOutside",Bd,Sf=p.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),kf=p.forwardRef((o,s)=>{const{disableOutsidePointerEvents:i=!1,onEscapeKeyDown:u,onPointerDownOutside:c,onFocusOutside:f,onInteractOutside:h,onDismiss:w,...g}=o,y=p.useContext(Sf),[k,x]=p.useState(null),I=k?.ownerDocument??globalThis?.document,[,z]=p.useState({}),b=Tt(s,oe=>x(oe)),T=Array.from(y.layers),[N]=[...y.layersWithOutsidePointerEventsDisabled].slice(-1),U=T.indexOf(N),V=k?T.indexOf(k):-1,j=y.layersWithOutsidePointerEventsDisabled.size>0,G=V>=U,ie=Dg(oe=>{const $=oe.target,we=[...y.branches].some(Te=>Te.contains($));!G||we||(c?.(oe),h?.(oe),oe.defaultPrevented||w?.())},I),se=bg(oe=>{const $=oe.target;[...y.branches].some(Te=>Te.contains($))||(f?.(oe),h?.(oe),oe.defaultPrevented||w?.())},I);return Og(oe=>{V===y.layers.size-1&&(u?.(oe),!oe.defaultPrevented&&w&&(oe.preventDefault(),w()))},I),p.useEffect(()=>{if(k)return i&&(y.layersWithOutsidePointerEventsDisabled.size===0&&(Bd=I.body.style.pointerEvents,I.body.style.pointerEvents="none"),y.layersWithOutsidePointerEventsDisabled.add(k)),y.layers.add(k),Wd(),()=>{i&&y.layersWithOutsidePointerEventsDisabled.size===1&&(I.body.style.pointerEvents=Bd)}},[k,I,i,y]),p.useEffect(()=>()=>{k&&(y.layers.delete(k),y.layersWithOutsidePointerEventsDisabled.delete(k),Wd())},[k,y]),p.useEffect(()=>{const oe=()=>z({});return document.addEventListener(ta,oe),()=>document.removeEventListener(ta,oe)},[]),B.jsx(_e.div,{...g,ref:b,style:{pointerEvents:j?G?"auto":"none":void 0,...o.style},onFocusCapture:Pe(o.onFocusCapture,se.onFocusCapture),onBlurCapture:Pe(o.onBlurCapture,se.onBlurCapture),onPointerDownCapture:Pe(o.onPointerDownCapture,ie.onPointerDownCapture)})});kf.displayName=Lg;var zg="DismissableLayerBranch",Cf=p.forwardRef((o,s)=>{const i=p.useContext(Sf),u=p.useRef(null),c=Tt(s,u);return p.useEffect(()=>{const f=u.current;if(f)return i.branches.add(f),()=>{i.branches.delete(f)}},[i.branches]),B.jsx(_e.div,{...o,ref:c})});Cf.displayName=zg;function Dg(o,s=globalThis?.document){const i=yn(o),u=p.useRef(!1),c=p.useRef(()=>{});return p.useEffect(()=>{const f=w=>{if(w.target&&!u.current){let g=function(){Nf(Mg,i,y,{discrete:!0})};const y={originalEvent:w};w.pointerType==="touch"?(s.removeEventListener("click",c.current),c.current=g,s.addEventListener("click",c.current,{once:!0})):g()}else s.removeEventListener("click",c.current);u.current=!1},h=window.setTimeout(()=>{s.addEventListener("pointerdown",f)},0);return()=>{window.clearTimeout(h),s.removeEventListener("pointerdown",f),s.removeEventListener("click",c.current)}},[s,i]),{onPointerDownCapture:()=>u.current=!0}}function bg(o,s=globalThis?.document){const i=yn(o),u=p.useRef(!1);return p.useEffect(()=>{const c=f=>{f.target&&!u.current&&Nf(Ag,i,{originalEvent:f},{discrete:!1})};return s.addEventListener("focusin",c),()=>s.removeEventListener("focusin",c)},[s,i]),{onFocusCapture:()=>u.current=!0,onBlurCapture:()=>u.current=!1}}function Wd(){const o=new CustomEvent(ta);document.dispatchEvent(o)}function Nf(o,s,i,{discrete:u}){const c=i.originalEvent.target,f=new CustomEvent(o,{bubbles:!1,cancelable:!0,detail:i});s&&c.addEventListener(o,s,{once:!0}),u?xf(c,f):c.dispatchEvent(f)}var Fg=kf,jg=Cf,Un=globalThis?.document?p.useLayoutEffect:()=>{},Ug="Portal",Pf=p.forwardRef((o,s)=>{const{container:i,...u}=o,[c,f]=p.useState(!1);Un(()=>f(!0),[]);const h=i||c&&globalThis?.document?.body;return h?ov.createPortal(B.jsx(_e.div,{...u,ref:s}),h):null});Pf.displayName=Ug;function $g(o,s){return p.useReducer((i,u)=>s[i][u]??i,o)}var $l=o=>{const{present:s,children:i}=o,u=Vg(s),c=typeof i=="function"?i({present:u.isPresent}):p.Children.only(i),f=Tt(u.ref,Bg(c));return typeof i=="function"||u.isPresent?p.cloneElement(c,{ref:f}):null};$l.displayName="Presence";function Vg(o){const[s,i]=p.useState(),u=p.useRef(null),c=p.useRef(o),f=p.useRef("none"),h=o?"mounted":"unmounted",[w,g]=$g(h,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return p.useEffect(()=>{const y=Il(u.current);f.current=w==="mounted"?y:"none"},[w]),Un(()=>{const y=u.current,k=c.current;if(k!==o){const I=f.current,z=Il(y);o?g("MOUNT"):z==="none"||y?.display==="none"?g("UNMOUNT"):g(k&&I!==z?"ANIMATION_OUT":"UNMOUNT"),c.current=o}},[o,g]),Un(()=>{if(s){let y;const k=s.ownerDocument.defaultView??window,x=z=>{const T=Il(u.current).includes(z.animationName);if(z.target===s&&T&&(g("ANIMATION_END"),!c.current)){const N=s.style.animationFillMode;s.style.animationFillMode="forwards",y=k.setTimeout(()=>{s.style.animationFillMode==="forwards"&&(s.style.animationFillMode=N)})}},I=z=>{z.target===s&&(f.current=Il(u.current))};return s.addEventListener("animationstart",I),s.addEventListener("animationcancel",x),s.addEventListener("animationend",x),()=>{k.clearTimeout(y),s.removeEventListener("animationstart",I),s.removeEventListener("animationcancel",x),s.removeEventListener("animationend",x)}}else g("ANIMATION_END")},[s,g]),{isPresent:["mounted","unmountSuspended"].includes(w),ref:p.useCallback(y=>{u.current=y?getComputedStyle(y):null,i(y)},[])}}function Il(o){return o?.animationName||"none"}function Bg(o){let s=Object.getOwnPropertyDescriptor(o.props,"ref")?.get,i=s&&"isReactWarning"in s&&s.isReactWarning;return i?o.ref:(s=Object.getOwnPropertyDescriptor(o,"ref")?.get,i=s&&"isReactWarning"in s&&s.isReactWarning,i?o.props.ref:o.props.ref||o.ref)}var Wg=da[" useInsertionEffect ".trim().toString()]||Un;function Vl({prop:o,defaultProp:s,onChange:i=()=>{},caller:u}){const[c,f,h]=Hg({defaultProp:s,onChange:i}),w=o!==void 0,g=w?o:c;{const k=p.useRef(o!==void 0);p.useEffect(()=>{const x=k.current;x!==w&&console.warn(`${u} is changing from ${x?"controlled":"uncontrolled"} to ${w?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),k.current=w},[w,u])}const y=p.useCallback(k=>{if(w){const x=Gg(k)?k(o):k;x!==o&&h.current?.(x)}else f(k)},[w,o,f,h]);return[g,y]}function Hg({defaultProp:o,onChange:s}){const[i,u]=p.useState(o),c=p.useRef(i),f=p.useRef(s);return Wg(()=>{f.current=s},[s]),p.useEffect(()=>{c.current!==i&&(f.current?.(i),c.current=i)},[i,c]),[i,u,f]}function Gg(o){return typeof o=="function"}var Kg=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),Qg="VisuallyHidden",va=p.forwardRef((o,s)=>B.jsx(_e.span,{...o,ref:s,style:{...Kg,...o.style}}));va.displayName=Qg;var ga="ToastProvider",[ya,Yg,Xg]=Ef("Toast"),[Tf,Z0]=Wn("Toast",[Xg]),[Jg,Bl]=Tf(ga),Rf=o=>{const{__scopeToast:s,label:i="Notification",duration:u=5e3,swipeDirection:c="right",swipeThreshold:f=50,children:h}=o,[w,g]=p.useState(null),[y,k]=p.useState(0),x=p.useRef(!1),I=p.useRef(!1);return i.trim()||console.error(`Invalid prop \`label\` supplied to \`${ga}\`. Expected non-empty \`string\`.`),B.jsx(ya.Provider,{scope:s,children:B.jsx(Jg,{scope:s,label:i,duration:u,swipeDirection:c,swipeThreshold:f,toastCount:y,viewport:w,onViewportChange:g,onToastAdd:p.useCallback(()=>k(z=>z+1),[]),onToastRemove:p.useCallback(()=>k(z=>z-1),[]),isFocusedToastEscapeKeyDownRef:x,isClosePausedRef:I,children:h})})};Rf.displayName=ga;var _f="ToastViewport",Zg=["F8"],na="toast.viewportPause",ra="toast.viewportResume",If=p.forwardRef((o,s)=>{const{__scopeToast:i,hotkey:u=Zg,label:c="Notifications ({hotkey})",...f}=o,h=Bl(_f,i),w=Yg(i),g=p.useRef(null),y=p.useRef(null),k=p.useRef(null),x=p.useRef(null),I=Tt(s,x,h.onViewportChange),z=u.join("+").replace(/Key/g,"").replace(/Digit/g,""),b=h.toastCount>0;p.useEffect(()=>{const N=U=>{u.length!==0&&u.every(j=>U[j]||U.code===j)&&x.current?.focus()};return document.addEventListener("keydown",N),()=>document.removeEventListener("keydown",N)},[u]),p.useEffect(()=>{const N=g.current,U=x.current;if(b&&N&&U){const V=()=>{if(!h.isClosePausedRef.current){const se=new CustomEvent(na);U.dispatchEvent(se),h.isClosePausedRef.current=!0}},j=()=>{if(h.isClosePausedRef.current){const se=new CustomEvent(ra);U.dispatchEvent(se),h.isClosePausedRef.current=!1}},G=se=>{!N.contains(se.relatedTarget)&&j()},ie=()=>{N.contains(document.activeElement)||j()};return N.addEventListener("focusin",V),N.addEventListener("focusout",G),N.addEventListener("pointermove",V),N.addEventListener("pointerleave",ie),window.addEventListener("blur",V),window.addEventListener("focus",j),()=>{N.removeEventListener("focusin",V),N.removeEventListener("focusout",G),N.removeEventListener("pointermove",V),N.removeEventListener("pointerleave",ie),window.removeEventListener("blur",V),window.removeEventListener("focus",j)}}},[b,h.isClosePausedRef]);const T=p.useCallback(({tabbingDirection:N})=>{const V=w().map(j=>{const G=j.ref.current,ie=[G,...dy(G)];return N==="forwards"?ie:ie.reverse()});return(N==="forwards"?V.reverse():V).flat()},[w]);return p.useEffect(()=>{const N=x.current;if(N){const U=V=>{const j=V.altKey||V.ctrlKey||V.metaKey;if(V.key==="Tab"&&!j){const ie=document.activeElement,se=V.shiftKey;if(V.target===N&&se){y.current?.focus();return}const we=T({tabbingDirection:se?"backwards":"forwards"}),Te=we.findIndex(Le=>Le===ie);Gs(we.slice(Te+1))?V.preventDefault():se?y.current?.focus():k.current?.focus()}};return N.addEventListener("keydown",U),()=>N.removeEventListener("keydown",U)}},[w,T]),B.jsxs(jg,{ref:g,role:"region","aria-label":c.replace("{hotkey}",z),tabIndex:-1,style:{pointerEvents:b?void 0:"none"},children:[b&&B.jsx(oa,{ref:y,onFocusFromOutsideViewport:()=>{const N=T({tabbingDirection:"forwards"});Gs(N)}}),B.jsx(ya.Slot,{scope:i,children:B.jsx(_e.ol,{tabIndex:-1,...f,ref:I})}),b&&B.jsx(oa,{ref:k,onFocusFromOutsideViewport:()=>{const N=T({tabbingDirection:"backwards"});Gs(N)}})]})});If.displayName=_f;var Of="ToastFocusProxy",oa=p.forwardRef((o,s)=>{const{__scopeToast:i,onFocusFromOutsideViewport:u,...c}=o,f=Bl(Of,i);return B.jsx(va,{"aria-hidden":!0,tabIndex:0,...c,ref:s,style:{position:"fixed"},onFocus:h=>{const w=h.relatedTarget;!f.viewport?.contains(w)&&u()}})});oa.displayName=Of;var go="Toast",qg="toast.swipeStart",ey="toast.swipeMove",ty="toast.swipeCancel",ny="toast.swipeEnd",Lf=p.forwardRef((o,s)=>{const{forceMount:i,open:u,defaultOpen:c,onOpenChange:f,...h}=o,[w,g]=Vl({prop:u,defaultProp:c??!0,onChange:f,caller:go});return B.jsx($l,{present:i||w,children:B.jsx(ly,{open:w,...h,ref:s,onClose:()=>g(!1),onPause:yn(o.onPause),onResume:yn(o.onResume),onSwipeStart:Pe(o.onSwipeStart,y=>{y.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:Pe(o.onSwipeMove,y=>{const{x:k,y:x}=y.detail.delta;y.currentTarget.setAttribute("data-swipe","move"),y.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${k}px`),y.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${x}px`)}),onSwipeCancel:Pe(o.onSwipeCancel,y=>{y.currentTarget.setAttribute("data-swipe","cancel"),y.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),y.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),y.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),y.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:Pe(o.onSwipeEnd,y=>{const{x:k,y:x}=y.detail.delta;y.currentTarget.setAttribute("data-swipe","end"),y.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),y.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),y.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${k}px`),y.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${x}px`),g(!1)})})})});Lf.displayName=go;var[ry,oy]=Tf(go,{onClose(){}}),ly=p.forwardRef((o,s)=>{const{__scopeToast:i,type:u="foreground",duration:c,open:f,onClose:h,onEscapeKeyDown:w,onPause:g,onResume:y,onSwipeStart:k,onSwipeMove:x,onSwipeCancel:I,onSwipeEnd:z,...b}=o,T=Bl(go,i),[N,U]=p.useState(null),V=Tt(s,le=>U(le)),j=p.useRef(null),G=p.useRef(null),ie=c||T.duration,se=p.useRef(0),oe=p.useRef(ie),$=p.useRef(0),{onToastAdd:we,onToastRemove:Te}=T,Le=yn(()=>{N?.contains(document.activeElement)&&T.viewport?.focus(),h()}),Me=p.useCallback(le=>{!le||le===1/0||(window.clearTimeout($.current),se.current=new Date().getTime(),$.current=window.setTimeout(Le,le))},[Le]);p.useEffect(()=>{const le=T.viewport;if(le){const Ee=()=>{Me(oe.current),y?.()},ce=()=>{const me=new Date().getTime()-se.current;oe.current=oe.current-me,window.clearTimeout($.current),g?.()};return le.addEventListener(na,ce),le.addEventListener(ra,Ee),()=>{le.removeEventListener(na,ce),le.removeEventListener(ra,Ee)}}},[T.viewport,ie,g,y,Me]),p.useEffect(()=>{f&&!T.isClosePausedRef.current&&Me(ie)},[f,ie,T.isClosePausedRef,Me]),p.useEffect(()=>(we(),()=>Te()),[we,Te]);const De=p.useMemo(()=>N?jf(N):null,[N]);return T.viewport?B.jsxs(B.Fragment,{children:[De&&B.jsx(iy,{__scopeToast:i,role:"status","aria-live":u==="foreground"?"assertive":"polite","aria-atomic":!0,children:De}),B.jsx(ry,{scope:i,onClose:Le,children:fa.createPortal(B.jsx(ya.ItemSlot,{scope:i,children:B.jsx(Fg,{asChild:!0,onEscapeKeyDown:Pe(w,()=>{T.isFocusedToastEscapeKeyDownRef.current||Le(),T.isFocusedToastEscapeKeyDownRef.current=!1}),children:B.jsx(_e.li,{role:"status","aria-live":"off","aria-atomic":!0,tabIndex:0,"data-state":f?"open":"closed","data-swipe-direction":T.swipeDirection,...b,ref:V,style:{userSelect:"none",touchAction:"none",...o.style},onKeyDown:Pe(o.onKeyDown,le=>{le.key==="Escape"&&(w?.(le.nativeEvent),le.nativeEvent.defaultPrevented||(T.isFocusedToastEscapeKeyDownRef.current=!0,Le()))}),onPointerDown:Pe(o.onPointerDown,le=>{le.button===0&&(j.current={x:le.clientX,y:le.clientY})}),onPointerMove:Pe(o.onPointerMove,le=>{if(!j.current)return;const Ee=le.clientX-j.current.x,ce=le.clientY-j.current.y,me=!!G.current,O=["left","right"].includes(T.swipeDirection),ee=["left","up"].includes(T.swipeDirection)?Math.min:Math.max,W=O?ee(0,Ee):0,C=O?0:ee(0,ce),L=le.pointerType==="touch"?10:2,Z={x:W,y:C},te={originalEvent:le,delta:Z};me?(G.current=Z,Ol(ey,x,te,{discrete:!1})):Hd(Z,T.swipeDirection,L)?(G.current=Z,Ol(qg,k,te,{discrete:!1}),le.target.setPointerCapture(le.pointerId)):(Math.abs(Ee)>L||Math.abs(ce)>L)&&(j.current=null)}),onPointerUp:Pe(o.onPointerUp,le=>{const Ee=G.current,ce=le.target;if(ce.hasPointerCapture(le.pointerId)&&ce.releasePointerCapture(le.pointerId),G.current=null,j.current=null,Ee){const me=le.currentTarget,O={originalEvent:le,delta:Ee};Hd(Ee,T.swipeDirection,T.swipeThreshold)?Ol(ny,z,O,{discrete:!0}):Ol(ty,I,O,{discrete:!0}),me.addEventListener("click",ee=>ee.preventDefault(),{once:!0})}})})})}),T.viewport)})]}):null}),iy=o=>{const{__scopeToast:s,children:i,...u}=o,c=Bl(go,s),[f,h]=p.useState(!1),[w,g]=p.useState(!1);return uy(()=>h(!0)),p.useEffect(()=>{const y=window.setTimeout(()=>g(!0),1e3);return()=>window.clearTimeout(y)},[]),w?null:B.jsx(Pf,{asChild:!0,children:B.jsx(va,{...u,children:f&&B.jsxs(B.Fragment,{children:[c.label," ",i]})})})},sy="ToastTitle",Mf=p.forwardRef((o,s)=>{const{__scopeToast:i,...u}=o;return B.jsx(_e.div,{...u,ref:s})});Mf.displayName=sy;var ay="ToastDescription",Af=p.forwardRef((o,s)=>{const{__scopeToast:i,...u}=o;return B.jsx(_e.div,{...u,ref:s})});Af.displayName=ay;var zf="ToastAction",Df=p.forwardRef((o,s)=>{const{altText:i,...u}=o;return i.trim()?B.jsx(Ff,{altText:i,asChild:!0,children:B.jsx(wa,{...u,ref:s})}):(console.error(`Invalid prop \`altText\` supplied to \`${zf}\`. Expected non-empty \`string\`.`),null)});Df.displayName=zf;var bf="ToastClose",wa=p.forwardRef((o,s)=>{const{__scopeToast:i,...u}=o,c=oy(bf,i);return B.jsx(Ff,{asChild:!0,children:B.jsx(_e.button,{type:"button",...u,ref:s,onClick:Pe(o.onClick,c.onClose)})})});wa.displayName=bf;var Ff=p.forwardRef((o,s)=>{const{__scopeToast:i,altText:u,...c}=o;return B.jsx(_e.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":u||void 0,...c,ref:s})});function jf(o){const s=[];return Array.from(o.childNodes).forEach(u=>{if(u.nodeType===u.TEXT_NODE&&u.textContent&&s.push(u.textContent),cy(u)){const c=u.ariaHidden||u.hidden||u.style.display==="none",f=u.dataset.radixToastAnnounceExclude==="";if(!c)if(f){const h=u.dataset.radixToastAnnounceAlt;h&&s.push(h)}else s.push(...jf(u))}}),s}function Ol(o,s,i,{discrete:u}){const c=i.originalEvent.currentTarget,f=new CustomEvent(o,{bubbles:!0,cancelable:!0,detail:i});s&&c.addEventListener(o,s,{once:!0}),u?xf(c,f):c.dispatchEvent(f)}var Hd=(o,s,i=0)=>{const u=Math.abs(o.x),c=Math.abs(o.y),f=u>c;return s==="left"||s==="right"?f&&u>i:!f&&c>i};function uy(o=()=>{}){const s=yn(o);Un(()=>{let i=0,u=0;return i=window.requestAnimationFrame(()=>u=window.requestAnimationFrame(s)),()=>{window.cancelAnimationFrame(i),window.cancelAnimationFrame(u)}},[s])}function cy(o){return o.nodeType===o.ELEMENT_NODE}function dy(o){const s=[],i=document.createTreeWalker(o,NodeFilter.SHOW_ELEMENT,{acceptNode:u=>{const c=u.tagName==="INPUT"&&u.type==="hidden";return u.disabled||u.hidden||c?NodeFilter.FILTER_SKIP:u.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;i.nextNode();)s.push(i.currentNode);return s}function Gs(o){const s=document.activeElement;return o.some(i=>i===s?!0:(i.focus(),document.activeElement!==s))}var fy=Rf,Uf=If,$f=Lf,Vf=Mf,Bf=Af,Wf=Df,Hf=wa;const py=1,my=1e6,Vt={ADD_TOAST:"ADD_TOAST",UPDATE_TOAST:"UPDATE_TOAST",DISMISS_TOAST:"DISMISS_TOAST",REMOVE_TOAST:"REMOVE_TOAST"};let Ks=0;function hy(){return Ks=(Ks+1)%Number.MAX_VALUE,Ks.toString()}const Qs=new Map,Gd=o=>{if(Qs.has(o))return;const s=setTimeout(()=>{Qs.delete(o),fo({type:Vt.REMOVE_TOAST,toastId:o})},my);Qs.set(o,s)},vy=(o,s)=>{switch(s.type){case Vt.ADD_TOAST:return{...o,toasts:[s.toast,...o.toasts].slice(0,py)};case Vt.UPDATE_TOAST:return{...o,toasts:o.toasts.map(i=>i.id===s.toast.id?{...i,...s.toast}:i)};case Vt.DISMISS_TOAST:{const{toastId:i}=s;return i?Gd(i):o.toasts.forEach(u=>{Gd(u.id)}),{...o,toasts:o.toasts.map(u=>u.id===i||i===void 0?{...u,open:!1}:u)}}case Vt.REMOVE_TOAST:return s.toastId===void 0?{...o,toasts:[]}:{...o,toasts:o.toasts.filter(i=>i.id!==s.toastId)}}},Al=[];let zl={toasts:[]};function fo(o){zl=vy(zl,o),Al.forEach(s=>{s(zl)})}function gy({...o}){const s=hy(),i=c=>fo({type:Vt.UPDATE_TOAST,toast:{...c,id:s}}),u=()=>fo({type:Vt.DISMISS_TOAST,toastId:s});return fo({type:Vt.ADD_TOAST,toast:{...o,id:s,open:!0,onOpenChange:c=>{c||u()}}}),{id:s,dismiss:u,update:i}}function Er(){const[o,s]=p.useState(zl);return p.useEffect(()=>(Al.push(s),()=>{const i=Al.indexOf(s);i>-1&&Al.splice(i,1)}),[o]),{...o,toast:gy,dismiss:i=>fo({type:Vt.DISMISS_TOAST,toastId:i})}}const Ea="-",yy=o=>{const s=Ey(o),{conflictingClassGroups:i,conflictingClassGroupModifiers:u}=o;return{getClassGroupId:h=>{const w=h.split(Ea);return w[0]===""&&w.length!==1&&w.shift(),Gf(w,s)||wy(h)},getConflictingClassGroupIds:(h,w)=>{const g=i[h]||[];return w&&u[h]?[...g,...u[h]]:g}}},Gf=(o,s)=>{if(o.length===0)return s.classGroupId;const i=o[0],u=s.nextPart.get(i),c=u?Gf(o.slice(1),u):void 0;if(c)return c;if(s.validators.length===0)return;const f=o.join(Ea);return s.validators.find(({validator:h})=>h(f))?.classGroupId},Kd=/^\[(.+)\]$/,wy=o=>{if(Kd.test(o)){const s=Kd.exec(o)[1],i=s?.substring(0,s.indexOf(":"));if(i)return"arbitrary.."+i}},Ey=o=>{const{theme:s,classGroups:i}=o,u={nextPart:new Map,validators:[]};for(const c in i)la(i[c],u,c,s);return u},la=(o,s,i,u)=>{o.forEach(c=>{if(typeof c=="string"){const f=c===""?s:Qd(s,c);f.classGroupId=i;return}if(typeof c=="function"){if(xy(c)){la(c(u),s,i,u);return}s.validators.push({validator:c,classGroupId:i});return}Object.entries(c).forEach(([f,h])=>{la(h,Qd(s,f),i,u)})})},Qd=(o,s)=>{let i=o;return s.split(Ea).forEach(u=>{i.nextPart.has(u)||i.nextPart.set(u,{nextPart:new Map,validators:[]}),i=i.nextPart.get(u)}),i},xy=o=>o.isThemeGetter,Sy=o=>{if(o<1)return{get:()=>{},set:()=>{}};let s=0,i=new Map,u=new Map;const c=(f,h)=>{i.set(f,h),s++,s>o&&(s=0,u=i,i=new Map)};return{get(f){let h=i.get(f);if(h!==void 0)return h;if((h=u.get(f))!==void 0)return c(f,h),h},set(f,h){i.has(f)?i.set(f,h):c(f,h)}}},ia="!",sa=":",ky=sa.length,Cy=o=>{const{prefix:s,experimentalParseClassName:i}=o;let u=c=>{const f=[];let h=0,w=0,g=0,y;for(let b=0;bg?y-g:void 0;return{modifiers:f,hasImportantModifier:I,baseClassName:x,maybePostfixModifierPosition:z}};if(s){const c=s+sa,f=u;u=h=>h.startsWith(c)?f(h.substring(c.length)):{isExternal:!0,modifiers:[],hasImportantModifier:!1,baseClassName:h,maybePostfixModifierPosition:void 0}}if(i){const c=u;u=f=>i({className:f,parseClassName:c})}return u},Ny=o=>o.endsWith(ia)?o.substring(0,o.length-1):o.startsWith(ia)?o.substring(1):o,Py=o=>{const s=Object.fromEntries(o.orderSensitiveModifiers.map(u=>[u,!0]));return u=>{if(u.length<=1)return u;const c=[];let f=[];return u.forEach(h=>{h[0]==="["||s[h]?(c.push(...f.sort(),h),f=[]):f.push(h)}),c.push(...f.sort()),c}},Ty=o=>({cache:Sy(o.cacheSize),parseClassName:Cy(o),sortModifiers:Py(o),...yy(o)}),Ry=/\s+/,_y=(o,s)=>{const{parseClassName:i,getClassGroupId:u,getConflictingClassGroupIds:c,sortModifiers:f}=s,h=[],w=o.trim().split(Ry);let g="";for(let y=w.length-1;y>=0;y-=1){const k=w[y],{isExternal:x,modifiers:I,hasImportantModifier:z,baseClassName:b,maybePostfixModifierPosition:T}=i(k);if(x){g=k+(g.length>0?" "+g:g);continue}let N=!!T,U=u(N?b.substring(0,T):b);if(!U){if(!N){g=k+(g.length>0?" "+g:g);continue}if(U=u(b),!U){g=k+(g.length>0?" "+g:g);continue}N=!1}const V=f(I).join(":"),j=z?V+ia:V,G=j+U;if(h.includes(G))continue;h.push(G);const ie=c(U,N);for(let se=0;se0?" "+g:g)}return g};function Iy(){let o=0,s,i,u="";for(;o{if(typeof o=="string")return o;let s,i="";for(let u=0;ux(k),o());return i=Ty(y),u=i.cache.get,c=i.cache.set,f=w,w(g)}function w(g){const y=u(g);if(y)return y;const k=_y(g,i);return c(g,k),k}return function(){return f(Iy.apply(null,arguments))}}const Be=o=>{const s=i=>i[o]||[];return s.isThemeGetter=!0,s},Qf=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Yf=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Ly=/^\d+\/\d+$/,My=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ay=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,zy=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Dy=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,by=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,vr=o=>Ly.test(o),de=o=>!!o&&!Number.isNaN(Number(o)),mn=o=>!!o&&Number.isInteger(Number(o)),Ys=o=>o.endsWith("%")&&de(o.slice(0,-1)),$t=o=>My.test(o),Fy=()=>!0,jy=o=>Ay.test(o)&&!zy.test(o),Xf=()=>!1,Uy=o=>Dy.test(o),$y=o=>by.test(o),Vy=o=>!Y(o)&&!X(o),By=o=>xr(o,qf,Xf),Y=o=>Qf.test(o),Mn=o=>xr(o,ep,jy),Xs=o=>xr(o,Qy,de),Yd=o=>xr(o,Jf,Xf),Wy=o=>xr(o,Zf,$y),Ll=o=>xr(o,tp,Uy),X=o=>Yf.test(o),co=o=>Sr(o,ep),Hy=o=>Sr(o,Yy),Xd=o=>Sr(o,Jf),Gy=o=>Sr(o,qf),Ky=o=>Sr(o,Zf),Ml=o=>Sr(o,tp,!0),xr=(o,s,i)=>{const u=Qf.exec(o);return u?u[1]?s(u[1]):i(u[2]):!1},Sr=(o,s,i=!1)=>{const u=Yf.exec(o);return u?u[1]?s(u[1]):i:!1},Jf=o=>o==="position"||o==="percentage",Zf=o=>o==="image"||o==="url",qf=o=>o==="length"||o==="size"||o==="bg-size",ep=o=>o==="length",Qy=o=>o==="number",Yy=o=>o==="family-name",tp=o=>o==="shadow",Xy=()=>{const o=Be("color"),s=Be("font"),i=Be("text"),u=Be("font-weight"),c=Be("tracking"),f=Be("leading"),h=Be("breakpoint"),w=Be("container"),g=Be("spacing"),y=Be("radius"),k=Be("shadow"),x=Be("inset-shadow"),I=Be("text-shadow"),z=Be("drop-shadow"),b=Be("blur"),T=Be("perspective"),N=Be("aspect"),U=Be("ease"),V=Be("animate"),j=()=>["auto","avoid","all","avoid-page","page","left","right","column"],G=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],ie=()=>[...G(),X,Y],se=()=>["auto","hidden","clip","visible","scroll"],oe=()=>["auto","contain","none"],$=()=>[X,Y,g],we=()=>[vr,"full","auto",...$()],Te=()=>[mn,"none","subgrid",X,Y],Le=()=>["auto",{span:["full",mn,X,Y]},mn,X,Y],Me=()=>[mn,"auto",X,Y],De=()=>["auto","min","max","fr",X,Y],le=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],Ee=()=>["start","end","center","stretch","center-safe","end-safe"],ce=()=>["auto",...$()],me=()=>[vr,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...$()],O=()=>[o,X,Y],ee=()=>[...G(),Xd,Yd,{position:[X,Y]}],W=()=>["no-repeat",{repeat:["","x","y","space","round"]}],C=()=>["auto","cover","contain",Gy,By,{size:[X,Y]}],L=()=>[Ys,co,Mn],Z=()=>["","none","full",y,X,Y],te=()=>["",de,co,Mn],pe=()=>["solid","dashed","dotted","double"],he=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ue=()=>[de,Ys,Xd,Yd],ge=()=>["","none",b,X,Y],xe=()=>["none",de,X,Y],We=()=>["none",de,X,Y],Kt=()=>[de,X,Y],wn=()=>[vr,"full",...$()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[$t],breakpoint:[$t],color:[Fy],container:[$t],"drop-shadow":[$t],ease:["in","out","in-out"],font:[Vy],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[$t],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[$t],shadow:[$t],spacing:["px",de],text:[$t],"text-shadow":[$t],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",vr,Y,X,N]}],container:["container"],columns:[{columns:[de,Y,X,w]}],"break-after":[{"break-after":j()}],"break-before":[{"break-before":j()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:ie()}],overflow:[{overflow:se()}],"overflow-x":[{"overflow-x":se()}],"overflow-y":[{"overflow-y":se()}],overscroll:[{overscroll:oe()}],"overscroll-x":[{"overscroll-x":oe()}],"overscroll-y":[{"overscroll-y":oe()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:we()}],"inset-x":[{"inset-x":we()}],"inset-y":[{"inset-y":we()}],start:[{start:we()}],end:[{end:we()}],top:[{top:we()}],right:[{right:we()}],bottom:[{bottom:we()}],left:[{left:we()}],visibility:["visible","invisible","collapse"],z:[{z:[mn,"auto",X,Y]}],basis:[{basis:[vr,"full","auto",w,...$()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[de,vr,"auto","initial","none",Y]}],grow:[{grow:["",de,X,Y]}],shrink:[{shrink:["",de,X,Y]}],order:[{order:[mn,"first","last","none",X,Y]}],"grid-cols":[{"grid-cols":Te()}],"col-start-end":[{col:Le()}],"col-start":[{"col-start":Me()}],"col-end":[{"col-end":Me()}],"grid-rows":[{"grid-rows":Te()}],"row-start-end":[{row:Le()}],"row-start":[{"row-start":Me()}],"row-end":[{"row-end":Me()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":De()}],"auto-rows":[{"auto-rows":De()}],gap:[{gap:$()}],"gap-x":[{"gap-x":$()}],"gap-y":[{"gap-y":$()}],"justify-content":[{justify:[...le(),"normal"]}],"justify-items":[{"justify-items":[...Ee(),"normal"]}],"justify-self":[{"justify-self":["auto",...Ee()]}],"align-content":[{content:["normal",...le()]}],"align-items":[{items:[...Ee(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...Ee(),{baseline:["","last"]}]}],"place-content":[{"place-content":le()}],"place-items":[{"place-items":[...Ee(),"baseline"]}],"place-self":[{"place-self":["auto",...Ee()]}],p:[{p:$()}],px:[{px:$()}],py:[{py:$()}],ps:[{ps:$()}],pe:[{pe:$()}],pt:[{pt:$()}],pr:[{pr:$()}],pb:[{pb:$()}],pl:[{pl:$()}],m:[{m:ce()}],mx:[{mx:ce()}],my:[{my:ce()}],ms:[{ms:ce()}],me:[{me:ce()}],mt:[{mt:ce()}],mr:[{mr:ce()}],mb:[{mb:ce()}],ml:[{ml:ce()}],"space-x":[{"space-x":$()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":$()}],"space-y-reverse":["space-y-reverse"],size:[{size:me()}],w:[{w:[w,"screen",...me()]}],"min-w":[{"min-w":[w,"screen","none",...me()]}],"max-w":[{"max-w":[w,"screen","none","prose",{screen:[h]},...me()]}],h:[{h:["screen","lh",...me()]}],"min-h":[{"min-h":["screen","lh","none",...me()]}],"max-h":[{"max-h":["screen","lh",...me()]}],"font-size":[{text:["base",i,co,Mn]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[u,X,Xs]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Ys,Y]}],"font-family":[{font:[Hy,Y,s]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[c,X,Y]}],"line-clamp":[{"line-clamp":[de,"none",X,Xs]}],leading:[{leading:[f,...$()]}],"list-image":[{"list-image":["none",X,Y]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",X,Y]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:O()}],"text-color":[{text:O()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...pe(),"wavy"]}],"text-decoration-thickness":[{decoration:[de,"from-font","auto",X,Mn]}],"text-decoration-color":[{decoration:O()}],"underline-offset":[{"underline-offset":[de,"auto",X,Y]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:$()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",X,Y]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",X,Y]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ee()}],"bg-repeat":[{bg:W()}],"bg-size":[{bg:C()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},mn,X,Y],radial:["",X,Y],conic:[mn,X,Y]},Ky,Wy]}],"bg-color":[{bg:O()}],"gradient-from-pos":[{from:L()}],"gradient-via-pos":[{via:L()}],"gradient-to-pos":[{to:L()}],"gradient-from":[{from:O()}],"gradient-via":[{via:O()}],"gradient-to":[{to:O()}],rounded:[{rounded:Z()}],"rounded-s":[{"rounded-s":Z()}],"rounded-e":[{"rounded-e":Z()}],"rounded-t":[{"rounded-t":Z()}],"rounded-r":[{"rounded-r":Z()}],"rounded-b":[{"rounded-b":Z()}],"rounded-l":[{"rounded-l":Z()}],"rounded-ss":[{"rounded-ss":Z()}],"rounded-se":[{"rounded-se":Z()}],"rounded-ee":[{"rounded-ee":Z()}],"rounded-es":[{"rounded-es":Z()}],"rounded-tl":[{"rounded-tl":Z()}],"rounded-tr":[{"rounded-tr":Z()}],"rounded-br":[{"rounded-br":Z()}],"rounded-bl":[{"rounded-bl":Z()}],"border-w":[{border:te()}],"border-w-x":[{"border-x":te()}],"border-w-y":[{"border-y":te()}],"border-w-s":[{"border-s":te()}],"border-w-e":[{"border-e":te()}],"border-w-t":[{"border-t":te()}],"border-w-r":[{"border-r":te()}],"border-w-b":[{"border-b":te()}],"border-w-l":[{"border-l":te()}],"divide-x":[{"divide-x":te()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":te()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...pe(),"hidden","none"]}],"divide-style":[{divide:[...pe(),"hidden","none"]}],"border-color":[{border:O()}],"border-color-x":[{"border-x":O()}],"border-color-y":[{"border-y":O()}],"border-color-s":[{"border-s":O()}],"border-color-e":[{"border-e":O()}],"border-color-t":[{"border-t":O()}],"border-color-r":[{"border-r":O()}],"border-color-b":[{"border-b":O()}],"border-color-l":[{"border-l":O()}],"divide-color":[{divide:O()}],"outline-style":[{outline:[...pe(),"none","hidden"]}],"outline-offset":[{"outline-offset":[de,X,Y]}],"outline-w":[{outline:["",de,co,Mn]}],"outline-color":[{outline:O()}],shadow:[{shadow:["","none",k,Ml,Ll]}],"shadow-color":[{shadow:O()}],"inset-shadow":[{"inset-shadow":["none",x,Ml,Ll]}],"inset-shadow-color":[{"inset-shadow":O()}],"ring-w":[{ring:te()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:O()}],"ring-offset-w":[{"ring-offset":[de,Mn]}],"ring-offset-color":[{"ring-offset":O()}],"inset-ring-w":[{"inset-ring":te()}],"inset-ring-color":[{"inset-ring":O()}],"text-shadow":[{"text-shadow":["none",I,Ml,Ll]}],"text-shadow-color":[{"text-shadow":O()}],opacity:[{opacity:[de,X,Y]}],"mix-blend":[{"mix-blend":[...he(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":he()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[de]}],"mask-image-linear-from-pos":[{"mask-linear-from":ue()}],"mask-image-linear-to-pos":[{"mask-linear-to":ue()}],"mask-image-linear-from-color":[{"mask-linear-from":O()}],"mask-image-linear-to-color":[{"mask-linear-to":O()}],"mask-image-t-from-pos":[{"mask-t-from":ue()}],"mask-image-t-to-pos":[{"mask-t-to":ue()}],"mask-image-t-from-color":[{"mask-t-from":O()}],"mask-image-t-to-color":[{"mask-t-to":O()}],"mask-image-r-from-pos":[{"mask-r-from":ue()}],"mask-image-r-to-pos":[{"mask-r-to":ue()}],"mask-image-r-from-color":[{"mask-r-from":O()}],"mask-image-r-to-color":[{"mask-r-to":O()}],"mask-image-b-from-pos":[{"mask-b-from":ue()}],"mask-image-b-to-pos":[{"mask-b-to":ue()}],"mask-image-b-from-color":[{"mask-b-from":O()}],"mask-image-b-to-color":[{"mask-b-to":O()}],"mask-image-l-from-pos":[{"mask-l-from":ue()}],"mask-image-l-to-pos":[{"mask-l-to":ue()}],"mask-image-l-from-color":[{"mask-l-from":O()}],"mask-image-l-to-color":[{"mask-l-to":O()}],"mask-image-x-from-pos":[{"mask-x-from":ue()}],"mask-image-x-to-pos":[{"mask-x-to":ue()}],"mask-image-x-from-color":[{"mask-x-from":O()}],"mask-image-x-to-color":[{"mask-x-to":O()}],"mask-image-y-from-pos":[{"mask-y-from":ue()}],"mask-image-y-to-pos":[{"mask-y-to":ue()}],"mask-image-y-from-color":[{"mask-y-from":O()}],"mask-image-y-to-color":[{"mask-y-to":O()}],"mask-image-radial":[{"mask-radial":[X,Y]}],"mask-image-radial-from-pos":[{"mask-radial-from":ue()}],"mask-image-radial-to-pos":[{"mask-radial-to":ue()}],"mask-image-radial-from-color":[{"mask-radial-from":O()}],"mask-image-radial-to-color":[{"mask-radial-to":O()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":G()}],"mask-image-conic-pos":[{"mask-conic":[de]}],"mask-image-conic-from-pos":[{"mask-conic-from":ue()}],"mask-image-conic-to-pos":[{"mask-conic-to":ue()}],"mask-image-conic-from-color":[{"mask-conic-from":O()}],"mask-image-conic-to-color":[{"mask-conic-to":O()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ee()}],"mask-repeat":[{mask:W()}],"mask-size":[{mask:C()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",X,Y]}],filter:[{filter:["","none",X,Y]}],blur:[{blur:ge()}],brightness:[{brightness:[de,X,Y]}],contrast:[{contrast:[de,X,Y]}],"drop-shadow":[{"drop-shadow":["","none",z,Ml,Ll]}],"drop-shadow-color":[{"drop-shadow":O()}],grayscale:[{grayscale:["",de,X,Y]}],"hue-rotate":[{"hue-rotate":[de,X,Y]}],invert:[{invert:["",de,X,Y]}],saturate:[{saturate:[de,X,Y]}],sepia:[{sepia:["",de,X,Y]}],"backdrop-filter":[{"backdrop-filter":["","none",X,Y]}],"backdrop-blur":[{"backdrop-blur":ge()}],"backdrop-brightness":[{"backdrop-brightness":[de,X,Y]}],"backdrop-contrast":[{"backdrop-contrast":[de,X,Y]}],"backdrop-grayscale":[{"backdrop-grayscale":["",de,X,Y]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[de,X,Y]}],"backdrop-invert":[{"backdrop-invert":["",de,X,Y]}],"backdrop-opacity":[{"backdrop-opacity":[de,X,Y]}],"backdrop-saturate":[{"backdrop-saturate":[de,X,Y]}],"backdrop-sepia":[{"backdrop-sepia":["",de,X,Y]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":$()}],"border-spacing-x":[{"border-spacing-x":$()}],"border-spacing-y":[{"border-spacing-y":$()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",X,Y]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[de,"initial",X,Y]}],ease:[{ease:["linear","initial",U,X,Y]}],delay:[{delay:[de,X,Y]}],animate:[{animate:["none",V,X,Y]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[T,X,Y]}],"perspective-origin":[{"perspective-origin":ie()}],rotate:[{rotate:xe()}],"rotate-x":[{"rotate-x":xe()}],"rotate-y":[{"rotate-y":xe()}],"rotate-z":[{"rotate-z":xe()}],scale:[{scale:We()}],"scale-x":[{"scale-x":We()}],"scale-y":[{"scale-y":We()}],"scale-z":[{"scale-z":We()}],"scale-3d":["scale-3d"],skew:[{skew:Kt()}],"skew-x":[{"skew-x":Kt()}],"skew-y":[{"skew-y":Kt()}],transform:[{transform:[X,Y,"","none","gpu","cpu"]}],"transform-origin":[{origin:ie()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:wn()}],"translate-x":[{"translate-x":wn()}],"translate-y":[{"translate-y":wn()}],"translate-z":[{"translate-z":wn()}],"translate-none":["translate-none"],accent:[{accent:O()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:O()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",X,Y]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":$()}],"scroll-mx":[{"scroll-mx":$()}],"scroll-my":[{"scroll-my":$()}],"scroll-ms":[{"scroll-ms":$()}],"scroll-me":[{"scroll-me":$()}],"scroll-mt":[{"scroll-mt":$()}],"scroll-mr":[{"scroll-mr":$()}],"scroll-mb":[{"scroll-mb":$()}],"scroll-ml":[{"scroll-ml":$()}],"scroll-p":[{"scroll-p":$()}],"scroll-px":[{"scroll-px":$()}],"scroll-py":[{"scroll-py":$()}],"scroll-ps":[{"scroll-ps":$()}],"scroll-pe":[{"scroll-pe":$()}],"scroll-pt":[{"scroll-pt":$()}],"scroll-pr":[{"scroll-pr":$()}],"scroll-pb":[{"scroll-pb":$()}],"scroll-pl":[{"scroll-pl":$()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",X,Y]}],fill:[{fill:["none",...O()]}],"stroke-w":[{stroke:[de,co,Mn,Xs]}],stroke:[{stroke:["none",...O()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},Jy=Oy(Xy);function ze(...o){return Jy(vf(o))}const Zy=fy,np=p.forwardRef(({className:o,...s},i)=>p.createElement(Uf,{ref:i,className:ze("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",o),...s}));np.displayName=Uf.displayName;const qy=ha("group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full data-[state=closed]:slide-out-to-right-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),rp=p.forwardRef(({className:o,variant:s,...i},u)=>p.createElement($f,{ref:u,className:ze(qy({variant:s}),o),...i}));rp.displayName=$f.displayName;const e0=p.forwardRef(({className:o,...s},i)=>p.createElement(Wf,{ref:i,className:ze("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus-visible:ring-destructive",o),...s}));e0.displayName=Wf.displayName;const op=p.forwardRef(({className:o,...s},i)=>p.createElement(Hf,{ref:i,className:ze("absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus-visible:ring-red-400 group-[.destructive]:focus-visible:ring-offset-red-600",o),"toast-close":"",...s},p.createElement(Eg,{className:"h-4 w-4"})));op.displayName=Hf.displayName;const lp=p.forwardRef(({className:o,...s},i)=>p.createElement(Vf,{ref:i,className:ze("text-sm font-semibold",o),...s}));lp.displayName=Vf.displayName;const ip=p.forwardRef(({className:o,...s},i)=>p.createElement(Bf,{ref:i,className:ze("text-sm opacity-90",o),...s}));ip.displayName=Bf.displayName;function t0(){const{toasts:o}=Er();return m.createElement(Zy,null,o.map(({id:s,title:i,description:u,action:c,...f})=>m.createElement(rp,{key:s,...f},m.createElement("div",{className:"grid gap-1"},i&&m.createElement(lp,null,i),u&&m.createElement(ip,null,u)),c,m.createElement(op,null))),m.createElement(np,null))}const n0=ha("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),Qe=p.forwardRef(({className:o,variant:s,size:i,asChild:u=!1,...c},f)=>{const h=u?Cg:"button";return p.createElement(h,{className:ze(n0({variant:s,size:i,className:o})),ref:f,...c})});Qe.displayName="Button";function kr(){const{user:o,logout:s}=wr(),i=Bn(),u=()=>{s(),i("/")};return m.createElement("header",{className:"border-b bg-white"},m.createElement("div",{className:"container mx-auto px-4 py-4 flex justify-between items-center"},m.createElement(Dn,{to:"/",className:"text-2xl font-bold text-primary"},"성향 테스트"),m.createElement("div",{className:"flex items-center gap-4"},o?m.createElement(m.Fragment,null,m.createElement("span",{className:"text-sm text-muted-foreground"},"안녕하세요, ",o.name,"님"),m.createElement(Dn,{to:"/mypage"},m.createElement(Qe,{variant:"outline",size:"sm"},"마이페이지")),m.createElement(Qe,{variant:"outline",size:"sm",onClick:u},"로그아웃")):m.createElement(m.Fragment,null,m.createElement(Dn,{to:"/login"},m.createElement(Qe,{variant:"outline",size:"sm"},"로그인")),m.createElement(Dn,{to:"/register"},m.createElement(Qe,{size:"sm"},"회원가입"))))))}function r0(){return m.createElement("div",{className:"min-h-screen bg-gradient-to-br from-blue-50 to-indigo-100"},m.createElement(kr,null),m.createElement("main",{className:"container mx-auto px-4 py-16"},m.createElement("div",{className:"text-center max-w-4xl mx-auto"},m.createElement("h1",{className:"text-5xl font-bold text-gray-900 mb-6"},"나만의 성향을 발견하세요"),m.createElement("p",{className:"text-xl text-gray-600 mb-8 leading-relaxed"},"간단한 테스트를 통해 당신의 성향을 알아보고,",m.createElement("br",null),"맞춤형 영화, 책, 음악을 추천받아보세요."),m.createElement("div",{className:"bg-white rounded-lg shadow-lg p-8 mb-12"},m.createElement("h2",{className:"text-2xl font-semibold mb-4"},"테스트 소개"),m.createElement("div",{className:"grid md:grid-cols-3 gap-6 text-left"},m.createElement("div",{className:"flex flex-col items-center"},m.createElement("div",{className:"w-16 h-16 bg-blue-100 rounded-full flex items-center justify-center mb-4"},m.createElement("span",{className:"text-2xl"},"📝")),m.createElement("h3",{className:"font-semibold mb-2"},"간단한 설문"),m.createElement("p",{className:"text-sm text-gray-600"},"20개의 질문으로 구성된 간단한 성향 테스트")),m.createElement("div",{className:"flex flex-col items-center"},m.createElement("div",{className:"w-16 h-16 bg-green-100 rounded-full flex items-center justify-center mb-4"},m.createElement("span",{className:"text-2xl"},"🎯")),m.createElement("h3",{className:"font-semibold mb-2"},"정확한 분석"),m.createElement("p",{className:"text-sm text-gray-600"},"과학적 근거를 바탕으로 한 성향 분석")),m.createElement("div",{className:"flex flex-col items-center"},m.createElement("div",{className:"w-16 h-16 bg-purple-100 rounded-full flex items-center justify-center mb-4"},m.createElement("span",{className:"text-2xl"},"🎁")),m.createElement("h3",{className:"font-semibold mb-2"},"맞춤 추천"),m.createElement("p",{className:"text-sm text-gray-600"},"당신의 성향에 맞는 컨텐츠 추천"))))),m.createElement("div",{className:"text-center"},m.createElement(Dn,{to:"/test"},m.createElement(Qe,{size:"lg",className:"px-12 py-4 text-lg"},"테스트하러가기")))))}const Bt=p.forwardRef(({className:o,...s},i)=>p.createElement("div",{ref:i,className:ze("rounded-xl border bg-card text-card-foreground shadow",o),...s}));Bt.displayName="Card";const Wt=p.forwardRef(({className:o,...s},i)=>p.createElement("div",{ref:i,className:ze("flex flex-col space-y-1.5 p-6",o),...s}));Wt.displayName="CardHeader";const Ht=p.forwardRef(({className:o,...s},i)=>p.createElement("h3",{ref:i,className:ze("font-semibold leading-none tracking-tight",o),...s}));Ht.displayName="CardTitle";const o0=p.forwardRef(({className:o,...s},i)=>p.createElement("p",{ref:i,className:ze("text-sm text-muted-foreground",o),...s}));o0.displayName="CardDescription";const Gt=p.forwardRef(({className:o,...s},i)=>p.createElement("div",{ref:i,className:ze("p-6 pt-0",o),...s}));Gt.displayName="CardContent";const l0=p.forwardRef(({className:o,...s},i)=>p.createElement("div",{ref:i,className:ze("flex items-center p-6 pt-0",o),...s}));l0.displayName="CardFooter";var i0=da[" useId ".trim().toString()]||(()=>{}),s0=0;function sp(o){const[s,i]=p.useState(i0());return Un(()=>{i(u=>u??String(s0++))},[o]),s?`radix-${s}`:""}var a0=p.createContext(void 0);function xa(o){const s=p.useContext(a0);return o||s||"ltr"}var Js="rovingFocusGroup.onEntryFocus",u0={bubbles:!1,cancelable:!0},yo="RovingFocusGroup",[aa,ap,c0]=Ef(yo),[d0,Wl]=Wn(yo,[c0]),[f0,p0]=d0(yo),up=p.forwardRef((o,s)=>B.jsx(aa.Provider,{scope:o.__scopeRovingFocusGroup,children:B.jsx(aa.Slot,{scope:o.__scopeRovingFocusGroup,children:B.jsx(m0,{...o,ref:s})})}));up.displayName=yo;var m0=p.forwardRef((o,s)=>{const{__scopeRovingFocusGroup:i,orientation:u,loop:c=!1,dir:f,currentTabStopId:h,defaultCurrentTabStopId:w,onCurrentTabStopIdChange:g,onEntryFocus:y,preventScrollOnEntryFocus:k=!1,...x}=o,I=p.useRef(null),z=Tt(s,I),b=xa(f),[T,N]=Vl({prop:h,defaultProp:w??null,onChange:g,caller:yo}),[U,V]=p.useState(!1),j=yn(y),G=ap(i),ie=p.useRef(!1),[se,oe]=p.useState(0);return p.useEffect(()=>{const $=I.current;if($)return $.addEventListener(Js,j),()=>$.removeEventListener(Js,j)},[j]),B.jsx(f0,{scope:i,orientation:u,dir:b,loop:c,currentTabStopId:T,onItemFocus:p.useCallback($=>N($),[N]),onItemShiftTab:p.useCallback(()=>V(!0),[]),onFocusableItemAdd:p.useCallback(()=>oe($=>$+1),[]),onFocusableItemRemove:p.useCallback(()=>oe($=>$-1),[]),children:B.jsx(_e.div,{tabIndex:U||se===0?-1:0,"data-orientation":u,...x,ref:z,style:{outline:"none",...o.style},onMouseDown:Pe(o.onMouseDown,()=>{ie.current=!0}),onFocus:Pe(o.onFocus,$=>{const we=!ie.current;if($.target===$.currentTarget&&we&&!U){const Te=new CustomEvent(Js,u0);if($.currentTarget.dispatchEvent(Te),!Te.defaultPrevented){const Le=G().filter(ce=>ce.focusable),Me=Le.find(ce=>ce.active),De=Le.find(ce=>ce.id===T),Ee=[Me,De,...Le].filter(Boolean).map(ce=>ce.ref.current);fp(Ee,k)}}ie.current=!1}),onBlur:Pe(o.onBlur,()=>V(!1))})})}),cp="RovingFocusGroupItem",dp=p.forwardRef((o,s)=>{const{__scopeRovingFocusGroup:i,focusable:u=!0,active:c=!1,tabStopId:f,children:h,...w}=o,g=sp(),y=f||g,k=p0(cp,i),x=k.currentTabStopId===y,I=ap(i),{onFocusableItemAdd:z,onFocusableItemRemove:b,currentTabStopId:T}=k;return p.useEffect(()=>{if(u)return z(),()=>b()},[u,z,b]),B.jsx(aa.ItemSlot,{scope:i,id:y,focusable:u,active:c,children:B.jsx(_e.span,{tabIndex:x?0:-1,"data-orientation":k.orientation,...w,ref:s,onMouseDown:Pe(o.onMouseDown,N=>{u?k.onItemFocus(y):N.preventDefault()}),onFocus:Pe(o.onFocus,()=>k.onItemFocus(y)),onKeyDown:Pe(o.onKeyDown,N=>{if(N.key==="Tab"&&N.shiftKey){k.onItemShiftTab();return}if(N.target!==N.currentTarget)return;const U=g0(N,k.orientation,k.dir);if(U!==void 0){if(N.metaKey||N.ctrlKey||N.altKey||N.shiftKey)return;N.preventDefault();let j=I().filter(G=>G.focusable).map(G=>G.ref.current);if(U==="last")j.reverse();else if(U==="prev"||U==="next"){U==="prev"&&j.reverse();const G=j.indexOf(N.currentTarget);j=k.loop?y0(j,G+1):j.slice(G+1)}setTimeout(()=>fp(j))}}),children:typeof h=="function"?h({isCurrentTabStop:x,hasTabStop:T!=null}):h})})});dp.displayName=cp;var h0={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function v0(o,s){return s!=="rtl"?o:o==="ArrowLeft"?"ArrowRight":o==="ArrowRight"?"ArrowLeft":o}function g0(o,s,i){const u=v0(o.key,i);if(!(s==="vertical"&&["ArrowLeft","ArrowRight"].includes(u))&&!(s==="horizontal"&&["ArrowUp","ArrowDown"].includes(u)))return h0[u]}function fp(o,s=!1){const i=document.activeElement;for(const u of o)if(u===i||(u.focus({preventScroll:s}),document.activeElement!==i))return}function y0(o,s){return o.map((i,u)=>o[(s+u)%o.length])}var pp=up,mp=dp;function w0(o){const[s,i]=p.useState(void 0);return Un(()=>{if(o){i({width:o.offsetWidth,height:o.offsetHeight});const u=new ResizeObserver(c=>{if(!Array.isArray(c)||!c.length)return;const f=c[0];let h,w;if("borderBoxSize"in f){const g=f.borderBoxSize,y=Array.isArray(g)?g[0]:g;h=y.inlineSize,w=y.blockSize}else h=o.offsetWidth,w=o.offsetHeight;i({width:h,height:w})});return u.observe(o,{box:"border-box"}),()=>u.unobserve(o)}else i(void 0)},[o]),s}function E0(o){const s=p.useRef({value:o,previous:o});return p.useMemo(()=>(s.current.value!==o&&(s.current.previous=s.current.value,s.current.value=o),s.current.previous),[o])}var Sa="Radio",[x0,hp]=Wn(Sa),[S0,k0]=x0(Sa),vp=p.forwardRef((o,s)=>{const{__scopeRadio:i,name:u,checked:c=!1,required:f,disabled:h,value:w="on",onCheck:g,form:y,...k}=o,[x,I]=p.useState(null),z=Tt(s,N=>I(N)),b=p.useRef(!1),T=x?y||!!x.closest("form"):!0;return B.jsxs(S0,{scope:i,checked:c,disabled:h,children:[B.jsx(_e.button,{type:"button",role:"radio","aria-checked":c,"data-state":Ep(c),"data-disabled":h?"":void 0,disabled:h,value:w,...k,ref:z,onClick:Pe(o.onClick,N=>{c||g?.(),T&&(b.current=N.isPropagationStopped(),b.current||N.stopPropagation())})}),T&&B.jsx(wp,{control:x,bubbles:!b.current,name:u,value:w,checked:c,required:f,disabled:h,form:y,style:{transform:"translateX(-100%)"}})]})});vp.displayName=Sa;var gp="RadioIndicator",yp=p.forwardRef((o,s)=>{const{__scopeRadio:i,forceMount:u,...c}=o,f=k0(gp,i);return B.jsx($l,{present:u||f.checked,children:B.jsx(_e.span,{"data-state":Ep(f.checked),"data-disabled":f.disabled?"":void 0,...c,ref:s})})});yp.displayName=gp;var C0="RadioBubbleInput",wp=p.forwardRef(({__scopeRadio:o,control:s,checked:i,bubbles:u=!0,...c},f)=>{const h=p.useRef(null),w=Tt(h,f),g=E0(i),y=w0(s);return p.useEffect(()=>{const k=h.current;if(!k)return;const x=window.HTMLInputElement.prototype,z=Object.getOwnPropertyDescriptor(x,"checked").set;if(g!==i&&z){const b=new Event("click",{bubbles:u});z.call(k,i),k.dispatchEvent(b)}},[g,i,u]),B.jsx(_e.input,{type:"radio","aria-hidden":!0,defaultChecked:i,...c,tabIndex:-1,ref:w,style:{...c.style,...y,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});wp.displayName=C0;function Ep(o){return o?"checked":"unchecked"}var N0=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],Hl="RadioGroup",[P0,q0]=Wn(Hl,[Wl,hp]),xp=Wl(),Sp=hp(),[T0,R0]=P0(Hl),kp=p.forwardRef((o,s)=>{const{__scopeRadioGroup:i,name:u,defaultValue:c,value:f,required:h=!1,disabled:w=!1,orientation:g,dir:y,loop:k=!0,onValueChange:x,...I}=o,z=xp(i),b=xa(y),[T,N]=Vl({prop:f,defaultProp:c??null,onChange:x,caller:Hl});return B.jsx(T0,{scope:i,name:u,required:h,disabled:w,value:T,onValueChange:N,children:B.jsx(pp,{asChild:!0,...z,orientation:g,dir:b,loop:k,children:B.jsx(_e.div,{role:"radiogroup","aria-required":h,"aria-orientation":g,"data-disabled":w?"":void 0,dir:b,...I,ref:s})})})});kp.displayName=Hl;var Cp="RadioGroupItem",Np=p.forwardRef((o,s)=>{const{__scopeRadioGroup:i,disabled:u,...c}=o,f=R0(Cp,i),h=f.disabled||u,w=xp(i),g=Sp(i),y=p.useRef(null),k=Tt(s,y),x=f.value===c.value,I=p.useRef(!1);return p.useEffect(()=>{const z=T=>{N0.includes(T.key)&&(I.current=!0)},b=()=>I.current=!1;return document.addEventListener("keydown",z),document.addEventListener("keyup",b),()=>{document.removeEventListener("keydown",z),document.removeEventListener("keyup",b)}},[]),B.jsx(mp,{asChild:!0,...w,focusable:!h,active:x,children:B.jsx(vp,{disabled:h,required:f.required,checked:x,...g,...c,name:f.name,ref:k,onCheck:()=>f.onValueChange(c.value),onKeyDown:Pe(z=>{z.key==="Enter"&&z.preventDefault()}),onFocus:Pe(c.onFocus,()=>{I.current&&y.current?.click()})})})});Np.displayName=Cp;var _0="RadioGroupIndicator",Pp=p.forwardRef((o,s)=>{const{__scopeRadioGroup:i,...u}=o,c=Sp(i);return B.jsx(yp,{...c,...u,ref:s})});Pp.displayName=_0;var Tp=kp,Rp=Np,I0=Pp;const _p=p.forwardRef(({className:o,...s},i)=>p.createElement(Tp,{className:ze("grid gap-2",o),...s,ref:i}));_p.displayName=Tp.displayName;const gr=p.forwardRef(({className:o,...s},i)=>p.createElement(Rp,{ref:i,className:ze("aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",o),...s},p.createElement(I0,{className:"flex items-center justify-center"},p.createElement(yg,{className:"h-2.5 w-2.5 fill-current text-current"}))));gr.displayName=Rp.displayName;var O0="Label",Ip=p.forwardRef((o,s)=>B.jsx(_e.label,{...o,ref:s,onMouseDown:i=>{i.target.closest("button, input, select, textarea")||(o.onMouseDown?.(i),!i.defaultPrevented&&i.detail>1&&i.preventDefault())}}));Ip.displayName=O0;var Op=Ip;const L0=ha("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),wt=p.forwardRef(({className:o,...s},i)=>p.createElement(Op,{ref:i,className:ze(L0(),o),...s}));wt.displayName=Op.displayName;var ka="Progress",Ca=100,[M0,ew]=Wn(ka),[A0,z0]=M0(ka),Lp=p.forwardRef((o,s)=>{const{__scopeProgress:i,value:u=null,max:c,getValueLabel:f=D0,...h}=o;(c||c===0)&&!Jd(c)&&console.error(b0(`${c}`,"Progress"));const w=Jd(c)?c:Ca;u!==null&&!Zd(u,w)&&console.error(F0(`${u}`,"Progress"));const g=Zd(u,w)?u:null,y=Fl(g)?f(g,w):void 0;return B.jsx(A0,{scope:i,value:g,max:w,children:B.jsx(_e.div,{"aria-valuemax":w,"aria-valuemin":0,"aria-valuenow":Fl(g)?g:void 0,"aria-valuetext":y,role:"progressbar","data-state":zp(g,w),"data-value":g??void 0,"data-max":w,...h,ref:s})})});Lp.displayName=ka;var Mp="ProgressIndicator",Ap=p.forwardRef((o,s)=>{const{__scopeProgress:i,...u}=o,c=z0(Mp,i);return B.jsx(_e.div,{"data-state":zp(c.value,c.max),"data-value":c.value??void 0,"data-max":c.max,...u,ref:s})});Ap.displayName=Mp;function D0(o,s){return`${Math.round(o/s*100)}%`}function zp(o,s){return o==null?"indeterminate":o===s?"complete":"loading"}function Fl(o){return typeof o=="number"}function Jd(o){return Fl(o)&&!isNaN(o)&&o>0}function Zd(o,s){return Fl(o)&&!isNaN(o)&&o<=s&&o>=0}function b0(o,s){return`Invalid prop \`max\` of value \`${o}\` supplied to \`${s}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${Ca}\`.`}function F0(o,s){return`Invalid prop \`value\` of value \`${o}\` supplied to \`${s}\`. The \`value\` prop must be: - - a positive number - - less than the value passed to \`max\` (or ${Ca} if no \`max\` prop is set) - - \`null\` or \`undefined\` if the progress is indeterminate. - -Defaulting to \`null\`.`}var Dp=Lp,j0=Ap;const bp=p.forwardRef(({className:o,value:s,...i},u)=>p.createElement(Dp,{ref:u,className:ze("relative h-4 w-full overflow-hidden rounded-full bg-secondary",o),...i},p.createElement(j0,{className:"h-full w-full flex-1 bg-primary transition-all",style:{transform:`translateX(-${100-(s||0)}%)`}})));bp.displayName=Dp.displayName;const An=["나는 새로운 사람들과 만나는 것을 좋아한다","나는 계획을 세우고 그대로 실행하는 것을 선호한다","나는 감정보다는 논리적으로 판단하는 편이다","나는 마감일이 다가와야 일을 시작하는 편이다","나는 파티나 모임에서 에너지를 얻는다","나는 세부사항보다는 큰 그림을 보는 것을 좋아한다","나는 다른 사람의 감정을 잘 이해한다","나는 즉흥적인 결정을 내리는 것을 좋아한다","나는 혼자 있는 시간이 필요하다","나는 실용적이고 현실적인 해결책을 선호한다","나는 갈등 상황을 피하려고 한다","나는 여러 가지 일을 동시에 처리하는 것을 좋아한다","나는 사교적이고 외향적이다","나는 미래의 가능성에 대해 생각하는 것을 좋아한다","나는 객관적이고 분석적으로 사고한다","나는 구조화되고 조직적인 환경을 선호한다","나는 팀워크보다는 개인 작업을 선호한다","나는 전통적인 방법보다는 새로운 방법을 시도한다","나는 결정을 내릴 때 다른 사람의 의견을 고려한다","나는 융통성 있고 적응력이 좋다"];function U0(){const{user:o,isLoading:s}=wr(),i=Bn(),[u,c]=p.useState({}),[f,h]=p.useState(0),[w,g]=p.useState(!1),{toast:y}=Er();if(p.useEffect(()=>{!s&&!o&&i("/login")},[o,s,i]),s)return m.createElement("div",{className:"flex justify-center items-center min-h-screen"},"로딩 중...");if(!o)return null;const k=(U,V)=>{c(j=>({...j,[U]:Number.parseInt(V)}))},x=()=>{fU+1)},I=()=>{f>0&&h(U=>U-1)},z=async()=>{g(!0);try{const V=Object.values(u).reduce((ie,se)=>ie+se,0)/An.length;let j="";V>=4?j="외향적 리더형":V>=3?j="균형잡힌 분석형":j="신중한 사색형";const G={personality:j,score:V,answers:u,completedAt:new Date().toISOString()};await ho.saveTestResult(G),i("/result"),y({title:"테스트 완료",description:"결과를 확인해보세요!"})}catch(U){console.error("Test submission failed:",U),y({title:"오류",description:"테스트 결과 저장 중 오류가 발생했습니다.",variant:"destructive"})}finally{g(!1)}},b=(f+1)/An.length*100,T=u[f]!==void 0,N=An.every((U,V)=>u[V]!==void 0);return m.createElement("div",{className:"min-h-screen bg-gray-50"},m.createElement(kr,null),m.createElement("main",{className:"container mx-auto px-4 py-8"},m.createElement("div",{className:"max-w-2xl mx-auto"},m.createElement("div",{className:"mb-8"},m.createElement("div",{className:"flex justify-between items-center mb-4"},m.createElement("h1",{className:"text-2xl font-bold"},"성향 테스트"),m.createElement("span",{className:"text-sm text-muted-foreground"},f+1," / ",An.length)),m.createElement(bp,{value:b,className:"w-full"})),m.createElement(Bt,null,m.createElement(Wt,null,m.createElement(Ht,{className:"text-lg"},An[f])),m.createElement(Gt,null,m.createElement(_p,{value:u[f]?.toString()||"",onValueChange:U=>k(f,U)},m.createElement("div",{className:"flex items-center space-x-2"},m.createElement(gr,{value:"5",id:"5"}),m.createElement(wt,{htmlFor:"5"},"매우 그렇다 (5점)")),m.createElement("div",{className:"flex items-center space-x-2"},m.createElement(gr,{value:"4",id:"4"}),m.createElement(wt,{htmlFor:"4"},"그렇다 (4점)")),m.createElement("div",{className:"flex items-center space-x-2"},m.createElement(gr,{value:"3",id:"3"}),m.createElement(wt,{htmlFor:"3"},"보통이다 (3점)")),m.createElement("div",{className:"flex items-center space-x-2"},m.createElement(gr,{value:"2",id:"2"}),m.createElement(wt,{htmlFor:"2"},"아니다 (2점)")),m.createElement("div",{className:"flex items-center space-x-2"},m.createElement(gr,{value:"1",id:"1"}),m.createElement(wt,{htmlFor:"1"},"매우 아니다 (1점)"))))),m.createElement("div",{className:"flex justify-between mt-8"},m.createElement(Qe,{variant:"outline",onClick:I,disabled:f===0},"이전"),f===An.length-1?m.createElement(Qe,{onClick:z,disabled:!N||w},w?"결과 저장 중...":"결과 확인하기"):m.createElement(Qe,{onClick:x,disabled:!T},"다음")))))}var Gl="Tabs",[$0,tw]=Wn(Gl,[Wl]),Fp=Wl(),[V0,Na]=$0(Gl),jp=p.forwardRef((o,s)=>{const{__scopeTabs:i,value:u,onValueChange:c,defaultValue:f,orientation:h="horizontal",dir:w,activationMode:g="automatic",...y}=o,k=xa(w),[x,I]=Vl({prop:u,onChange:c,defaultProp:f??"",caller:Gl});return B.jsx(V0,{scope:i,baseId:sp(),value:x,onValueChange:I,orientation:h,dir:k,activationMode:g,children:B.jsx(_e.div,{dir:k,"data-orientation":h,...y,ref:s})})});jp.displayName=Gl;var Up="TabsList",$p=p.forwardRef((o,s)=>{const{__scopeTabs:i,loop:u=!0,...c}=o,f=Na(Up,i),h=Fp(i);return B.jsx(pp,{asChild:!0,...h,orientation:f.orientation,dir:f.dir,loop:u,children:B.jsx(_e.div,{role:"tablist","aria-orientation":f.orientation,...c,ref:s})})});$p.displayName=Up;var Vp="TabsTrigger",Bp=p.forwardRef((o,s)=>{const{__scopeTabs:i,value:u,disabled:c=!1,...f}=o,h=Na(Vp,i),w=Fp(i),g=Gp(h.baseId,u),y=Kp(h.baseId,u),k=u===h.value;return B.jsx(mp,{asChild:!0,...w,focusable:!c,active:k,children:B.jsx(_e.button,{type:"button",role:"tab","aria-selected":k,"aria-controls":y,"data-state":k?"active":"inactive","data-disabled":c?"":void 0,disabled:c,id:g,...f,ref:s,onMouseDown:Pe(o.onMouseDown,x=>{!c&&x.button===0&&x.ctrlKey===!1?h.onValueChange(u):x.preventDefault()}),onKeyDown:Pe(o.onKeyDown,x=>{[" ","Enter"].includes(x.key)&&h.onValueChange(u)}),onFocus:Pe(o.onFocus,()=>{const x=h.activationMode!=="manual";!k&&!c&&x&&h.onValueChange(u)})})})});Bp.displayName=Vp;var Wp="TabsContent",Hp=p.forwardRef((o,s)=>{const{__scopeTabs:i,value:u,forceMount:c,children:f,...h}=o,w=Na(Wp,i),g=Gp(w.baseId,u),y=Kp(w.baseId,u),k=u===w.value,x=p.useRef(k);return p.useEffect(()=>{const I=requestAnimationFrame(()=>x.current=!1);return()=>cancelAnimationFrame(I)},[]),B.jsx($l,{present:c||k,children:({present:I})=>B.jsx(_e.div,{"data-state":k?"active":"inactive","data-orientation":w.orientation,role:"tabpanel","aria-labelledby":g,hidden:!I,id:y,tabIndex:0,...h,ref:s,style:{...o.style,animationDuration:x.current?"0s":void 0},children:I&&f})})});Hp.displayName=Wp;function Gp(o,s){return`${o}-trigger-${s}`}function Kp(o,s){return`${o}-content-${s}`}var B0=jp,Qp=$p,Yp=Bp,Xp=Hp;const Jp=B0,Pa=p.forwardRef(({className:o,...s},i)=>p.createElement(Qp,{ref:i,className:ze("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",o),...s}));Pa.displayName=Qp.displayName;const Fn=p.forwardRef(({className:o,...s},i)=>p.createElement(Yp,{ref:i,className:ze("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",o),...s}));Fn.displayName=Yp.displayName;const jn=p.forwardRef(({className:o,...s},i)=>p.createElement(Xp,{ref:i,className:ze("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",o),...s}));jn.displayName=Xp.displayName;function W0(){const{user:o,isLoading:s}=wr(),i=Bn(),[u,c]=p.useState(null),[f,h]=p.useState(null),[w,g]=p.useState(!0),{toast:y}=Er();p.useEffect(()=>{if(!s&&!o){i("/login");return}o&&k()},[o,s,i]);const k=async()=>{try{const x=await ho.getTestHistory();if(x.length===0){i("/test");return}const I=x[0];c(I);const z=await ho.getRecommendations(I.personality);h(z)}catch(x){console.error("Failed to fetch test result:",x),y({title:"오류",description:"테스트 결과를 불러오는 중 오류가 발생했습니다.",variant:"destructive"}),i("/test")}finally{g(!1)}};return s||w?m.createElement("div",{className:"flex justify-center items-center min-h-screen"},"로딩 중..."):!o||!u||!f?null:m.createElement("div",{className:"min-h-screen bg-gray-50"},m.createElement(kr,null),m.createElement("main",{className:"container mx-auto px-4 py-8"},m.createElement("div",{className:"max-w-4xl mx-auto"},m.createElement("div",{className:"h-96 mb-8"},m.createElement(Bt,{className:"bg-gradient-to-r from-blue-500 to-purple-600 text-white h-full"},m.createElement(Wt,{className:"text-center"},m.createElement(Ht,{className:"text-3xl mb-4"},"테스트 결과"),m.createElement("div",{className:"text-6xl mb-4"},"🎯"),m.createElement("h2",{className:"text-4xl font-bold mb-4"},u.personality),m.createElement("p",{className:"text-xl opacity-90"},"평균 점수: ",u.score.toFixed(1),"점")),m.createElement(Gt,{className:"text-center"},m.createElement("p",{className:"text-lg opacity-90 mb-6"},u.personality==="외향적 리더형"&&"당신은 사교적이고 리더십이 뛰어난 성향입니다. 새로운 도전을 즐기고 팀을 이끄는 것을 좋아합니다.",u.personality==="균형잡힌 분석형"&&"당신은 논리적이면서도 감정적 균형을 잘 맞추는 성향입니다. 신중하게 판단하고 합리적인 결정을 내립니다.",u.personality==="신중한 사색형"&&"당신은 깊이 있게 생각하고 신중한 성향입니다. 혼자만의 시간을 소중히 여기고 내면의 성찰을 중요하게 생각합니다.")))),m.createElement(Bt,null,m.createElement(Wt,null,m.createElement(Ht,{className:"text-2xl text-center"},"맞춤 추천 컨텐츠")),m.createElement(Gt,null,m.createElement(Jp,{defaultValue:"movies",className:"w-full"},m.createElement(Pa,{className:"grid w-full grid-cols-3"},m.createElement(Fn,{value:"movies"},"🎬 영화"),m.createElement(Fn,{value:"books"},"📚 책"),m.createElement(Fn,{value:"music"},"🎵 음악")),m.createElement(jn,{value:"movies",className:"mt-6"},m.createElement("div",{className:"grid gap-4"},f.movies?.map((x,I)=>m.createElement("div",{key:I,className:"p-4 bg-gray-100 rounded-lg"},m.createElement("h3",{className:"font-semibold"},x.title),x.description&&m.createElement("p",{className:"text-sm text-gray-600 mt-1"},x.description))))),m.createElement(jn,{value:"books",className:"mt-6"},m.createElement("div",{className:"grid gap-4"},f.books?.map((x,I)=>m.createElement("div",{key:I,className:"p-4 bg-gray-100 rounded-lg"},m.createElement("h3",{className:"font-semibold"},x.title),x.author&&m.createElement("p",{className:"text-sm text-gray-600 mt-1"},"저자: ",x.author),x.description&&m.createElement("p",{className:"text-sm text-gray-600 mt-1"},x.description))))),m.createElement(jn,{value:"music",className:"mt-6"},m.createElement("div",{className:"grid gap-4"},f.music?.map((x,I)=>m.createElement("div",{key:I,className:"p-4 bg-gray-100 rounded-lg"},m.createElement("h3",{className:"font-semibold"},x.name),x.genre&&m.createElement("p",{className:"text-sm text-gray-600 mt-1"},"장르: ",x.genre),x.description&&m.createElement("p",{className:"text-sm text-gray-600 mt-1"},x.description)))))))),m.createElement("div",{className:"text-center mt-8"},m.createElement(Qe,{onClick:()=>i("/test"),className:"mr-4"},"다시 테스트하기"),m.createElement(Qe,{variant:"outline",onClick:()=>i("/")},"홈으로 돌아가기")))))}function H0(){const{user:o,isLoading:s}=wr(),i=Bn(),[u,c]=p.useState([]),[f,h]=p.useState(null),[w,g]=p.useState(null),[y,k]=p.useState(!0),{toast:x}=Er();p.useEffect(()=>{if(!s&&!o){i("/login");return}o&&I()},[o,s,i]);const I=async()=>{try{const T=await ho.getTestHistory();c(T)}catch(T){console.error("Failed to fetch test history:",T),x({title:"오류",description:"테스트 히스토리를 불러오는 중 오류가 발생했습니다.",variant:"destructive"})}finally{k(!1)}},z=async T=>{try{h(T);const N=await ho.getRecommendations(T.personality);g(N)}catch(N){console.error("Failed to fetch recommendations:",N),x({title:"오류",description:"추천 컨텐츠를 불러오는 중 오류가 발생했습니다.",variant:"destructive"})}};if(s||y)return m.createElement("div",{className:"flex justify-center items-center min-h-screen"},"로딩 중...");if(!o)return null;const b=T=>new Date(T).toLocaleString("ko-KR",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"});return m.createElement("div",{className:"min-h-screen bg-gray-50"},m.createElement(kr,null),m.createElement("main",{className:"container mx-auto px-4 py-8"},m.createElement("div",{className:"max-w-4xl mx-auto"},m.createElement("h1",{className:"text-3xl font-bold mb-8"},"마이페이지"),m.createElement(Bt,{className:"mb-8"},m.createElement(Wt,null,m.createElement(Ht,null,"내 정보")),m.createElement(Gt,null,m.createElement("div",{className:"grid md:grid-cols-2 gap-6"},m.createElement("div",null,m.createElement("h3",{className:"font-semibold text-gray-700 mb-2"},"이름"),m.createElement("p",{className:"text-lg"},o.name)),m.createElement("div",null,m.createElement("h3",{className:"font-semibold text-gray-700 mb-2"},"내 성향"),m.createElement("p",{className:"text-lg"},u.length>0?u[0].personality:"테스트를 완료해주세요"))))),m.createElement(Bt,null,m.createElement(Wt,null,m.createElement(Ht,null,"추천받은 컨텐츠 히스토리")),m.createElement(Gt,null,u.length===0?m.createElement("div",{className:"text-center py-8"},m.createElement("p",{className:"text-gray-500 mb-4"},"아직 테스트를 완료하지 않았습니다."),m.createElement(Qe,{onClick:()=>i("/test")},"테스트하러 가기")," "):m.createElement("div",{className:"space-y-4"},u.map((T,N)=>m.createElement("div",{key:N,className:"p-4 border rounded-lg cursor-pointer hover:bg-gray-50 transition-colors",onClick:()=>z(T)},m.createElement("div",{className:"flex justify-between items-center"},m.createElement("div",null,m.createElement("p",{className:"font-semibold"},T.personality),m.createElement("p",{className:"text-sm text-gray-500"},b(T.completedAt)),m.createElement("p",{className:"text-sm text-gray-600"},"점수: ",T.score.toFixed(1),"점")),m.createElement(Qe,{variant:"outline",size:"sm"},"상세보기"))))))),f&&w&&m.createElement(Bt,{className:"mt-8"},m.createElement(Wt,null,m.createElement(Ht,null,f.personality," - ",b(f.completedAt))),m.createElement(Gt,null,m.createElement(Jp,{defaultValue:"movies",className:"w-full"},m.createElement(Pa,{className:"grid w-full grid-cols-3"},m.createElement(Fn,{value:"movies"},"🎬 영화"),m.createElement(Fn,{value:"books"},"📚 책"),m.createElement(Fn,{value:"music"},"🎵 음악")),m.createElement(jn,{value:"movies",className:"mt-6"},m.createElement("div",{className:"grid gap-3"},w.movies?.map((T,N)=>m.createElement("div",{key:N,className:"p-3 bg-gray-100 rounded"},m.createElement("h4",{className:"font-semibold"},T.title),T.description&&m.createElement("p",{className:"text-sm text-gray-600 mt-1"},T.description))))),m.createElement(jn,{value:"books",className:"mt-6"},m.createElement("div",{className:"grid gap-3"},w.books?.map((T,N)=>m.createElement("div",{key:N,className:"p-3 bg-gray-100 rounded"},m.createElement("h4",{className:"font-semibold"},T.title),T.author&&m.createElement("p",{className:"text-sm text-gray-600 mt-1"},"저자: ",T.author),T.description&&m.createElement("p",{className:"text-sm text-gray-600 mt-1"},T.description))))),m.createElement(jn,{value:"music",className:"mt-6"},m.createElement("div",{className:"grid gap-3"},w.music?.map((T,N)=>m.createElement("div",{key:N,className:"p-3 bg-gray-100 rounded"},m.createElement("h4",{className:"font-semibold"},T.name),T.genre&&m.createElement("p",{className:"text-sm text-gray-600 mt-1"},"장르: ",T.genre),T.description&&m.createElement("p",{className:"text-sm text-gray-600 mt-1"},T.description)))))),m.createElement("div",{className:"mt-6"},m.createElement(Qe,{variant:"outline",onClick:()=>h(null)},"닫기")))))))}const bn=p.forwardRef(({className:o,type:s,...i},u)=>p.createElement("input",{type:s,className:ze("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",o),ref:u,...i}));bn.displayName="Input";var G0="Separator",qd="horizontal",K0=["horizontal","vertical"],Zp=p.forwardRef((o,s)=>{const{decorative:i,orientation:u=qd,...c}=o,f=Q0(u)?u:qd,w=i?{role:"none"}:{"aria-orientation":f==="vertical"?f:void 0,role:"separator"};return B.jsx(_e.div,{"data-orientation":f,...w,...c,ref:s})});Zp.displayName=G0;function Q0(o){return K0.includes(o)}var qp=Zp;const Ta=p.forwardRef(({className:o,orientation:s="horizontal",decorative:i=!0,...u},c)=>p.createElement(qp,{ref:c,decorative:i,orientation:s,className:ze("shrink-0 bg-border",s==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",o),...u}));Ta.displayName=qp.displayName;function Y0(){const[o,s]=p.useState(""),[i,u]=p.useState(""),[c,f]=p.useState(!1),{login:h}=wr(),w=Bn(),{toast:g}=Er(),y=async x=>{x.preventDefault(),f(!0);try{await h(o,i)?(g({title:"로그인 성공",description:"환영합니다!"}),w("/")):g({title:"로그인 실패",description:"이메일 또는 비밀번호를 확인해주세요.",variant:"destructive"})}catch{g({title:"오류",description:"로그인 중 오류가 발생했습니다.",variant:"destructive"})}finally{f(!1)}},k=()=>{window.location.href="http://localhost:8080/api/auth/google"};return m.createElement("div",{className:"min-h-screen bg-gray-50"},m.createElement(kr,null),m.createElement("main",{className:"container mx-auto px-4 py-16"},m.createElement("div",{className:"max-w-md mx-auto"},m.createElement(Bt,null,m.createElement(Wt,{className:"text-center"},m.createElement(Ht,{className:"text-2xl"},"로그인"),m.createElement("p",{className:"text-muted-foreground"},"계정에 로그인하여 성향 테스트를 시작하세요")),m.createElement(Gt,{className:"space-y-6"},m.createElement("form",{onSubmit:y,className:"space-y-4"},m.createElement("div",{className:"space-y-2"},m.createElement(wt,{htmlFor:"email"},"이메일"),m.createElement(bn,{id:"email",type:"email",placeholder:"example@email.com",value:o,onChange:x=>s(x.target.value),required:!0})),m.createElement("div",{className:"space-y-2"},m.createElement(wt,{htmlFor:"password"},"비밀번호"),m.createElement(bn,{id:"password",type:"password",placeholder:"비밀번호를 입력하세요",value:i,onChange:x=>u(x.target.value),required:!0})),m.createElement(Qe,{type:"submit",className:"w-full",disabled:c},c?"로그인 중...":"로그인")),m.createElement(Ta,null),m.createElement(Qe,{variant:"outline",className:"w-full bg-transparent",onClick:k},m.createElement("svg",{className:"w-5 h-5 mr-2",viewBox:"0 0 24 24"},m.createElement("path",{fill:"currentColor",d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"}),m.createElement("path",{fill:"currentColor",d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"}),m.createElement("path",{fill:"currentColor",d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"}),m.createElement("path",{fill:"currentColor",d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"})),"구글로 로그인"),m.createElement("div",{className:"text-center"},m.createElement("p",{className:"text-sm text-muted-foreground"},"계정이 없으신가요?"," ",m.createElement(Dn,{to:"/register",className:"text-primary hover:underline"},"회원가입"))),m.createElement("div",{className:"text-center text-sm bg-blue-50 p-4 rounded-lg"},m.createElement("p",{className:"font-semibold text-blue-800 mb-2"},"🧪 테스트 계정"),m.createElement("div",{className:"space-y-1 text-blue-700"},m.createElement("p",null,m.createElement("strong",null,"계정 1:")," test@example.com / password123"),m.createElement("p",null,m.createElement("strong",null,"계정 2:")," dev@example.com / dev123")),m.createElement("p",{className:"text-xs text-blue-600 mt-2"},"* 백엔드 서버가 없어도 테스트 가능합니다")))))))}function X0(){const[o,s]=p.useState(""),[i,u]=p.useState(""),[c,f]=p.useState(""),[h,w]=p.useState(""),[g,y]=p.useState(!1),{register:k}=wr(),x=Bn(),{toast:I}=Er(),z=async T=>{if(T.preventDefault(),c!==h){I({title:"비밀번호 불일치",description:"비밀번호가 일치하지 않습니다.",variant:"destructive"});return}if(c.length<6){I({title:"비밀번호 오류",description:"비밀번호는 6자 이상이어야 합니다.",variant:"destructive"});return}y(!0);try{await k(o,i,c)?(I({title:"회원가입 성공",description:"환영합니다! 로그인되었습니다."}),x("/")):I({title:"회원가입 실패",description:"회원가입 중 오류가 발생했습니다.",variant:"destructive"})}catch{I({title:"오류",description:"회원가입 중 오류가 발생했습니다.",variant:"destructive"})}finally{y(!1)}},b=()=>{window.location.href="http://localhost:8080/api/auth/google"};return m.createElement("div",{className:"min-h-screen bg-gray-50"},m.createElement(kr,null),m.createElement("main",{className:"container mx-auto px-4 py-16"},m.createElement("div",{className:"max-w-md mx-auto"},m.createElement(Bt,null,m.createElement(Wt,{className:"text-center"},m.createElement(Ht,{className:"text-2xl"},"회원가입"),m.createElement("p",{className:"text-muted-foreground"},"새 계정을 만들어 성향 테스트를 시작하세요")),m.createElement(Gt,{className:"space-y-6"},m.createElement("form",{onSubmit:z,className:"space-y-4"},m.createElement("div",{className:"space-y-2"},m.createElement(wt,{htmlFor:"name"},"이름"),m.createElement(bn,{id:"name",type:"text",placeholder:"홍길동",value:o,onChange:T=>s(T.target.value),required:!0})),m.createElement("div",{className:"space-y-2"},m.createElement(wt,{htmlFor:"email"},"이메일"),m.createElement(bn,{id:"email",type:"email",placeholder:"example@email.com",value:i,onChange:T=>u(T.target.value),required:!0})),m.createElement("div",{className:"space-y-2"},m.createElement(wt,{htmlFor:"password"},"비밀번호"),m.createElement(bn,{id:"password",type:"password",placeholder:"비밀번호를 입력하세요 (6자 이상)",value:c,onChange:T=>f(T.target.value),required:!0,minLength:6})),m.createElement("div",{className:"space-y-2"},m.createElement(wt,{htmlFor:"confirmPassword"},"비밀번호 확인"),m.createElement(bn,{id:"confirmPassword",type:"password",placeholder:"비밀번호를 다시 입력하세요",value:h,onChange:T=>w(T.target.value),required:!0})),m.createElement(Qe,{type:"submit",className:"w-full",disabled:g},g?"회원가입 중...":"회원가입")),m.createElement(Ta,null),m.createElement(Qe,{variant:"outline",className:"w-full bg-transparent",onClick:b},m.createElement("svg",{className:"w-5 h-5 mr-2",viewBox:"0 0 24 24"},m.createElement("path",{fill:"currentColor",d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"}),m.createElement("path",{fill:"currentColor",d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"}),m.createElement("path",{fill:"currentColor",d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"}),m.createElement("path",{fill:"currentColor",d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"})),"구글로 회원가입"),m.createElement("div",{className:"text-center"},m.createElement("p",{className:"text-sm text-muted-foreground"},"이미 계정이 있으신가요?"," ",m.createElement(Dn,{to:"/login",className:"text-primary hover:underline"},"로그인"))))))))}function J0(){return m.createElement(ng,null,m.createElement(dg,null,m.createElement(Yv,null,m.createElement(zn,{path:"/",element:m.createElement(r0,null)}),m.createElement(zn,{path:"/test",element:m.createElement(U0,null)}),m.createElement(zn,{path:"/result",element:m.createElement(W0,null)}),m.createElement(zn,{path:"/mypage",element:m.createElement(H0,null)}),m.createElement(zn,{path:"/login",element:m.createElement(Y0,null)}),m.createElement(zn,{path:"/register",element:m.createElement(X0,null)})),m.createElement(t0,null)))}rv.createRoot(document.getElementById("root")).render(m.createElement(m.StrictMode,null,m.createElement(J0,null))); -//# sourceMappingURL=index-C2MZhA2F.js.map diff --git a/dist/assets/index-C2MZhA2F.js.map b/dist/assets/index-C2MZhA2F.js.map deleted file mode 100644 index d80f9af..0000000 --- a/dist/assets/index-C2MZhA2F.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index-C2MZhA2F.js","sources":["../../node_modules/react/cjs/react.production.min.js","../../node_modules/react/index.js","../../node_modules/scheduler/cjs/scheduler.production.min.js","../../node_modules/scheduler/index.js","../../node_modules/react-dom/cjs/react-dom.production.min.js","../../node_modules/react-dom/index.js","../../node_modules/react-dom/client.js","../../node_modules/@remix-run/router/dist/router.js","../../node_modules/react-router/dist/index.js","../../node_modules/react-router-dom/dist/index.js","../../src/lib/mock-data.js","../../src/lib/api.js","../../src/lib/cookie-utils.js","../../src/components/auth-provider.jsx","../../node_modules/clsx/dist/clsx.mjs","../../node_modules/class-variance-authority/dist/index.mjs","../../node_modules/lucide-react/dist/esm/shared/src/utils.js","../../node_modules/lucide-react/dist/esm/defaultAttributes.js","../../node_modules/lucide-react/dist/esm/Icon.js","../../node_modules/lucide-react/dist/esm/createLucideIcon.js","../../node_modules/lucide-react/dist/esm/icons/circle.js","../../node_modules/lucide-react/dist/esm/icons/x.js","../../node_modules/@radix-ui/primitive/dist/index.mjs","../../node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../node_modules/react/jsx-runtime.js","../../node_modules/@radix-ui/react-context/dist/index.mjs","../../node_modules/@radix-ui/react-slot/dist/index.mjs","../../node_modules/@radix-ui/react-collection/dist/index.mjs","../../node_modules/@radix-ui/react-primitive/dist/index.mjs","../../node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../../node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs","../../node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs","../../node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../../node_modules/@radix-ui/react-portal/dist/index.mjs","../../node_modules/@radix-ui/react-presence/dist/index.mjs","../../node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../../node_modules/@radix-ui/react-visually-hidden/dist/index.mjs","../../node_modules/@radix-ui/react-toast/dist/index.mjs","../../src/hooks/use-toast.js","../../node_modules/tailwind-merge/dist/bundle-mjs.mjs","../../src/lib/utils.js","../../src/components/ui/toast.jsx","../../src/components/ui/toaster.jsx","../../src/components/ui/button.jsx","../../src/components/header.jsx","../../src/pages/HomePage.jsx","../../src/components/ui/card.jsx","../../node_modules/@radix-ui/react-id/dist/index.mjs","../../node_modules/@radix-ui/react-direction/dist/index.mjs","../../node_modules/@radix-ui/react-roving-focus/dist/index.mjs","../../node_modules/@radix-ui/react-use-size/dist/index.mjs","../../node_modules/@radix-ui/react-use-previous/dist/index.mjs","../../node_modules/@radix-ui/react-radio-group/dist/index.mjs","../../src/components/ui/radio-group.jsx","../../node_modules/@radix-ui/react-label/dist/index.mjs","../../src/components/ui/label.jsx","../../node_modules/@radix-ui/react-progress/dist/index.mjs","../../src/components/ui/progress.jsx","../../src/pages/TestPage.jsx","../../node_modules/@radix-ui/react-tabs/dist/index.mjs","../../src/components/ui/tabs.jsx","../../src/pages/ResultPage.jsx","../../src/pages/MyPage.jsx","../../src/components/ui/input.jsx","../../node_modules/@radix-ui/react-separator/dist/index.mjs","../../src/components/ui/separator.jsx","../../src/pages/LoginPage.jsx","../../src/pages/RegisterPage.jsx","../../src/App.jsx","../../src/main.jsx"],"sourcesContent":["/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3 createMemoryLocation(entry, typeof entry === \"string\" ? null : entry.state, index === 0 ? \"default\" : undefined));\n let index = clampIndex(initialIndex == null ? entries.length - 1 : initialIndex);\n let action = Action.Pop;\n let listener = null;\n function clampIndex(n) {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation() {\n return entries[index];\n }\n function createMemoryLocation(to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = createLocation(entries ? getCurrentLocation().pathname : \"/\", to, state, key);\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in memory history: \" + JSON.stringify(to));\n return location;\n }\n function createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n let history = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\"\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 1\n });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 0\n });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: nextLocation,\n delta\n });\n }\n },\n listen(fn) {\n listener = fn;\n return () => {\n listener = null;\n };\n }\n };\n return history;\n}\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createBrowserLocation(window, globalHistory) {\n let {\n pathname,\n search,\n hash\n } = window.location;\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createBrowserHref(window, to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n return getUrlBasedHistory(createBrowserLocation, createBrowserHref, null, options);\n}\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createHashLocation(window, globalHistory) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = parsePath(window.location.hash.substr(1));\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createHashHref(window, to) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n function validateHashLocation(location, to) {\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\");\n }\n return getUrlBasedHistory(createHashLocation, createHashHref, validateHashLocation, options);\n}\nfunction invariant(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location, index) {\n return {\n usr: location.state,\n key: location.key,\n idx: index\n };\n}\n/**\n * Creates a Location object with a unique key from the given Path\n */\nfunction createLocation(current, to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = _extends({\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\"\n }, typeof to === \"string\" ? parsePath(to) : to, {\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: to && to.key || key || createKey()\n });\n return location;\n}\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nfunction createPath(_ref) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = _ref;\n if (search && search !== \"?\") pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\") pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nfunction parsePath(path) {\n let parsedPath = {};\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n if (path) {\n parsedPath.pathname = path;\n }\n }\n return parsedPath;\n}\nfunction getUrlBasedHistory(getLocation, createHref, validateLocation, options) {\n if (options === void 0) {\n options = {};\n }\n let {\n window = document.defaultView,\n v5Compat = false\n } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener = null;\n let index = getIndex();\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), \"\");\n }\n function getIndex() {\n let state = globalHistory.state || {\n idx: null\n };\n return state.idx;\n }\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: history.location,\n delta\n });\n }\n }\n function push(to, state) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 1\n });\n }\n }\n function replace(to, state) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 0\n });\n }\n }\n function createURL(to) {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base = window.location.origin !== \"null\" ? window.location.origin : window.location.href;\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(base, \"No window.location.(origin|href) available to create URL for href: \" + href);\n return new URL(href, base);\n }\n let history = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n }\n };\n return history;\n}\n//#endregion\n\nvar ResultType;\n(function (ResultType) {\n ResultType[\"data\"] = \"data\";\n ResultType[\"deferred\"] = \"deferred\";\n ResultType[\"redirect\"] = \"redirect\";\n ResultType[\"error\"] = \"error\";\n})(ResultType || (ResultType = {}));\nconst immutableRouteKeys = new Set([\"lazy\", \"caseSensitive\", \"path\", \"id\", \"index\", \"children\"]);\nfunction isIndexRoute(route) {\n return route.index === true;\n}\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nfunction convertRoutesToDataRoutes(routes, mapRouteProperties, parentPath, manifest) {\n if (parentPath === void 0) {\n parentPath = [];\n }\n if (manifest === void 0) {\n manifest = {};\n }\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(route.index !== true || !route.children, \"Cannot specify children on an index route\");\n invariant(!manifest[id], \"Found a route id collision on id \\\"\" + id + \"\\\". Route \" + \"id's must be globally unique within Data Router usages\");\n if (isIndexRoute(route)) {\n let indexRoute = _extends({}, route, mapRouteProperties(route), {\n id\n });\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute = _extends({}, route, mapRouteProperties(route), {\n id,\n children: undefined\n });\n manifest[id] = pathOrLayoutRoute;\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(route.children, mapRouteProperties, treePath, manifest);\n }\n return pathOrLayoutRoute;\n }\n });\n}\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/v6/utils/match-routes\n */\nfunction matchRoutes(routes, locationArg, basename) {\n if (basename === void 0) {\n basename = \"/\";\n }\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\nfunction matchRoutesImpl(routes, locationArg, basename, allowPartial) {\n let location = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n let pathname = stripBasename(location.pathname || \"/\", basename);\n if (pathname == null) {\n return null;\n }\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded, allowPartial);\n }\n return matches;\n}\nfunction convertRouteMatchToUiMatch(match, loaderData) {\n let {\n route,\n pathname,\n params\n } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle\n };\n}\nfunction flattenRoutes(routes, branches, parentsMeta, parentPath) {\n if (branches === void 0) {\n branches = [];\n }\n if (parentsMeta === void 0) {\n parentsMeta = [];\n }\n if (parentPath === void 0) {\n parentPath = \"\";\n }\n let flattenRoute = (route, index, relativePath) => {\n let meta = {\n relativePath: relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route\n };\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(meta.relativePath.startsWith(parentPath), \"Absolute route path \\\"\" + meta.relativePath + \"\\\" nested under path \" + (\"\\\"\" + parentPath + \"\\\" is not valid. An absolute child route path \") + \"must start with the combined path of all its parent routes.\");\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true, \"Index routes must not have child routes. Please remove \" + (\"all child routes from route path \\\"\" + path + \"\\\".\"));\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta\n });\n };\n routes.forEach((route, index) => {\n var _route$path;\n // coarse-grain check for optional params\n if (route.path === \"\" || !((_route$path = route.path) != null && _route$path.includes(\"?\"))) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n return branches;\n}\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path) {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n let [first, ...rest] = segments;\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n let result = [];\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(...restExploded.map(subpath => subpath === \"\" ? required : [required, subpath].join(\"/\")));\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n // for absolute paths, ensure `/` instead of empty segment\n return result.map(exploded => path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded);\n}\nfunction rankRouteBranches(branches) {\n branches.sort((a, b) => a.score !== b.score ? b.score - a.score // Higher score first\n : compareIndexes(a.routesMeta.map(meta => meta.childrenIndex), b.routesMeta.map(meta => meta.childrenIndex)));\n}\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = s => s === \"*\";\nfunction computeScore(path, index) {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n if (index) {\n initialScore += indexRouteValue;\n }\n return segments.filter(s => !isSplat(s)).reduce((score, segment) => score + (paramRe.test(segment) ? dynamicSegmentValue : segment === \"\" ? emptySegmentValue : staticSegmentValue), initialScore);\n}\nfunction compareIndexes(a, b) {\n let siblings = a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n return siblings ?\n // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1] :\n // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\nfunction matchRouteBranch(branch, pathname, allowPartial) {\n if (allowPartial === void 0) {\n allowPartial = false;\n }\n let {\n routesMeta\n } = branch;\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname = matchedPathname === \"/\" ? pathname : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end\n }, remainingPathname);\n let route = meta.route;\n if (!match && end && allowPartial && !routesMeta[routesMeta.length - 1].route.index) {\n match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false\n }, remainingPathname);\n }\n if (!match) {\n return null;\n }\n Object.assign(matchedParams, match.params);\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(joinPaths([matchedPathname, match.pathnameBase])),\n route\n });\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n return matches;\n}\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/v6/utils/generate-path\n */\nfunction generatePath(originalPath, params) {\n if (params === void 0) {\n params = {};\n }\n let path = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(false, \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n path = path.replace(/\\*$/, \"/*\");\n }\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n const stringify = p => p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n const segments = path.split(/\\/+/).map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\";\n // Apply the splat\n return stringify(params[star]);\n }\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key];\n invariant(optional === \"?\" || param != null, \"Missing \\\":\" + key + \"\\\" param\");\n return stringify(param);\n }\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter(segment => !!segment);\n return prefix + segments.join(\"/\");\n}\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/v6/utils/match-path\n */\nfunction matchPath(pattern, pathname) {\n if (typeof pattern === \"string\") {\n pattern = {\n path: pattern,\n caseSensitive: false,\n end: true\n };\n }\n let [matcher, compiledParams] = compilePath(pattern.path, pattern.caseSensitive, pattern.end);\n let match = pathname.match(matcher);\n if (!match) return null;\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params = compiledParams.reduce((memo, _ref, index) => {\n let {\n paramName,\n isOptional\n } = _ref;\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\\/+$/, \"$1\");\n }\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n }, {});\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\nfunction compilePath(path, caseSensitive, end) {\n if (caseSensitive === void 0) {\n caseSensitive = false;\n }\n if (end === void 0) {\n end = true;\n }\n warning(path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"), \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n let params = [];\n let regexpSource = \"^\" + path.replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:([\\w-]+)(\\?)?/g, (_, paramName, isOptional) => {\n params.push({\n paramName,\n isOptional: isOptional != null\n });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n });\n if (path.endsWith(\"*\")) {\n params.push({\n paramName: \"*\"\n });\n regexpSource += path === \"*\" || path === \"/*\" ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else ;\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n return [matcher, params];\n}\nfunction decodePath(value) {\n try {\n return value.split(\"/\").map(v => decodeURIComponent(v).replace(/\\//g, \"%2F\")).join(\"/\");\n } catch (error) {\n warning(false, \"The URL path \\\"\" + value + \"\\\" could not be decoded because it is is a \" + \"malformed URL segment. This is probably due to a bad percent \" + (\"encoding (\" + error + \").\"));\n return value;\n }\n}\n/**\n * @private\n */\nfunction stripBasename(pathname, basename) {\n if (basename === \"/\") return pathname;\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\") ? basename.length - 1 : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n return pathname.slice(startIndex) || \"/\";\n}\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/v6/utils/resolve-path\n */\nfunction resolvePath(to, fromPathname) {\n if (fromPathname === void 0) {\n fromPathname = \"/\";\n }\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n let pathname = toPathname ? toPathname.startsWith(\"/\") ? toPathname : resolvePathname(toPathname, fromPathname) : fromPathname;\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\nfunction resolvePathname(relativePath, fromPathname) {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n relativeSegments.forEach(segment => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\nfunction getInvalidPathError(char, field, dest, path) {\n return \"Cannot include a '\" + char + \"' character in a manually specified \" + (\"`to.\" + field + \"` field [\" + JSON.stringify(path) + \"]. Please separate it out to the \") + (\"`to.\" + dest + \"` field. Alternatively you may provide the full path as \") + \"a string in and the router will parse it for you.\";\n}\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nfunction getPathContributingMatches(matches) {\n return matches.filter((match, index) => index === 0 || match.route.path && match.route.path.length > 0);\n}\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nfunction getResolveToMatches(matches, v7_relativeSplatPath) {\n let pathMatches = getPathContributingMatches(matches);\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) => idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase);\n }\n return pathMatches.map(match => match.pathnameBase);\n}\n/**\n * @private\n */\nfunction resolveTo(toArg, routePathnames, locationPathname, isPathRelative) {\n if (isPathRelative === void 0) {\n isPathRelative = false;\n }\n let to;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = _extends({}, toArg);\n invariant(!to.pathname || !to.pathname.includes(\"?\"), getInvalidPathError(\"?\", \"pathname\", \"search\", to));\n invariant(!to.pathname || !to.pathname.includes(\"#\"), getInvalidPathError(\"#\", \"pathname\", \"hash\", to));\n invariant(!to.search || !to.search.includes(\"#\"), getInvalidPathError(\"#\", \"search\", \"hash\", to));\n }\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n let from;\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how
    works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n to.pathname = toSegments.join(\"/\");\n }\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n let path = resolvePath(to, from);\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash = toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash = (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (!path.pathname.endsWith(\"/\") && (hasExplicitTrailingSlash || hasCurrentTrailingSlash)) {\n path.pathname += \"/\";\n }\n return path;\n}\n/**\n * @private\n */\nfunction getToPathname(to) {\n // Empty strings should be treated the same as / paths\n return to === \"\" || to.pathname === \"\" ? \"/\" : typeof to === \"string\" ? parsePath(to).pathname : to.pathname;\n}\n/**\n * @private\n */\nconst joinPaths = paths => paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n/**\n * @private\n */\nconst normalizePathname = pathname => pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n/**\n * @private\n */\nconst normalizeSearch = search => !search || search === \"?\" ? \"\" : search.startsWith(\"?\") ? search : \"?\" + search;\n/**\n * @private\n */\nconst normalizeHash = hash => !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n *\n * @deprecated The `json` method is deprecated in favor of returning raw objects.\n * This method will be removed in v7.\n */\nconst json = function json(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n return new Response(JSON.stringify(data), _extends({}, responseInit, {\n headers\n }));\n};\nclass DataWithResponseInit {\n constructor(data, init) {\n this.type = \"DataWithResponseInit\";\n this.data = data;\n this.init = init || null;\n }\n}\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nfunction data(data, init) {\n return new DataWithResponseInit(data, typeof init === \"number\" ? {\n status: init\n } : init);\n}\nclass AbortedDeferredError extends Error {}\nclass DeferredData {\n constructor(data, responseInit) {\n this.pendingKeysSet = new Set();\n this.subscribers = new Set();\n this.deferredKeys = [];\n invariant(data && typeof data === \"object\" && !Array.isArray(data), \"defer() only accepts plain objects\");\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject;\n this.abortPromise = new Promise((_, r) => reject = r);\n this.controller = new AbortController();\n let onAbort = () => reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () => this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n this.data = Object.entries(data).reduce((acc, _ref2) => {\n let [key, value] = _ref2;\n return Object.assign(acc, {\n [key]: this.trackPromise(key, value)\n });\n }, {});\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n this.init = responseInit;\n }\n trackPromise(key, value) {\n if (!(value instanceof Promise)) {\n return value;\n }\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise = Promise.race([value, this.abortPromise]).then(data => this.onSettle(promise, key, undefined, data), error => this.onSettle(promise, key, error));\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n return promise;\n }\n onSettle(promise, key, error, data) {\n if (this.controller.signal.aborted && error instanceof AbortedDeferredError) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n return Promise.reject(error);\n }\n this.pendingKeysSet.delete(key);\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\"Deferred data for key \\\"\" + key + \"\\\" resolved/rejected with `undefined`, \" + \"you must resolve/reject with a value or `null`.\");\n Object.defineProperty(promise, \"_error\", {\n get: () => undefinedError\n });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n this.emit(false, key);\n return Promise.reject(error);\n }\n Object.defineProperty(promise, \"_data\", {\n get: () => data\n });\n this.emit(false, key);\n return data;\n }\n emit(aborted, settledKey) {\n this.subscribers.forEach(subscriber => subscriber(aborted, settledKey));\n }\n subscribe(fn) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n async resolveData(signal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise(resolve => {\n this.subscribe(aborted => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n get unwrappedData() {\n invariant(this.data !== null && this.done, \"Can only unwrap data on initialized and settled deferreds\");\n return Object.entries(this.data).reduce((acc, _ref3) => {\n let [key, value] = _ref3;\n return Object.assign(acc, {\n [key]: unwrapTrackedPromise(value)\n });\n }, {});\n }\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\nfunction isTrackedPromise(value) {\n return value instanceof Promise && value._tracked === true;\n}\nfunction unwrapTrackedPromise(value) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n/**\n * @deprecated The `defer` method is deprecated in favor of returning raw\n * objects. This method will be removed in v7.\n */\nconst defer = function defer(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n return new DeferredData(data, responseInit);\n};\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirect = function redirect(url, init) {\n if (init === void 0) {\n init = 302;\n }\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = {\n status: responseInit\n };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n return new Response(null, _extends({}, responseInit, {\n headers\n }));\n};\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirectDocument = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst replace = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nclass ErrorResponseImpl {\n constructor(status, statusText, data, internal) {\n if (internal === void 0) {\n internal = false;\n }\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nfunction isRouteErrorResponse(error) {\n return error != null && typeof error.status === \"number\" && typeof error.statusText === \"string\" && typeof error.internal === \"boolean\" && \"data\" in error;\n}\n\nconst validMutationMethodsArr = [\"post\", \"put\", \"patch\", \"delete\"];\nconst validMutationMethods = new Set(validMutationMethodsArr);\nconst validRequestMethodsArr = [\"get\", ...validMutationMethodsArr];\nconst validRequestMethods = new Set(validRequestMethodsArr);\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\nconst IDLE_NAVIGATION = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_FETCHER = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_BLOCKER = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined\n};\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nconst defaultMapRouteProperties = route => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary)\n});\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Create a router and listen to history POP navigations\n */\nfunction createRouter(init) {\n const routerWindow = init.window ? init.window : typeof window !== \"undefined\" ? window : undefined;\n const isBrowser = typeof routerWindow !== \"undefined\" && typeof routerWindow.document !== \"undefined\" && typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n invariant(init.routes.length > 0, \"You must provide a non-empty routes array to createRouter\");\n let mapRouteProperties;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Routes keyed by ID\n let manifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(init.routes, mapRouteProperties, undefined, manifest);\n let inFlightDataRoutes;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.patchRoutesOnNavigation;\n // Config driven behavior flags\n let future = _extends({\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false\n }, init.future);\n // Cleanup function for history\n let unlistenHistory = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialMatchesIsFOW = false;\n let initialErrors = null;\n if (initialMatches == null && !patchRoutesOnNavigationImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname\n });\n let {\n matches,\n route\n } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = {\n [route.id]: error\n };\n }\n // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(initialMatches, dataRoutes, init.history.location.pathname);\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n let initialized;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(null, dataRoutes, init.history.location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatchesIsFOW = true;\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some(m => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some(m => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(m => errors[m.route.id] !== undefined);\n initialized = initialMatches.slice(0, idx + 1).every(m => !shouldLoadRouteOnHydration(m.route, loaderData, errors));\n } else {\n initialized = initialMatches.every(m => !shouldLoadRouteOnHydration(m.route, loaderData, errors));\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n let router;\n let state = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: init.hydrationData && init.hydrationData.loaderData || {},\n actionData: init.hydrationData && init.hydrationData.actionData || null,\n errors: init.hydrationData && init.hydrationData.errors || initialErrors,\n fetchers: new Map(),\n blockers: new Map()\n };\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction = Action.Pop;\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n // AbortController for the active navigation\n let pendingNavigationController;\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions = new Map();\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener = null;\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes = [];\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads = new Set();\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let unblockBlockerHistoryUpdate = undefined;\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(_ref => {\n let {\n action: historyAction,\n location,\n delta\n } = _ref;\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (unblockBlockerHistoryUpdate) {\n unblockBlockerHistoryUpdate();\n unblockBlockerHistoryUpdate = undefined;\n return;\n }\n warning(blockerFunctions.size === 0 || delta != null, \"You are trying to use a blocker on a POP navigation to a location \" + \"that was not created by @remix-run/router. This will fail silently in \" + \"production. This can happen if you are navigating outside the router \" + \"via `window.history.pushState`/`window.location.hash` instead of using \" + \"router navigation APIs. This can also happen if you are using \" + \"createHashRouter and the user manually changes the URL.\");\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction\n });\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n let nextHistoryUpdatePromise = new Promise(resolve => {\n unblockBlockerHistoryUpdate = resolve;\n });\n init.history.go(delta * -1);\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location\n });\n // Re-do the same POP navigation we just blocked, after the url\n // restoration is also complete. See:\n // https://github.com/remix-run/react-router/issues/11613\n nextHistoryUpdatePromise.then(() => init.history.go(delta));\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return startNavigation(historyAction, location);\n });\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () => persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () => routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(Action.Pop, state.location, {\n initialHydration: true\n });\n }\n return router;\n }\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n // Subscribe to state updates for the router\n function subscribe(fn) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n // Update our state and notify the calling context of the change\n function updateState(newState, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state = _extends({}, state, newState);\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers = [];\n let deletedFetchersKeys = [];\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n // Remove any lingering deleted fetchers that have already been removed\n // from state.fetchers\n deletedFetchers.forEach(key => {\n if (!state.fetchers.has(key) && !fetchControllers.has(key)) {\n deletedFetchersKeys.push(key);\n }\n });\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach(subscriber => subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n viewTransitionOpts: opts.viewTransitionOpts,\n flushSync: opts.flushSync === true\n }));\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach(key => state.fetchers.delete(key));\n deletedFetchersKeys.forEach(key => deleteFetcher(key));\n } else {\n // We already called deleteFetcher() on these, can remove them from this\n // Set now that we've handed the keys off to the data layer\n deletedFetchersKeys.forEach(key => deletedFetchers.delete(key));\n }\n }\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(location, newState, _temp) {\n var _location$state, _location$state2;\n let {\n flushSync\n } = _temp === void 0 ? {} : _temp;\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload = state.actionData != null && state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && state.navigation.state === \"loading\" && ((_location$state = location.state) == null ? void 0 : _location$state._isRedirect) !== true;\n let actionData;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData ? mergeLoaderData(state.loaderData, newState.loaderData, newState.matches || [], newState.errors) : state.loaderData;\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset = pendingPreventScrollReset === true || state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && ((_location$state2 = location.state) == null ? void 0 : _location$state2._isRedirect) !== true;\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n if (isUninterruptedRevalidation) ; else if (pendingAction === Action.Pop) ; else if (pendingAction === Action.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === Action.Replace) {\n init.history.replace(location, location.state);\n }\n let viewTransitionOpts;\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === Action.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n }\n updateState(_extends({}, newState, {\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(location, newState.matches || state.matches),\n preventScrollReset,\n blockers\n }), {\n viewTransitionOpts,\n flushSync: flushSync === true\n });\n // Reset stateful navigation vars\n pendingAction = Action.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(to, opts) {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, to, future.v7_relativeSplatPath, opts == null ? void 0 : opts.fromRouteId, opts == null ? void 0 : opts.relative);\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, false, normalizedPath, opts);\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = _extends({}, nextLocation, init.history.encodeLocation(nextLocation));\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n let historyAction = Action.Push;\n if (userReplace === true) {\n historyAction = Action.Replace;\n } else if (userReplace === false) ; else if (submission != null && isMutationMethod(submission.formMethod) && submission.formAction === state.location.pathname + state.location.search) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = Action.Replace;\n }\n let preventScrollReset = opts && \"preventScrollReset\" in opts ? opts.preventScrollReset === true : undefined;\n let flushSync = (opts && opts.flushSync) === true;\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction\n });\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.viewTransition,\n flushSync\n });\n }\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({\n revalidation: \"loading\"\n });\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true\n });\n return;\n }\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(pendingAction || state.historyAction, state.navigation.location, {\n overrideNavigation: state.navigation,\n // Proxy through any rending view transition\n enableViewTransition: pendingViewTransitionEnabled === true\n });\n }\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(historyAction, location, opts) {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation = (opts && opts.startUninterruptedRevalidation) === true;\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = opts != null && opts.initialHydration && state.matches && state.matches.length > 0 && !initialMatchesIsFOW ?\n // `matchRoutes()` has already been called if we're in here via `router.initialize()`\n state.matches : matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial hydration will always\n // be \"same hash\". For example, on /page#hash and submit a
    \n // which will default to a navigation to /page\n if (matches && state.initialized && !isRevalidationRequired && isHashChangeOnly(state.location, location) && !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))) {\n completeNavigation(location, {\n matches\n }, {\n flushSync\n });\n return;\n }\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let {\n error,\n notFoundMatches,\n route\n } = handleNavigational404(location.pathname);\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n }, {\n flushSync\n });\n return;\n }\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(init.history, location, pendingNavigationController.signal, opts && opts.submission);\n let pendingActionResult;\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [findNearestBoundary(matches).route.id, {\n type: ResultType.error,\n error: opts.pendingError\n }];\n } else if (opts && opts.submission && isMutationMethod(opts.submission.formMethod)) {\n // Call action if we received an action submission\n let actionResult = await handleAction(request, location, opts.submission, matches, fogOfWar.active, {\n replace: opts.replace,\n flushSync\n });\n if (actionResult.shortCircuited) {\n return;\n }\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (isErrorResult(result) && isRouteErrorResponse(result.error) && result.error.status === 404) {\n pendingNavigationController = null;\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error\n }\n });\n return;\n }\n }\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n // Create a GET request for the loaders\n request = createClientSideRequest(init.history, request.url, request.signal);\n }\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors\n } = await handleLoaders(request, location, matches, fogOfWar.active, loadingNavigation, opts && opts.submission, opts && opts.fetcherSubmission, opts && opts.replace, opts && opts.initialHydration === true, flushSync, pendingActionResult);\n if (shortCircuited) {\n return;\n }\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n completeNavigation(location, _extends({\n matches: updatedMatches || matches\n }, getActionDataForCommit(pendingActionResult), {\n loaderData,\n errors\n }));\n }\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(request, location, submission, matches, isFogOfWar, opts) {\n if (opts === void 0) {\n opts = {};\n }\n interruptActiveLoads();\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({\n navigation\n }, {\n flushSync: opts.flushSync === true\n });\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(matches, location.pathname, request.signal);\n if (discoverResult.type === \"aborted\") {\n return {\n shortCircuited: true\n };\n } else if (discoverResult.type === \"error\") {\n let boundaryId = findNearestBoundary(discoverResult.partialMatches).route.id;\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [boundaryId, {\n type: ResultType.error,\n error: discoverResult.error\n }]\n };\n } else if (!discoverResult.matches) {\n let {\n notFoundMatches,\n error,\n route\n } = handleNavigational404(location.pathname);\n return {\n matches: notFoundMatches,\n pendingActionResult: [route.id, {\n type: ResultType.error,\n error\n }]\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n // Call our action and get the result\n let result;\n let actionMatch = getTargetMatch(matches, location);\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id\n })\n };\n } else {\n let results = await callDataStrategy(\"action\", state, request, [actionMatch], matches, null);\n result = results[actionMatch.route.id];\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n }\n if (isRedirectResult(result)) {\n let replace;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(result.response.headers.get(\"Location\"), new URL(request.url), basename);\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, true, {\n submission,\n replace\n });\n return {\n shortCircuited: true\n };\n }\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = Action.Push;\n }\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result]\n };\n }\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result]\n };\n }\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(request, location, matches, isFogOfWar, overrideNavigation, submission, fetcherSubmission, replace, initialHydration, flushSync, pendingActionResult) {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation || getLoadingNavigation(location, submission);\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission = submission || fetcherSubmission || getSubmissionFromNavigation(loadingNavigation);\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState = !isUninterruptedRevalidation && (!future.v7_partialHydration || !initialHydration);\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(_extends({\n navigation: loadingNavigation\n }, actionData !== undefined ? {\n actionData\n } : {}), {\n flushSync\n });\n }\n let discoverResult = await discoverRoutes(matches, location.pathname, request.signal);\n if (discoverResult.type === \"aborted\") {\n return {\n shortCircuited: true\n };\n } else if (discoverResult.type === \"error\") {\n let boundaryId = findNearestBoundary(discoverResult.partialMatches).route.id;\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: discoverResult.error\n }\n };\n } else if (!discoverResult.matches) {\n let {\n error,\n notFoundMatches,\n route\n } = handleNavigational404(location.pathname);\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, activeSubmission, location, future.v7_partialHydration && initialHydration === true, future.v7_skipActionErrorRevalidation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionResult);\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(routeId => !(matches && matches.some(m => m.route.id === routeId)) || matchesToLoad && matchesToLoad.some(m => m.route.id === routeId));\n pendingNavigationLoadId = ++incrementingLoadId;\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(location, _extends({\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingActionResult && isErrorResult(pendingActionResult[1]) ? {\n [pendingActionResult[0]]: pendingActionResult[1].error\n } : null\n }, getActionDataForCommit(pendingActionResult), updatedFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {}), {\n flushSync\n });\n return {\n shortCircuited: true\n };\n }\n if (shouldUpdateNavigationState) {\n let updates = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, {\n flushSync\n });\n }\n revalidatingFetchers.forEach(rf => {\n abortFetcher(rf.key);\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(f => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n let {\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state, matches, matchesToLoad, revalidatingFetchers, request);\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n revalidatingFetchers.forEach(rf => fetchControllers.delete(rf.key));\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n await startRedirectNavigation(request, redirect.result, true, {\n replace\n });\n return {\n shortCircuited: true\n };\n }\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n await startRedirectNavigation(request, redirect.result, true, {\n replace\n });\n return {\n shortCircuited: true\n };\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, matches, loaderResults, pendingActionResult, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe(aborted => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n // Preserve SSR errors during partial hydration\n if (future.v7_partialHydration && initialHydration && state.errors) {\n errors = _extends({}, state.errors, errors);\n }\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers = updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n return _extends({\n matches,\n loaderData,\n errors\n }, shouldUpdateFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {});\n }\n function getUpdatedActionData(pendingActionResult) {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n function getUpdatedRevalidatingFetchers(revalidatingFetchers) {\n revalidatingFetchers.forEach(rf => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(undefined, fetcher ? fetcher.data : undefined);\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(key, routeId, href, opts) {\n if (isServer) {\n throw new Error(\"router.fetch() was called during the server render, but it shouldn't be. \" + \"You are likely calling a useFetcher() method in the body of your component. \" + \"Try moving it to a useEffect or a callback.\");\n }\n abortFetcher(key);\n let flushSync = (opts && opts.flushSync) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, href, future.v7_relativeSplatPath, routeId, opts == null ? void 0 : opts.relative);\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n if (!matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: normalizedPath\n }), {\n flushSync\n });\n return;\n }\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, true, normalizedPath, opts);\n if (error) {\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return;\n }\n let match = getTargetMatch(matches, path);\n let preventScrollReset = (opts && opts.preventScrollReset) === true;\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, fogOfWar.active, flushSync, preventScrollReset, submission);\n return;\n }\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, {\n routeId,\n path\n });\n handleFetcherLoader(key, routeId, path, match, matches, fogOfWar.active, flushSync, preventScrollReset, submission);\n }\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(key, routeId, path, match, requestMatches, isFogOfWar, flushSync, preventScrollReset, submission) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n function detectAndHandle405Error(m) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId\n });\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return true;\n }\n return false;\n }\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync\n });\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal, submission);\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(requestMatches, new URL(fetchRequest.url).pathname, fetchRequest.signal, key);\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, {\n flushSync\n });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: path\n }), {\n flushSync\n });\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\"action\", state, fetchRequest, [match], requestMatches, key);\n let actionResult = actionResults[match.route.id];\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, false, {\n fetcherSubmission: submission,\n preventScrollReset\n });\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(init.history, nextLocation, abortController.signal);\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches = state.navigation.state !== \"idle\" ? matchRoutes(routesToUse, state.navigation.location, basename) : state.matches;\n invariant(matches, \"Didn't find any matches after fetcher action\");\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, submission, nextLocation, false, future.v7_skipActionErrorRevalidation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, [match.route.id, actionResult]);\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers.filter(rf => rf.key !== key).forEach(rf => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(undefined, existingFetcher ? existingFetcher.data : undefined);\n state.fetchers.set(staleKey, revalidatingFetcher);\n abortFetcher(staleKey);\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n updateState({\n fetchers: new Map(state.fetchers)\n });\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(rf => abortFetcher(rf.key));\n abortController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n let {\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state, matches, matchesToLoad, revalidatingFetchers, revalidationRequest);\n if (abortController.signal.aborted) {\n return;\n }\n abortController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach(r => fetchControllers.delete(r.key));\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n return startRedirectNavigation(revalidationRequest, redirect.result, false, {\n preventScrollReset\n });\n }\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n return startRedirectNavigation(revalidationRequest, redirect.result, false, {\n preventScrollReset\n });\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, matches, loaderResults, undefined, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n abortStaleFetchLoads(loadId);\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (state.navigation.state === \"loading\" && loadId > pendingNavigationLoadId) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers)\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(state.loaderData, loaderData, matches, errors),\n fetchers: new Map(state.fetchers)\n });\n isRevalidationRequired = false;\n }\n }\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(key, routeId, path, match, matches, isFogOfWar, flushSync, preventScrollReset, submission) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getLoadingFetcher(submission, existingFetcher ? existingFetcher.data : undefined), {\n flushSync\n });\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal);\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(matches, new URL(fetchRequest.url).pathname, fetchRequest.signal, key);\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, {\n flushSync\n });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: path\n }), {\n flushSync\n });\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\"loader\", state, fetchRequest, [match], matches, key);\n let result = results[match.route.id];\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result = (await resolveDeferredData(result, fetchRequest.signal, true)) || result;\n }\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n if (fetchRequest.signal.aborted) {\n return;\n }\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result, false, {\n preventScrollReset\n });\n return;\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(request, redirect, isNavigation, _temp2) {\n let {\n submission,\n fetcherSubmission,\n preventScrollReset,\n replace\n } = _temp2 === void 0 ? {} : _temp2;\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(location, new URL(request.url), basename);\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true\n });\n if (isBrowser) {\n let isDocumentReload = false;\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n let redirectHistoryAction = replace === true || redirect.response.headers.has(\"X-Remix-Replace\") ? Action.Replace : Action.Push;\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let {\n formMethod,\n formAction,\n formEncType\n } = state.navigation;\n if (!submission && !fetcherSubmission && formMethod && formAction && formEncType) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (redirectPreserveMethodStatusCodes.has(redirect.response.status) && activeSubmission && isMutationMethod(activeSubmission.formMethod)) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: _extends({}, activeSubmission, {\n formAction: location\n }),\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation ? pendingViewTransitionEnabled : undefined\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(redirectLocation, submission);\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation ? pendingViewTransitionEnabled : undefined\n });\n }\n }\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(type, state, request, matchesToLoad, matches, fetcherKey) {\n let results;\n let dataResults = {};\n try {\n results = await callDataStrategyImpl(dataStrategyImpl, type, state, request, matchesToLoad, matches, fetcherKey, manifest, mapRouteProperties);\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n matchesToLoad.forEach(m => {\n dataResults[m.route.id] = {\n type: ResultType.error,\n error: e\n };\n });\n return dataResults;\n }\n for (let [routeId, result] of Object.entries(results)) {\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result;\n dataResults[routeId] = {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(response, request, routeId, matches, basename, future.v7_relativeSplatPath)\n };\n } else {\n dataResults[routeId] = await convertDataStrategyResultToDataResult(result);\n }\n }\n return dataResults;\n }\n async function callLoadersAndMaybeResolveData(state, matches, matchesToLoad, fetchersToLoad, request) {\n let currentMatches = state.matches;\n // Kick off loaders and fetchers in parallel\n let loaderResultsPromise = callDataStrategy(\"loader\", state, request, matchesToLoad, matches, null);\n let fetcherResultsPromise = Promise.all(fetchersToLoad.map(async f => {\n if (f.matches && f.match && f.controller) {\n let results = await callDataStrategy(\"loader\", state, createClientSideRequest(init.history, f.path, f.controller.signal), [f.match], f.matches, f.key);\n let result = results[f.match.route.id];\n // Fetcher results are keyed by fetcher key from here on out, not routeId\n return {\n [f.key]: result\n };\n } else {\n return Promise.resolve({\n [f.key]: {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path\n })\n }\n });\n }\n }));\n let loaderResults = await loaderResultsPromise;\n let fetcherResults = (await fetcherResultsPromise).reduce((acc, r) => Object.assign(acc, r), {});\n await Promise.all([resolveNavigationDeferredResults(matches, loaderResults, request.signal, currentMatches, state.loaderData), resolveFetcherDeferredResults(matches, fetcherResults, fetchersToLoad)]);\n return {\n loaderResults,\n fetcherResults\n };\n }\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n }\n abortFetcher(key);\n });\n }\n function updateFetcherState(key, fetcher, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state.fetchers.set(key, fetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function setFetcherError(key, routeId, error, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error\n },\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function getFetcher(key) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n function deleteFetcher(key) {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (fetchControllers.has(key) && !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n // If we opted into the flag we can clear this now since we're calling\n // deleteFetcher() at the end of updateState() and we've already handed the\n // deleted fetcher keys off to the data layer.\n // If not, we're eagerly calling deleteFetcher() and we need to keep this\n // Set populated until the next updateState call, and we'll clear\n // `deletedFetchers` then\n if (future.v7_fetcherPersist) {\n deletedFetchers.delete(key);\n }\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n function deleteFetcherAndUpdateState(key) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n if (!future.v7_fetcherPersist) {\n deleteFetcher(key);\n }\n } else {\n activeFetchers.set(key, count);\n }\n updateState({\n fetchers: new Map(state.fetchers)\n });\n }\n function abortFetcher(key) {\n let controller = fetchControllers.get(key);\n if (controller) {\n controller.abort();\n fetchControllers.delete(key);\n }\n }\n function markFetchersDone(keys) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n function markFetchRedirectsDone() {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n function abortStaleFetchLoads(landedId) {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n function getBlocker(key, fn) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n return blocker;\n }\n function deleteBlocker(key) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key, newBlocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(blocker.state === \"unblocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"proceeding\" || blocker.state === \"blocked\" && newBlocker.state === \"unblocked\" || blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\", \"Invalid blocker state transition: \" + blocker.state + \" -> \" + newBlocker.state);\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({\n blockers\n });\n }\n function shouldBlockNavigation(_ref2) {\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = _ref2;\n if (blockerFunctions.size === 0) {\n return;\n }\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({\n currentLocation,\n nextLocation,\n historyAction\n })) {\n return blockerKey;\n }\n }\n function handleNavigational404(pathname) {\n let error = getInternalRouterError(404, {\n pathname\n });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let {\n matches,\n route\n } = getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n return {\n notFoundMatches: matches,\n route,\n error\n };\n }\n function cancelActiveDeferreds(predicate) {\n let cancelledRouteIds = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(positions, getPosition, getKey) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({\n restoreScrollPosition: y\n });\n }\n }\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n function getScrollKey(location, matches) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(location, matches.map(m => convertRouteMatchToUiMatch(m, state.loaderData)));\n return key || location.key;\n }\n return location.key;\n }\n function saveScrollPosition(location, matches) {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n function getSavedScrollPosition(location, matches) {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n function checkFogOfWar(matches, routesToUse, pathname) {\n if (patchRoutesOnNavigationImpl) {\n if (!matches) {\n let fogMatches = matchRoutesImpl(routesToUse, pathname, basename, true);\n return {\n active: true,\n matches: fogMatches || []\n };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(routesToUse, pathname, basename, true);\n return {\n active: true,\n matches: partialMatches\n };\n }\n }\n }\n return {\n active: false,\n matches: null\n };\n }\n async function discoverRoutes(matches, pathname, signal, fetcherKey) {\n if (!patchRoutesOnNavigationImpl) {\n return {\n type: \"success\",\n matches\n };\n }\n let partialMatches = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let localManifest = manifest;\n try {\n await patchRoutesOnNavigationImpl({\n signal,\n path: pathname,\n matches: partialMatches,\n fetcherKey,\n patch: (routeId, children) => {\n if (signal.aborted) return;\n patchRoutesImpl(routeId, children, routesToUse, localManifest, mapRouteProperties);\n }\n });\n } catch (e) {\n return {\n type: \"error\",\n error: e,\n partialMatches\n };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR && !signal.aborted) {\n dataRoutes = [...dataRoutes];\n }\n }\n if (signal.aborted) {\n return {\n type: \"aborted\"\n };\n }\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n return {\n type: \"success\",\n matches: newMatches\n };\n }\n let newPartialMatches = matchRoutesImpl(routesToUse, pathname, basename, true);\n // Avoid loops if the second pass results in the same partial matches\n if (!newPartialMatches || partialMatches.length === newPartialMatches.length && partialMatches.every((m, i) => m.route.id === newPartialMatches[i].route.id)) {\n return {\n type: \"success\",\n matches: null\n };\n }\n partialMatches = newPartialMatches;\n }\n }\n function _internalSetRoutes(newRoutes) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(newRoutes, mapRouteProperties, undefined, manifest);\n }\n function patchRoutes(routeId, children) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(routeId, children, routesToUse, manifest, mapRouteProperties);\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: to => init.history.createHref(to),\n encodeLocation: to => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes\n };\n return router;\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\nconst UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\nfunction createStaticHandler(routes, opts) {\n invariant(routes.length > 0, \"You must provide a non-empty routes array to createStaticHandler\");\n let manifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties;\n if (opts != null && opts.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts != null && opts.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future = _extends({\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false\n }, opts ? opts.future : null);\n let dataRoutes = convertRoutesToDataRoutes(routes, mapRouteProperties, undefined, manifest);\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(request, _temp3) {\n let {\n requestContext,\n skipLoaderErrorBubbling,\n dataStrategy\n } = _temp3 === void 0 ? {} : _temp3;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, {\n method\n });\n let {\n matches: methodNotAllowedMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n let result = await queryImpl(request, location, matches, requestContext, dataStrategy || null, skipLoaderErrorBubbling === true, null);\n if (isResponse(result)) {\n return result;\n }\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return _extends({\n location,\n basename\n }, result);\n }\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(request, _temp4) {\n let {\n routeId,\n requestContext,\n dataStrategy\n } = _temp4 === void 0 ? {} : _temp4;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, {\n method\n });\n } else if (!matches) {\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let match = routeId ? matches.find(m => m.route.id === routeId) : getTargetMatch(matches, location);\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let result = await queryImpl(request, location, matches, requestContext, dataStrategy || null, false, match);\n if (isResponse(result)) {\n return result;\n }\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n if (result.loaderData) {\n var _result$activeDeferre;\n let data = Object.values(result.loaderData)[0];\n if ((_result$activeDeferre = result.activeDeferreds) != null && _result$activeDeferre[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n return undefined;\n }\n async function queryImpl(request, location, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch) {\n invariant(request.signal, \"query()/queryRoute() requests must contain an AbortController signal\");\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(request, matches, routeMatch || getTargetMatch(matches, location), requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch != null);\n return result;\n }\n let result = await loadRouteData(request, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch);\n return isResponse(result) ? result : _extends({}, result, {\n actionData: null,\n actionHeaders: {}\n });\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `DataStrategyResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isDataStrategyResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n async function submit(request, matches, actionMatch, requestContext, dataStrategy, skipLoaderErrorBubbling, isRouteRequest) {\n let result;\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n } else {\n let results = await callDataStrategy(\"action\", request, [actionMatch], matches, isRouteRequest, requestContext, dataStrategy);\n result = results[actionMatch.route.id];\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")\n }\n });\n }\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, {\n type: \"defer-action\"\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n }\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: {\n [actionMatch.route.id]: result.data\n },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal\n });\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling ? actionMatch : findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(loaderRequest, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, null, [boundaryMatch.route.id, result]);\n // action status codes take precedence over loader status codes\n return _extends({}, context, {\n statusCode: isRouteErrorResponse(result.error) ? result.error.status : result.statusCode != null ? result.statusCode : 500,\n actionData: null,\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n }\n let context = await loadRouteData(loaderRequest, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, null);\n return _extends({}, context, {\n actionData: {\n [actionMatch.route.id]: result.data\n }\n }, result.statusCode ? {\n statusCode: result.statusCode\n } : {}, {\n actionHeaders: result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {}\n });\n }\n async function loadRouteData(request, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch, pendingActionResult) {\n let isRouteRequest = routeMatch != null;\n // Short circuit if we have no loaders to run (queryRoute())\n if (isRouteRequest && !(routeMatch != null && routeMatch.route.loader) && !(routeMatch != null && routeMatch.route.lazy)) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch == null ? void 0 : routeMatch.route.id\n });\n }\n let requestMatches = routeMatch ? [routeMatch] : pendingActionResult && isErrorResult(pendingActionResult[1]) ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0]) : matches;\n let matchesToLoad = requestMatches.filter(m => m.route.loader || m.route.lazy);\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce((acc, m) => Object.assign(acc, {\n [m.route.id]: null\n }), {}),\n errors: pendingActionResult && isErrorResult(pendingActionResult[1]) ? {\n [pendingActionResult[0]]: pendingActionResult[1].error\n } : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null\n };\n }\n let results = await callDataStrategy(\"loader\", request, matchesToLoad, matches, isRouteRequest, requestContext, dataStrategy);\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(matches, results, pendingActionResult, activeDeferreds, skipLoaderErrorBubbling);\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(matchesToLoad.map(match => match.route.id));\n matches.forEach(match => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n return _extends({}, context, {\n matches,\n activeDeferreds: activeDeferreds.size > 0 ? Object.fromEntries(activeDeferreds.entries()) : null\n });\n }\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(type, request, matchesToLoad, matches, isRouteRequest, requestContext, dataStrategy) {\n let results = await callDataStrategyImpl(dataStrategy || defaultDataStrategy, type, null, request, matchesToLoad, matches, null, manifest, mapRouteProperties, requestContext);\n let dataResults = {};\n await Promise.all(matches.map(async match => {\n if (!(match.route.id in results)) {\n return;\n }\n let result = results[match.route.id];\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(response, request, match.route.id, matches, basename, future.v7_relativeSplatPath);\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n dataResults[match.route.id] = await convertDataStrategyResultToDataResult(result);\n }));\n return dataResults;\n }\n return {\n dataRoutes,\n query,\n queryRoute\n };\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nfunction getStaticContextFromError(routes, context, error) {\n let newContext = _extends({}, context, {\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error\n }\n });\n return newContext;\n}\nfunction throwStaticHandlerAbortedError(request, isRouteRequest, future) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted: \" + request.method + \" \" + request.url);\n}\nfunction isSubmissionNavigation(opts) {\n return opts != null && (\"formData\" in opts && opts.formData != null || \"body\" in opts && opts.body !== undefined);\n}\nfunction normalizeTo(location, matches, basename, prependBasename, to, v7_relativeSplatPath, fromRouteId, relative) {\n let contextualMatches;\n let activeRouteMatch;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n // Resolve the relative path\n let path = resolveTo(to ? to : \".\", getResolveToMatches(contextualMatches, v7_relativeSplatPath), stripBasename(location.pathname, basename) || location.pathname, relative === \"path\");\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n // Account for `?index` params when routing to the current location\n if ((to == null || to === \"\" || to === \".\") && activeRouteMatch) {\n let nakedIndex = hasNakedIndexQuery(path.search);\n if (activeRouteMatch.route.index && !nakedIndex) {\n // Add one when we're targeting an index route\n path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n } else if (!activeRouteMatch.route.index && nakedIndex) {\n // Remove existing ones when we're not\n let params = new URLSearchParams(path.search);\n let indexValues = params.getAll(\"index\");\n params.delete(\"index\");\n indexValues.filter(v => v).forEach(v => params.append(\"index\", v));\n let qs = params.toString();\n path.search = qs ? \"?\" + qs : \"\";\n }\n }\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n return createPath(path);\n}\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(normalizeFormMethod, isFetcher, path, opts) {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return {\n path\n };\n }\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, {\n method: opts.formMethod\n })\n };\n }\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, {\n type: \"invalid-body\"\n })\n });\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod ? rawFormMethod.toUpperCase() : rawFormMethod.toLowerCase();\n let formAction = stripHashFromPath(path);\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n let text = typeof opts.body === \"string\" ? opts.body : opts.body instanceof FormData || opts.body instanceof URLSearchParams ?\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce((acc, _ref3) => {\n let [name, value] = _ref3;\n return \"\" + acc + name + \"=\" + value + \"\\n\";\n }, \"\") : String(opts.body);\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text\n }\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n try {\n let json = typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined\n }\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n invariant(typeof FormData === \"function\", \"FormData is not available in this environment\");\n let searchParams;\n let formData;\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n let submission = {\n formMethod,\n formAction,\n formEncType: opts && opts.formEncType || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined\n };\n if (isMutationMethod(submission.formMethod)) {\n return {\n path,\n submission\n };\n }\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = \"?\" + searchParams;\n return {\n path: createPath(parsedPath),\n submission\n };\n}\n// Filter out all routes at/below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(matches, boundaryId, includeBoundary) {\n if (includeBoundary === void 0) {\n includeBoundary = false;\n }\n let index = matches.findIndex(m => m.route.id === boundaryId);\n if (index >= 0) {\n return matches.slice(0, includeBoundary ? index + 1 : index);\n }\n return matches;\n}\nfunction getMatchesToLoad(history, state, matches, submission, location, initialHydration, skipActionErrorRevalidation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionResult) {\n let actionResult = pendingActionResult ? isErrorResult(pendingActionResult[1]) ? pendingActionResult[1].error : pendingActionResult[1].data : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryMatches = matches;\n if (initialHydration && state.errors) {\n // On initial hydration, only consider matches up to _and including_ the boundary.\n // This is inclusive to handle cases where a server loader ran successfully,\n // a child server loader bubbled up to this route, but this route has\n // `clientLoader.hydrate` so we want to still run the `clientLoader` so that\n // we have a complete version of `loaderData`\n boundaryMatches = getLoaderMatchesUntilBoundary(matches, Object.keys(state.errors)[0], true);\n } else if (pendingActionResult && isErrorResult(pendingActionResult[1])) {\n // If an action threw an error, we call loaders up to, but not including the\n // boundary\n boundaryMatches = getLoaderMatchesUntilBoundary(matches, pendingActionResult[0]);\n }\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult ? pendingActionResult[1].statusCode : undefined;\n let shouldSkipRevalidation = skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let {\n route\n } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (route.loader == null) {\n return false;\n }\n if (initialHydration) {\n return shouldLoadRouteOnHydration(route, state.loaderData, state.errors);\n }\n // Always call the loader on new route instances and pending defer cancellations\n if (isNewLoader(state.loaderData, state.matches[index], match) || cancelledDeferredRoutes.some(id => id === match.route.id)) {\n return true;\n }\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n return shouldRevalidateLoader(match, _extends({\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params\n }, submission, {\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation ? false :\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired || currentUrl.pathname + currentUrl.search === nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search || isNewRouteInstance(currentRouteMatch, nextRouteMatch)\n }));\n });\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial hydration (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (initialHydration || !matches.some(m => m.route.id === f.routeId) || deletedFetchers.has(key)) {\n return;\n }\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null\n });\n return;\n }\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (fetcher && fetcher.state !== \"idle\" && fetcher.data === undefined) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, _extends({\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params\n }, submission, {\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation ? false : isRevalidationRequired\n }));\n }\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController()\n });\n }\n });\n return [navigationMatches, revalidatingFetchers];\n}\nfunction shouldLoadRouteOnHydration(route, loaderData, errors) {\n // We dunno if we have a loader - gotta find out!\n if (route.lazy) {\n return true;\n }\n // No loader, nothing to initialize\n if (!route.loader) {\n return false;\n }\n let hasData = loaderData != null && loaderData[route.id] !== undefined;\n let hasError = errors != null && errors[route.id] !== undefined;\n // Don't run if we error'd during SSR\n if (!hasData && hasError) {\n return false;\n }\n // Explicitly opting-in to running on hydration\n if (typeof route.loader === \"function\" && route.loader.hydrate === true) {\n return true;\n }\n // Otherwise, run if we're not yet initialized with anything\n return !hasData && !hasError;\n}\nfunction isNewLoader(currentLoaderData, currentMatch, match) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\nfunction isNewRouteInstance(currentMatch, match) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n currentPath != null && currentPath.endsWith(\"*\") && currentMatch.params[\"*\"] !== match.params[\"*\"]\n );\n}\nfunction shouldRevalidateLoader(loaderMatch, arg) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n return arg.defaultShouldRevalidate;\n}\nfunction patchRoutesImpl(routeId, children, routesToUse, manifest, mapRouteProperties) {\n var _childrenToPatch;\n let childrenToPatch;\n if (routeId) {\n let route = manifest[routeId];\n invariant(route, \"No route found to patch children into: routeId = \" + routeId);\n if (!route.children) {\n route.children = [];\n }\n childrenToPatch = route.children;\n } else {\n childrenToPatch = routesToUse;\n }\n // Don't patch in routes we already know about so that `patch` is idempotent\n // to simplify user-land code. This is useful because we re-call the\n // `patchRoutesOnNavigation` function for matched routes with params.\n let uniqueChildren = children.filter(newRoute => !childrenToPatch.some(existingRoute => isSameRoute(newRoute, existingRoute)));\n let newRoutes = convertRoutesToDataRoutes(uniqueChildren, mapRouteProperties, [routeId || \"_\", \"patch\", String(((_childrenToPatch = childrenToPatch) == null ? void 0 : _childrenToPatch.length) || \"0\")], manifest);\n childrenToPatch.push(...newRoutes);\n}\nfunction isSameRoute(newRoute, existingRoute) {\n // Most optimal check is by id\n if (\"id\" in newRoute && \"id\" in existingRoute && newRoute.id === existingRoute.id) {\n return true;\n }\n // Second is by pathing differences\n if (!(newRoute.index === existingRoute.index && newRoute.path === existingRoute.path && newRoute.caseSensitive === existingRoute.caseSensitive)) {\n return false;\n }\n // Pathless layout routes are trickier since we need to check children.\n // If they have no children then they're the same as far as we can tell\n if ((!newRoute.children || newRoute.children.length === 0) && (!existingRoute.children || existingRoute.children.length === 0)) {\n return true;\n }\n // Otherwise, we look to see if every child in the new route is already\n // represented in the existing route's children\n return newRoute.children.every((aChild, i) => {\n var _existingRoute$childr;\n return (_existingRoute$childr = existingRoute.children) == null ? void 0 : _existingRoute$childr.some(bChild => isSameRoute(aChild, bChild));\n });\n}\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(route, mapRouteProperties, manifest) {\n if (!route.lazy) {\n return;\n }\n let lazyRoute = await route.lazy();\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue = routeToUpdate[lazyRouteProperty];\n let isPropertyStaticallyDefined = staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n warning(!isPropertyStaticallyDefined, \"Route \\\"\" + routeToUpdate.id + \"\\\" has a static property \\\"\" + lazyRouteProperty + \"\\\" \" + \"defined but its lazy function is also returning a value for this property. \" + (\"The lazy route property \\\"\" + lazyRouteProperty + \"\\\" will be ignored.\"));\n if (!isPropertyStaticallyDefined && !immutableRouteKeys.has(lazyRouteProperty)) {\n routeUpdates[lazyRouteProperty] = lazyRoute[lazyRouteProperty];\n }\n }\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, _extends({}, mapRouteProperties(routeToUpdate), {\n lazy: undefined\n }));\n}\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nasync function defaultDataStrategy(_ref4) {\n let {\n matches\n } = _ref4;\n let matchesToLoad = matches.filter(m => m.shouldLoad);\n let results = await Promise.all(matchesToLoad.map(m => m.resolve()));\n return results.reduce((acc, result, i) => Object.assign(acc, {\n [matchesToLoad[i].route.id]: result\n }), {});\n}\nasync function callDataStrategyImpl(dataStrategyImpl, type, state, request, matchesToLoad, matches, fetcherKey, manifest, mapRouteProperties, requestContext) {\n let loadRouteDefinitionsPromises = matches.map(m => m.route.lazy ? loadLazyRouteModule(m.route, mapRouteProperties, manifest) : undefined);\n let dsMatches = matches.map((match, i) => {\n let loadRoutePromise = loadRouteDefinitionsPromises[i];\n let shouldLoad = matchesToLoad.some(m => m.route.id === match.route.id);\n // `resolve` encapsulates route.lazy(), executing the loader/action,\n // and mapping return values/thrown errors to a `DataStrategyResult`. Users\n // can pass a callback to take fine-grained control over the execution\n // of the loader/action\n let resolve = async handlerOverride => {\n if (handlerOverride && request.method === \"GET\" && (match.route.lazy || match.route.loader)) {\n shouldLoad = true;\n }\n return shouldLoad ? callLoaderOrAction(type, request, match, loadRoutePromise, handlerOverride, requestContext) : Promise.resolve({\n type: ResultType.data,\n result: undefined\n });\n };\n return _extends({}, match, {\n shouldLoad,\n resolve\n });\n });\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: dsMatches,\n request,\n params: matches[0].params,\n fetcherKey,\n context: requestContext\n });\n // Wait for all routes to load here but 'swallow the error since we want\n // it to bubble up from the `await loadRoutePromise` in `callLoaderOrAction` -\n // called from `match.resolve()`\n try {\n await Promise.all(loadRouteDefinitionsPromises);\n } catch (e) {\n // No-op\n }\n return results;\n}\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(type, request, match, loadRoutePromise, handlerOverride, staticContext) {\n let result;\n let onReject;\n let runHandler = handler => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => reject = r);\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n let actualHandler = ctx => {\n if (typeof handler !== \"function\") {\n return Promise.reject(new Error(\"You cannot call the handler for a route which defines a boolean \" + (\"\\\"\" + type + \"\\\" [routeId: \" + match.route.id + \"]\")));\n }\n return handler({\n request,\n params: match.params,\n context: staticContext\n }, ...(ctx !== undefined ? [ctx] : []));\n };\n let handlerPromise = (async () => {\n try {\n let val = await (handlerOverride ? handlerOverride(ctx => actualHandler(ctx)) : actualHandler());\n return {\n type: \"data\",\n result: val\n };\n } catch (e) {\n return {\n type: \"error\",\n result: e\n };\n }\n })();\n return Promise.race([handlerPromise, abortPromise]);\n };\n try {\n let handler = match.route[type];\n // If we have a route.lazy promise, await that first\n if (loadRoutePromise) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch(e => {\n handlerError = e;\n }), loadRoutePromise]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value;\n } else {\n // Load lazy route module, then run any returned handler\n await loadRoutePromise;\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return {\n type: ResultType.data,\n result: undefined\n };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname\n });\n } else {\n result = await runHandler(handler);\n }\n invariant(result.result !== undefined, \"You defined \" + (type === \"action\" ? \"an action\" : \"a loader\") + \" for route \" + (\"\\\"\" + match.route.id + \"\\\" but didn't return anything from your `\" + type + \"` \") + \"function. Please return a value or `null`.\");\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // DataStrategyResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return {\n type: ResultType.error,\n result: e\n };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n return result;\n}\nasync function convertDataStrategyResultToDataResult(dataStrategyResult) {\n let {\n result,\n type\n } = dataStrategyResult;\n if (isResponse(result)) {\n let data;\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return {\n type: ResultType.error,\n error: e\n };\n }\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers\n };\n }\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers\n };\n }\n if (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n var _result$init3, _result$init4;\n if (result.data instanceof Error) {\n var _result$init, _result$init2;\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: (_result$init = result.init) == null ? void 0 : _result$init.status,\n headers: (_result$init2 = result.init) != null && _result$init2.headers ? new Headers(result.init.headers) : undefined\n };\n }\n // Convert thrown data() to ErrorResponse instances\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(((_result$init3 = result.init) == null ? void 0 : _result$init3.status) || 500, undefined, result.data),\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n headers: (_result$init4 = result.init) != null && _result$init4.headers ? new Headers(result.init.headers) : undefined\n };\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined\n };\n }\n if (isDeferredData(result)) {\n var _result$init5, _result$init6;\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: (_result$init5 = result.init) == null ? void 0 : _result$init5.status,\n headers: ((_result$init6 = result.init) == null ? void 0 : _result$init6.headers) && new Headers(result.init.headers)\n };\n }\n if (isDataWithResponseInit(result)) {\n var _result$init7, _result$init8;\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: (_result$init7 = result.init) == null ? void 0 : _result$init7.status,\n headers: (_result$init8 = result.init) != null && _result$init8.headers ? new Headers(result.init.headers) : undefined\n };\n }\n return {\n type: ResultType.data,\n data: result\n };\n}\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(response, request, routeId, matches, basename, v7_relativeSplatPath) {\n let location = response.headers.get(\"Location\");\n invariant(location, \"Redirects returned/thrown from loaders/actions must have a Location header\");\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1);\n location = normalizeTo(new URL(request.url), trimmedMatches, basename, true, location, v7_relativeSplatPath);\n response.headers.set(\"Location\", location);\n }\n return response;\n}\nfunction normalizeRedirectLocation(location, currentUrl, basename) {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\") ? new URL(currentUrl.protocol + normalizedLocation) : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(history, location, signal, submission) {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init = {\n signal\n };\n if (submission && isMutationMethod(submission.formMethod)) {\n let {\n formMethod,\n formEncType\n } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n if (formEncType === \"application/json\") {\n init.headers = new Headers({\n \"Content-Type\": formEncType\n });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (formEncType === \"application/x-www-form-urlencoded\" && submission.formData) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n return new Request(url, init);\n}\nfunction convertFormDataToSearchParams(formData) {\n let searchParams = new URLSearchParams();\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n return searchParams;\n}\nfunction convertSearchParamsToFormData(searchParams) {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\nfunction processRouteLoaderData(matches, results, pendingActionResult, activeDeferreds, skipLoaderErrorBubbling) {\n // Fill in loaderData/errors from our loaders\n let loaderData = {};\n let errors = null;\n let statusCode;\n let foundError = false;\n let loaderHeaders = {};\n let pendingError = pendingActionResult && isErrorResult(pendingActionResult[1]) ? pendingActionResult[1].error : undefined;\n // Process loader results into state.loaderData/state.errors\n matches.forEach(match => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(!isRedirectResult(result), \"Cannot handle redirect results in processLoaderData\");\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n errors = errors || {};\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error) ? result.error.status : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode != null && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = {\n [pendingActionResult[0]]: pendingError\n };\n loaderData[pendingActionResult[0]] = undefined;\n }\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders\n };\n}\nfunction processLoaderData(state, matches, results, pendingActionResult, revalidatingFetchers, fetcherResults, activeDeferreds) {\n let {\n loaderData,\n errors\n } = processRouteLoaderData(matches, results, pendingActionResult, activeDeferreds, false // This method is only called client side so we always want to bubble\n );\n // Process results from our revalidating fetchers\n revalidatingFetchers.forEach(rf => {\n let {\n key,\n match,\n controller\n } = rf;\n let result = fetcherResults[key];\n invariant(result, \"Did not find corresponding fetcher result\");\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n return;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match == null ? void 0 : match.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = _extends({}, errors, {\n [boundaryMatch.route.id]: result.error\n });\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n });\n return {\n loaderData,\n errors\n };\n}\nfunction mergeLoaderData(loaderData, newLoaderData, matches, errors) {\n let mergedLoaderData = _extends({}, newLoaderData);\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\nfunction getActionDataForCommit(pendingActionResult) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1]) ? {\n // Clear out prior actionData on errors\n actionData: {}\n } : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data\n }\n };\n}\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(matches, routeId) {\n let eligibleMatches = routeId ? matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1) : [...matches];\n return eligibleMatches.reverse().find(m => m.route.hasErrorBoundary === true) || matches[0];\n}\nfunction getShortCircuitMatches(routes) {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.length === 1 ? routes[0] : routes.find(r => r.index || !r.path || r.path === \"/\") || {\n id: \"__shim-error-route__\"\n };\n return {\n matches: [{\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route\n }],\n route\n };\n}\nfunction getInternalRouterError(status, _temp5) {\n let {\n pathname,\n routeId,\n method,\n type,\n message\n } = _temp5 === void 0 ? {} : _temp5;\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide a `loader` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = \"Route \\\"\" + routeId + \"\\\" does not match URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = \"No route matches URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method.toUpperCase() + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide an `action` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (method) {\n errorMessage = \"Invalid request method \\\"\" + method.toUpperCase() + \"\\\"\";\n }\n }\n return new ErrorResponseImpl(status || 500, statusText, new Error(errorMessage), true);\n}\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results) {\n let entries = Object.entries(results);\n for (let i = entries.length - 1; i >= 0; i--) {\n let [key, result] = entries[i];\n if (isRedirectResult(result)) {\n return {\n key,\n result\n };\n }\n }\n}\nfunction stripHashFromPath(path) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath(_extends({}, parsedPath, {\n hash: \"\"\n }));\n}\nfunction isHashChangeOnly(a, b) {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\nfunction isDataStrategyResult(result) {\n return result != null && typeof result === \"object\" && \"type\" in result && \"result\" in result && (result.type === ResultType.data || result.type === ResultType.error);\n}\nfunction isRedirectDataStrategyResultResult(result) {\n return isResponse(result.result) && redirectStatusCodes.has(result.result.status);\n}\nfunction isDeferredResult(result) {\n return result.type === ResultType.deferred;\n}\nfunction isErrorResult(result) {\n return result.type === ResultType.error;\n}\nfunction isRedirectResult(result) {\n return (result && result.type) === ResultType.redirect;\n}\nfunction isDataWithResponseInit(value) {\n return typeof value === \"object\" && value != null && \"type\" in value && \"data\" in value && \"init\" in value && value.type === \"DataWithResponseInit\";\n}\nfunction isDeferredData(value) {\n let deferred = value;\n return deferred && typeof deferred === \"object\" && typeof deferred.data === \"object\" && typeof deferred.subscribe === \"function\" && typeof deferred.cancel === \"function\" && typeof deferred.resolveData === \"function\";\n}\nfunction isResponse(value) {\n return value != null && typeof value.status === \"number\" && typeof value.statusText === \"string\" && typeof value.headers === \"object\" && typeof value.body !== \"undefined\";\n}\nfunction isRedirectResponse(result) {\n if (!isResponse(result)) {\n return false;\n }\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\nfunction isValidMethod(method) {\n return validRequestMethods.has(method.toLowerCase());\n}\nfunction isMutationMethod(method) {\n return validMutationMethods.has(method.toLowerCase());\n}\nasync function resolveNavigationDeferredResults(matches, results, signal, currentMatches, currentLoaderData) {\n let entries = Object.entries(results);\n for (let index = 0; index < entries.length; index++) {\n let [routeId, result] = entries[index];\n let match = matches.find(m => (m == null ? void 0 : m.route.id) === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n let currentMatch = currentMatches.find(m => m.route.id === match.route.id);\n let isRevalidatingLoader = currentMatch != null && !isNewRouteInstance(currentMatch, match) && (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n if (isDeferredResult(result) && isRevalidatingLoader) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, false).then(result => {\n if (result) {\n results[routeId] = result;\n }\n });\n }\n }\n}\nasync function resolveFetcherDeferredResults(matches, results, revalidatingFetchers) {\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let {\n key,\n routeId,\n controller\n } = revalidatingFetchers[index];\n let result = results[key];\n let match = matches.find(m => (m == null ? void 0 : m.route.id) === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n if (isDeferredResult(result)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n invariant(controller, \"Expected an AbortController for revalidating fetcher deferred result\");\n await resolveDeferredData(result, controller.signal, true).then(result => {\n if (result) {\n results[key] = result;\n }\n });\n }\n }\n}\nasync function resolveDeferredData(result, signal, unwrap) {\n if (unwrap === void 0) {\n unwrap = false;\n }\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e\n };\n }\n }\n return {\n type: ResultType.data,\n data: result.deferredData.data\n };\n}\nfunction hasNakedIndexQuery(search) {\n return new URLSearchParams(search).getAll(\"index\").some(v => v === \"\");\n}\nfunction getTargetMatch(matches, location) {\n let search = typeof location === \"string\" ? parsePath(location).search : location.search;\n if (matches[matches.length - 1].route.index && hasNakedIndexQuery(search || \"\")) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\nfunction getSubmissionFromNavigation(navigation) {\n let {\n formMethod,\n formAction,\n formEncType,\n text,\n formData,\n json\n } = navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined\n };\n }\n}\nfunction getLoadingNavigation(location, submission) {\n if (submission) {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n } else {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n };\n return navigation;\n }\n}\nfunction getSubmittingNavigation(location, submission) {\n let navigation = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n}\nfunction getLoadingFetcher(submission, data) {\n if (submission) {\n let fetcher = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data\n };\n return fetcher;\n } else {\n let fetcher = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n }\n}\nfunction getSubmittingFetcher(submission, existingFetcher) {\n let fetcher = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined\n };\n return fetcher;\n}\nfunction getDoneFetcher(data) {\n let fetcher = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n}\nfunction restoreAppliedTransitions(_window, transitions) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(TRANSITIONS_STORAGE_KEY);\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\nfunction persistAppliedTransitions(_window, transitions) {\n if (transitions.size > 0) {\n let json = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(TRANSITIONS_STORAGE_KEY, JSON.stringify(json));\n } catch (error) {\n warning(false, \"Failed to save applied view transitions in sessionStorage (\" + error + \").\");\n }\n }\n}\n//#endregion\n\nexport { AbortedDeferredError, Action, IDLE_BLOCKER, IDLE_FETCHER, IDLE_NAVIGATION, UNSAFE_DEFERRED_SYMBOL, DeferredData as UNSAFE_DeferredData, ErrorResponseImpl as UNSAFE_ErrorResponseImpl, convertRouteMatchToUiMatch as UNSAFE_convertRouteMatchToUiMatch, convertRoutesToDataRoutes as UNSAFE_convertRoutesToDataRoutes, decodePath as UNSAFE_decodePath, getResolveToMatches as UNSAFE_getResolveToMatches, invariant as UNSAFE_invariant, warning as UNSAFE_warning, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, createRouter, createStaticHandler, data, defer, generatePath, getStaticContextFromError, getToPathname, isDataWithResponseInit, isDeferredData, isRouteErrorResponse, joinPaths, json, matchPath, matchRoutes, normalizePathname, parsePath, redirect, redirectDocument, replace, resolvePath, resolveTo, stripBasename };\n//# sourceMappingURL=router.js.map\n","/**\n * React Router v6.30.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { UNSAFE_invariant, joinPaths, matchPath, UNSAFE_decodePath, UNSAFE_getResolveToMatches, UNSAFE_warning, resolveTo, parsePath, matchRoutes, Action, UNSAFE_convertRouteMatchToUiMatch, stripBasename, IDLE_BLOCKER, isRouteErrorResponse, createMemoryHistory, AbortedDeferredError, createRouter } from '@remix-run/router';\nexport { AbortedDeferredError, Action as NavigationType, createPath, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, replace, resolvePath } from '@remix-run/router';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nconst DataRouterContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterContext.displayName = \"DataRouter\";\n}\nconst DataRouterStateContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\nconst AwaitContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n AwaitContext.displayName = \"Await\";\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\n\nconst NavigationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n NavigationContext.displayName = \"Navigation\";\n}\nconst LocationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n LocationContext.displayName = \"Location\";\n}\nconst RouteContext = /*#__PURE__*/React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false\n});\nif (process.env.NODE_ENV !== \"production\") {\n RouteContext.displayName = \"Route\";\n}\nconst RouteErrorContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n RouteErrorContext.displayName = \"RouteError\";\n}\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/v6/hooks/use-href\n */\nfunction useHref(to, _temp) {\n let {\n relative\n } = _temp === void 0 ? {} : _temp;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useHref() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n basename,\n navigator\n } = React.useContext(NavigationContext);\n let {\n hash,\n pathname,\n search\n } = useResolvedPath(to, {\n relative\n });\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname = pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n return navigator.createHref({\n pathname: joinedPathname,\n search,\n hash\n });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/v6/hooks/use-in-router-context\n */\nfunction useInRouterContext() {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/v6/hooks/use-location\n */\nfunction useLocation() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useLocation() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/v6/hooks/use-navigation-type\n */\nfunction useNavigationType() {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/v6/hooks/use-match\n */\nfunction useMatch(pattern) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useMatch() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n pathname\n } = useLocation();\n return React.useMemo(() => matchPath(pattern, UNSAFE_decodePath(pathname)), [pathname, pattern]);\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\n\nconst navigateEffectWarning = \"You should call navigate() in a React.useEffect(), not when \" + \"your component is first rendered.\";\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(cb) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/v6/hooks/use-navigate\n */\nfunction useNavigate() {\n let {\n isDataRoute\n } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\nfunction useNavigateUnstable() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useNavigate() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let dataRouterContext = React.useContext(DataRouterContext);\n let {\n basename,\n future,\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath));\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n let path = resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, options.relative === \"path\");\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n (!!options.replace ? navigator.replace : navigator.push)(path, options.state, options);\n }, [basename, navigator, routePathnamesJson, locationPathname, dataRouterContext]);\n return navigate;\n}\nconst OutletContext = /*#__PURE__*/React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/v6/hooks/use-outlet-context\n */\nfunction useOutletContext() {\n return React.useContext(OutletContext);\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/v6/hooks/use-outlet\n */\nfunction useOutlet(context) {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return /*#__PURE__*/React.createElement(OutletContext.Provider, {\n value: context\n }, outlet);\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/v6/hooks/use-params\n */\nfunction useParams() {\n let {\n matches\n } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? routeMatch.params : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/v6/hooks/use-resolved-path\n */\nfunction useResolvedPath(to, _temp2) {\n let {\n relative\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n future\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath));\n return React.useMemo(() => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, relative === \"path\"), [to, routePathnamesJson, locationPathname, relative]);\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/v6/hooks/use-routes\n */\nfunction useRoutes(routes, locationArg) {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nfunction useRoutesImpl(routes, locationArg, dataRouterState, future) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useRoutes() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches: parentMatches\n } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n if (process.env.NODE_ENV !== \"production\") {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = parentRoute && parentRoute.path || \"\";\n warningOnce(parentPathname, !parentRoute || parentPath.endsWith(\"*\"), \"You rendered descendant (or called `useRoutes()`) at \" + (\"\\\"\" + parentPathname + \"\\\" (under ) but the \") + \"parent route path has no trailing \\\"*\\\". This means if you navigate \" + \"deeper, the parent won't match anymore and therefore the child \" + \"routes will never render.\\n\\n\" + (\"Please change the parent to .\"));\n }\n let locationFromContext = useLocation();\n let location;\n if (locationArg) {\n var _parsedLocationArg$pa;\n let parsedLocationArg = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n !(parentPathnameBase === \"/\" || ((_parsedLocationArg$pa = parsedLocationArg.pathname) == null ? void 0 : _parsedLocationArg$pa.startsWith(parentPathnameBase))) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"When overriding the location using `` or `useRoutes(routes, location)`, \" + \"the location pathname must begin with the portion of the URL pathname that was \" + (\"matched by all parent routes. The current pathname base is \\\"\" + parentPathnameBase + \"\\\" \") + (\"but pathname \\\"\" + parsedLocationArg.pathname + \"\\\" was given in the `location` prop.\")) : UNSAFE_invariant(false) : void 0;\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n let pathname = location.pathname || \"/\";\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n let matches = matchRoutes(routes, {\n pathname: remainingPathname\n });\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(parentRoute || matches != null, \"No routes matched location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \") : void 0;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(matches == null || matches[matches.length - 1].route.element !== undefined || matches[matches.length - 1].route.Component !== undefined || matches[matches.length - 1].route.lazy !== undefined, \"Matched leaf route at location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \" + \"does not have an element or Component. This means it will render an with a \" + \"null value by default resulting in an \\\"empty\\\" page.\") : void 0;\n }\n let renderedMatches = _renderMatches(matches && matches.map(match => Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathname).pathname : match.pathname]),\n pathnameBase: match.pathnameBase === \"/\" ? parentPathnameBase : joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathnameBase).pathname : match.pathnameBase])\n })), parentMatches, dataRouterState, future);\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return /*#__PURE__*/React.createElement(LocationContext.Provider, {\n value: {\n location: _extends({\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\"\n }, location),\n navigationType: Action.Pop\n }\n }, renderedMatches);\n }\n return renderedMatches;\n}\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error) ? error.status + \" \" + error.statusText : error instanceof Error ? error.message : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = {\n padding: \"0.5rem\",\n backgroundColor: lightgrey\n };\n let codeStyles = {\n padding: \"2px 4px\",\n backgroundColor: lightgrey\n };\n let devInfo = null;\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\"Error handled by React Router default ErrorBoundary:\", error);\n devInfo = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", null, \"\\uD83D\\uDCBF Hey developer \\uD83D\\uDC4B\"), /*#__PURE__*/React.createElement(\"p\", null, \"You can provide a way better UX than this when your app throws errors by providing your own \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"ErrorBoundary\"), \" or\", \" \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"errorElement\"), \" prop on your route.\"));\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"h2\", null, \"Unexpected Application Error!\"), /*#__PURE__*/React.createElement(\"h3\", {\n style: {\n fontStyle: \"italic\"\n }\n }, message), stack ? /*#__PURE__*/React.createElement(\"pre\", {\n style: preStyles\n }, stack) : null, devInfo);\n}\nconst defaultErrorElement = /*#__PURE__*/React.createElement(DefaultErrorComponent, null);\nclass RenderErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error\n };\n }\n static getDerivedStateFromError(error) {\n return {\n error: error\n };\n }\n static getDerivedStateFromProps(props, state) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location || state.revalidation !== \"idle\" && props.revalidation === \"idle\") {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation\n };\n }\n componentDidCatch(error, errorInfo) {\n console.error(\"React Router caught the following error during render\", error, errorInfo);\n }\n render() {\n return this.state.error !== undefined ? /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: this.props.routeContext\n }, /*#__PURE__*/React.createElement(RouteErrorContext.Provider, {\n value: this.state.error,\n children: this.props.component\n })) : this.props.children;\n }\n}\nfunction RenderedRoute(_ref) {\n let {\n routeContext,\n match,\n children\n } = _ref;\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (dataRouterContext && dataRouterContext.static && dataRouterContext.staticContext && (match.route.errorElement || match.route.ErrorBoundary)) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n return /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: routeContext\n }, children);\n}\nfunction _renderMatches(matches, parentMatches, dataRouterState, future) {\n var _dataRouterState;\n if (parentMatches === void 0) {\n parentMatches = [];\n }\n if (dataRouterState === void 0) {\n dataRouterState = null;\n }\n if (future === void 0) {\n future = null;\n }\n if (matches == null) {\n var _future;\n if (!dataRouterState) {\n return null;\n }\n if (dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches;\n } else if ((_future = future) != null && _future.v7_partialHydration && parentMatches.length === 0 && !dataRouterState.initialized && dataRouterState.matches.length > 0) {\n // Don't bail if we're initializing with partial hydration and we have\n // router matches. That means we're actively running `patchRoutesOnNavigation`\n // so we should render down the partial matches to the appropriate\n // `HydrateFallback`. We only do this if `parentMatches` is empty so it\n // only impacts the root matches for `RouterProvider` and no descendant\n // ``\n matches = dataRouterState.matches;\n } else {\n return null;\n }\n }\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = (_dataRouterState = dataRouterState) == null ? void 0 : _dataRouterState.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(m => m.route.id && (errors == null ? void 0 : errors[m.route.id]) !== undefined);\n !(errorIndex >= 0) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"Could not find a matching route for errors on route IDs: \" + Object.keys(errors).join(\",\")) : UNSAFE_invariant(false) : void 0;\n renderedMatches = renderedMatches.slice(0, Math.min(renderedMatches.length, errorIndex + 1));\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n if (match.route.id) {\n let {\n loaderData,\n errors\n } = dataRouterState;\n let needsToRunLoader = match.route.loader && loaderData[match.route.id] === undefined && (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error;\n let shouldRenderHydrateFallback = false;\n let errorElement = null;\n let hydrateFallbackElement = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\"route-fallback\", false, \"No `HydrateFallback` element provided to render during initial hydration\");\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = /*#__PURE__*/React.createElement(match.route.Component, null);\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return /*#__PURE__*/React.createElement(RenderedRoute, {\n match: match,\n routeContext: {\n outlet,\n matches,\n isDataRoute: dataRouterState != null\n },\n children: children\n });\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState && (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? /*#__PURE__*/React.createElement(RenderErrorBoundary, {\n location: dataRouterState.location,\n revalidation: dataRouterState.revalidation,\n component: errorElement,\n error: error,\n children: getChildren(),\n routeContext: {\n outlet: null,\n matches,\n isDataRoute: true\n }\n }) : getChildren();\n }, null);\n}\nvar DataRouterHook = /*#__PURE__*/function (DataRouterHook) {\n DataRouterHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterHook[\"UseNavigateStable\"] = \"useNavigate\";\n return DataRouterHook;\n}(DataRouterHook || {});\nvar DataRouterStateHook = /*#__PURE__*/function (DataRouterStateHook) {\n DataRouterStateHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterStateHook[\"UseLoaderData\"] = \"useLoaderData\";\n DataRouterStateHook[\"UseActionData\"] = \"useActionData\";\n DataRouterStateHook[\"UseRouteError\"] = \"useRouteError\";\n DataRouterStateHook[\"UseNavigation\"] = \"useNavigation\";\n DataRouterStateHook[\"UseRouteLoaderData\"] = \"useRouteLoaderData\";\n DataRouterStateHook[\"UseMatches\"] = \"useMatches\";\n DataRouterStateHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterStateHook[\"UseNavigateStable\"] = \"useNavigate\";\n DataRouterStateHook[\"UseRouteId\"] = \"useRouteId\";\n return DataRouterStateHook;\n}(DataRouterStateHook || {});\nfunction getDataRouterConsoleError(hookName) {\n return hookName + \" must be used within a data router. See https://reactrouter.com/v6/routers/picking-a-router.\";\n}\nfunction useDataRouterContext(hookName) {\n let ctx = React.useContext(DataRouterContext);\n !ctx ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return ctx;\n}\nfunction useDataRouterState(hookName) {\n let state = React.useContext(DataRouterStateContext);\n !state ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return state;\n}\nfunction useRouteContext(hookName) {\n let route = React.useContext(RouteContext);\n !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n !thisRoute.route.id ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, hookName + \" can only be used on routes that contain a unique \\\"id\\\"\") : UNSAFE_invariant(false) : void 0;\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nfunction useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nfunction useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nfunction useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(() => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation\n }), [dataRouterContext.router.revalidate, state.revalidation]);\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nfunction useMatches() {\n let {\n matches,\n loaderData\n } = useDataRouterState(DataRouterStateHook.UseMatches);\n return React.useMemo(() => matches.map(m => UNSAFE_convertRouteMatchToUiMatch(m, loaderData)), [matches, loaderData]);\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nfunction useLoaderData() {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n if (state.errors && state.errors[routeId] != null) {\n console.error(\"You cannot `useLoaderData` in an errorElement (routeId: \" + routeId + \")\");\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nfunction useRouteLoaderData(routeId) {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nfunction useActionData() {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nfunction useRouteError() {\n var _state$errors;\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return (_state$errors = state.errors) == null ? void 0 : _state$errors[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nfunction useAsyncValue() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nfunction useAsyncError() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._error;\n}\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nfunction useBlocker(shouldBlock) {\n let {\n router,\n basename\n } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(arg => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = arg;\n return shouldBlock({\n currentLocation: _extends({}, currentLocation, {\n pathname: stripBasename(currentLocation.pathname, basename) || currentLocation.pathname\n }),\n nextLocation: _extends({}, nextLocation, {\n pathname: stripBasename(nextLocation.pathname, basename) || nextLocation.pathname\n }),\n historyAction\n });\n }, [basename, shouldBlock]);\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey) ? state.blockers.get(blockerKey) : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable() {\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, _extends({\n fromRouteId: id\n }, options));\n }\n }, [router, id]);\n return navigate;\n}\nconst alreadyWarned$1 = {};\nfunction warningOnce(key, cond, message) {\n if (!cond && !alreadyWarned$1[key]) {\n alreadyWarned$1[key] = true;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, message) : void 0;\n }\n}\n\nconst alreadyWarned = {};\nfunction warnOnce(key, message) {\n if (process.env.NODE_ENV !== \"production\" && !alreadyWarned[message]) {\n alreadyWarned[message] = true;\n console.warn(message);\n }\n}\nconst logDeprecation = (flag, msg, link) => warnOnce(flag, \"\\u26A0\\uFE0F React Router Future Flag Warning: \" + msg + \". \" + (\"You can use the `\" + flag + \"` future flag to opt-in early. \") + (\"For more information, see \" + link + \".\"));\nfunction logV6DeprecationWarnings(renderFuture, routerFuture) {\n if ((renderFuture == null ? void 0 : renderFuture.v7_startTransition) === undefined) {\n logDeprecation(\"v7_startTransition\", \"React Router will begin wrapping state updates in `React.startTransition` in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_starttransition\");\n }\n if ((renderFuture == null ? void 0 : renderFuture.v7_relativeSplatPath) === undefined && (!routerFuture || routerFuture.v7_relativeSplatPath === undefined)) {\n logDeprecation(\"v7_relativeSplatPath\", \"Relative route resolution within Splat routes is changing in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath\");\n }\n if (routerFuture) {\n if (routerFuture.v7_fetcherPersist === undefined) {\n logDeprecation(\"v7_fetcherPersist\", \"The persistence behavior of fetchers is changing in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_fetcherpersist\");\n }\n if (routerFuture.v7_normalizeFormMethod === undefined) {\n logDeprecation(\"v7_normalizeFormMethod\", \"Casing of `formMethod` fields is being normalized to uppercase in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_normalizeformmethod\");\n }\n if (routerFuture.v7_partialHydration === undefined) {\n logDeprecation(\"v7_partialHydration\", \"`RouterProvider` hydration behavior is changing in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_partialhydration\");\n }\n if (routerFuture.v7_skipActionErrorRevalidation === undefined) {\n logDeprecation(\"v7_skipActionErrorRevalidation\", \"The revalidation behavior after 4xx/5xx `action` responses is changing in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_skipactionerrorrevalidation\");\n }\n }\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nfunction RouterProvider(_ref) {\n let {\n fallbackElement,\n router,\n future\n } = _ref;\n let [state, setStateImpl] = React.useState(router.state);\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n }, [setStateImpl, v7_startTransition]);\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n React.useEffect(() => {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(fallbackElement == null || !router.future.v7_partialHydration, \"`` is deprecated when using \" + \"`v7_partialHydration`, use a `HydrateFallback` component instead\") : void 0;\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n let navigator = React.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: n => router.navigate(n),\n push: (to, state, opts) => router.navigate(to, {\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n }),\n replace: (to, state, opts) => router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\";\n let dataRouterContext = React.useMemo(() => ({\n router,\n navigator,\n static: false,\n basename\n }), [router, navigator, basename]);\n React.useEffect(() => logV6DeprecationWarnings(future, router.future), [router, future]);\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a - - - -
    - - - From 9249db2ae9a46bac42217798ae5c8e18aab78e17 Mon Sep 17 00:00:00 2001 From: "elogio.mi@gmail.com" Date: Wed, 30 Jul 2025 15:42:25 +0900 Subject: [PATCH 47/86] =?UTF-8?q?[FIX]=20favicon=20=EB=B0=8F=20title=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- favicon.png | Bin 0 -> 202054 bytes index.html | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 favicon.png diff --git a/favicon.png b/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..0ad5ec451fe1ee212c7b7be0414bfcd8ecd90317 GIT binary patch literal 202054 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

    ^3u(V2>tE&@0#l9spc6c?j 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

    eTRsMJoK2UtZHB2JBi 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®AW(VaXSOpMNP*Xkja!CF!;U2W($V+Syapa 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 A&j0`b literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 744f081..b2db83d 100644 --- a/index.html +++ b/index.html @@ -2,9 +2,9 @@ - + - 성향 테스트 + MindScape

    From 870c28e3d6dea5550ff74093a7761c2b4bc37d81 Mon Sep 17 00:00:00 2001 From: "elogio.mi@gmail.com" Date: Wed, 30 Jul 2025 15:43:26 +0900 Subject: [PATCH 48/86] =?UTF-8?q?[FIX]=20env=20=EC=82=AD=EC=A0=9C=20->=20s?= =?UTF-8?q?ecret=20=EC=9C=BC=EB=A1=9C=20=EC=9D=B4=EC=A0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- env | 1 - 1 file changed, 1 deletion(-) delete mode 100644 env diff --git a/env b/env deleted file mode 100644 index 59c1c18..0000000 --- a/env +++ /dev/null @@ -1 +0,0 @@ -VITE_API_URL = http://localhost:8080 \ No newline at end of file From 49c81a0aa3ccbe9d13276a8a5463c23e72809437 Mon Sep 17 00:00:00 2001 From: "elogio.mi@gmail.com" Date: Thu, 31 Jul 2025 09:58:57 +0900 Subject: [PATCH 49/86] =?UTF-8?q?[FIX]=20cloudFront=20=EC=BA=90=EC=8B=9C?= =?UTF-8?q?=EC=A0=95=EC=B1=85=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- terraform/modules/cloudfront/main.tf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/terraform/modules/cloudfront/main.tf b/terraform/modules/cloudfront/main.tf index b37776a..d1c6988 100644 --- a/terraform/modules/cloudfront/main.tf +++ b/terraform/modules/cloudfront/main.tf @@ -37,14 +37,14 @@ resource "aws_cloudfront_distribution" "fe" { target_origin_id = var.bucket_id forwarded_values { - # query 스트링 포워딩 안함 - query_string = false + + query_string = true # CORS 처리 위해 Origin, Access-Control-* 헤더만 전달 headers = ["Origin", "Access-Control-Request-Method", "Access-Control-Request-Headers"] cookies { - # 쿠키 전달 안함 - forward = "none" + + forward = "all" } } From de00e70297f37d8d7f103794a49471c75bc47474 Mon Sep 17 00:00:00 2001 From: "elogio.mi@gmail.com" Date: Thu, 31 Jul 2025 15:07:17 +0900 Subject: [PATCH 50/86] =?UTF-8?q?[FIX]=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EA=B3=84=EC=A0=95=20=EC=95=88=EB=82=B4=EB=9E=80=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/LoginPage.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/LoginPage.jsx b/src/pages/LoginPage.jsx index 108f542..3c3dde2 100644 --- a/src/pages/LoginPage.jsx +++ b/src/pages/LoginPage.jsx @@ -126,7 +126,7 @@ export default function LoginPage() {

    -
    + {/*

    🧪 테스트 계정

    @@ -137,7 +137,7 @@ export default function LoginPage() {

    * 백엔드 서버가 없어도 테스트 가능합니다

    -
    +
    */}
    From d32ae60ad5e7e36317f56ca02d09cf7ce93ba6e4 Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Fri, 1 Aug 2025 13:48:59 +0900 Subject: [PATCH 51/86] fix(terraform): delete S3 logging bucket --- terraform/modules/cloudfront/main.tf | 10 ++-- terraform/modules/s3/main.tf | 70 ++++++++++++++-------------- 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/terraform/modules/cloudfront/main.tf b/terraform/modules/cloudfront/main.tf index d1c6988..8a4566c 100644 --- a/terraform/modules/cloudfront/main.tf +++ b/terraform/modules/cloudfront/main.tf @@ -24,11 +24,11 @@ resource "aws_cloudfront_distribution" "fe" { default_root_object = "index.html" aliases = var.domain_names - logging_config { - include_cookies = false - bucket = var.log_bucket_domain_name - prefix = "${var.prefix}/" - } + # logging_config { + # include_cookies = false + # bucket = var.log_bucket_domain_name + # prefix = "${var.prefix}/" + # } # 기본 캐싱 정책 default_cache_behavior { diff --git a/terraform/modules/s3/main.tf b/terraform/modules/s3/main.tf index 1ec30c9..9c98199 100644 --- a/terraform/modules/s3/main.tf +++ b/terraform/modules/s3/main.tf @@ -44,38 +44,38 @@ resource "aws_s3_bucket_server_side_encryption_configuration" "fe" { } } -# log bucket 생성 -resource "aws_s3_bucket" "fe_log" { - bucket = var.log_bucket_name - - tags = { - "Name" = "${var.prefix}-log-bucket" - } -} - -resource "aws_s3_bucket_public_access_block" "fe_log" { - bucket = aws_s3_bucket.fe_log.id - - # 버킷 acl 활성화 - block_public_acls = false - block_public_policy = false - ignore_public_acls = false - restrict_public_buckets = true -} - -# 버킷 객체 소유권 => 버킷 owner, cloudfront가 로그 업로드 허용 -resource "aws_s3_bucket_ownership_controls" "fe_log" { - bucket = aws_s3_bucket.fe_log.id - rule { - object_ownership = "BucketOwnerPreferred" - } -} - -# AWS log delivery 서비스가 로그를 쓸 수 있도록 acl 설정 -resource "aws_s3_bucket_acl" "fe_log" { - # 소유권 설정 먼저 적용 - depends_on = [aws_s3_bucket_ownership_controls.fe_log] - - bucket = aws_s3_bucket.fe_log.id - acl = "log-delivery-write" -} \ No newline at end of file +# # log bucket 생성 +# resource "aws_s3_bucket" "fe_log" { +# bucket = var.log_bucket_name +# +# tags = { +# "Name" = "${var.prefix}-log-bucket" +# } +# } +# +# resource "aws_s3_bucket_public_access_block" "fe_log" { +# bucket = aws_s3_bucket.fe_log.id +# +# # 버킷 acl 활성화 +# block_public_acls = false +# block_public_policy = false +# ignore_public_acls = false +# restrict_public_buckets = true +# } +# +# # 버킷 객체 소유권 => 버킷 owner, cloudfront가 로그 업로드 허용 +# resource "aws_s3_bucket_ownership_controls" "fe_log" { +# bucket = aws_s3_bucket.fe_log.id +# rule { +# object_ownership = "BucketOwnerPreferred" +# } +# } +# +# # AWS log delivery 서비스가 로그를 쓸 수 있도록 acl 설정 +# resource "aws_s3_bucket_acl" "fe_log" { +# # 소유권 설정 먼저 적용 +# depends_on = [aws_s3_bucket_ownership_controls.fe_log] +# +# bucket = aws_s3_bucket.fe_log.id +# acl = "log-delivery-write" +# } \ No newline at end of file From fd483ccd44a9641156b7331d01f4a683eb1f7ebf Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Fri, 1 Aug 2025 13:51:02 +0900 Subject: [PATCH 52/86] fix(terraform): delete S3 logging bucket --- terraform/modules/s3/outputs.tf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/terraform/modules/s3/outputs.tf b/terraform/modules/s3/outputs.tf index 0e5af8b..268e6c1 100644 --- a/terraform/modules/s3/outputs.tf +++ b/terraform/modules/s3/outputs.tf @@ -18,7 +18,7 @@ output "bucket_regional_domain_name" { value = aws_s3_bucket.fe.bucket_regional_domain_name } -output "log_bucket_domain_name" { - description = "S3 log bucket domain name" - value = aws_s3_bucket.fe_log.bucket_domain_name -} \ No newline at end of file +# output "log_bucket_domain_name" { +# description = "S3 log bucket domain name" +# value = aws_s3_bucket.fe_log.bucket_domain_name +# } \ No newline at end of file From 9a4aee09bf376261571562aeb944492b9179685d Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Fri, 1 Aug 2025 13:54:23 +0900 Subject: [PATCH 53/86] fix(terraform): delete S3 logging bucket --- terraform/main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terraform/main.tf b/terraform/main.tf index b0fb3aa..97e7adc 100644 --- a/terraform/main.tf +++ b/terraform/main.tf @@ -54,7 +54,7 @@ module "cloudfront" { bucket_regional_domain_name = module.s3.bucket_regional_domain_name domain_names = [var.domain_name, "www.${var.domain_name}"] acm_certificate_arn = module.acm.certificate_arn - log_bucket_domain_name = module.s3.log_bucket_domain_name + # log_bucket_domain_name = module.s3.log_bucket_domain_name } module "route53" { From b2af52dc6c963784495d80a22051bcec725cf77a Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Thu, 7 Aug 2025 14:06:02 +0900 Subject: [PATCH 54/86] feat(pagination): Pagination --- src/lib/api.js | 4 +- src/pages/MyPage.jsx | 89 +++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 85 insertions(+), 8 deletions(-) diff --git a/src/lib/api.js b/src/lib/api.js index a62f717..fc5c4bb 100644 --- a/src/lib/api.js +++ b/src/lib/api.js @@ -320,9 +320,9 @@ export const contentAPI = { }, //mypage 컨텐츠 히스토리 조회 api -getMypage: async (userId) => { +getMypage: async (userId, page, size) => { try { - return await contentApiRequest(`/test/history?userId=${encodeURIComponent(userId)}`); + return await contentApiRequest(`/test/history?userId=${encodeURIComponent(userId)}&page=${page}&size=${size}`); } catch (error) { console.log("Backend API not available, using localStorage (dev mode)..."); diff --git a/src/pages/MyPage.jsx b/src/pages/MyPage.jsx index 82bf4b2..edc1721 100644 --- a/src/pages/MyPage.jsx +++ b/src/pages/MyPage.jsx @@ -20,6 +20,10 @@ export default function MyPage() { const [resultHistory, setResultHistory] = useState([]); const [recommendations, setRecommendations] = useState(null); const [loading, setLoading] = useState(true) + const [currentPage, setCurrentPage] = useState(0) + const [totalPages, setTotalPages] = useState(1) + const [pageSize] = useState(5) + const [pageLoading, setPageLoading] = useState(false) const { toast } = useToast() useEffect(() => { @@ -44,13 +48,23 @@ export default function MyPage() { } - // 3. 추천 히스토리 목록 - const historyData = await contentAPI.getMypage(user.id); + // 3. 전체 테스트 결과 개수를 사용해서 총 페이지 수 계산 + const totalResults = resultData ? resultData.length : 0; + const calculatedTotalPages = Math.max(1, Math.ceil(totalResults / pageSize)); + setTotalPages(calculatedTotalPages); + console.log(`총 ${totalResults}개 결과, ${calculatedTotalPages} 페이지`); + + // 4. 추천 히스토리 목록 + const historyData = await contentAPI.getMypage(user.id, 0, pageSize); console.log("📦 마이페이지 추천 히스토리:", historyData); - // testId 기준 내림차순 정렬 - const sortedHistory = historyData.sort((a, b) => b.testId - a.testId); - setHistory(sortedHistory); // ✅ 추천 히스토리 저장 + if (historyData && historyData.length > 0) { + // testId 기준 내림차순 정렬 + const sortedHistory = historyData.sort((a, b) => b.testId - a.testId); + setHistory(sortedHistory); // ✅ 추천 히스토리 저장 + } else { + setHistory([]); + } } catch (err) { console.error("❌ 데이터 로딩 실패:", err); @@ -71,6 +85,33 @@ export default function MyPage() { return resultHistory.find(r => r.testId === testId); } + const goToPage = async (page) => { + if (page === currentPage || pageLoading || page < 0 || page >= totalPages) return; + + setPageLoading(true); + try { + const pageData = await contentAPI.getMypage(user.id, page, pageSize); + + if (pageData && pageData.length > 0) { + const sortedPageData = pageData.sort((a, b) => b.testId - a.testId); + setHistory(sortedPageData); + } else { + setHistory([]); + } + + setCurrentPage(page); + } catch (error) { + console.error("페이지 로드 실패:", error); + toast({ + title: "오류", + description: "페이지를 불러오는 중 문제가 발생했습니다.", + variant: "destructive", + }); + } finally { + setPageLoading(false); + } + }; + const handleHistoryClick = (item) => { console.log("📝 상세보기 클릭됨:", item); setSelectedHistory(item); @@ -168,6 +209,42 @@ export default function MyPage() {
    ); })} + + {/* Pagination */} + {totalPages > 1 && ( +
    + + + {Array.from({ length: totalPages }, (_, index) => ( + + ))} + + +
    + )}

    YtU%D< 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

  • )} @@ -244,7 +321,7 @@ export default function MyPage() {
    ))}
    -
    + {/* Music 탭 */} From 1354a8f6a11ee900da20d53b71621d0709a8c4f0 Mon Sep 17 00:00:00 2001 From: yejipo Date: Thu, 7 Aug 2025 16:19:45 +0900 Subject: [PATCH 55/86] =?UTF-8?q?feat:=20=EB=8B=A4=ED=81=AC=EB=AA=A8?= =?UTF-8?q?=EB=93=9C=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20=EB=8B=A4=ED=81=AC?= =?UTF-8?q?=EB=AA=A8=EB=93=9C=EC=9A=A9=20=EB=A1=9C=EA=B3=A0=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 --- public/logo-dark.png | Bin 0 -> 196793 bytes src/App.jsx | 12 +- src/components/header.jsx | 50 ++++++- src/pages/HomePage.jsx | 28 ++-- src/pages/LoginPage.jsx | 48 ++---- src/pages/MyPage.jsx | 296 ++++++++++++++++++------------------- src/pages/RegisterPage.jsx | 27 +--- src/pages/ResultPage.jsx | 146 +++++++++--------- src/pages/TestPage.jsx | 188 +++++++++++------------ src/utils/theme.js | 27 ++++ tailwind.config.js | 1 + 11 files changed, 419 insertions(+), 404 deletions(-) create mode 100644 public/logo-dark.png create mode 100644 src/utils/theme.js diff --git a/public/logo-dark.png b/public/logo-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..507cacc2a8310f2a492a418afda77d58766efded GIT binary patch literal 196793 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
    -
    - - 로고 - +
    +
    +
    + +
    + 로고 +
    + + + {/* 다크모드 토글 버튼 - 로고 옆 */} + +
    {user ? ( <> - 안녕하세요, {user.username}님 + + 안녕하세요, {user.username}님 +
    ) -} \ No newline at end of file +} diff --git a/src/pages/HomePage.jsx b/src/pages/HomePage.jsx index e4517bb..58268b0 100644 --- a/src/pages/HomePage.jsx +++ b/src/pages/HomePage.jsx @@ -5,41 +5,49 @@ import { Header } from "../components/header" export default function HomePage() { return ( -
    +
    -

    나만의 성향을 발견하세요

    -

    +

    + 나만의 성향을 발견하세요 +

    +

    간단한 테스트를 통해 당신의 성향을 알아보고,
    맞춤형 영화, 책, 음악을 추천받아보세요.

    -
    +

    테스트 소개

    -
    +
    📝

    간단한 설문

    -

    20개의 질문으로 구성된 간단한 성향 테스트

    +

    + 20개의 질문으로 구성된 간단한 성향 테스트 +

    -
    +
    🎯

    정확한 분석

    -

    과학적 근거를 바탕으로 한 성향 분석

    +

    + 과학적 근거를 바탕으로 한 성향 분석 +

    -
    +
    🎁

    맞춤 추천

    -

    당신의 성향에 맞는 컨텐츠 추천

    +

    + 당신의 성향에 맞는 컨텐츠 추천 +

    diff --git a/src/pages/LoginPage.jsx b/src/pages/LoginPage.jsx index 3c3dde2..7b064cb 100644 --- a/src/pages/LoginPage.jsx +++ b/src/pages/LoginPage.jsx @@ -54,15 +54,17 @@ export default function LoginPage() { } return ( -
    +
    - + - 로그인 -

    계정에 로그인하여 성향 테스트를 시작하세요

    + 로그인 +

    + 계정에 로그인하여 성향 테스트를 시작하세요 +

    @@ -95,49 +97,25 @@ export default function LoginPage() { -
    -

    +

    계정이 없으신가요?{" "} 회원가입

    - - {/*
    -

    🧪 테스트 계정

    -
    -

    - 계정 1: testuser / password123 -

    -

    - 계정 2: devuser / dev123 -

    -
    -

    * 백엔드 서버가 없어도 테스트 가능합니다

    -
    */}
    diff --git a/src/pages/MyPage.jsx b/src/pages/MyPage.jsx index 82bf4b2..381a5b8 100644 --- a/src/pages/MyPage.jsx +++ b/src/pages/MyPage.jsx @@ -1,88 +1,66 @@ "use client" -import React from 'react' -import { useState, useEffect } from "react" -import { useNavigate } from "react-router-dom" // useNavigate 임포트 -import { useAuth } from "../components/auth-provider" // 상대 경로로 변경 -import { Header } from "../components/header" // 상대 경로로 변경 -import { Card, CardContent, CardHeader, CardTitle } from "../components/ui/card" // 상대 경로로 변경 -import { Button } from "../components/ui/button" // 상대 경로로 변경 -import { Tabs, TabsContent, TabsList, TabsTrigger } from "../components/ui/tabs" // 상대 경로로 변경 -import { testAPI, authAPI,contentAPI } from "../lib/api" // 상대 경로로 변경 -import { useToast } from "../hooks/use-toast" // 상대 경로로 변경 +import React, { useState, useEffect } from "react" +import { useNavigate } from "react-router-dom" +import { useAuth } from "../components/auth-provider" +import { Header } from "../components/header" +import { Card, CardContent, CardHeader, CardTitle } from "../components/ui/card" +import { Button } from "../components/ui/button" +import { Tabs, TabsContent, TabsList, TabsTrigger } from "../components/ui/tabs" +import { testAPI, authAPI, contentAPI } from "../lib/api" +import { useToast } from "../hooks/use-toast" export default function MyPage() { const { user, isLoading } = useAuth() - const navigate = useNavigate() // useRouter 대신 useNavigate 사용 + const navigate = useNavigate() const [history, setHistory] = useState([]) - const [latestResult, setLatestResult] = useState(null); - const [selectedHistory, setSelectedHistory] = useState(null); - const [resultHistory, setResultHistory] = useState([]); - const [recommendations, setRecommendations] = useState(null); + const [latestResult, setLatestResult] = useState(null) + const [selectedHistory, setSelectedHistory] = useState(null) + const [resultHistory, setResultHistory] = useState([]) + const [recommendations, setRecommendations] = useState(null) const [loading, setLoading] = useState(true) const { toast } = useToast() useEffect(() => { - const fetchAll = async () => { - if (!user || isLoading) return; + const fetchAll = async () => { + if (!user || isLoading) return - try { - // 1. 사용자 기본 정보 확인 - const currentUser = await authAPI.getCurrentUser(); - console.log("✅ /auth/me 응답:", currentUser); + try { + const currentUser = await authAPI.getCurrentUser() - // 2. 전체 테스트 결과 → 최신 성향 추출용 - const resultData = await testAPI.getTestResultHistory(user.id); // 이름 충돌 방지 - console.log("📦 전체 테스트 기록:", resultData); - setResultHistory(resultData); + const resultData = await testAPI.getTestResultHistory(user.id) + setResultHistory(resultData) - if (resultData && resultData.length > 0) { - const sorted = resultData.sort((a, b) => b.testId - a.testId); - const latest = sorted[0]; - console.log("🎯 최신 성향 결과:", latest); - setLatestResult(latest); - } - - - // 3. 추천 히스토리 목록 - const historyData = await contentAPI.getMypage(user.id); - console.log("📦 마이페이지 추천 히스토리:", historyData); - - // testId 기준 내림차순 정렬 - const sortedHistory = historyData.sort((a, b) => b.testId - a.testId); - setHistory(sortedHistory); // ✅ 추천 히스토리 저장 - - } catch (err) { - console.error("❌ 데이터 로딩 실패:", err); - toast({ - title: "오류", - description: "마이페이지 정보를 불러오는 중 문제가 발생했습니다.", - variant: "destructive", - }); - } finally { - setLoading(false); - } - }; - - fetchAll(); -}, [user, isLoading]); + if (resultData && resultData.length > 0) { + const sorted = resultData.sort((a, b) => b.testId - a.testId) + setLatestResult(sorted[0]) + } - const getTestInfoById = (testId) => { - return resultHistory.find(r => r.testId === testId); + const historyData = await contentAPI.getMypage(user.id) + const sortedHistory = historyData.sort((a, b) => b.testId - a.testId) + setHistory(sortedHistory) + } catch (err) { + console.error("❌ 데이터 로딩 실패:", err) + toast({ + title: "오류", + description: "마이페이지 정보를 불러오는 중 문제가 발생했습니다.", + variant: "destructive", + }) + } finally { + setLoading(false) + } } - const handleHistoryClick = (item) => { - console.log("📝 상세보기 클릭됨:", item); - setSelectedHistory(item); - setRecommendations(item.Recommend); // 이미 응답 내에 있음 -}; + fetchAll() + }, [user, isLoading]) - if (isLoading || loading) { - return
    로딩 중...
    + const getTestInfoById = (testId) => { + return resultHistory.find((r) => r.testId === testId) } - if (!user) { - return null + const handleHistoryClick = (item) => { + setSelectedHistory(item) + setRecommendations(item.Recommend) } const formatDate = (dateString) => { @@ -96,8 +74,14 @@ export default function MyPage() { }) } + if (isLoading || loading) { + return
    로딩 중...
    + } + + if (!user) return null + return ( -
    +
    @@ -105,48 +89,50 @@ export default function MyPage() {

    마이페이지

    {/* 사용자 정보 */} - - - 내 정보 - - -
    -
    -

    이름

    -

    {user.username}

    -
    -
    -

    내 성향

    -

    - {latestResult ? latestResult.userType : "테스트를 완료해주세요"} -

    - {latestResult && ( -

    {latestResult.typeDescription}

    - )} + + + 내 정보 + + +
    +
    +

    이름

    +

    {user.username}

    +
    +
    +

    내 성향

    +

    + {latestResult ? latestResult.userType : "테스트를 완료해주세요"} +

    + {latestResult && ( +

    + {latestResult.typeDescription} +

    + )} +
    -
    - - + + {/* 추천 히스토리 */} - + 추천받은 컨텐츠 히스토리 {history.length === 0 ? (
    -

    아직 테스트를 완료하지 않았습니다.

    +

    아직 테스트를 완료하지 않았습니다.

    ) : (
    {history.map((item, index) => { - const testInfo = getTestInfoById(item.testId); // ← 여기서 매칭 + const testInfo = getTestInfoById(item.testId) return (
    handleHistoryClick(item)} >
    @@ -154,10 +140,10 @@ export default function MyPage() {

    {testInfo?.userType || "성향 없음"}

    -

    +

    {testInfo?.typeDescription || "설명 없음"}

    -

    +

    {testInfo?.createdAt ? formatDate(testInfo.createdAt) : "날짜 없음"}

    @@ -166,18 +152,16 @@ export default function MyPage() {
    - ); + ) })}
    )}
    - - {/* 선택된 히스토리 상세 */} {selectedHistory && recommendations && ( - + {selectedHistory.personality} - {formatDate(selectedHistory.completedAt)} @@ -191,66 +175,78 @@ export default function MyPage() { 🎵 음악 - {/* Movie 탭 */} + {/* Movie */} -
    - {recommendations?.Movie?.map((movie, index) => ( -
    - {movie.poster_path && ( - {movie.title} - )} -
    -

    제목: {movie.title}

    - - {movie.release_date && ( -

    - 개봉일: {new Date(movie.release_date).toLocaleDateString("ko-KR")} -

    - )} - - {movie.overview && ( -

    - 설명: {movie.overview} -

    +
    + {recommendations?.Movie?.map((movie, index) => ( +
    + {movie.poster_path && ( + {movie.title} )} +
    +

    제목: {movie.title}

    + {movie.release_date && ( +

    + 개봉일: {new Date(movie.release_date).toLocaleDateString("ko-KR")} +

    + )} + {movie.overview && ( +

    + 설명: {movie.overview} +

    + )} +
    -
    - ))} -
    - - - {/* Book 탭 */} + ))} +
    + - -
    - {recommendations?.Book?.map((book, index) => ( -
    - {book.image && ( - {book.title} - )} -
    -

    {book.title}

    - {book.author &&

    저자: {book.author}

    } - {book.description &&

    설명: {book.description}

    } + {/* Book */} + +
    + {recommendations?.Book?.map((book, index) => ( +
    + {book.image && ( + {book.title} + )} +
    +

    {book.title}

    + {book.author && ( +

    저자: {book.author}

    + )} + {book.description && ( +

    + 설명: {book.description} +

    + )} +
    -
    - ))} -
    - + ))} +
    + - {/* Music 탭 */} + {/* Music */}
    {recommendations?.Music?.map((music, index) => ( -
    +
    {music.album && (

    제목: {music.title}

    {music.artist && ( -

    아티스트: {music.artist}

    +

    아티스트: {music.artist}

    )}
    diff --git a/src/pages/RegisterPage.jsx b/src/pages/RegisterPage.jsx index 68ac326..ee25bbb 100644 --- a/src/pages/RegisterPage.jsx +++ b/src/pages/RegisterPage.jsx @@ -7,7 +7,6 @@ import { Button } from "../components/ui/button" import { Card, CardContent, CardHeader, CardTitle } from "../components/ui/card" import { Input } from "../components/ui/input" import { Label } from "../components/ui/label" -import { Separator } from "../components/ui/separator" import { useToast } from "../hooks/use-toast" import { authAPI } from "../lib/api" @@ -21,7 +20,6 @@ export default function RegisterPage() { const navigate = useNavigate() const { toast } = useToast() - // 중복확인 const checkAccountId = async () => { if (!accountId.trim()) { toast({ @@ -34,9 +32,7 @@ export default function RegisterPage() { try { const response = await authAPI.checkAccountId(accountId) setIsAccountIdValid(true) - toast({ - description: "사용 가능한 아이디입니다." - }) + toast({ description: "사용 가능한 아이디입니다." }) } catch (error) { setIsAccountIdValid(false) toast({ @@ -70,9 +66,7 @@ export default function RegisterPage() { try { const response = await authAPI.register(username, accountId, password) if (response.success) { - toast({ - description: "회원가입이 완료되었습니다." - }) + toast({ description: "회원가입이 완료되었습니다." }) navigate("/login") } } catch (error) { @@ -86,13 +80,13 @@ export default function RegisterPage() { } return ( -
    +
    - + - 회원가입 + 회원가입 @@ -119,10 +113,7 @@ export default function RegisterPage() { }} required /> -
    @@ -150,11 +141,7 @@ export default function RegisterPage() { required />
    - diff --git a/src/pages/ResultPage.jsx b/src/pages/ResultPage.jsx index f349b6e..8c98c47 100644 --- a/src/pages/ResultPage.jsx +++ b/src/pages/ResultPage.jsx @@ -1,88 +1,69 @@ "use client" -import React from 'react' -import { useState, useEffect } from "react" -import { useSearchParams } from "react-router-dom"; -import { useNavigate } from "react-router-dom" // useNavigate 임포트 -import { useAuth } from "../components/auth-provider" // 상대 경로로 변경 -import { Header } from "../components/header" // 상대 경로로 변경 -import { Button } from "../components/ui/button" // 상대 경로로 변경 -import { Card, CardContent, CardHeader, CardTitle } from "../components/ui/card" // 상대 경로로 변경 -import { Tabs, TabsContent, TabsList, TabsTrigger } from "../components/ui/tabs" // 상대 경로로 변경 -import { testAPI,contentAPI } from "../lib/api" // 상대 경로로 변경 -import { useToast } from "../hooks/use-toast" // 상대 경로로 변경 +import React, { useState, useEffect } from "react" +import { useSearchParams, useNavigate } from "react-router-dom" +import { useAuth } from "../components/auth-provider" +import { Header } from "../components/header" +import { Button } from "../components/ui/button" +import { Card, CardContent, CardHeader, CardTitle } from "../components/ui/card" +import { Tabs, TabsContent, TabsList, TabsTrigger } from "../components/ui/tabs" +import { testAPI, contentAPI } from "../lib/api" +import { useToast } from "../hooks/use-toast" export default function ResultPage() { const { user, isLoading } = useAuth() - const navigate = useNavigate() // useRouter 대신 useNavigate 사용 - const [latestResult, setLatestResult] = useState(null); // 👉 상단 성향용 - const [testDetail, setTestDetail] = useState(null); + const navigate = useNavigate() + const [latestResult, setLatestResult] = useState(null) + const [testDetail, setTestDetail] = useState(null) const [recommendations, setRecommendations] = useState(null) const [loading, setLoading] = useState(true) const { toast } = useToast() - const [searchParams] = useSearchParams(); - const testId = searchParams.get("testId"); -console.log("넘겨받은 testId:", testId); + const [searchParams] = useSearchParams() + const testId = searchParams.get("testId") useEffect(() => { - const fetchBoth = async () => { - if (!user || isLoading) return; - - try { - // 1. testId로 상세 테스트 결과 조회 - if (testId) { - const res = await contentAPI.getTestHistory(testId); - console.log("✅ testId 기반 결과:", res); - setTestDetail(res); - setRecommendations(res.Recommend); - console.log("✅ testId 기반 결과- Recommend만:", res.Recommend); - } - - // 2. user.id로 테스트 기록 조회 - const history = await testAPI.getTestResultHistory(user.id); - console.log("📦 전체 기록 목록:", history); - - if (history && history.length > 0) { - const sorted = history.sort((a, b) => b.testId - a.testId); - const latest = sorted[0]; - console.log("🔥 testId 가장 큰 최신 기록:", latest); - setLatestResult(latest); //최신 결과 + const fetchBoth = async () => { + if (!user || isLoading) return + + try { + if (testId) { + const res = await contentAPI.getTestHistory(testId) + setTestDetail(res) + setRecommendations(res.Recommend) + } + + const history = await testAPI.getTestResultHistory(user.id) + if (history && history.length > 0) { + const sorted = history.sort((a, b) => b.testId - a.testId) + setLatestResult(sorted[0]) + } + } catch (error) { + toast({ + title: "오류", + description: "결과를 불러오는 중 문제가 발생했습니다.", + variant: "destructive", + }) + } finally { + setLoading(false) } - - } catch (error) { - console.error("❌ 데이터 요청 실패:", error); - toast({ - title: "오류", - description: "결과를 불러오는 중 문제가 발생했습니다.", - variant: "destructive", - }); - } finally { - setLoading(false); } - }; - - fetchBoth(); -}, [user, isLoading, testId]); + fetchBoth() + }, [user, isLoading, testId]) if (isLoading || loading) { return
    로딩 중...
    } - if (!user || !recommendations) { - return null - } - // if (!user || !testResult || !recommendations) { - // return null - // } + if (!user || !recommendations) return null return ( -
    +
    - {/* 상단 절반 - 성향 결과 */} + {/* 상단 - 성향 결과 */}
    @@ -100,8 +81,8 @@ console.log("넘겨받은 testId:", testId);
    - {/* 하단 절반 - 추천 컨텐츠 */} - + {/* 하단 - 추천 콘텐츠 */} + 맞춤 추천 컨텐츠 @@ -113,10 +94,14 @@ console.log("넘겨받은 testId:", testId); 🎵 음악 + {/* 영화 */}
    {recommendations?.Movie?.map((movie, index) => ( -
    +
    {movie.poster_path && (

    제목: {movie.title}

    - {movie.release_date && ( -

    +

    개봉일: {new Date(movie.release_date).toLocaleDateString("ko-KR")}

    )} - {movie.overview && ( -

    +

    설명: {movie.overview}

    )} @@ -144,10 +127,14 @@ console.log("넘겨받은 testId:", testId);
    + {/* 책 */}
    {recommendations?.Book?.map((book, index) => ( -
    +
    {book.image && (

    {book.title}

    - {book.author &&

    저자: {book.author}

    } - {book.description &&

    설명: {book.description}

    } + {book.author && ( +

    저자: {book.author}

    + )} + {book.description && ( +

    + 설명: {book.description} +

    + )}
    ))}
    + {/* 음악 */}
    {recommendations?.Music?.map((music, index) => ( -
    +
    {music.album && (

    제목: {music.title}

    {music.artist && ( -

    아티스트: {music.artist}

    +

    + 아티스트: {music.artist} +

    )}
    ))}
    - diff --git a/src/pages/TestPage.jsx b/src/pages/TestPage.jsx index 5cec0c1..3776591 100644 --- a/src/pages/TestPage.jsx +++ b/src/pages/TestPage.jsx @@ -1,17 +1,16 @@ "use client" -import React from 'react' -import { useState, useEffect } from "react" -import { useNavigate } from "react-router-dom" // useNavigate 임포트 -import { useAuth } from "../components/auth-provider" // 상대 경로로 변경 -import { Header } from "../components/header" // 상대 경로로 변경 -import { Button } from "../components/ui/button" // 상대 경로로 변경 -import { Card, CardContent, CardHeader, CardTitle } from "../components/ui/card" // 상대 경로로 변경 -import { RadioGroup, RadioGroupItem } from "../components/ui/radio-group" // 상대 경로로 변경 -import { Label } from "../components/ui/label" // 상대 경로로 변경 -import { Progress } from "../components/ui/progress" // 상대 경로로 변경 -import { testAPI, contentAPI } from "../lib/api" // 상대 경로로 변경 -import { useToast } from "../hooks/use-toast" // 상대 경로로 변경 +import React, { useState, useEffect } from "react" +import { useNavigate } from "react-router-dom" +import { useAuth } from "../components/auth-provider" +import { Header } from "../components/header" +import { Button } from "../components/ui/button" +import { Card, CardContent, CardHeader, CardTitle } from "../components/ui/card" +import { RadioGroup, RadioGroupItem } from "../components/ui/radio-group" +import { Label } from "../components/ui/label" +import { Progress } from "../components/ui/progress" +import { testAPI, contentAPI } from "../lib/api" +import { useToast } from "../hooks/use-toast" const questions = [ "나는 새로운 사람들과 만나는 것을 좋아한다", @@ -38,7 +37,7 @@ const questions = [ export default function TestPage() { const { user, isLoading } = useAuth() - const navigate = useNavigate() // useRouter 대신 useNavigate 사용 + const navigate = useNavigate() const [answers, setAnswers] = useState({}) const [currentQuestion, setCurrentQuestion] = useState(0) const [isSubmitting, setIsSubmitting] = useState(false) @@ -46,17 +45,15 @@ export default function TestPage() { useEffect(() => { if (!isLoading && !user) { - navigate("/login") // router.push 대신 navigate 사용 + navigate("/login") } - }, [user, isLoading, navigate]) // 의존성 배열에 navigate 추가 + }, [user, isLoading, navigate]) if (isLoading) { return
    로딩 중...
    } - if (!user) { - return null - } + if (!user) return null const handleAnswerChange = (questionIndex, value) => { setAnswers((prev) => ({ @@ -77,79 +74,68 @@ export default function TestPage() { } } - // 테스트 결과 제출 (수정함) const handleSubmit = async () => { - setIsSubmitting(true) - - try { - const totalScore = Object.values(answers).reduce((sum, score) => sum + score, 0) - const averageScore = totalScore / questions.length - - let personality = "" - let typeDescription = "" - if (averageScore >= 4) { - personality = "D형 (지배형)" - typeDescription = "당신은 도전적이고 리더십이 강한 D형입니다!" - } else if (averageScore >= 3) { - personality = "I형 (사교형)" - typeDescription = "당신은 활발하고 사람을 좋아하는 I형입니다!" - } else if (averageScore >= 2) { - personality = "S형 (안정형)" - typeDescription = "당신은 따뜻하고 성실한 S형입니다!" - } else { - personality = "C형 (신중형)" - typeDescription = "당신은 분석적이고 꼼꼼한 C형입니다!" - } - - const testResult = { - userId: user.id, // 반드시 존재해야 함 - userType: personality, - typeDescription: typeDescription, - completedAt: new Date().toISOString() + setIsSubmitting(true) + + try { + const totalScore = Object.values(answers).reduce((sum, score) => sum + score, 0) + const averageScore = totalScore / questions.length + + let personality = "" + let typeDescription = "" + + if (averageScore >= 4) { + personality = "D형 (지배형)" + typeDescription = "당신은 도전적이고 리더십이 강한 D형입니다!" + } else if (averageScore >= 3) { + personality = "I형 (사교형)" + typeDescription = "당신은 활발하고 사람을 좋아하는 I형입니다!" + } else if (averageScore >= 2) { + personality = "S형 (안정형)" + typeDescription = "당신은 따뜻하고 성실한 S형입니다!" + } else { + personality = "C형 (신중형)" + typeDescription = "당신은 분석적이고 꼼꼼한 C형입니다!" + } + + const testResult = { + userId: user.id, + userType: personality, + typeDescription: typeDescription, + completedAt: new Date().toISOString(), + } + + const response = await testAPI.saveTestResult(testResult) + const testId = response.testId + await contentAPI.requestRecommendation(testId) + await contentAPI.bookRecommendation(testId) + await contentAPI.musicRecommendation(testId) + await contentAPI.movieRecommendation(testId) + + navigate(`/result?testId=${testId}`) + + toast({ + title: "테스트 완료", + description: "결과를 확인해보세요!", + }) + } catch (error) { + console.error("Test submission failed:", error) + toast({ + title: "오류", + description: "테스트 결과 저장 중 오류가 발생했습니다.", + variant: "destructive", + }) + } finally { + setIsSubmitting(false) } - - // 백엔드에 저장 + testId 응답 받기 - const response = await testAPI.saveTestResult(testResult) - console.log("백엔드 응답:", response); - //gemini 백엔드로 testid보내기 - - const testId = response.testId - const recommendation = await contentAPI.requestRecommendation(testId) - - console.log("✅ 추천 생성 완료"); - - // 3. book/music/movie 추천 요청 보내기 (응답은 무시) - await contentAPI.bookRecommendation(testId); - await contentAPI.musicRecommendation(testId); - await contentAPI.movieRecommendation(testId); - console.log("📚 음악/책/영화 추천 저장 완료"); - - // 결과 페이지로 이동 (testId 넘기기) - navigate(`/result?testId=${testId}`) - - toast({ - title: "테스트 완료", - description: "결과를 확인해보세요!", - }) - } catch (error) { - console.error("Test submission failed:", error) - toast({ - title: "오류", - description: "테스트 결과 저장 중 오류가 발생했습니다.", - variant: "destructive", - }) - } finally { - setIsSubmitting(false) } -} - const progress = ((currentQuestion + 1) / questions.length) * 100 const isAnswered = answers[currentQuestion] !== undefined const allAnswered = questions.every((_, index) => answers[index] !== undefined) return ( -
    +
    @@ -157,42 +143,34 @@ export default function TestPage() {

    성향 테스트

    - + {currentQuestion + 1} / {questions.length}
    - + - {questions[currentQuestion]} + {questions[currentQuestion]} handleAnswerChange(currentQuestion, value)} > -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    + {[5, 4, 3, 2, 1].map((val) => ( +
    + + +
    + ))}
    diff --git a/src/utils/theme.js b/src/utils/theme.js new file mode 100644 index 0000000..e6b1529 --- /dev/null +++ b/src/utils/theme.js @@ -0,0 +1,27 @@ +// src/utils/theme.js + +export const getInitialTheme = () => { + if (typeof window !== "undefined" && window.localStorage) { + const storedPrefs = window.localStorage.getItem("theme") + if (typeof storedPrefs === "string") { + return storedPrefs + } + + const userMedia = window.matchMedia("(prefers-color-scheme: dark)") + if (userMedia.matches) { + return "dark" + } + } + + return "light" +} + +export const setTheme = (theme) => { + if (theme === "dark") { + document.documentElement.classList.add("dark") + localStorage.setItem("theme", "dark") + } else { + document.documentElement.classList.remove("dark") + localStorage.setItem("theme", "light") + } +} diff --git a/tailwind.config.js b/tailwind.config.js index 0f28e6b..a7d5554 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,5 +1,6 @@ /** @type {import('tailwindcss').Config} */ module.exports = { + darkMode: 'class', content: [ "./index.html", "./src/**/*.{js,ts,jsx,tsx}", From 3fe52aa663290385aa3174f471e4c6ab98a597bc Mon Sep 17 00:00:00 2001 From: "elogio.mi@gmail.com" Date: Fri, 8 Aug 2025 04:25:40 +0900 Subject: [PATCH 56/86] =?UTF-8?q?[FEAT]=20=EA=B2=B0=EA=B3=BC=20=EA=B3=B5?= =?UTF-8?q?=EC=9C=A0=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.jsx | 2 + src/lib/api.js | 24 ++++ src/pages/ResultPage.jsx | 30 ++++- src/pages/SharedResultPage.jsx | 239 +++++++++++++++++++++++++++++++++ 4 files changed, 294 insertions(+), 1 deletion(-) create mode 100644 src/pages/SharedResultPage.jsx diff --git a/src/App.jsx b/src/App.jsx index 227eefc..c0f56d8 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -7,6 +7,7 @@ import { Toaster } from "./components/ui/toaster" import HomePage from "./pages/HomePage" import TestPage from "./pages/TestPage" import ResultPage from "./pages/ResultPage" +import SharedResultPage from "./pages/SharedResultPage" import MyPage from "./pages/MyPage" import LoginPage from "./pages/LoginPage" import RegisterPage from "./pages/RegisterPage" @@ -19,6 +20,7 @@ function App() { } /> } /> } /> + } /> } /> } /> } /> diff --git a/src/lib/api.js b/src/lib/api.js index fc5c4bb..9b5ef76 100644 --- a/src/lib/api.js +++ b/src/lib/api.js @@ -289,6 +289,30 @@ getTestResultHistory: async (userIdParam) => { return MOCK_RECOMMENDATIONS[key] || MOCK_RECOMMENDATIONS["균형잡힌 분석형"]; } }, + + // 공유 URL 가져오기 + getShareUrl: async (testId, name) => { + try { + return await contentApiRequest(`/test/share/${testId}/${encodeURIComponent(name)}`, { + method: "GET", + }); + } catch (error) { + console.log("Share URL API 호출 실패:", error); + throw error; + } + }, + + // 공유 데이터 가져오기 (value 파라미터로) + getSharedData: async (value) => { + try { + return await contentApiRequest(`/test/share?value=${encodeURIComponent(value)}`, { + method: "GET", + }); + } catch (error) { + console.log("Shared data API 호출 실패:", error); + throw error; + } + }, } diff --git a/src/pages/ResultPage.jsx b/src/pages/ResultPage.jsx index f349b6e..6c1998b 100644 --- a/src/pages/ResultPage.jsx +++ b/src/pages/ResultPage.jsx @@ -195,9 +195,37 @@ console.log("넘겨받은 testId:", testId); - +
    diff --git a/src/pages/SharedResultPage.jsx b/src/pages/SharedResultPage.jsx new file mode 100644 index 0000000..c8999f7 --- /dev/null +++ b/src/pages/SharedResultPage.jsx @@ -0,0 +1,239 @@ +"use client" + +import React from 'react' +import { useState, useEffect } from "react" +import { useSearchParams } from "react-router-dom"; +import { useNavigate } from "react-router-dom" +import { Header } from "../components/header" +import { Button } from "../components/ui/button" +import { Card, CardContent, CardHeader, CardTitle } from "../components/ui/card" +import { Tabs, TabsContent, TabsList, TabsTrigger } from "../components/ui/tabs" +import { useToast } from "../hooks/use-toast" +import { testAPI } from "../lib/api" // 상대 경로로 변경 + +export default function SharedResultPage() { + const navigate = useNavigate() + const [resultData, setResultData] = useState(null) + const [loading, setLoading] = useState(true) + const { toast } = useToast() + const [searchParams] = useSearchParams() + + useEffect(() => { + const fetchResultData = async () => { + try { + // URL 파라미터에서 결과 데이터 가져오기 + const value = searchParams.get("value") // 서버에서 받은 value 파라미터 + const userType = searchParams.get("userType") + const typeDescription = searchParams.get("typeDescription") + const recommendations = searchParams.get("recommendations") + const testId = searchParams.get("testId") // testId도 가져오기 + + // value 파라미터가 있으면 서버에서 데이터 가져오기 + if (value) { + try { + const sharedData = await testAPI.getSharedData(value); + console.log("서버에서 받은 공유 데이터:", sharedData); + + setResultData({ + userType: "공유된 결과", + typeDescription: `${sharedData.name}님의 결과입니다`, + recommendations: sharedData.RecommendHistory?.body?.Recommend || null, + testId: sharedData.RecommendHistory?.body?.testId || null, + sharedValue: value, + userName: sharedData.name + }); + } catch (error) { + console.error("공유 데이터 가져오기 실패:", error); + toast({ + title: "오류", + description: "공유된 결과를 불러오는데 실패했습니다.", + variant: "destructive", + }); + navigate("/"); + } + return; + } + + if (!userType) { + toast({ + title: "오류", + description: "유효하지 않은 결과 링크입니다.", + variant: "destructive", + }) + navigate("/") + return + } + + // recommendations가 있으면 JSON으로 파싱 + let parsedRecommendations = null + if (recommendations) { + try { + parsedRecommendations = JSON.parse(decodeURIComponent(recommendations)) + } catch (e) { + console.error("추천 데이터 파싱 실패:", e) + } + } + + setResultData({ + userType, + typeDescription, + recommendations: parsedRecommendations, + testId // testId도 저장 + }) + + } catch (error) { + console.error("❌ 데이터 처리 실패:", error) + toast({ + title: "오류", + description: "결과를 불러오는 중 문제가 발생했습니다.", + variant: "destructive", + }) + navigate("/") + } finally { + setLoading(false) + } + } + + fetchResultData() + }, [searchParams, navigate, toast]) + + if (loading) { + return
    로딩 중...
    + } + + if (!resultData) { + return null + } + + return ( +
    +
    + +
    +
    + {/* 상단 절반 - 성향 결과 */} +
    + + + 테스트 결과 +
    🎯
    +

    + {resultData.userType || "성향 없음"} +

    +
    + +

    + {resultData.typeDescription || "설명 없음"} +

    + {/* {resultData.userName && ( +
    +

    공유자: {resultData.userName}

    +
    + )} */} +
    +
    +
    + + {/* 하단 절반 - 추천 컨텐츠 */} + {resultData.recommendations && ( + + + 맞춤 추천 컨텐츠 + + + + + 🎬 영화 + 📚 책 + 🎵 음악 + + + +
    + {resultData.recommendations?.Movie?.map((movie, index) => ( +
    + {movie.poster_path && ( + {movie.title} + )} +
    +

    제목: {movie.title}

    + + {movie.release_date && ( +

    + 개봉일: {new Date(movie.release_date).toLocaleDateString("ko-KR")} +

    + )} + + {movie.overview && ( +

    + 설명: {movie.overview} +

    + )} +
    +
    + ))} +
    +
    + + +
    + {resultData.recommendations?.Book?.map((book, index) => ( +
    + {book.image && ( + {book.title} + )} +
    +

    {book.title}

    + {book.author &&

    저자: {book.author}

    } + {book.description &&

    설명: {book.description}

    } +
    +
    + ))} +
    +
    + + +
    + {resultData.recommendations?.Music?.map((music, index) => ( +
    + {music.album && ( + {music.title} + )} +
    +

    제목: {music.title}

    + {music.artist && ( +

    아티스트: {music.artist}

    + )} +
    +
    + ))} +
    +
    + +
    +
    +
    + )} + +
    + +
    +
    +
    +
    + ) +} \ No newline at end of file From 4276f244467c55b7b703aa9ce3417fa021483050 Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Fri, 8 Aug 2025 09:39:05 +0900 Subject: [PATCH 57/86] feat(darkmode, pagination) - combine darkmode and pagination --- src/components/auth-provider.jsx | 13 +++++++------ src/lib/api.js | 25 ++++++++++++------------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/components/auth-provider.jsx b/src/components/auth-provider.jsx index 437b271..a5bc78b 100644 --- a/src/components/auth-provider.jsx +++ b/src/components/auth-provider.jsx @@ -43,17 +43,18 @@ export function AuthProvider({ children }) { const response = await authAPI.login(accountId, password) console.log("Login response:", response) // 디버깅용 - if (response.success) { - // 로그인 성공 후 사용자 정보 다시 조회 - await checkAuthStatus() - return true - } + if (response.success && response.user) { + // 로그인 성공 후 사용자 정보 다시 조회 + console.log("로그인:", response.user.username) + setUser(response.user) + return true + } } catch (error) { console.log("Login failed, trying test accounts...") // 백엔드가 없을 경우 테스트 계정으로 fallback const testAccount = TEST_ACCOUNTS.find( - (account) => account.username === username && account.password === password + (account) => account.username === accountId && account.password === password ) if (testAccount) { diff --git a/src/lib/api.js b/src/lib/api.js index fc5c4bb..612cb09 100644 --- a/src/lib/api.js +++ b/src/lib/api.js @@ -133,21 +133,20 @@ export const authAPI = { body: JSON.stringify({ accountId, password }), }) - // 로그인 성공 시 바로 사용자 정보 조회 - if (response.success) { - const userData = await apiRequest("/auth/me") - return { - success: true, - user: userData.data + // 로그인 성공 시 바로 사용자 정보 조회 + if (response.success && response.data) { + return { + success: true, + user: response.data.user + } } - } - return response + return response } catch (error) { - console.error("Login failed:", error) - return { - success: false, - error: error.message - } + console.error("Login failed:", error) + return { + success: false, + error: error.message + } } }, From 22354fe7af596a5f5d07e214b4ff272a48b4cb33 Mon Sep 17 00:00:00 2001 From: door-JH Date: Fri, 8 Aug 2025 11:18:35 +0900 Subject: [PATCH 58/86] =?UTF-8?q?[FIX]=20=EA=B2=B0=EA=B3=BC=EA=B3=B5?= =?UTF-8?q?=EC=9C=A0=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=95=BC=EA=B0=84?= =?UTF-8?q?=EB=AA=A8=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/SharedResultPage.jsx | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/pages/SharedResultPage.jsx b/src/pages/SharedResultPage.jsx index c8999f7..40d8bf4 100644 --- a/src/pages/SharedResultPage.jsx +++ b/src/pages/SharedResultPage.jsx @@ -106,7 +106,7 @@ export default function SharedResultPage() { } return ( -
    +
    @@ -136,7 +136,7 @@ export default function SharedResultPage() { {/* 하단 절반 - 추천 컨텐츠 */} {resultData.recommendations && ( - + 맞춤 추천 컨텐츠 @@ -151,7 +151,7 @@ export default function SharedResultPage() {
    {resultData.recommendations?.Movie?.map((movie, index) => ( -
    +
    {movie.poster_path && ( 제목: {movie.title} {movie.release_date && ( -

    +

    개봉일: {new Date(movie.release_date).toLocaleDateString("ko-KR")}

    )} {movie.overview && ( -

    +

    설명: {movie.overview}

    )} @@ -182,7 +182,7 @@ export default function SharedResultPage() {
    {resultData.recommendations?.Book?.map((book, index) => ( -
    +
    {book.image && (

    {book.title}

    - {book.author &&

    저자: {book.author}

    } - {book.description &&

    설명: {book.description}

    } + {book.author &&

    저자: {book.author}

    } + {book.description &&

    설명: {book.description}

    }
    ))} @@ -203,7 +203,7 @@ export default function SharedResultPage() {
    {resultData.recommendations?.Music?.map((music, index) => ( -
    +
    {music.album && (

    제목: {music.title}

    {music.artist && ( -

    아티스트: {music.artist}

    +

    아티스트: {music.artist}

    )}
    From fb984d3cd62e3464ed0c56befea6e90ea9b8ab83 Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Fri, 8 Aug 2025 15:15:06 +0900 Subject: [PATCH 59/86] fix(url): fix url --- .env | 3 +++ src/lib/api.js | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 .env diff --git a/.env b/.env new file mode 100644 index 0000000..bc3bdf7 --- /dev/null +++ b/.env @@ -0,0 +1,3 @@ +VITE_API_URL = http://mindscape.r53-kjh.shop +VITE_CONTENT_API_URL = http://mindscape.r53-kjh.shop/api +VITE_INFO_SERVER_API_URL = http://mindscape.r53-kjh.shop/api diff --git a/src/lib/api.js b/src/lib/api.js index df76d64..5bb0b25 100644 --- a/src/lib/api.js +++ b/src/lib/api.js @@ -332,7 +332,7 @@ export const contentAPI = { //테스트 결과 조회 api getTestHistory: async (testId) => { try { - return await contentApiRequest(`/test/history?testId=${encodeURIComponent(testId)}`); + return await contentApiRequest(`/response/history?testId=${encodeURIComponent(testId)}`); } catch (error) { console.log("Backend API not available, using localStorage (dev mode)..."); @@ -345,7 +345,7 @@ export const contentAPI = { //mypage 컨텐츠 히스토리 조회 api getMypage: async (userId, page, size) => { try { - return await contentApiRequest(`/test/history?userId=${encodeURIComponent(userId)}&page=${page}&size=${size}`); + return await contentApiRequest(`/response/history?userId=${encodeURIComponent(userId)}&page=${page}&size=${size}`); } catch (error) { console.log("Backend API not available, using localStorage (dev mode)..."); From 9053b77bb0ac41808cc97f7c0c38b5e1a7e65b44 Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Fri, 8 Aug 2025 15:17:29 +0900 Subject: [PATCH 60/86] fix(url): fix url --- .env | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 .env diff --git a/.env b/.env deleted file mode 100644 index bc3bdf7..0000000 --- a/.env +++ /dev/null @@ -1,3 +0,0 @@ -VITE_API_URL = http://mindscape.r53-kjh.shop -VITE_CONTENT_API_URL = http://mindscape.r53-kjh.shop/api -VITE_INFO_SERVER_API_URL = http://mindscape.r53-kjh.shop/api From aee5c4157d961cba103f004aa7004e7e2858dcc6 Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Fri, 8 Aug 2025 15:28:57 +0900 Subject: [PATCH 61/86] fix(cloudfront): fix https to all --- terraform/modules/cloudfront/main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terraform/modules/cloudfront/main.tf b/terraform/modules/cloudfront/main.tf index 8a4566c..9386841 100644 --- a/terraform/modules/cloudfront/main.tf +++ b/terraform/modules/cloudfront/main.tf @@ -49,7 +49,7 @@ resource "aws_cloudfront_distribution" "fe" { } # https 리다이렉트 - viewer_protocol_policy = "redirect-to-https" + viewer_protocol_policy = "allow-all" # 캐시 유효기간 초 min_ttl = 0 default_ttl = 3600 From 026e5d5351b9d04c5eec43fd5f6859f1a768b41f Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Fri, 8 Aug 2025 16:00:35 +0900 Subject: [PATCH 62/86] fix(login): fix login --- src/components/auth-provider.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/auth-provider.jsx b/src/components/auth-provider.jsx index a5bc78b..3ac2922 100644 --- a/src/components/auth-provider.jsx +++ b/src/components/auth-provider.jsx @@ -43,7 +43,7 @@ export function AuthProvider({ children }) { const response = await authAPI.login(accountId, password) console.log("Login response:", response) // 디버깅용 - if (response.success && response.user) { + if (response.success && response.data?.user) { // 로그인 성공 후 사용자 정보 다시 조회 console.log("로그인:", response.user.username) setUser(response.user) From 81e4a2fe1e4beb9b6ca91f1f69fa2700ec8dd507 Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Fri, 8 Aug 2025 16:05:51 +0900 Subject: [PATCH 63/86] fix(login): fix login --- src/components/auth-provider.jsx | 7 ++++--- src/lib/api.js | 4 +++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/components/auth-provider.jsx b/src/components/auth-provider.jsx index 3ac2922..f1d7dd1 100644 --- a/src/components/auth-provider.jsx +++ b/src/components/auth-provider.jsx @@ -43,10 +43,11 @@ export function AuthProvider({ children }) { const response = await authAPI.login(accountId, password) console.log("Login response:", response) // 디버깅용 - if (response.success && response.data?.user) { + if (response.success && (response.data?.user || response.user)) { // 로그인 성공 후 사용자 정보 다시 조회 - console.log("로그인:", response.user.username) - setUser(response.user) + const user = response.data?.user || response.user; + console.log("로그인:", user.username) + setUser(user) return true } } catch (error) { diff --git a/src/lib/api.js b/src/lib/api.js index 5bb0b25..8463c2f 100644 --- a/src/lib/api.js +++ b/src/lib/api.js @@ -137,7 +137,9 @@ export const authAPI = { if (response.success && response.data) { return { success: true, - user: response.data.user + data: { + user: response.data.user + } } } return response From 14b2a5574535d1c4c1f5a0fcaf3b946fe3118a9e Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Fri, 8 Aug 2025 16:25:28 +0900 Subject: [PATCH 64/86] fix(login): fix login --- src/components/auth-provider.jsx | 7 +++---- src/lib/api.js | 6 +++--- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/components/auth-provider.jsx b/src/components/auth-provider.jsx index f1d7dd1..a5bc78b 100644 --- a/src/components/auth-provider.jsx +++ b/src/components/auth-provider.jsx @@ -43,11 +43,10 @@ export function AuthProvider({ children }) { const response = await authAPI.login(accountId, password) console.log("Login response:", response) // 디버깅용 - if (response.success && (response.data?.user || response.user)) { + if (response.success && response.user) { // 로그인 성공 후 사용자 정보 다시 조회 - const user = response.data?.user || response.user; - console.log("로그인:", user.username) - setUser(user) + console.log("로그인:", response.user.username) + setUser(response.user) return true } } catch (error) { diff --git a/src/lib/api.js b/src/lib/api.js index 8463c2f..82b0c4a 100644 --- a/src/lib/api.js +++ b/src/lib/api.js @@ -31,6 +31,7 @@ const apiRequest = async (endpoint, options = {}) => { // 응답의 Content-Type 헤더 확인 const contentType = response.headers.get("content-type") + console.log("Response Content-Type:", contentType) // 디버깅 if (!response.ok) { let errorMessage = response.statusText @@ -43,6 +44,7 @@ const apiRequest = async (endpoint, options = {}) => { // 응답이 비어있거나 JSON이 아닌 경우 처리 if (!contentType || !contentType.includes("application/json")) { + console.log("No JSON content-type, returning status-only response") // 디버깅 return { success: true, status: response.status @@ -137,9 +139,7 @@ export const authAPI = { if (response.success && response.data) { return { success: true, - data: { - user: response.data.user - } + user: response.data.user } } return response From 2f38d561315a1b25eab1e77550bed6356029014a Mon Sep 17 00:00:00 2001 From: "elogio.mi@gmail.com" Date: Fri, 8 Aug 2025 17:00:43 +0900 Subject: [PATCH 65/86] =?UTF-8?q?[FIX]=20s3-cloudfront=20SPA=20=EA=B6=8C?= =?UTF-8?q?=ED=95=9C=EB=AC=B8=EC=A0=9C=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- terraform/modules/cloudfront/main.tf | 16 ++++++++++++++++ terraform/modules/s3/main.tf | 12 ++++++++++++ 2 files changed, 28 insertions(+) diff --git a/terraform/modules/cloudfront/main.tf b/terraform/modules/cloudfront/main.tf index 8a4566c..aea95b1 100644 --- a/terraform/modules/cloudfront/main.tf +++ b/terraform/modules/cloudfront/main.tf @@ -24,6 +24,22 @@ resource "aws_cloudfront_distribution" "fe" { default_root_object = "index.html" aliases = var.domain_names + # 오류 페이지 설정 + custom_error_response { + error_code = 403 + response_page_path = "/index.html" + response_code = 200 + error_caching_min_ttl = 0 + } + + custom_error_response { + error_code = 404 + response_page_path = "/index.html" + response_code = 200 + error_caching_min_ttl = 0 + } + + # logging_config { # include_cookies = false # bucket = var.log_bucket_domain_name diff --git a/terraform/modules/s3/main.tf b/terraform/modules/s3/main.tf index 9c98199..94ae220 100644 --- a/terraform/modules/s3/main.tf +++ b/terraform/modules/s3/main.tf @@ -44,6 +44,18 @@ resource "aws_s3_bucket_server_side_encryption_configuration" "fe" { } } +resource "aws_s3_bucket_website_configuration" "my_app_website" { + bucket = aws_s3_bucket.my_app_bucket.id + + index_document { + suffix = "index.html" + } + + error_document { + key = "index.html" + } +} + # # log bucket 생성 # resource "aws_s3_bucket" "fe_log" { # bucket = var.log_bucket_name From bcddf23442db08a4433f85518b839b74e036cbcb Mon Sep 17 00:00:00 2001 From: "elogio.mi@gmail.com" Date: Mon, 11 Aug 2025 10:27:14 +0900 Subject: [PATCH 66/86] =?UTF-8?q?[FIX]=20S3=20=EB=B2=84=ED=82=B7=20?= =?UTF-8?q?=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- terraform/modules/s3/main.tf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/terraform/modules/s3/main.tf b/terraform/modules/s3/main.tf index 94ae220..c14f2a1 100644 --- a/terraform/modules/s3/main.tf +++ b/terraform/modules/s3/main.tf @@ -44,8 +44,8 @@ resource "aws_s3_bucket_server_side_encryption_configuration" "fe" { } } -resource "aws_s3_bucket_website_configuration" "my_app_website" { - bucket = aws_s3_bucket.my_app_bucket.id +resource "aws_s3_bucket_website_configuration" "bucket_config" { + bucket = aws_s3_bucket.fe.id index_document { suffix = "index.html" @@ -56,6 +56,7 @@ resource "aws_s3_bucket_website_configuration" "my_app_website" { } } + # # log bucket 생성 # resource "aws_s3_bucket" "fe_log" { # bucket = var.log_bucket_name From e12dba47f9f58c0f1e1c41e781af73e91ab7f6ce Mon Sep 17 00:00:00 2001 From: "elogio.mi@gmail.com" Date: Mon, 11 Aug 2025 14:10:47 +0900 Subject: [PATCH 67/86] =?UTF-8?q?[FIX]=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20?= =?UTF-8?q?=EC=97=90=EB=9F=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/api.js | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/lib/api.js b/src/lib/api.js index 82b0c4a..c9dbd55 100644 --- a/src/lib/api.js +++ b/src/lib/api.js @@ -134,15 +134,16 @@ export const authAPI = { method: "POST", body: JSON.stringify({ accountId, password }), }) - - // 로그인 성공 시 바로 사용자 정보 조회 - if (response.success && response.data) { - return { - success: true, - user: response.data.user - } - } - return response + console.log("Login response:", response) // 디버깅용 + // 로그인 성공 시 바로 사용자 정보 조회 + if (response.success) { + const userData = await apiRequest("/auth/me") + return { + success: true, + user: userData.data + } + } + return response } catch (error) { console.error("Login failed:", error) return { From b5c787ca123ed7cdf84557c97ef9de1b6584dc74 Mon Sep 17 00:00:00 2001 From: "elogio.mi@gmail.com" Date: Mon, 11 Aug 2025 14:37:03 +0900 Subject: [PATCH 68/86] =?UTF-8?q?[FIX]=20=EA=B3=B5=EC=9C=A0=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20URL=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/api.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/api.js b/src/lib/api.js index c9dbd55..f01eb88 100644 --- a/src/lib/api.js +++ b/src/lib/api.js @@ -295,7 +295,7 @@ getTestResultHistory: async (userIdParam) => { // 공유 URL 가져오기 getShareUrl: async (testId, name) => { try { - return await contentApiRequest(`/test/share/${testId}/${encodeURIComponent(name)}`, { + return await contentApiRequest(`/response/share/${testId}/${encodeURIComponent(name)}`, { method: "GET", }); } catch (error) { @@ -307,7 +307,7 @@ getTestResultHistory: async (userIdParam) => { // 공유 데이터 가져오기 (value 파라미터로) getSharedData: async (value) => { try { - return await contentApiRequest(`/test/share?value=${encodeURIComponent(value)}`, { + return await contentApiRequest(`/response/share?value=${encodeURIComponent(value)}`, { method: "GET", }); } catch (error) { From c255e9df9c5e66feba3a6534544e78af2ebffc24 Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Tue, 12 Aug 2025 10:45:25 +0900 Subject: [PATCH 69/86] feat(ranking): add ranking feature --- src/lib/api.js | 36 +++++++- src/pages/HomePage.jsx | 195 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 227 insertions(+), 4 deletions(-) diff --git a/src/lib/api.js b/src/lib/api.js index f01eb88..7556b86 100644 --- a/src/lib/api.js +++ b/src/lib/api.js @@ -222,6 +222,7 @@ export const authAPI = { throw error } }, + } // 테스트 관련 API (수정함) @@ -385,8 +386,39 @@ getMypage: async (userId, page, size) => { console.log("Movie API 호출 실패:", error); throw error; } - } - + }, + // 랭킹 조회 + getRanking: async (type, size = 3) => { + try { + const result = await contentApiRequest(`/response/ranking?type=${encodeURIComponent(type)}&size=${size}`) + + // 백엔드가 응답했지만 데이터가 없는 경우 + if (!result || !result.Recommend) { + return { + testId: null, + Recommend: { + Book: [], + Music: [], + Movie: [] + } + } + } + + return result + } catch (error) { + console.log("Backend API call failed:", error) + + // API 호출이 완전히 실패한 경우에만 빈 데이터 반환 + return { + testId: null, + Recommend: { + Book: [], + Music: [], + Movie: [] + } + } + } + } } \ No newline at end of file diff --git a/src/pages/HomePage.jsx b/src/pages/HomePage.jsx index 58268b0..237cb4d 100644 --- a/src/pages/HomePage.jsx +++ b/src/pages/HomePage.jsx @@ -1,9 +1,48 @@ -import React from "react" +import React, { useState, useEffect } from "react" import { Link } from "react-router-dom" import { Button } from "../components/ui/button" import { Header } from "../components/header" +import { Card, CardContent, CardHeader, CardTitle } from "../components/ui/card" +import { Tabs, TabsContent, TabsList, TabsTrigger } from "../components/ui/tabs" +import { contentAPI } from "../lib/api" export default function HomePage() { + const [allRankingData, setAllRankingData] = useState({}) + const [loading, setLoading] = useState(false) + + const personalityTypes = [ + { value: "D형 (지배형)", label: "D형 (지배형)", shortLabel: "D형" }, + { value: "I형 (사교형)", label: "I형 (사교형)", shortLabel: "I형" }, + { value: "S형 (안정형)", label: "S형 (안정형)", shortLabel: "S형" }, + { value: "C형 (신중형)", label: "C형 (신중형)", shortLabel: "C형" }, + ] + + useEffect(() => { + fetchAllRankings() + }, []) + + const fetchAllRankings = async () => { + setLoading(true) + try { + const promises = personalityTypes.map(async (type) => { + const data = await contentAPI.getRanking(type.value, 3) + return { type: type.value, shortLabel: type.shortLabel, data } + }) + + const results = await Promise.all(promises) + const rankingMap = {} + results.forEach(result => { + rankingMap[result.type] = { ...result.data, shortLabel: result.shortLabel } + }) + + setAllRankingData(rankingMap) + } catch (error) { + console.error("Failed to fetch rankings:", error) + } finally { + setLoading(false) + } + } + return (
    @@ -53,13 +92,165 @@ export default function HomePage() {
    -
    +
    + + {/* 성향별 인기 콘텐츠 랭킹 섹션 */} +
    +
    +

    성향별 인기 콘텐츠

    +

    + 각 성향별로 가장 많이 추천받은 인기 콘텐츠를 확인해보세요 +

    +
    + + {loading ? ( +
    +
    +

    로딩 중...

    +
    + ) : ( + +
    +
    + + + 🎬 영화 + + + 📚 책 + + + 🎵 음악 + + +
    +
    + + +
    + {personalityTypes.map((personalityType) => { + const typeData = allRankingData[personalityType.value] + return ( +
    +

    + {typeData?.shortLabel || personalityType.shortLabel} +

    +
    + {typeData?.Recommend?.Movie && typeData.Recommend.Movie.length > 0 ? ( + typeData.Recommend.Movie.map((movie, index) => ( +
    +
    + #{index + 1} +
    +
    +

    {movie.title}

    + {movie.overview && ( +

    {movie.overview}

    + )} +
    +
    + )) + ) : ( +

    데이터가 없습니다

    + )} +
    +
    + ) + })} +
    +
    + + +
    + {personalityTypes.map((personalityType) => { + const typeData = allRankingData[personalityType.value] + return ( +
    +

    + {typeData?.shortLabel || personalityType.shortLabel} +

    +
    + {typeData?.Recommend?.Book && typeData.Recommend.Book.length > 0 ? ( + typeData.Recommend.Book.map((book, index) => ( +
    +
    + #{index + 1} +
    +
    +

    {book.title}

    + {book.author && ( +

    저자: {book.author}

    + )} + {book.description && ( +

    {book.description}

    + )} +
    +
    + )) + ) : ( +

    데이터가 없습니다

    + )} +
    +
    + ) + })} +
    +
    + + +
    + {personalityTypes.map((personalityType) => { + const typeData = allRankingData[personalityType.value] + return ( +
    +

    + {typeData?.shortLabel || personalityType.shortLabel} +

    +
    + {typeData?.Recommend?.Music && typeData.Recommend.Music.length > 0 ? ( + typeData.Recommend.Music.map((music, index) => ( +
    +
    + #{index + 1} +
    +
    +

    {music.title}

    + {music.artist && ( +

    아티스트: {music.artist}

    + )} + {music.description && ( +

    {music.description}

    + )} +
    +
    + )) + ) : ( +

    데이터가 없습니다

    + )} +
    +
    + ) + })} +
    +
    +
    + )} +
    ) From 438d7d177efbe83de005dd51ba1ea5849ea566df Mon Sep 17 00:00:00 2001 From: Youngmin Jung Date: Tue, 12 Aug 2025 15:52:43 +0900 Subject: [PATCH 70/86] feat(ranking): add ranking feature --- src/index.css | 18 ++ src/pages/HomePage.jsx | 458 +++++++++++++++++++++++++++++++---------- 2 files changed, 365 insertions(+), 111 deletions(-) diff --git a/src/index.css b/src/index.css index f53b908..5f3d86a 100644 --- a/src/index.css +++ b/src/index.css @@ -57,3 +57,21 @@ @apply bg-background text-foreground; } } + +@layer utilities { + @keyframes subtleFadeIn { + from { + opacity: 0; + transform: translateY(8px); + } + to { + opacity: 1; + transform: translateY(0); + } + } + + .animate-fade-in { + animation: subtleFadeIn 0.4s ease-out forwards; + opacity: 0; + } +} diff --git a/src/pages/HomePage.jsx b/src/pages/HomePage.jsx index 237cb4d..f84ee38 100644 --- a/src/pages/HomePage.jsx +++ b/src/pages/HomePage.jsx @@ -7,8 +7,18 @@ import { Tabs, TabsContent, TabsList, TabsTrigger } from "../components/ui/tabs" import { contentAPI } from "../lib/api" export default function HomePage() { + // 설정 변수들 + const RANKING_SIZE = 3 // 랭킹에서 표시할 아이템 개수 + const AUTO_TAB_INTERVAL = 10000 // 자동 탭 전환 간격 (ms) + const [allRankingData, setAllRankingData] = useState({}) const [loading, setLoading] = useState(false) + const [activeTab, setActiveTab] = useState("D형") + const [isAutoPlaying] = useState(true) + const [isPaused, setIsPaused] = useState(false) + const [selectedItem, setSelectedItem] = useState(null) + const [isModalOpen, setIsModalOpen] = useState(false) + const [isTransitioning, setIsTransitioning] = useState(false) const personalityTypes = [ { value: "D형 (지배형)", label: "D형 (지배형)", shortLabel: "D형" }, @@ -17,15 +27,50 @@ export default function HomePage() { { value: "C형 (신중형)", label: "C형 (신중형)", shortLabel: "C형" }, ] + const tabs = ["D형", "I형", "S형", "C형"] + useEffect(() => { fetchAllRankings() }, []) + const openModal = (item, type) => { + setSelectedItem({ ...item, type }) + setIsModalOpen(true) + } + + const closeModal = () => { + setIsModalOpen(false) + setSelectedItem(null) + } + + // 자동 탭 전환 기능 + useEffect(() => { + if (!isAutoPlaying || isPaused) return + + const interval = setInterval(() => { + setIsTransitioning(true) + + setTimeout(() => { + setActiveTab(current => { + const currentIndex = tabs.indexOf(current) + const nextIndex = (currentIndex + 1) % tabs.length + return tabs[nextIndex] + }) + + setTimeout(() => { + setIsTransitioning(false) + }, 150) + }, 150) + }, AUTO_TAB_INTERVAL) // 자동 탭 전환 간격 + + return () => clearInterval(interval) + }, [isAutoPlaying, isPaused]) + const fetchAllRankings = async () => { setLoading(true) try { const promises = personalityTypes.map(async (type) => { - const data = await contentAPI.getRanking(type.value, 3) + const data = await contentAPI.getRanking(type.value, RANKING_SIZE) return { type: type.value, shortLabel: type.shortLabel, data } }) @@ -115,143 +160,334 @@ export default function HomePage() {

    로딩 중...

    ) : ( - + setIsPaused(true)} + onMouseLeave={() => setIsPaused(false)} + >
    - + - 🎬 영화 + + + + D형 - 📚 책 + + + + I형 - 🎵 음악 + + + + S형 + + + + + + C형
    - -
    - {personalityTypes.map((personalityType) => { - const typeData = allRankingData[personalityType.value] - return ( -
    -

    - {typeData?.shortLabel || personalityType.shortLabel} -

    -
    - {typeData?.Recommend?.Movie && typeData.Recommend.Movie.length > 0 ? ( - typeData.Recommend.Movie.map((movie, index) => ( -
    -
    - #{index + 1} + {personalityTypes.map((personalityType) => ( + +
    + {(() => { + const typeData = allRankingData[personalityType.value] + return ( +
    + {/* 영화 섹션 */} +
    +
    +
    + + + +
    +

    + 인기 영화 +

    +
    +
    + {typeData?.Recommend?.Movie && typeData.Recommend.Movie.length > 0 ? ( + typeData.Recommend.Movie.slice(0, RANKING_SIZE).map((movie, index) => ( +
    openModal(movie, 'movie')} + > +
    +
    +
    + #{index + 1} +
    + {movie.poster_path && ( +
    + {movie.title} +
    + )} +
    +
    +

    {movie.title}

    + {movie.overview && ( +

    {movie.overview}

    + )} +
    +
    +
    + )) + ) : ( +
    +

    데이터가 없습니다

    -
    -

    {movie.title}

    - {movie.overview && ( -

    {movie.overview}

    - )} + )} +
    +
    + + {/* 책 섹션 */} +
    +
    +
    + + + +
    +

    + 인기 도서 +

    +
    +
    + {typeData?.Recommend?.Book && typeData.Recommend.Book.length > 0 ? ( + typeData.Recommend.Book.slice(0, RANKING_SIZE).map((book, index) => ( +
    openModal(book, 'book')} + > +
    +
    +
    + #{index + 1} +
    + {book.image && ( +
    + {book.title} +
    + )} +
    +
    +

    {book.title}

    + {book.author && ( +

    저자: {book.author}

    + )} +
    +
    +
    + )) + ) : ( +
    +

    데이터가 없습니다

    + )} +
    +
    + + {/* 음악 섹션 */} +
    +
    +
    + + +
    - )) - ) : ( -

    데이터가 없습니다

    - )} +

    + 인기 음악 +

    +
    +
    + {typeData?.Recommend?.Music && typeData.Recommend.Music.length > 0 ? ( + typeData.Recommend.Music.slice(0, RANKING_SIZE).map((music, index) => ( +
    openModal(music, 'music')} + > +
    +
    +
    + #{index + 1} +
    + {music.album && ( +
    + {music.title} +
    + )} +
    +
    +

    {music.title}

    + {music.artist && ( +

    아티스트: {music.artist}

    + )} +
    +
    +
    + )) + ) : ( +
    +

    데이터가 없습니다

    +
    + )} +
    +
    -
    - ) - })} + ) + })()} +
    +
    + ))} + + + )} +
    +
    + + {/* 모달 */} + {isModalOpen && selectedItem && ( +
    +
    e.stopPropagation()}> +
    + {/* 헤더 */} +
    +

    + {selectedItem.type === 'movie' && '🎬 영화 정보'} + {selectedItem.type === 'book' && '📚 도서 정보'} + {selectedItem.type === 'music' && '🎵 음악 정보'} +

    + +
    + + {/* 컨텐츠 */} +
    + {/* 이미지 */} +
    + {selectedItem.type === 'movie' && selectedItem.poster_path && ( + {selectedItem.title} + )} + {selectedItem.type === 'book' && selectedItem.image && ( + {selectedItem.title} + )} + {selectedItem.type === 'music' && selectedItem.album && ( + {selectedItem.title} + )}
    - - -
    - {personalityTypes.map((personalityType) => { - const typeData = allRankingData[personalityType.value] - return ( -
    -

    - {typeData?.shortLabel || personalityType.shortLabel} -

    -
    - {typeData?.Recommend?.Book && typeData.Recommend.Book.length > 0 ? ( - typeData.Recommend.Book.map((book, index) => ( -
    -
    - #{index + 1} -
    -
    -

    {book.title}

    - {book.author && ( -

    저자: {book.author}

    - )} - {book.description && ( -

    {book.description}

    - )} -
    -
    - )) - ) : ( -

    데이터가 없습니다

    - )} + {/* 정보 */} +
    +

    {selectedItem.title}

    + + {selectedItem.type === 'movie' && ( + <> + {selectedItem.release_date && ( +

    + 개봉일: {new Date(selectedItem.release_date).toLocaleDateString()} +

    + )} + {selectedItem.overview && ( +
    +

    줄거리

    +

    {selectedItem.overview}

    -
    - ) - })} -
    - + )} + + )} - -
    - {personalityTypes.map((personalityType) => { - const typeData = allRankingData[personalityType.value] - return ( -
    -

    - {typeData?.shortLabel || personalityType.shortLabel} -

    -
    - {typeData?.Recommend?.Music && typeData.Recommend.Music.length > 0 ? ( - typeData.Recommend.Music.map((music, index) => ( -
    -
    - #{index + 1} -
    -
    -

    {music.title}

    - {music.artist && ( -

    아티스트: {music.artist}

    - )} - {music.description && ( -

    {music.description}

    - )} -
    -
    - )) - ) : ( -

    데이터가 없습니다

    - )} + {selectedItem.type === 'book' && ( + <> + {selectedItem.author && ( +

    + 저자: {selectedItem.author} +

    + )} + {selectedItem.description && ( +
    +

    내용 소개

    +

    {selectedItem.description}

    -
    - ) - })} + )} + + )} + + {selectedItem.type === 'music' && ( + <> + {selectedItem.artist && ( +

    + 아티스트: {selectedItem.artist} +

    + )} + {selectedItem.description && ( +
    +

    설명

    +

    {selectedItem.description}

    +
    + )} + + )}
    - - - )} +
    +
    +
    -
    + )}
    ) } From 4714fc42d42f87d111d9f1486630824d26dad490 Mon Sep 17 00:00:00 2001 From: yejipo Date: Wed, 13 Aug 2025 16:24:30 +0900 Subject: [PATCH 71/86] =?UTF-8?q?feat:=20=ED=99=88=EC=97=90=20=EA=B2=80?= =?UTF-8?q?=EC=83=89=20=EB=93=9C=EB=A1=9C=EC=96=B4=20=EB=B2=84=ED=8A=BC=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20=EB=B0=8F=20=EA=B2=80=EC=83=89=20=EA=B2=B0?= =?UTF-8?q?=EA=B3=BC=20=ED=91=9C=EC=8B=9C=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/.env | 3 + package-lock.json | 261 ++++++++++++++++++++++++- package.json | 1 + src/components/search/SearchDrawer.jsx | 126 ++++++++++++ src/lib/api.js | 16 +- src/pages/HomePage.jsx | 22 ++- 6 files changed, 425 insertions(+), 4 deletions(-) create mode 100644 .github/.env create mode 100644 src/components/search/SearchDrawer.jsx diff --git a/.github/.env b/.github/.env new file mode 100644 index 0000000..4666faf --- /dev/null +++ b/.github/.env @@ -0,0 +1,3 @@ +VITE_API_URL=http://localhost:8080 +VITE_CONTENT_API_URL=http://localhost:8082/api +VITE_INFO_SERVER_API_URL=http://localhost:8081/api diff --git a/package-lock.json b/package-lock.json index 02fd827..86ff435 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,6 +15,7 @@ "@radix-ui/react-separator": "^1.1.7", "@radix-ui/react-tabs": "^1.1.12", "@radix-ui/react-toast": "^1.2.14", + "axios": "^1.11.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "lucide-react": "^0.525.0", @@ -1847,6 +1848,12 @@ "dev": true, "license": "MIT" }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, "node_modules/autoprefixer": { "version": "10.4.14", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", @@ -1881,6 +1888,17 @@ "postcss": "^8.1.0" } }, + "node_modules/axios": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz", + "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1957,6 +1975,19 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/camelcase-css": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", @@ -2067,6 +2098,18 @@ "dev": true, "license": "MIT" }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", @@ -2130,6 +2173,15 @@ } } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -2144,6 +2196,20 @@ "dev": true, "license": "MIT" }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -2165,6 +2231,51 @@ "dev": true, "license": "MIT" }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/esbuild": { "version": "0.25.6", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.6.tgz", @@ -2270,6 +2381,26 @@ "node": ">=8" } }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/foreground-child": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", @@ -2287,6 +2418,22 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/form-data": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fraction.js": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", @@ -2320,7 +2467,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2336,6 +2482,43 @@ "node": ">=6.9.0" } }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/glob": { "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", @@ -2370,11 +2553,49 @@ "node": ">=10.13.0" } }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -2568,6 +2789,15 @@ "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -2592,6 +2822,27 @@ "node": ">=8.6" } }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -2939,6 +3190,12 @@ "dev": true, "license": "MIT" }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", diff --git a/package.json b/package.json index 2b1123d..a393897 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "@radix-ui/react-separator": "^1.1.7", "@radix-ui/react-tabs": "^1.1.12", "@radix-ui/react-toast": "^1.2.14", + "axios": "^1.11.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "lucide-react": "^0.525.0", diff --git a/src/components/search/SearchDrawer.jsx b/src/components/search/SearchDrawer.jsx new file mode 100644 index 0000000..89327ff --- /dev/null +++ b/src/components/search/SearchDrawer.jsx @@ -0,0 +1,126 @@ +// src/components/search/SearchDrawer.jsx +import React, { useEffect, useState } from "react" +import { testAPI } from "../../lib/api" // 경로 그대로 사용 + +export default function SearchDrawer({ open, onClose }) { + const [type, setType] = useState("movie") + const [q, setQ] = useState("") + const [artist, setArtist] = useState("") + const [loading, setLoading] = useState(false) + const [items, setItems] = useState([]) + const [error, setError] = useState("") + + useEffect(() => { + if (!open) return + setError("") + }, [open]) + + const search = async (e) => { + e.preventDefault() + if (!q.trim()) { + setError("제목을 입력해 주세요.") + return + } + setError("") + setLoading(true) + setItems([]) + try { + const params = { type, q: q.trim() } + if (type === "music" && artist.trim()) params.artist = artist.trim() + const { data } = await testAPI.get("/api/search", { params }) + setItems(data?.items ?? []) + } catch (err) { + setError("검색 중 오류가 발생했습니다.") + } finally { + setLoading(false) + } + } + + return ( + <> + {/* 오버레이 */} +
    + {/* 왼쪽 슬라이드 패널 */} + + + ) +} diff --git a/src/lib/api.js b/src/lib/api.js index f01eb88..2178679 100644 --- a/src/lib/api.js +++ b/src/lib/api.js @@ -5,6 +5,7 @@ const INFO_SERVER_BASE_URL = import.meta.env.VITE_INFO_SERVER_API_URL || "http:/ import { MOCK_RECOMMENDATIONS } from "./mock-data" +import axios from "axios"; // 기본 fetch 설정 const apiRequest = async (endpoint, options = {}) => { @@ -389,4 +390,17 @@ getMypage: async (userId, page, size) => { -} \ No newline at end of file +} + +// 검색 api + +const client = axios.create({ + baseURL: "/api", // gateway 통해 /content로 라우팅된다고 가정 +}); + +export const searchContent = async ({ type, query }) => { + const { data } = await client.get("/content/search", { + params: { type, query }, + }); + return data; // List +}; diff --git a/src/pages/HomePage.jsx b/src/pages/HomePage.jsx index 58268b0..9f622ba 100644 --- a/src/pages/HomePage.jsx +++ b/src/pages/HomePage.jsx @@ -1,13 +1,33 @@ -import React from "react" +import React, { useState } from "react" import { Link } from "react-router-dom" import { Button } from "../components/ui/button" import { Header } from "../components/header" +import SearchDrawer from "../components/search/SearchDrawer" // ⬅️ 드로어 컴포넌트 export default function HomePage() { + const [open, setOpen] = useState(false) + return (
    + {/* 왼쪽 고정 돋보기 버튼 (홈에서만 노출) */} + + + {/* 검색 슬라이드 패널 */} + setOpen(false)} /> +

    From d248a86132fe4e027f443e7ad2d09d1ad09e111e Mon Sep 17 00:00:00 2001 From: "door.JH" Date: Thu, 14 Aug 2025 02:43:01 +0900 Subject: [PATCH 72/86] =?UTF-8?q?[FIX]=20=EB=A7=88=EC=9D=B4=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=20=EC=83=81=EC=84=B8=EB=B3=B4=EA=B8=B0=20?= =?UTF-8?q?=EB=82=A0=EC=A7=9C=20=ED=91=9C=EA=B8=B0=20=EC=98=A4=EB=A5=98=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/MyPage.jsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/pages/MyPage.jsx b/src/pages/MyPage.jsx index 75cc556..76ee933 100644 --- a/src/pages/MyPage.jsx +++ b/src/pages/MyPage.jsx @@ -59,8 +59,13 @@ export default function MyPage() { console.log("📦 마이페이지 추천 히스토리:", historyData); if (historyData && historyData.length > 0) { + // 각 히스토리 항목에 createdAt 필드가 없으면 현재 시간을 추가 + const historyWithDates = historyData.map(item => ({ + ...item, + createdAt: item.createdAt || new Date().toISOString() + })); // testId 기준 내림차순 정렬 - const sortedHistory = historyData.sort((a, b) => b.testId - a.testId); + const sortedHistory = historyWithDates.sort((a, b) => b.testId - a.testId); setHistory(sortedHistory); // ✅ 추천 히스토리 저장 } else { setHistory([]); @@ -259,7 +264,7 @@ export default function MyPage() { - {selectedHistory.personality} - {formatDate(selectedHistory.completedAt)} + {selectedHistory.personality} - {formatDate(selectedHistory.createdAt)} From 9d39aedf1491b75087c8d7e50a0ba17148ebd36d Mon Sep 17 00:00:00 2001 From: yejipo Date: Fri, 15 Aug 2025 18:21:53 +0900 Subject: [PATCH 73/86] =?UTF-8?q?fix:api=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/search/SearchDrawer.jsx | 99 +++++++++++++++++++++----- 1 file changed, 81 insertions(+), 18 deletions(-) diff --git a/src/components/search/SearchDrawer.jsx b/src/components/search/SearchDrawer.jsx index 89327ff..bab9f0b 100644 --- a/src/components/search/SearchDrawer.jsx +++ b/src/components/search/SearchDrawer.jsx @@ -1,9 +1,9 @@ // src/components/search/SearchDrawer.jsx import React, { useEffect, useState } from "react" -import { testAPI } from "../../lib/api" // 경로 그대로 사용 +import { testAPI } from "../../lib/api" // axios 인스턴스 (프로젝트에 이미 있음) export default function SearchDrawer({ open, onClose }) { - const [type, setType] = useState("movie") + const [type, setType] = useState("movie") // movie | book | music const [q, setQ] = useState("") const [artist, setArtist] = useState("") const [loading, setLoading] = useState(false) @@ -15,22 +15,55 @@ export default function SearchDrawer({ open, onClose }) { setError("") }, [open]) + // 프론트(type) → 백엔드(content) & 파라미터 매핑 + const toBackendParams = (t, title, singer) => { + const content = + t === "movie" ? "MOVIE" : t === "book" ? "BOOK" : "MUSIC" + + // 백엔드 스펙: + // - 영화: /api/content/search?content=MOVIE&query=영화제목 + // - 책: /api/content/search?content=BOOK&title=책제목 + // - 음악: /api/content/search?content=MUSIC&artist=가수명&title=노래제목 + if (content === "MOVIE") return { content, query: title } + if (content === "BOOK") return { content, title: title } + return { content, artist: singer, title: title } + } + const search = async (e) => { e.preventDefault() if (!q.trim()) { setError("제목을 입력해 주세요.") return } + if (type === "music" && !artist.trim()) { + setError("음악 검색은 가수도 함께 입력해 주세요.") + return + } + setError("") setLoading(true) setItems([]) + try { - const params = { type, q: q.trim() } - if (type === "music" && artist.trim()) params.artist = artist.trim() - const { data } = await testAPI.get("/api/search", { params }) - setItems(data?.items ?? []) + const params = toBackendParams(type, q.trim(), artist.trim()) + const { data } = await testAPI.get("/api/content/search", { params }) + + // 백엔드 응답이 items 혹은 results 배열일 수 있으니 안전하게 처리 + const list = + Array.isArray(data?.items) + ? data.items + : Array.isArray(data?.results) + ? data.results + : Array.isArray(data) + ? data + : [] + + setItems(list) } catch (err) { setError("검색 중 오류가 발생했습니다.") + // 콘솔에도 남겨두면 디버깅 편함 + // eslint-disable-next-line no-console + console.error(err) } finally { setLoading(false) } @@ -45,16 +78,22 @@ export default function SearchDrawer({ open, onClose }) { }`} onClick={onClose} /> - {/* 왼쪽 슬라이드 패널 */} + + {/* 왼쪽(또는 오른쪽으로 바꾸려면 left-0 → right-0) 슬라이드 패널 */}

    @@ -102,19 +146,38 @@ export default function SearchDrawer({ open, onClose }) { {/* 결과 */}
    {loading &&

    검색 중…

    } - {!loading && items.length === 0 &&

    검색 결과가 없습니다.

    } + {!loading && items.length === 0 && ( +

    검색 결과가 없습니다.

    + )}
      {items.map((it, idx) => (
    • + {/* 백엔드가 image 경로를 다르게 줄 수도 있으니 안전하게 접근 */} {it.image && ( - + )}
      -
      {it.type}
      -
      {it.title}
      - {it.artist &&
      {it.artist}
      } - {it.summary &&

      {it.summary}

      } +
      + {it.type || (type === "movie" ? "movie" : type)} +
      +
      + {it.title || it.name || "-"} +
      + {(it.artist || it.singer) && ( +
      + {it.artist || it.singer} +
      + )} + {it.summary && ( +

      + {it.summary} +

      + )}
    • ))} From 7ebda955b546bec2bd75e59a213e6186bab68e5b Mon Sep 17 00:00:00 2001 From: ju0204 Date: Fri, 15 Aug 2025 21:16:54 +0900 Subject: [PATCH 74/86] [fix]search --- src/components/search/SearchDrawer.jsx | 16 ++++++-------- src/lib/api.js | 30 ++++++++++++++++---------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/src/components/search/SearchDrawer.jsx b/src/components/search/SearchDrawer.jsx index bab9f0b..cd00c2f 100644 --- a/src/components/search/SearchDrawer.jsx +++ b/src/components/search/SearchDrawer.jsx @@ -1,6 +1,6 @@ // src/components/search/SearchDrawer.jsx import React, { useEffect, useState } from "react" -import { testAPI } from "../../lib/api" // axios 인스턴스 (프로젝트에 이미 있음) +import { contentAPI } from "../../lib/api" // axios 인스턴스 (프로젝트에 이미 있음) export default function SearchDrawer({ open, onClose }) { const [type, setType] = useState("movie") // movie | book | music @@ -46,17 +46,15 @@ export default function SearchDrawer({ open, onClose }) { try { const params = toBackendParams(type, q.trim(), artist.trim()) - const { data } = await testAPI.get("/api/content/search", { params }) + const data = await contentAPI.search(params) // 백엔드 응답이 items 혹은 results 배열일 수 있으니 안전하게 처리 const list = - Array.isArray(data?.items) - ? data.items - : Array.isArray(data?.results) - ? data.results - : Array.isArray(data) - ? data - : [] + Array.isArray(data?.items) ? data.items + : Array.isArray(data?.results) ? data.results + : Array.isArray(data) ? data + : [] + setItems(list) setItems(list) } catch (err) { diff --git a/src/lib/api.js b/src/lib/api.js index 2178679..07e3144 100644 --- a/src/lib/api.js +++ b/src/lib/api.js @@ -386,21 +386,29 @@ getMypage: async (userId, page, size) => { console.log("Movie API 호출 실패:", error); throw error; } - } - + }, + //검색 API + search: async (params) => { + // params 예: { content:"MOVIE", query:"인터스텔라" } + // { content:"BOOK", title:"미움받을 용기" } + // { content:"MUSIC", artist:"비비", title:"밤양갱" } + const qs = new URLSearchParams(params).toString() + // contentApiRequest는 CONTENT_SERVER_BASE_URL (기본 http://localhost:8081/api)로 요청 보냄 + return await contentApiRequest(`/content/search?${qs}`, { method: "GET" }) +}, } // 검색 api -const client = axios.create({ - baseURL: "/api", // gateway 통해 /content로 라우팅된다고 가정 -}); +// const client = axios.create({ +// baseURL: "/api", // gateway 통해 /content로 라우팅된다고 가정 +// }); -export const searchContent = async ({ type, query }) => { - const { data } = await client.get("/content/search", { - params: { type, query }, - }); - return data; // List -}; +// export const searchContent = async ({ type, query }) => { +// const { data } = await client.get("/content/search", { +// params: { type, query }, +// }); +// return data; // List +// }; From 22653808df9a8419b5b5d5f2c83cdc6e1dd9056f Mon Sep 17 00:00:00 2001 From: yejipo Date: Fri, 15 Aug 2025 22:26:03 +0900 Subject: [PATCH 75/86] =?UTF-8?q?[fix]:=EA=B2=80=EC=83=89=EC=B0=BD=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/search/SearchDrawer.jsx | 132 ++++++++++++++----------- src/lib/api.js | 4 +- 2 files changed, 76 insertions(+), 60 deletions(-) diff --git a/src/components/search/SearchDrawer.jsx b/src/components/search/SearchDrawer.jsx index cd00c2f..ac9dff1 100644 --- a/src/components/search/SearchDrawer.jsx +++ b/src/components/search/SearchDrawer.jsx @@ -1,71 +1,89 @@ // src/components/search/SearchDrawer.jsx -import React, { useEffect, useState } from "react" -import { contentAPI } from "../../lib/api" // axios 인스턴스 (프로젝트에 이미 있음) +import React, { useEffect, useRef, useState } from "react"; +import { contentAPI } from "../../lib/api"; // 서버 호출 래퍼 export default function SearchDrawer({ open, onClose }) { - const [type, setType] = useState("movie") // movie | book | music - const [q, setQ] = useState("") - const [artist, setArtist] = useState("") - const [loading, setLoading] = useState(false) - const [items, setItems] = useState([]) - const [error, setError] = useState("") + const [type, setType] = useState("movie"); // movie | book | music + const [q, setQ] = useState(""); + const [artist, setArtist] = useState(""); + const [loading, setLoading] = useState(false); + const [items, setItems] = useState([]); + const [error, setError] = useState(""); + const [hasSearched, setHasSearched] = useState(false); // 검색 시도 여부 + // 동시에 여러 검색이 겹칠 때 최신 요청만 반영하기 위한 토큰 + const lastReqId = useRef(0); + + useEffect(() => { + if (!open) return; + setError(""); + }, [open]); + + // ✅ 분류(type) 바뀌면 결과/에러/입력값까지 초기화 (요청 레이스도 무시) useEffect(() => { - if (!open) return - setError("") - }, [open]) + setItems([]); + setError(""); + setHasSearched(false); + setQ(""); // ← 검색창도 초기화 + setArtist(type === "music" ? "" : ""); // 타입 바껴도 가수 입력 비움 + lastReqId.current++; // 진행 중이던 검색 응답은 무시되도록 토큰 증가 + }, [type]); // 프론트(type) → 백엔드(content) & 파라미터 매핑 const toBackendParams = (t, title, singer) => { - const content = - t === "movie" ? "MOVIE" : t === "book" ? "BOOK" : "MUSIC" - - // 백엔드 스펙: - // - 영화: /api/content/search?content=MOVIE&query=영화제목 - // - 책: /api/content/search?content=BOOK&title=책제목 - // - 음악: /api/content/search?content=MUSIC&artist=가수명&title=노래제목 - if (content === "MOVIE") return { content, query: title } - if (content === "BOOK") return { content, title: title } - return { content, artist: singer, title: title } - } + const content = t === "movie" ? "MOVIE" : t === "book" ? "BOOK" : "MUSIC"; + if (content === "MOVIE") return { content, query: title }; + if (content === "BOOK") return { content, title: title }; + return { content, artist: singer, title: title }; // MUSIC + }; const search = async (e) => { - e.preventDefault() + e.preventDefault(); + if (!q.trim()) { - setError("제목을 입력해 주세요.") - return + setError("제목을 입력해 주세요."); + setHasSearched(true); + return; } if (type === "music" && !artist.trim()) { - setError("음악 검색은 가수도 함께 입력해 주세요.") - return + setError("음악 검색은 가수도 함께 입력해 주세요."); + setHasSearched(true); + return; } - setError("") - setLoading(true) - setItems([]) + setError(""); + setLoading(true); + setItems([]); + + const reqId = ++lastReqId.current; // 이 검색의 토큰 try { - const params = toBackendParams(type, q.trim(), artist.trim()) - const data = await contentAPI.search(params) - - // 백엔드 응답이 items 혹은 results 배열일 수 있으니 안전하게 처리 - const list = - Array.isArray(data?.items) ? data.items - : Array.isArray(data?.results) ? data.results - : Array.isArray(data) ? data - : [] - setItems(list) - - setItems(list) + const params = toBackendParams(type, q.trim(), artist.trim()); + const data = await contentAPI.search(params); + + if (lastReqId.current !== reqId) return; // 최신 요청이 아니면 무시 + + const list = Array.isArray(data?.items) + ? data.items + : Array.isArray(data?.results) + ? data.results + : Array.isArray(data) + ? data + : []; + + setItems(list); } catch (err) { - setError("검색 중 오류가 발생했습니다.") - // 콘솔에도 남겨두면 디버깅 편함 + if (lastReqId.current !== reqId) return; + setError("검색 중 오류가 발생했습니다."); // eslint-disable-next-line no-console - console.error(err) + console.error(err); } finally { - setLoading(false) + if (lastReqId.current === reqId) { + setLoading(false); + setHasSearched(true); + } } - } + }; return ( <> @@ -77,7 +95,7 @@ export default function SearchDrawer({ open, onClose }) { onClick={onClose} /> - {/* 왼쪽(또는 오른쪽으로 바꾸려면 left-0 → right-0) 슬라이드 패널 */} + {/* 슬라이드 패널 (오른쪽) */} - ) + ); } diff --git a/src/lib/api.js b/src/lib/api.js index 07e3144..48cc01e 100644 --- a/src/lib/api.js +++ b/src/lib/api.js @@ -86,8 +86,10 @@ const contentApiRequest = async (endpoint, options = {}) => { const errorData = await response.json().catch(() => ({ message: response.statusText })); throw new Error(`HTTP error! status: ${response.status}, message: ${errorData.message || "Unknown error"}`); } + const data = await response.json(); + console.log(`📦 [contentApiRequest] ${url} 응답:`, data); - return await response.json(); + return data; }; //--------------------------------------------- From bb4d5b4f47ddf834b2e3fac10705f466a2767b97 Mon Sep 17 00:00:00 2001 From: ju0204 Date: Fri, 15 Aug 2025 22:56:07 +0900 Subject: [PATCH 76/86] =?UTF-8?q?[fix]=20search=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/no-image.png | Bin 0 -> 2741 bytes src/components/search/SearchDrawer.jsx | 175 +++++++++++++++---------- src/lib/api.js | 6 +- 3 files changed, 109 insertions(+), 72 deletions(-) create mode 100644 public/no-image.png diff --git a/public/no-image.png b/public/no-image.png new file mode 100644 index 0000000000000000000000000000000000000000..67bf9a84a58ed75dd8afcd0a1855def3f8c921bd GIT binary patch literal 2741 zcmcImYc!kL8aC52CZ*M;rD#xMTD=&eHPcLKRT{+%Iz&-ghKN)zv>I`jb_7Ati@KD` zp)Jj*C_)gS#YA0GRShv|B-jT(&YE@BtaW}oYp=EU_pbfz_kG^yeNujQ zvEQz?S4~AlWxJyT(oIF>3)9a4eF^MH_vu1`MHgr1g+qk~;UfIQFemJGb#J?KakB7YSKZwyQyuM4+xV<)*w3 z#oypgLC-l^b7)A&T<>G6Q|HLVZdBX}eQ-(Ug0MAN!}x4vP0e>bVDF57`pc)!PKbZC z)zj0X4~x~c%`UQ{2R@!Aj=r5;sbw%A>1SEKgmtM{DXx;qu5xMohVUctWXiB72^Le~ z%kuW|vFh^`@tF}d#uhsB`YDvbU=j>c?lCKqOfHTZ66*S=k!8va31?M6AZ*IRV={3U zb7h{Urw9t!dNp?=o6D(5`tYP9ZDQYx(;B41n?%Q~fL+ctlqK(O1 z7#T6lzNZ_qurkYCiDrEhW8O>5?TgYUJTS>I_cNFY z{aqF~=J^u!I;i@G&Ij(73U%jpR;kP509M&3)<(N>%+VSJQTAcv9%jURyrk#&S46(CKTO9p-K)%$k0 z{!E1GU2pE@2&}{ArnYKyY(ic6CX`sW5#<_5y$|`M4{mL3Ds9>&T)S9zqbTxt;3R#g zSnz&gBItF9LFd&)jJ8uLpU+>k@jf0jGNs<9&o0`g^}idhHyF4X38HTe~;~Zh|{P1!0|D2tE=VkSt$LMQg#H;uO-`ab0jP z8P8-jG(^vYj&uE8fG3#RkB)sX@g!FJM@7kuD{S68Y4s?3*pFCli(Ku{5^f`%pUUGT zku(U(&D9qt$mauSK#)_*#>bndiGlcl+PXUU8_J7;D}DY4uoo=0v`g6EEmo|E4uD;l z>FMdV2H0$z&g?s|6*+NAE|(7~5&$X)-G>DNKOY~+Oa&RfqrG;gGav=u@7+$h3U;B6 zkB@7fbT1otub*+-dgTb^V zCC|VVV}Mqy`B856@{d6aTmUK1+5FI1bmEV}!Q2t%Oh`zG%Toe4tO2OUivwqH@HeAd zSEbTZIQ!nnI&0&WLt(LTM_bFJ7J;V}kJ*cU;FAxTSS0-00M(%Q_8^>2p7SKavXaFT z1DrK6@7*$b4OaSqhME+%X@Bmp{x0-pZB^B~Y1~qNrOAl`pc$2(YCtc++jxg0U$ZRt zrZ)=O=8?&$s-4b&+&&?xZ$*&cL zgmp0koH+si0j9mzs>gmaAYHiWa1I}~7dxJAhR1u7>;!QGQ9ZRZW+ zW(vC(%FU5psTPBTcib~YK?%LrjG>GZ&gc!z>L6A_ZT zAayI%92!FY-EiU*GeQNvO|ch< z$IjjH%J>p6AO8)18In6Gxzcu@Yv4(u-ROG& { if (!open) return; @@ -25,17 +23,21 @@ export default function SearchDrawer({ open, onClose }) { setError(""); setHasSearched(false); setQ(""); // ← 검색창도 초기화 - setArtist(type === "music" ? "" : ""); // 타입 바껴도 가수 입력 비움 lastReqId.current++; // 진행 중이던 검색 응답은 무시되도록 토큰 증가 }, [type]); + const IMG_BASE = import.meta.env.VITE_TMDB_IMAGE_BASE || "https://image.tmdb.org/t/p/w342"; + // 프론트(type) → 백엔드(content) & 파라미터 매핑 - const toBackendParams = (t, title, singer) => { - const content = t === "movie" ? "MOVIE" : t === "book" ? "BOOK" : "MUSIC"; - if (content === "MOVIE") return { content, query: title }; - if (content === "BOOK") return { content, title: title }; - return { content, artist: singer, title: title }; // MUSIC - }; + const toBackendParams = (t, input) => { + const content = + t === "movie" ? "MOVIE" : t === "book" ? "BOOK" : "MUSIC" + if (content === "MOVIE") return { content, query: input } + if (content === "BOOK") return { content, title: input } + // MUSIC: "제목 - 가수" 파싱 + const { title, artist } = parseMusicQuery(input) + return { content, title, artist } + } const search = async (e) => { e.preventDefault(); @@ -45,33 +47,35 @@ export default function SearchDrawer({ open, onClose }) { setHasSearched(true); return; } - if (type === "music" && !artist.trim()) { - setError("음악 검색은 가수도 함께 입력해 주세요."); - setHasSearched(true); - return; + // 음악은 "제목 - 가수"가 모두 있어야 함 + if (type === "music") { + const { title, artist } = parseMusicQuery(q) + if (!title || !artist) { + setError("음악 검색은 '가수 - 노래 제목' 형식으로 입력해 주세요. (예: 봄날 - 방탄소년단)") + return + } } - setError(""); - setLoading(true); - setItems([]); + setError("") + setLoading(true) + setItems([]) - const reqId = ++lastReqId.current; // 이 검색의 토큰 + const reqId = ++lastReqId.current; try { - const params = toBackendParams(type, q.trim(), artist.trim()); - const data = await contentAPI.search(params); - - if (lastReqId.current !== reqId) return; // 최신 요청이 아니면 무시 - - const list = Array.isArray(data?.items) - ? data.items - : Array.isArray(data?.results) - ? data.results - : Array.isArray(data) - ? data - : []; - - setItems(list); + const params = toBackendParams(type, q.trim()) + const data = await contentAPI.search(params) + + // 백엔드 응답이 items 혹은 results 배열일 수 있으니 안전하게 처리 + const list = + Array.isArray(data?.items) ? data.items + : Array.isArray(data?.results) ? data.results + : Array.isArray(data?.content) ? data.content // 페이지네이션 형태 대비 + : Array.isArray(data?.documents) ? data.documents // 외부 API 프록시 대비 + : Array.isArray(data) ? data + : (data ? [data] : []) // 🔑 단일 객체면 감싸기 + + setItems(list) } catch (err) { if (lastReqId.current !== reqId) return; setError("검색 중 오류가 발생했습니다."); @@ -85,6 +89,14 @@ export default function SearchDrawer({ open, onClose }) { } }; + const parseMusicQuery = (raw) => { + const s = (raw || "").replace(/\s{2,}/g, " ").trim() + // 구분자 기준으로 최대 2개만 취함 + const parts = s.split(/\s*[-–—]\s*|\s*,\s*|\s*\|\s*/).filter(Boolean) + const [title, artist] = [parts[0] || "", parts[1] || ""] + return { title: title.trim(), artist: artist.trim() } + } + return ( <> {/* 오버레이 */} @@ -130,7 +142,11 @@ export default function SearchDrawer({ open, onClose }) { setQ(e.target.value)} aria-label="제목" @@ -145,16 +161,6 @@ export default function SearchDrawer({ open, onClose }) {
    - {type === "music" && ( - setArtist(e.target.value)} - aria-label="가수" - /> - )} - {error &&

    {error}

    } @@ -168,28 +174,59 @@ export default function SearchDrawer({ open, onClose }) {

    {movie.title}

    @@ -314,15 +312,13 @@ export default function HomePage() {
    #{index + 1}
    - {book.image && ( -
    - {book.title} -
    - )} +
    + {book.title} +

    {book.title}

    @@ -366,15 +362,13 @@ export default function HomePage() {
    #{index + 1}
    - {music.album && ( -
    - {music.title} -
    - )} +
    + {music.title} +

    {music.title}

    @@ -428,23 +422,23 @@ export default function HomePage() {
    {/* 이미지 */}
    - {selectedItem.type === 'movie' && selectedItem.poster_path && ( + {selectedItem.type === 'movie' && ( {selectedItem.title} )} - {selectedItem.type === 'book' && selectedItem.image && ( + {selectedItem.type === 'book' && ( {selectedItem.title} )} - {selectedItem.type === 'music' && selectedItem.album && ( + {selectedItem.type === 'music' && ( {selectedItem.title} From 0e36039208b5345600537fce065fa0cbb11f3646 Mon Sep 17 00:00:00 2001 From: "elogio.mi@gmail.com" Date: Sun, 17 Aug 2025 18:43:20 +0900 Subject: [PATCH 79/86] =?UTF-8?q?[FIX]=20=EB=A7=88=EC=9D=B4=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=20-=20=EC=83=81=EC=84=B8=EB=B3=B4=EA=B8=B0?= =?UTF-8?q?=20=EB=82=A0=EC=A7=9C=ED=91=9C=EA=B8=B0=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/MyPage.jsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/pages/MyPage.jsx b/src/pages/MyPage.jsx index 76ee933..0d41b53 100644 --- a/src/pages/MyPage.jsx +++ b/src/pages/MyPage.jsx @@ -264,7 +264,10 @@ export default function MyPage() { - {selectedHistory.personality} - {formatDate(selectedHistory.createdAt)} + {selectedHistory.personality} - {(() => { + const testInfo = getTestInfoById(selectedHistory.testId); + return testInfo?.createdAt ? formatDate(testInfo.createdAt) : "날짜 없음"; + })()} From 0b2dd1af153e58b290d42f06d034e87a2728621e Mon Sep 17 00:00:00 2001 From: "door.JH" Date: Sun, 17 Aug 2025 18:54:28 +0900 Subject: [PATCH 80/86] =?UTF-8?q?[FEAT]=20DISC=20=EC=84=A4=EB=AA=85=20?= =?UTF-8?q?=EB=AA=A8=EB=8B=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/HomePage.jsx | 108 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 105 insertions(+), 3 deletions(-) diff --git a/src/pages/HomePage.jsx b/src/pages/HomePage.jsx index f76fa58..6b023a3 100644 --- a/src/pages/HomePage.jsx +++ b/src/pages/HomePage.jsx @@ -22,6 +22,7 @@ export default function HomePage() { const [selectedItem, setSelectedItem] = useState(null) const [isModalOpen, setIsModalOpen] = useState(false) const [isTransitioning, setIsTransitioning] = useState(false) + const [isDiscModalOpen, setIsDiscModalOpen] = useState(false) const personalityTypes = [ { value: "D형 (지배형)", label: "D형 (지배형)", shortLabel: "D형" }, @@ -46,6 +47,14 @@ export default function HomePage() { setSelectedItem(null) } + const openDiscModal = () => { + setIsDiscModalOpen(true) + } + + const closeDiscModal = () => { + setIsDiscModalOpen(false) + } + // 자동 탭 전환 기능 useEffect(() => { if (!isAutoPlaying || isPaused) return @@ -167,11 +176,18 @@ export default function HomePage() { {/* 성향별 인기 콘텐츠 랭킹 섹션 */}
    -
    +

    성향별 인기 콘텐츠

    -

    +

    각 성향별로 가장 많이 추천받은 인기 콘텐츠를 확인해보세요

    +
    {loading ? ( @@ -398,7 +414,7 @@ export default function HomePage() {
    - {/* 모달 */} + {/* 컨텐츠 상세 모달 */} {isModalOpen && selectedItem && (
    e.stopPropagation()}> @@ -502,6 +518,92 @@ export default function HomePage() {
    )} + + {/* DISC 성향 설명 모달 */} + {isDiscModalOpen && ( +
    +
    e.stopPropagation()}> +
    + {/* 헤더 */} +
    +

    📊 DISC 성향이란?

    + +
    + + {/* 컨텐츠 */} +
    + {/* 좌측 이미지 */} + {/*
    +
    +
    +
    🧠
    +
    DISC
    +
    성향 분석 시스템
    +
    +
    +
    */} + + {/* 우측 설명 */} +
    +
    +
    +

    DISC란?

    +

    + DISC는 인간의 행동 패턴을 4가지 주요 성향으로 분류하는 성격 유형 분석 도구입니다. + 각 성향은 개인의 일상적인 행동, 의사소통 방식, 그리고 의사결정 과정에서 나타나는 + 특징적인 패턴을 나타냅니다. +

    +
    + +
    +
    +

    🔥 D형 (지배형)

    +

    + 직접적이고 결단력 있는 리더십을 가진 성향. 빠른 의사결정과 목표 지향적 행동을 선호합니다. +

    +
    + +
    +

    ⭐ I형 (사교형)

    +

    + 낙관적이고 사교적인 성향. 사람들과의 상호작용을 즐기며 창의적이고 영감을 주는 특성이 있습니다. +

    +
    + +
    +

    🌱 S형 (안정형)

    +

    + 안정적이고 협조적인 성향. 팀워크를 중시하며 신뢰할 수 있고 일관성 있는 행동을 보입니다. +

    +
    + +
    +

    🔍 C형 (신중형)

    +

    + 체계적이고 정확한 성향. 논리적 사고와 품질을 중시하며 세부사항에 주의를 기울입니다. +

    +
    +
    + +
    +

    💡 DISC의 활용

    +

    + DISC 성향 분석을 통해 자신의 강점과 약점을 파악하고, 더 나은 의사소통과 관계 형성을 도모할 수 있습니다. + 또한 개인에게 맞는 컨텐츠와 활동을 추천받아 더욱 만족스러운 삶을 살 수 있도록 도와줍니다. +

    +
    +
    +
    +
    +
    +
    +
    + )}
    ) } From 384c1c1d85213099a93c999f12e5990602b33a33 Mon Sep 17 00:00:00 2001 From: "door.JH" Date: Mon, 18 Aug 2025 10:01:43 +0900 Subject: [PATCH 81/86] =?UTF-8?q?[FEAT]=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20?= =?UTF-8?q?=EC=97=86=EC=9D=84=20=EC=8B=9C=20=EB=8C=80=EC=B2=B4=20=EC=9D=B4?= =?UTF-8?q?=EB=AF=B8=EC=A7=80=20=ED=91=9C=EC=8B=9C=ED=95=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/MyPage.jsx | 45 +++++++++++++++++++++------------------- src/pages/ResultPage.jsx | 45 +++++++++++++++++++++------------------- 2 files changed, 48 insertions(+), 42 deletions(-) diff --git a/src/pages/MyPage.jsx b/src/pages/MyPage.jsx index 0d41b53..c874c40 100644 --- a/src/pages/MyPage.jsx +++ b/src/pages/MyPage.jsx @@ -286,13 +286,14 @@ export default function MyPage() { key={index} className="flex items-start gap-4 bg-gray-100 dark:bg-gray-800 p-4 rounded-lg shadow-sm" > - {movie.poster_path && ( - {movie.title} - )} + {movie.title} { + e.target.src = "/no-image.png"; + }} + />

    제목: {movie.title}

    {movie.release_date && ( @@ -319,13 +320,14 @@ export default function MyPage() { key={index} className="flex items-start gap-4 bg-gray-100 dark:bg-gray-800 p-4 rounded-lg shadow-sm" > - {book.image && ( - {book.title} - )} + {book.title} { + e.target.src = "/no-image.png"; + }} + />

    {book.title}

    {book.author && ( @@ -350,13 +352,14 @@ export default function MyPage() { key={index} className="flex items-start gap-4 bg-gray-100 dark:bg-gray-800 p-4 rounded-lg shadow-sm" > - {music.album && ( - {music.title} - )} + {music.title} { + e.target.src = "/no-image.png"; + }} + />

    제목: {music.title}

    {music.artist && ( diff --git a/src/pages/ResultPage.jsx b/src/pages/ResultPage.jsx index f8a43b3..308a698 100644 --- a/src/pages/ResultPage.jsx +++ b/src/pages/ResultPage.jsx @@ -102,13 +102,14 @@ export default function ResultPage() { key={index} className="flex items-start gap-4 bg-gray-100 dark:bg-gray-800 p-4 rounded-lg shadow-sm" > - {movie.poster_path && ( - {movie.title} - )} + {movie.title} { + e.target.src = "/no-image.png"; + }} + />

    제목: {movie.title}

    {movie.release_date && ( @@ -135,13 +136,14 @@ export default function ResultPage() { key={index} className="flex items-start gap-4 bg-gray-100 dark:bg-gray-800 p-4 rounded-lg shadow-sm" > - {book.image && ( - {book.title} - )} + {book.title} { + e.target.src = "/no-image.png"; + }} + />

    {book.title}

    {book.author && ( @@ -166,13 +168,14 @@ export default function ResultPage() { key={index} className="flex items-start gap-4 bg-gray-100 dark:bg-gray-800 p-4 rounded-lg shadow-sm" > - {music.album && ( - {music.title} - )} + {music.title} { + e.target.src = "/no-image.png"; + }} + />

    제목: {music.title}

    {music.artist && ( From 95be5e5884228fbf49036054ff51ce6e1e7e3e1e Mon Sep 17 00:00:00 2001 From: "door.JH" Date: Mon, 18 Aug 2025 10:16:50 +0900 Subject: [PATCH 82/86] =?UTF-8?q?[FIX]=20=EC=84=A4=EB=AC=B8=20UI/UX=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/TestPage.jsx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/pages/TestPage.jsx b/src/pages/TestPage.jsx index 3776591..fd2ac70 100644 --- a/src/pages/TestPage.jsx +++ b/src/pages/TestPage.jsx @@ -60,6 +60,13 @@ export default function TestPage() { ...prev, [questionIndex]: Number.parseInt(value), })) + + // 답변을 선택하면 자동으로 다음 문항으로 이동 + if (questionIndex < questions.length - 1) { + setTimeout(() => { + setCurrentQuestion((prev) => prev + 1) + }, 300) // 300ms 후 다음 문항으로 이동 (사용자가 선택을 확인할 수 있도록) + } } const handleNext = () => { @@ -180,14 +187,10 @@ export default function TestPage() { 이전 - {currentQuestion === questions.length - 1 ? ( + {currentQuestion === questions.length - 1 && ( - ) : ( - )}
    From 5b16bba4465fa5c10736a318e704bb448e27563e Mon Sep 17 00:00:00 2001 From: "door.JH" Date: Tue, 19 Aug 2025 14:24:15 +0900 Subject: [PATCH 83/86] =?UTF-8?q?[FIX]]=20=EB=A7=88=EC=9D=B4=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=20UTC=20=EC=8B=9C=EA=B0=84=ED=91=9C=EA=B8=B0?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/MyPage.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/MyPage.jsx b/src/pages/MyPage.jsx index c874c40..4a1cc1c 100644 --- a/src/pages/MyPage.jsx +++ b/src/pages/MyPage.jsx @@ -133,7 +133,7 @@ export default function MyPage() { const formatDate = (dateString) => { const date = new Date(dateString) - return date.toLocaleString("ko-KR", { + return date.toLocaleString("", { year: "numeric", month: "2-digit", day: "2-digit", From e55e7c2d988ab98eecb20dffca04926d8d810209 Mon Sep 17 00:00:00 2001 From: "elogio.mi@gmail.com" Date: Tue, 19 Aug 2025 14:27:02 +0900 Subject: [PATCH 84/86] =?UTF-8?q?[FIX]=20=EB=A7=88=EC=9D=B4=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=20UTC=20=EC=8B=9C=EA=B0=84=ED=91=9C=EA=B8=B0?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/MyPage.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/MyPage.jsx b/src/pages/MyPage.jsx index 4a1cc1c..63785f8 100644 --- a/src/pages/MyPage.jsx +++ b/src/pages/MyPage.jsx @@ -133,7 +133,7 @@ export default function MyPage() { const formatDate = (dateString) => { const date = new Date(dateString) - return date.toLocaleString("", { + return date.toLocaleString({ year: "numeric", month: "2-digit", day: "2-digit", From 9851c90ff4c1103ee8e90eee2db615485f6716f6 Mon Sep 17 00:00:00 2001 From: "door.JH" Date: Tue, 19 Aug 2025 14:30:28 +0900 Subject: [PATCH 85/86] =?UTF-8?q?[FIX]=20=EB=A7=88=EC=9D=B4=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=20UTC=20=EC=8B=9C=EA=B0=84=ED=91=9C=EA=B8=B0?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/MyPage.jsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/pages/MyPage.jsx b/src/pages/MyPage.jsx index 63785f8..58503e3 100644 --- a/src/pages/MyPage.jsx +++ b/src/pages/MyPage.jsx @@ -133,7 +133,8 @@ export default function MyPage() { const formatDate = (dateString) => { const date = new Date(dateString) - return date.toLocaleString({ + console.log("📅 날짜 포맷팅:", dateString, "->", date); + return date.toLocaleString("ko-KR", { year: "numeric", month: "2-digit", day: "2-digit", From 554a18a0e7d4fdfee1e2244ae5b10a79766e7082 Mon Sep 17 00:00:00 2001 From: "door.JH" Date: Tue, 19 Aug 2025 14:37:20 +0900 Subject: [PATCH 86/86] =?UTF-8?q?[FIX]=20=EB=A7=88=EC=9D=B4=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=20UTC=20=EC=8B=9C=EA=B0=84=ED=91=9C=EA=B8=B0?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/utils.js | 40 ++++++++++++++++++++++++++++++++++++++++ src/pages/HomePage.jsx | 3 ++- src/pages/MyPage.jsx | 11 ++--------- 3 files changed, 44 insertions(+), 10 deletions(-) diff --git a/src/lib/utils.js b/src/lib/utils.js index 20aa603..58ba4a2 100644 --- a/src/lib/utils.js +++ b/src/lib/utils.js @@ -4,3 +4,43 @@ import { twMerge } from "tailwind-merge" export function cn(...inputs) { return twMerge(clsx(inputs)) } + +/** + * UTC 시간을 한국 시간으로 변환하는 함수 + * @param {string|Date} dateString - UTC 시간 문자열 또는 Date 객체 + * @returns {Date} 한국 시간 Date 객체 + */ +export const convertToKST = (dateString) => { + const date = new Date(dateString) + // UTC 시간에 9시간을 더해서 한국 시간으로 변환 + return new Date(date.getTime() + (9 * 60 * 60 * 1000)) +} + +/** + * 한국 시간으로 포맷팅하는 함수 + * @param {string|Date} dateString - UTC 시간 문자열 또는 Date 객체 + * @returns {string} 한국 시간으로 포맷팅된 문자열 + */ +export const formatToKST = (dateString) => { + const kstDate = convertToKST(dateString) + return kstDate.toLocaleString("ko-KR", { + year: "numeric", + month: "2-digit", + day: "2-digit", + hour: "2-digit", + minute: "2-digit", + timeZone: "Asia/Seoul" + }) +} + +/** + * 한국 시간으로 날짜만 포맷팅하는 함수 + * @param {string|Date} dateString - UTC 시간 문자열 또는 Date 객체 + * @returns {string} 한국 시간으로 포맷팅된 날짜 문자열 + */ +export const formatDateToKST = (dateString) => { + const kstDate = convertToKST(dateString) + return kstDate.toLocaleDateString("ko-KR", { + timeZone: "Asia/Seoul" + }) +} diff --git a/src/pages/HomePage.jsx b/src/pages/HomePage.jsx index 6b023a3..b837666 100644 --- a/src/pages/HomePage.jsx +++ b/src/pages/HomePage.jsx @@ -4,6 +4,7 @@ import { Button } from "../components/ui/button" import { Header } from "../components/header" import { Tabs, TabsContent, TabsList, TabsTrigger } from "../components/ui/tabs" import { contentAPI } from "../lib/api" +import { formatDateToKST } from "../lib/utils" import SearchDrawer from "../components/search/SearchDrawer" // ⬅️ 드로어 컴포넌트 export default function HomePage() { @@ -469,7 +470,7 @@ export default function HomePage() { <> {selectedItem.release_date && (

    - 개봉일: {new Date(selectedItem.release_date).toLocaleDateString()} + 개봉일: {formatDateToKST(selectedItem.release_date)}

    )} {selectedItem.overview && ( diff --git a/src/pages/MyPage.jsx b/src/pages/MyPage.jsx index 58503e3..2e20c4e 100644 --- a/src/pages/MyPage.jsx +++ b/src/pages/MyPage.jsx @@ -10,6 +10,7 @@ import { Button } from "../components/ui/button" // 상대 경로로 변경 import { Tabs, TabsContent, TabsList, TabsTrigger } from "../components/ui/tabs" // 상대 경로로 변경 import { testAPI, authAPI,contentAPI } from "../lib/api" // 상대 경로로 변경 import { useToast } from "../hooks/use-toast" // 상대 경로로 변경 +import { formatToKST, formatDateToKST } from "../lib/utils" export default function MyPage() { const { user, isLoading } = useAuth() @@ -132,15 +133,7 @@ export default function MyPage() { } const formatDate = (dateString) => { - const date = new Date(dateString) - console.log("📅 날짜 포맷팅:", dateString, "->", date); - return date.toLocaleString("ko-KR", { - year: "numeric", - month: "2-digit", - day: "2-digit", - hour: "2-digit", - minute: "2-digit", - }) + return formatToKST(dateString) } return (

    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 LAzvl?Hst>SK}|OC literal 0 HcmV?d00001 diff --git a/src/App.jsx b/src/App.jsx index 227eefc..3a18415 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,9 +1,12 @@ -import React from "react" +// src/App.jsx + +import React, { useEffect } from "react" import { BrowserRouter as Router, Routes, Route } from "react-router-dom" import { AuthProvider } from "./components/auth-provider" import { Toaster } from "./components/ui/toaster" +import { getInitialTheme, setTheme } from "./utils/theme" -// 페이지 컴포넌트 임포트 +// 페이지 컴포넌트 import HomePage from "./pages/HomePage" import TestPage from "./pages/TestPage" import ResultPage from "./pages/ResultPage" @@ -12,6 +15,11 @@ import LoginPage from "./pages/LoginPage" import RegisterPage from "./pages/RegisterPage" function App() { + useEffect(() => { + const initialTheme = getInitialTheme() + setTheme(initialTheme) + }, []) + return ( diff --git a/src/components/header.jsx b/src/components/header.jsx index e475eb3..d6fd96b 100644 --- a/src/components/header.jsx +++ b/src/components/header.jsx @@ -1,30 +1,64 @@ "use client" -import React from "react" +import React, { useEffect, useState } from "react" import { Link, useNavigate } from "react-router-dom" import { useAuth } from "./auth-provider" import { Button } from "./ui/button" +import { getInitialTheme, setTheme } from "../utils/theme" export function Header() { const { user, logout } = useAuth() const navigate = useNavigate() + const [theme, setThemeState] = useState("light") + + useEffect(() => { + const initialTheme = getInitialTheme() + setTheme(initialTheme) + setThemeState(initialTheme) + }, []) + + const toggleTheme = () => { + const newTheme = theme === "dark" ? "light" : "dark" + setTheme(newTheme) + setThemeState(newTheme) + } + const handleLogout = () => { logout() navigate("/") } return ( -

    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