import { FC, useEffect, useState } from 'react'; import { LocalizeText, WiredFurniType } from '../../../../api'; import { Text } from '../../../../common'; import { useWired } from '../../../../hooks'; import { WiredActionBaseView } from './WiredActionBaseView'; import { WiredSourcesSelector } from '../WiredSourcesSelector'; export const WiredActionSetFurniStateToView: FC<{}> = props => { const [ stateFlag, setStateFlag ] = useState(0); const [ directionFlag, setDirectionFlag ] = useState(0); const [ positionFlag, setPositionFlag ] = useState(0); const [ altitudeFlag, setAltitudeFlag ] = useState(0); const { trigger = null, setIntParams = null } = useWired(); const [ furniSource, setFurniSource ] = useState(() => { if(trigger?.intData?.length > 4) return trigger.intData[4]; if(trigger?.intData?.length > 3) return trigger.intData[3]; return (trigger?.selectedItems?.length ?? 0) > 0 ? 100 : 0; }); const save = () => setIntParams([ stateFlag, directionFlag, positionFlag, altitudeFlag, furniSource ]); useEffect(() => { setStateFlag(trigger.getBoolean(0) ? 1 : 0); setDirectionFlag(trigger.getBoolean(1) ? 1 : 0); setPositionFlag(trigger.getBoolean(2) ? 1 : 0); setAltitudeFlag((trigger.intData.length > 4 && trigger.getBoolean(3)) ? 1 : 0); if(trigger.intData.length > 4) setFurniSource(trigger.intData[4]); else if(trigger.intData.length > 3) setFurniSource(trigger.intData[3]); else setFurniSource((trigger.selectedItems?.length ?? 0) > 0 ? 100 : 0); }, [ trigger ]); const onChangeFurniSource = (next: number) => setFurniSource(next); const requiresFurni = WiredFurniType.STUFF_SELECTION_OPTION_BY_ID; return ( }>
{ LocalizeText('wiredfurni.params.conditions') }
setStateFlag(event.target.checked ? 1 : 0) } /> { LocalizeText('wiredfurni.params.condition.state') }
setDirectionFlag(event.target.checked ? 1 : 0) } /> { LocalizeText('wiredfurni.params.condition.direction') }
setPositionFlag(event.target.checked ? 1 : 0) } /> { LocalizeText('wiredfurni.params.condition.position') }
setAltitudeFlag(event.target.checked ? 1 : 0) } /> { LocalizeText('wiredfurni.params.condition.altitude') }
); };