diff --git a/src/app/(pages)/(auth)/login/page.tsx b/src/app/(pages)/(auth)/login/page.tsx index 9e9d02f..2ece251 100644 --- a/src/app/(pages)/(auth)/login/page.tsx +++ b/src/app/(pages)/(auth)/login/page.tsx @@ -6,6 +6,7 @@ import LoginMainBigLogo from '@/public/svg/logo/login-main-big.svg'; import { redirect, useRouter } from 'next/navigation'; import { useAuthStore } from '@/lib/stores/auth-store'; import { useEffect } from 'react'; +import { apiClient } from '@/lib/api/axios-client-config'; export default function LoginPage() { const router = useRouter(); @@ -15,7 +16,10 @@ export default function LoginPage() { kakaoAuthService.login(); }; const handleGuestLogin = async () => { - const token = 'guest'; + const tokenResponse: { accessToken: string } = await apiClient({ + url: '/test/auth/login', + method: 'POST', + }); const response = await fetch( `${process.env.NEXT_PUBLIC_API_ROUTE_URL}/api/cookie-set`, { @@ -23,7 +27,7 @@ export default function LoginPage() { headers: { 'Content-Type': 'application/json', }, - body: JSON.stringify({ token }), + body: JSON.stringify({ token: tokenResponse.accessToken }), }, ); if (!response.ok) { diff --git a/src/app/(pages)/(main)/make-video/_components/video-image-upload.tsx b/src/app/(pages)/(main)/make-video/_components/video-image-upload.tsx index 8185f7b..5de981f 100644 --- a/src/app/(pages)/(main)/make-video/_components/video-image-upload.tsx +++ b/src/app/(pages)/(main)/make-video/_components/video-image-upload.tsx @@ -10,9 +10,7 @@ import { toast } from 'sonner'; import MakeVideoStartIcon from '@/public/svg/make-video/make-video-start.svg'; import { GradientProgressBar } from '@/components/gradient-progress-bar'; import { useRouter } from 'next/navigation'; -import { - createVideoGeneration, -} from '@/lib/api/video/video'; +import { createVideoGeneration } from '@/lib/api/video/video'; export function VideoImageUpload() { const router = useRouter(); @@ -57,19 +55,26 @@ export function VideoImageUpload() { videoUrl: url, })), storeId: currentStore?.id ?? '', - }).then(response => { - if (!response.videoGenerationId) { - toast.error('영상 생성에 실패했습니다. 새로고침 후 다시 시도해주세요.'); + }) + .then(response => { + console.log('response:', response); + if (!response.videoGenerationId) { + toast.error( + '영상 생성에 실패했습니다. 새로고침 후 다시 시도해주세요.', + ); + setIsProcessing(false); + return; + } + router.replace( + `/mypage/manage-video?generationId=${response.videoGenerationId}`, + ); + }) + .catch(() => { + toast.error( + '영상 생성에 실패했습니다. 새로고침 후 다시 시도해주세요.', + ); setIsProcessing(false); - return; - } - router.replace( - `/mypage/manage-video?generationId=${response.videoGenerationId}`, - ); - }).catch(() => { - toast.error('영상 생성에 실패했습니다. 새로고침 후 다시 시도해주세요.'); - setIsProcessing(false); - }); + }); }, onUploadError: error => { toast.error(error.message); diff --git a/src/app/(pages)/(main)/mypage/(mypage)/manage-video/[video_id]/page.tsx b/src/app/(pages)/(main)/mypage/(mypage)/manage-video/[video_id]/page.tsx index 1c0877f..3936d89 100644 --- a/src/app/(pages)/(main)/mypage/(mypage)/manage-video/[video_id]/page.tsx +++ b/src/app/(pages)/(main)/mypage/(mypage)/manage-video/[video_id]/page.tsx @@ -1,3 +1,4 @@ +import { getVideo } from '@/lib/api/video/video'; import { VideoPlayer } from '../../../_components/manage-video/video-player'; export default async function VideoDetailPage({ @@ -7,10 +8,11 @@ export default async function VideoDetailPage({ }) { const videoId = (await params).video_id; console.log(videoId); + // const videoInfo = await getVideo(videoId); return (
- +
); } diff --git a/src/app/(pages)/(main)/mypage/(mypage)/manage-video/[video_id]/video-check/page.tsx b/src/app/(pages)/(main)/mypage/(mypage)/manage-video/[video_id]/video-check/page.tsx index a9f7ff2..fd84b10 100644 --- a/src/app/(pages)/(main)/mypage/(mypage)/manage-video/[video_id]/video-check/page.tsx +++ b/src/app/(pages)/(main)/mypage/(mypage)/manage-video/[video_id]/video-check/page.tsx @@ -1,6 +1,6 @@ -import { FieldContainer } from '@/components/store-info'; import { VideoCheckDescription } from '../../../../_components/manage-video/video-check-description'; import { cn } from '@/lib/utils/cn'; +import { VideoCheckButton } from '../../../../_components/manage-video/video-check-button'; const VIDEO_URL = 'https://f002.backblazeb2.com/file/creatomate-c8xg3hsxdu/6683c14f-7d35-45ea-9402-d87fd498f5a7.mp4'; @@ -30,6 +30,7 @@ export default async function VideoCheckPage({ + ); } diff --git a/src/app/(pages)/(main)/mypage/_components/manage-video/video-check-button.tsx b/src/app/(pages)/(main)/mypage/_components/manage-video/video-check-button.tsx new file mode 100644 index 0000000..316e133 --- /dev/null +++ b/src/app/(pages)/(main)/mypage/_components/manage-video/video-check-button.tsx @@ -0,0 +1,47 @@ +'use client'; + +import { toast } from 'sonner'; + +export function VideoCheckButton({ videoUrl }: { videoUrl: string }) { + // 갤러리에 저장 (다운로드) 기능 + const handleDownload = async () => { + try { + const response = await fetch(videoUrl); + const blob = await response.blob(); + const url = window.URL.createObjectURL(blob); + const a = document.createElement('a'); + a.href = url; + a.download = `shorts-table-video-${Date.now()}.mp4`; + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); + window.URL.revokeObjectURL(url); + toast.success('영상이 다운로드되었습니다!'); + } catch (error) { + console.error('Download failed:', error); + toast.error('다운로드에 실패했습니다. 다시 시도해주세요.'); + } + }; + + // 업로드 요청 (이메일 발송) 기능 + const handleUploadRequest = async () => { + toast.success('업로드 요청이 완료되었습니다!'); + }; + + return ( +
+ + +
+ ); +} diff --git a/src/app/(pages)/(main)/mypage/_components/manage-video/video-player.tsx b/src/app/(pages)/(main)/mypage/_components/manage-video/video-player.tsx index 308f2b2..9a0b1fc 100644 --- a/src/app/(pages)/(main)/mypage/_components/manage-video/video-player.tsx +++ b/src/app/(pages)/(main)/mypage/_components/manage-video/video-player.tsx @@ -3,8 +3,9 @@ import { useState } from 'react'; import { LoadingSpinner } from '@/components/loading-spinner'; import { useRouter } from 'next/navigation'; +import type { VideoResponse } from '@/types/api'; -export function VideoPlayer({ videoId }: { videoId: string }) { +export function VideoPlayer() { const router = useRouter(); const videoUrl = 'https://f002.backblazeb2.com/file/creatomate-c8xg3hsxdu/6683c14f-7d35-45ea-9402-d87fd498f5a7.mp4'; @@ -39,9 +40,7 @@ export function VideoPlayer({ videoId }: { videoId: string }) { 다시 만들기