/** * SettingsTab — 워크스페이스 설정 탭. * ReportBody 의 SectionWrapper 스타일을 그대로 따름. * 분석 대상 URL/소셜 핸들 편집 + 병원 기본 정보 확인. */ import { useState } from 'react'; import { Save, AlertCircle, Info } from 'lucide-react'; import { Input } from '@/shared/ui/input'; import { Button } from '@/shared/ui/button'; import { SectionWrapper } from '@/features/report/components/ui/SectionWrapper'; import { PLATFORM_META } from '../PlatformChips'; import type { PlatformKey, WorkspaceClinicProfile } from '../../types/workspace'; const EDITABLE_PLATFORMS: PlatformKey[] = [ 'website', 'youtube', 'instagram', 'facebook', 'naverPlace', 'naverBlog', 'gangnamUnni', 'tiktok', ]; const PLATFORM_PLACEHOLDER: Record = { website: 'your-clinic.co.kr', instagram: 'instagram.com/your_clinic', youtube: 'youtube.com/@your_channel', facebook: 'facebook.com/your.page', tiktok: '@your_clinic', gangnamUnni: 'gangnamunni.com/hospitals/000', naverPlace: 'place.naver.com/hospital/0000000', naverBlog: 'blog.naver.com/your_blog', }; interface SettingsTabProps { clinic: WorkspaceClinicProfile; } export function SettingsTab({ clinic }: SettingsTabProps) { const [values, setValues] = useState>(() => { const initial: Record = { website: '', instagram: '', youtube: '', facebook: '', tiktok: '', }; clinic.defaultTargets.forEach((t) => { initial[t.platform] = t.handle; }); return initial; }); const [saved, setSaved] = useState(false); const handleChange = (platform: PlatformKey, value: string) => { setValues((prev) => ({ ...prev, [platform]: value })); setSaved(false); }; const handleSave = () => { // TODO: API 연동 — PATCH /api/clinics/:id setSaved(true); }; return (
{/* Platform handles */}

채널 URL · 핸들

분석에 사용할 공식 채널을 입력하세요. 비워두면 해당 채널은 분석에서 제외됩니다.

{EDITABLE_PLATFORMS.map((platform) => { const meta = PLATFORM_META[platform]; const Icon = meta.Icon; return (
handleChange(platform, e.target.value)} placeholder={PLATFORM_PLACEHOLDER[platform]} className="flex-1 h-10 text-sm bg-slate-50 border border-slate-200 rounded-xl focus:bg-white focus:border-[#9B8AD4] focus:ring-2 focus:ring-[#9B8AD4]/20" />
{platform === 'website' && (

홈페이지를 변경하면 다음 분석부터 병원 기본 정보(이름·주소·진료시간·의료진 등)가 새 사이트 기준으로 함께 갱신돼요.

)}
); })}

{saved ? ( <> 로컬에 저장되었습니다 (API 연동 후속 작업) ) : ( <> 저장은 아직 서버에 반영되지 않습니다. )}

); }