Download webui/src/features/settings/PlatformSection.jsx from a3216/ds2api: direct link, hf CLI and curl.
- Browser
- Download file 4.28 kB
-
https://huggingface.co/spaces/a3216/ds2api/resolve/ce5a019598af8a3a8fa70d3880098df3e850ecd7/webui/src/features/settings/PlatformSection.jsx
- Command line
-
hf download hf://spaces/a3216/ds2api@ce5a019598af8a3a8fa70d3880098df3e850ecd7/webui/src/features/settings/PlatformSection.jsx
-
curl -L -o PlatformSection.jsx https://huggingface.co/spaces/a3216/ds2api/resolve/ce5a019598af8a3a8fa70d3880098df3e850ecd7/webui/src/features/settings/PlatformSection.jsx
4.28 kB
| 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> | |
| ) | |
| } | |