diff --git a/next.config.ts b/next.config.ts index 5a1ade85..5dce33cc 100644 --- a/next.config.ts +++ b/next.config.ts @@ -1,8 +1,15 @@ import type { NextConfig } from 'next'; const nextConfig: NextConfig = { + images: { - domains: ['www.thecocktaildb.com'], + domains: ['team2-app-s3-bucket.s3.ap-northeast-2.amazonaws.com'], + remotePatterns: [ + { + protocol: 'https', + hostname: 'www.thecocktaildb.com', + }, + ], }, env: { NPUBLIC_API_URL: process.env.NEXT_PUBLIC_API_URL, diff --git a/package-lock.json b/package-lock.json index bcea2d9b..ff6b65a9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "0.1.0", "license": "ISC", "dependencies": { + "@tanstack/react-query": "^5.90.2", "@tanstack/react-virtual": "^3.13.12", "class-variance-authority": "^0.7.1", "gsap": "^3.13.0", @@ -17,7 +18,9 @@ "react": "19.1.0", "react-dom": "19.1.0", "react-hot-toast": "^2.6.0", - "react-use": "^17.6.0" + "react-intersection-observer": "^9.16.0", + "react-use": "^17.6.0", + "swiper": "^12.0.2" }, "devDependencies": { "@eslint/eslintrc": "^3", @@ -3298,6 +3301,32 @@ "tailwindcss": "4.1.13" } }, + "node_modules/@tanstack/query-core": { + "version": "5.90.2", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.90.2.tgz", + "integrity": "sha512-k/TcR3YalnzibscALLwxeiLUub6jN5EDLwKDiO7q5f4ICEoptJ+n9+7vcEFy5/x/i6Q+Lb/tXrsKCggf5uQJXQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.90.2", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.90.2.tgz", + "integrity": "sha512-CLABiR+h5PYfOWr/z+vWFt5VsOA2ekQeRQBFSKlcoW6Ndx/f8rfyVmq4LbgOM4GG2qtxAxjLYLOpCNTYm4uKzw==", + "license": "MIT", + "dependencies": { + "@tanstack/query-core": "5.90.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18 || ^19" + } + }, "node_modules/@tanstack/react-virtual": { "version": "3.13.12", "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.13.12.tgz", @@ -8243,6 +8272,21 @@ "react-dom": ">=16" } }, + "node_modules/react-intersection-observer": { + "version": "9.16.0", + "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.16.0.tgz", + "integrity": "sha512-w9nJSEp+DrW9KmQmeWHQyfaP6b03v+TdXynaoA964Wxt7mdR3An11z4NNCQgL4gKSK7y1ver2Fq+JKH6CWEzUA==", + "license": "MIT", + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", @@ -9207,6 +9251,25 @@ "url": "https://opencollective.com/svgo" } }, + "node_modules/swiper": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-12.0.2.tgz", + "integrity": "sha512-y8F6fDGXmTVVgwqJj6I00l4FdGuhpFJn0U/9Ucn1MwWOw3NdLV8aH88pZOjyhBgU/6PyBlUx+JuAQ5KMWz906Q==", + "funding": [ + { + "type": "patreon", + "url": "https://www.patreon.com/swiperjs" + }, + { + "type": "open_collective", + "url": "http://opencollective.com/swiper" + } + ], + "license": "MIT", + "engines": { + "node": ">= 4.7.0" + } + }, "node_modules/tailwind-merge": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.3.1.tgz", diff --git a/package.json b/package.json index 7654fec6..4eaef365 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ ] }, "dependencies": { + "@tanstack/react-query": "^5.90.2", "@tanstack/react-virtual": "^3.13.12", "class-variance-authority": "^0.7.1", "gsap": "^3.13.0", @@ -26,7 +27,9 @@ "react": "19.1.0", "react-dom": "19.1.0", "react-hot-toast": "^2.6.0", - "react-use": "^17.6.0" + "react-use": "^17.6.0", + "swiper": "^12.0.2", + "react-intersection-observer": "^9.16.0" }, "devDependencies": { "@eslint/eslintrc": "^3", @@ -61,4 +64,4 @@ }, "homepage": "https://github.com/prgrms-web-devcourse-final-project/WEB5_6_HaeDokCoding_FE#readme", "description": "" -} \ No newline at end of file +} diff --git a/src.zip b/src.zip deleted file mode 100644 index 143176bd..00000000 Binary files a/src.zip and /dev/null differ diff --git a/src/app/api/kakao/KaKaoScript.tsx b/src/app/api/kakao/KaKaoScript.tsx new file mode 100644 index 00000000..63347976 --- /dev/null +++ b/src/app/api/kakao/KaKaoScript.tsx @@ -0,0 +1,17 @@ +'use client'; + +import Script from 'next/script'; + +declare global { + interface Window { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + Kakao: any; + } +} +function KaKaoScript() { + const onLoad = () => { + window.Kakao.init(process.env.NEXT_PUBLIC_KAKAO_JAVASCRIPT_KEY); + }; + return