File size: 4,278 Bytes
3678d9b 0c46526 3678d9b 0c46526 3678d9b 0c46526 3678d9b 0c46526 3678d9b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | export default function PlatformSection({ t, form, setForm }) {
const updatePlatform = (field, value) => {
setForm((prev) => ({
...prev,
platform: { ...prev.platform, [field]: value },
}))
}
return (
<div className="bg-card border border-border rounded-xl p-5 space-y-4">
<h3 className="font-semibold">{t('settings.platformTitle')}</h3>
<p className="text-sm text-muted-foreground">{t('settings.platformDescription')}</p>
<div className="flex gap-4">
<label className="flex items-center gap-2 cursor-pointer">
<input
type="radio"
name="platform-mode"
value="android"
checked={form.platform.mode === 'android'}
onChange={() => updatePlatform('mode', 'android')}
className="w-4 h-4"
/>
<span className="text-sm">{t('settings.platformAndroid')}</span>
</label>
<label className="flex items-center gap-2 cursor-pointer">
<input
type="radio"
name="platform-mode"
value="web"
checked={form.platform.mode === 'web'}
onChange={() => updatePlatform('mode', 'web')}
className="w-4 h-4"
/>
<span className="text-sm">{t('settings.platformWeb')}</span>
</label>
</div>
{form.platform.mode === 'web' && (
<p className="text-xs text-amber-600 dark:text-amber-400">
{t('settings.platformWebNotice')}
</p>
)}
<div className="border-t border-border pt-4 space-y-3">
<h4 className="text-sm font-medium">{t('settings.platformVersionTitle')}</h4>
<p className="text-xs text-muted-foreground">{t('settings.platformVersionDesc')}</p>
{form.platform.mode === 'android' && (
<>
<div className="space-y-1">
<label className="text-xs text-muted-foreground">{t('settings.platformAndroidVersion')}</label>
<input
type="text"
value={form.platform.android_version || ''}
onChange={(e) => updatePlatform('android_version', e.target.value)}
placeholder="2.1.5"
className="w-full px-3 py-2 rounded-lg border border-border bg-background text-sm"
/>
</div>
<div className="space-y-1">
<label className="text-xs text-muted-foreground">{t('settings.platformAndroidAPILevel')}</label>
<input
type="text"
value={form.platform.android_api_level || ''}
onChange={(e) => updatePlatform('android_api_level', e.target.value)}
placeholder="32"
className="w-full px-3 py-2 rounded-lg border border-border bg-background text-sm"
/>
</div>
</>
)}
{form.platform.mode === 'web' && (
<div className="space-y-1">
<label className="text-xs text-muted-foreground">{t('settings.platformWebVersion')}</label>
<input
type="text"
value={form.platform.web_version || ''}
onChange={(e) => updatePlatform('web_version', e.target.value)}
placeholder="2.0.0"
className="w-full px-3 py-2 rounded-lg border border-border bg-background text-sm"
/>
</div>
)}
</div>
</div>
)
}
|