chore: plan/report 페이지에서 '클리닉으로' 링크 + 다운로드 버튼 제거

Guest/User × Plan/Report 4개 페이지 상단 ReportNav 의 leftSlot('클리닉으로')과
rightSlot 의 다운로드 메뉴 버튼 제거. UserReportPage 의 '다시 분석' 버튼은 유지.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
main
Mina Choi 2026-05-18 15:36:03 +09:00
parent 3ddffd4455
commit 82f166a80e
4 changed files with 17 additions and 89 deletions

View File

@ -6,11 +6,9 @@
* CTA(PlanCTA) . * CTA(PlanCTA) .
*/ */
import { useEffect } from 'react'; import { useEffect } from 'react';
import { Link, useParams, useLocation } from 'react-router'; import { useParams, useLocation } from 'react-router';
import { ArrowLeft } from 'lucide-react';
import { useMarketingPlan } from '../hooks/useMarketingPlan'; import { useMarketingPlan } from '../hooks/useMarketingPlan';
import { ReportNav } from '@/features/report/components/ReportNav'; import { ReportNav } from '@/features/report/components/ReportNav';
import { PlanDownloadMenuButton } from '../components/PlanDownloadMenuButton';
import { PLAN_SECTIONS } from '@/shared/constants/planSections'; import { PLAN_SECTIONS } from '@/shared/constants/planSections';
import PlanBody from '../components/PlanBody'; import PlanBody from '../components/PlanBody';
@ -59,23 +57,7 @@ export default function GuestPlanPage() {
return ( return (
<div className="pt-20"> <div className="pt-20">
<ReportNav <ReportNav sections={PLAN_SECTIONS} />
sections={PLAN_SECTIONS}
leftSlot={
<Link
to="/clinics/view-clinic"
className="inline-flex items-center gap-1.5 text-xs font-medium text-slate-500 hover:text-primary-900 transition-colors"
>
<ArrowLeft size={14} />
</Link>
}
rightSlot={
<div className="flex items-center gap-2">
<PlanDownloadMenuButton filename={`${data.clinicName}_Marketing_Plan`} plan={data} />
</div>
}
/>
<PlanBody data={data} /> <PlanBody data={data} />
</div> </div>
); );

View File

@ -9,11 +9,9 @@
* , . import/render . * , . import/render .
*/ */
import { useEffect } from 'react'; import { useEffect } from 'react';
import { Link, useParams, useLocation } from 'react-router'; import { useParams, useLocation } from 'react-router';
import { ArrowLeft } from 'lucide-react';
import { useMarketingPlan } from '../hooks/useMarketingPlan'; import { useMarketingPlan } from '../hooks/useMarketingPlan';
import { ReportNav } from '@/features/report/components/ReportNav'; import { ReportNav } from '@/features/report/components/ReportNav';
import { PlanDownloadMenuButton } from '../components/PlanDownloadMenuButton';
import { PLAN_SECTIONS } from '@/shared/constants/planSections'; import { PLAN_SECTIONS } from '@/shared/constants/planSections';
import PlanBody from '../components/PlanBody'; import PlanBody from '../components/PlanBody';
import MyAssetUpload from '../components/MyAssetUpload'; import MyAssetUpload from '../components/MyAssetUpload';
@ -21,7 +19,7 @@ import MyAssetUpload from '../components/MyAssetUpload';
import WorkflowTracker from '../components/WorkflowTracker'; import WorkflowTracker from '../components/WorkflowTracker';
export default function UserPlanPage() { export default function UserPlanPage() {
const { clinicId, id } = useParams<{ clinicId: string; id: string }>(); const { id } = useParams<{ clinicId: string; id: string }>();
const location = useLocation(); const location = useLocation();
// const stateClinicId = (location.state as { clinicId?: string } | undefined)?.clinicId || null; // const stateClinicId = (location.state as { clinicId?: string } | undefined)?.clinicId || null;
const { data, isLoading, error } = useMarketingPlan(id); const { data, isLoading, error } = useMarketingPlan(id);
@ -63,23 +61,7 @@ export default function UserPlanPage() {
return ( return (
<div className="pt-20"> <div className="pt-20">
<ReportNav <ReportNav sections={PLAN_SECTIONS} />
sections={PLAN_SECTIONS}
leftSlot={
<Link
to={`/clinics/${clinicId}`}
className="inline-flex items-center gap-1.5 text-xs font-medium text-slate-500 hover:text-primary-900 transition-colors"
>
<ArrowLeft size={14} />
</Link>
}
rightSlot={
<div className="flex items-center gap-2">
<PlanDownloadMenuButton filename={`${data.clinicName}_Marketing_Plan`} plan={data} />
</div>
}
/>
<PlanBody data={data} /> <PlanBody data={data} />

View File

@ -5,15 +5,14 @@
* UserReportPage , CTA * UserReportPage , CTA
* . * .
*/ */
import { Link, useParams } from 'react-router'; import { useParams } from 'react-router';
import { ArrowRight, ArrowLeft } from 'lucide-react'; import { ArrowRight } from 'lucide-react';
import { useReportPageData } from '../hooks/useReportPageData'; import { useReportPageData } from '../hooks/useReportPageData';
import { ReportNav } from '../components/ReportNav'; import { ReportNav } from '../components/ReportNav';
import { ScreenshotProvider } from '../stores/ScreenshotContext'; import { ScreenshotProvider } from '../stores/ScreenshotContext';
import { REPORT_SECTIONS } from '@/shared/constants/reportSections'; import { REPORT_SECTIONS } from '@/shared/constants/reportSections';
import { buildContactMailto } from '@/shared/lib/contact'; import { buildContactMailto } from '@/shared/lib/contact';
import ReportBody from '../components/ReportBody'; import ReportBody from '../components/ReportBody';
import { DownloadMenuButton } from '../components/DownloadMenuButton';
export default function GuestReportPage() { export default function GuestReportPage() {
const { id } = useParams<{ id: string }>(); const { id } = useParams<{ id: string }>();
@ -44,26 +43,7 @@ export default function GuestReportPage() {
return ( return (
<ScreenshotProvider screenshots={data.screenshots ?? []}> <ScreenshotProvider screenshots={data.screenshots ?? []}>
<div className="pt-20"> <div className="pt-20">
<ReportNav <ReportNav sections={REPORT_SECTIONS} />
sections={REPORT_SECTIONS}
leftSlot={
<Link
to="/clinics/view-clinic"
className="inline-flex items-center gap-1.5 text-xs font-medium text-slate-500 hover:text-primary-900 transition-colors"
>
<ArrowLeft size={14} />
</Link>
}
rightSlot={
<div className="flex items-center gap-2">
<DownloadMenuButton
filename={`${data.clinicSnapshot.name}_Marketing_Intelligence_Report`}
report={data}
/>
</div>
}
/>
{enrichStatus === 'loading' && ( {enrichStatus === 'loading' && (
<div className="fixed bottom-6 right-6 z-50 flex items-center gap-3 px-4 py-3 bg-white rounded-xl shadow-[3px_4px_12px_rgba(0,0,0,0.06)] border border-slate-100"> <div className="fixed bottom-6 right-6 z-50 flex items-center gap-3 px-4 py-3 bg-white rounded-xl shadow-[3px_4px_12px_rgba(0,0,0,0.06)] border border-slate-100">

View File

@ -7,16 +7,15 @@
* - CTA * - CTA
*/ */
import { Link, useParams } from 'react-router'; import { Link, useParams } from 'react-router';
import { ArrowLeft, RefreshCw } from 'lucide-react'; import { RefreshCw } from 'lucide-react';
import { useReportPageData } from '../hooks/useReportPageData'; import { useReportPageData } from '../hooks/useReportPageData';
import { ReportNav } from '../components/ReportNav'; import { ReportNav } from '../components/ReportNav';
import { ScreenshotProvider } from '../stores/ScreenshotContext'; import { ScreenshotProvider } from '../stores/ScreenshotContext';
import { REPORT_SECTIONS } from '@/shared/constants/reportSections'; import { REPORT_SECTIONS } from '@/shared/constants/reportSections';
import ReportBody from '../components/ReportBody'; import ReportBody from '../components/ReportBody';
import { DownloadMenuButton } from '../components/DownloadMenuButton';
export default function UserReportPage() { export default function UserReportPage() {
const { clinicId, id } = useParams<{ clinicId: string; id: string }>(); const { id } = useParams<{ clinicId: string; id: string }>();
const { data, isLoading, error, enrichStatus } = useReportPageData(id); const { data, isLoading, error, enrichStatus } = useReportPageData(id);
if (isLoading) { if (isLoading) {
@ -46,29 +45,14 @@ export default function UserReportPage() {
<div className="pt-20"> <div className="pt-20">
<ReportNav <ReportNav
sections={REPORT_SECTIONS} sections={REPORT_SECTIONS}
leftSlot={
<Link
to={`/clinics/${clinicId}`}
className="inline-flex items-center gap-1.5 text-xs font-medium text-slate-500 hover:text-primary-900 transition-colors"
>
<ArrowLeft size={14} />
</Link>
}
rightSlot={ rightSlot={
<div className="flex items-center gap-2"> <Link
<DownloadMenuButton to={`/report/loading`}
filename={`${data.clinicSnapshot.name}_Marketing_Intelligence_Report`} className="inline-flex items-center gap-1.5 px-3.5 py-2 rounded-full text-xs font-medium text-slate-600 bg-slate-50 border border-slate-200 hover:bg-white hover:border-slate-300 transition-all"
report={data} >
/> <RefreshCw size={12} />
<Link
to={`/report/loading`} </Link>
className="inline-flex items-center gap-1.5 px-3.5 py-2 rounded-full text-xs font-medium text-slate-600 bg-slate-50 border border-slate-200 hover:bg-white hover:border-slate-300 transition-all"
>
<RefreshCw size={12} />
</Link>
</div>
} }
/> />