import { FC, useEffect, useState } from 'react'; import { LocalizeText, WiredFurniType } from '../../../../api'; import { Text } from '../../../../common'; import { useWired } from '../../../../hooks'; import { NitroInput } from '../../../../layout'; import { WiredSourceOption, WiredSourcesSelector } from '../WiredSourcesSelector'; import { WiredConditionBaseView } from './WiredConditionBaseView'; const ENTITY_HABBO = 1; const ENTITY_PET = 2; const ENTITY_BOT = 4; const AVATAR_MODE_ANY = 0; const AVATAR_MODE_CERTAIN = 1; const SOURCE_SPECIFIED_USERNAME = 101; const MATCH_USER_SOURCES: WiredSourceOption[] = [ { value: 0, label: 'wiredfurni.params.sources.users.0' }, { value: 200, label: 'wiredfurni.params.sources.users.200' }, { value: 201, label: 'wiredfurni.params.sources.users.201' } ]; const COMPARE_USER_SOURCES: WiredSourceOption[] = [ ...MATCH_USER_SOURCES, { value: SOURCE_SPECIFIED_USERNAME, label: 'wiredfurni.params.sources.users.101' } ]; interface WiredConditionTriggererMatchViewProps { negative?: boolean; } export const WiredConditionTriggererMatchView: FC = ({ negative = false }) => { const [ entityType, setEntityType ] = useState(ENTITY_HABBO); const [ avatarMode, setAvatarMode ] = useState(AVATAR_MODE_ANY); const [ username, setUsername ] = useState(''); const [ matchUserSource, setMatchUserSource ] = useState(0); const [ compareUserSource, setCompareUserSource ] = useState(0); const [ quantifier, setQuantifier ] = useState(0); const [ showAdvanced, setShowAdvanced ] = useState(false); const { trigger = null, setIntParams = null, setStringParam = null } = useWired(); const needsUsername = (avatarMode === AVATAR_MODE_CERTAIN) || (compareUserSource === SOURCE_SPECIFIED_USERNAME); const quantifierKeyPrefix = negative ? 'wiredfurni.params.quantifier.users.neg' : 'wiredfurni.params.quantifier.users'; const save = () => { setIntParams([ entityType, avatarMode, matchUserSource, compareUserSource, quantifier ]); setStringParam(username); }; useEffect(() => { if(!trigger) return; setEntityType((trigger.intData.length > 0) ? trigger.intData[0] : ENTITY_HABBO); setAvatarMode((trigger.intData.length > 1) ? trigger.intData[1] : AVATAR_MODE_ANY); setMatchUserSource((trigger.intData.length > 2) ? trigger.intData[2] : 0); setCompareUserSource((trigger.intData.length > 3) ? trigger.intData[3] : 0); setQuantifier((trigger.intData.length > 4) ? trigger.intData[4] : 0); setUsername(trigger.stringData || ''); setShowAdvanced((trigger.intData.length > 2) ? (trigger.intData[2] !== 0 || trigger.intData[3] !== 0 || trigger.intData[4] !== 0) : false); }, [ trigger ]); return ( { showAdvanced && <>
{ LocalizeText('wiredfurni.params.quantifier_selection') } { [ 0, 1 ].map(value => { return (
setQuantifier(value) } /> { LocalizeText(`${ quantifierKeyPrefix }.${ value }`) }
); }) }
} }>
{ [ ENTITY_HABBO, ENTITY_PET, ENTITY_BOT ].map(value => { return (
setEntityType(value) } /> { LocalizeText(`wiredfurni.params.usertype.${ value }`) }
); }) }
{ LocalizeText('wiredfurni.params.picktriggerer') }
setAvatarMode(AVATAR_MODE_ANY) } /> { LocalizeText('wiredfurni.params.anyavatar') }
setAvatarMode(AVATAR_MODE_CERTAIN) } /> { LocalizeText('wiredfurni.params.certainavatar') }
{ needsUsername && setUsername(event.target.value) } /> }
); };