feat(site): implement dynamic client OS negotiation for Hero and CTA download buttons
Some checks failed
deploy-site-windows / deploy-win (push) Waiting to run
deploy-site / deploy (push) Failing after 24s

This commit is contained in:
Yun Chan 2026-08-20 22:57:38 +09:00
parent 4865387d7f
commit 55d03baf6b
5 changed files with 280 additions and 16 deletions

View file

@ -3,9 +3,11 @@ import { Crosshair } from '../components/Crosshair'
import { WaveBars } from '../components/WaveBars'
import { GlowButton } from '../components/GlowButton'
import { useI18n } from '../i18n'
import { useClientOS } from '../hooks/useClientOS'
export function CTA() {
const { t } = useI18n()
const { t, locale } = useI18n()
const clientOS = useClientOS()
return (
<section className="relative py-28 md:py-36 overflow-hidden">
@ -47,15 +49,23 @@ export function CTA() {
</div>
</div>
<div>
<div className="flex flex-col items-center gap-3">
<GlowButton
href="#download"
href={clientOS.downloadUrl}
download={clientOS.downloadFilename || undefined}
variant="primary"
size="lg"
className="shadow-glow-md hover:shadow-glow-lg"
>
{t.cta.downloadBtn}
{locale === 'ko' ? clientOS.buttonLabelKo : clientOS.buttonLabelEn}
</GlowButton>
<div className="flex items-center gap-2 font-mono text-xs text-neutral-400">
<span>{locale === 'ko' ? clientOS.subtextKo : clientOS.subtextEn}</span>
<span>·</span>
<a href="#download" className="underline hover:text-brand-amber transition-colors">
{locale === 'ko' ? '다른 OS 다운로드' : 'Other Platforms'}
</a>
</div>
</div>
<p className="font-mono text-nano text-neutral-500 mt-8 uppercase tracking-widest">