Add adaptive per-vehicle layouts, full-panel dragging, source controls and automatic preview recovery for RealSense, Insta360 X4 and XGRIDS K1 observation views. Integrate cached Cesium map layers through the private NAS gateway link, retain bounded sensor command receipts, and document validation and operational handoff.
18 lines
1.5 KiB
TypeScript
18 lines
1.5 KiB
TypeScript
import {Button,SettingsCard,StatusBadge} from '@nodedc/ui-react';
|
|
import type {RecoveryStatus} from './model';
|
|
|
|
export function RecoverySettings({value,online,enabled,pending,change}:{
|
|
value:RecoveryStatus; online:boolean; enabled:boolean; pending:boolean; change:(enabled:boolean)=>void;
|
|
}) {
|
|
const failed=['exhausted','unavailable','preview_failed'].includes(value.phase);
|
|
const label=!value.enabled?'Выключено':failed?'Требуется проверка камеры':
|
|
['waiting','waking','restoring_preview'].includes(value.phase)?'Восстановление подключения':'Включено';
|
|
return <SettingsCard title="Восстановление подключения" description="После потери связи камера сможет включаться по Bluetooth. Ранее запущенный просмотр возобновится, запись на карту повторно не запускается."
|
|
actions={<StatusBadge tone={failed&&value.enabled?'warning':'neutral'}>{label}</StatusBadge>}>
|
|
<p>На X4 включите «Пробуждение по Bluetooth» и оставьте USB подключённым. Перед ручным выключением камеры отключите восстановление здесь.</p>
|
|
<Button disabled={!enabled||(!online&&!value.enabled)} loading={pending} onClick={()=>change(!value.enabled)}>
|
|
{value.enabled?'Отключить восстановление':'Включить восстановление'}
|
|
</Button>
|
|
</SettingsCard>;
|
|
}
|