/* global React, ReactDOM, useTweaks, TweaksPanel, TweakSection, TweakRadio, TweakSelect */
const { useState, useEffect } = React;
const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{
"heroVariant": "leakage",
"industryId": "dental",
"voice": "Ara"
}/*EDITMODE-END*/;
function App() {
const [tweaks, setTweak] = useTweaks(TWEAK_DEFAULTS);
const [loc] = window.BD.useLocale();
// Tweak labels — also localized for the tweaks panel
const heroVariants = loc === 'ko' ? window.BD.HERO_VARIANTS_KO : window.BD.HERO_VARIANTS_EN;
const variantLabels = loc === 'ko'
? { leakage: '매출 누수', rescue: '회수', silent: '침묵' }
: { leakage: 'Leakage', rescue: 'Rescue', silent: 'Silent' };
const tweakTitles = loc === 'ko'
? { panel: 'Tweaks', heroSec: '히어로 카피', heroLabel: '문구 변형',
indSec: '업종 컨텍스트', indLabel: '업종 선택',
voiceSec: '데모 음성', voiceLabel: 'AI 안내원 음성' }
: { panel: 'Tweaks', heroSec: 'Hero copy', heroLabel: 'Headline variant',
indSec: 'Industry context', indLabel: 'Choose industry',
voiceSec: 'Demo voice', voiceLabel: 'AI receptionist voice' };
return (
<>
setTweak('industryId', id)}
voice={tweaks.voice}
setVoice={(v) => setTweak('voice', v)}
/>
setTweak('industryId', id)} />
setTweak('heroVariant', v)}
options={heroVariants.map(h => ({
value: h.id,
label: variantLabels[h.id] || h.id,
}))}
/>
setTweak('industryId', v)}
options={window.BD.INDUSTRIES.map(i => {
const ind = window.BD.localIndustry(i.id, loc);
return { value: i.id, label: ind.fullLabel };
})}
/>
setTweak('voice', v)}
options={window.BD.VOICES.map(v => ({ value: v.value, label: `${v[loc].name} · ${v[loc].desc}` }))}
/>
>
);
}
ReactDOM.createRoot(document.getElementById('root')).render();