import { useEffect, useState } from 'react'; import { getMusicSetup, updateMusicSetup, getYoutubeAuthUrl, getYoutubeStatus, disconnectYoutube, } from '../../../api'; export default function SetupTab() { const [setup, setSetup] = useState(null); const [yt, setYt] = useState(null); const [saving, setSaving] = useState(false); const [error, setError] = useState(''); useEffect(() => { Promise.all([getMusicSetup(), getYoutubeStatus()]) .then(([s, y]) => { setSetup(s); setYt(y); }) .catch(e => setError(String(e))); }, []); if (!setup) return

Loading…

; const save = async (patch) => { setSaving(true); try { const next = await updateMusicSetup(patch); setSetup(next); } catch (e) { setError(String(e)); } finally { setSaving(false); } }; const connectYoutube = async () => { const { url } = await getYoutubeAuthUrl(); window.location.href = url; }; return (
{error &&
{error}
}

YouTube 채널 연동

{yt && yt.channel_id ? (
{yt.avatar_url && } {yt.channel_title}
) : ( )}

메타데이터 템플릿