Condition User Count

This commit is contained in:
MyNameIsBatman 2021-06-28 23:31:59 -03:00
parent 33e2baeb20
commit 49131d0137
3 changed files with 56 additions and 1 deletions

View File

@ -11,6 +11,7 @@ import { WiredConditionFurniIsOfTypeView } from '../views/conditions/furni-is-of
import { WiredConditionFurniMatchesSnapshotView } from '../views/conditions/furni-matches-snapshot/WiredConditionFurniMatchesSnapshotView';
import { WiredConditionTimeElapsedLessView } from '../views/conditions/time-elapsed-less/WiredConditionTimeElapsedLessView';
import { WiredConditionTimeElapsedMoreView } from '../views/conditions/time-elapsed-more/WiredConditionTimeElapsedMoreView';
import { WiredConditionUserCountInRoomView } from '../views/conditions/user-count-in-room/WiredConditionUserCountInRoomView';
import { WiredConditionlayout } from './WiredConditionLayoutCode';
export function GetWiredConditionLayout(code: number): JSX.Element
@ -51,5 +52,8 @@ export function GetWiredConditionLayout(code: number): JSX.Element
return <WiredConditionTimeElapsedLessView />;
case WiredConditionlayout.TIME_ELAPSED_MORE:
return <WiredConditionTimeElapsedMoreView />;
case WiredConditionlayout.USER_COUNT_IN:
case WiredConditionlayout.NOT_USER_COUNT_IN:
return <WiredConditionUserCountInRoomView />;
}
}

View File

@ -72,7 +72,7 @@ export const WiredBaseView: FC<WiredBaseViewProps> = props =>
<div className="fw-bold">{ LocalizeText('wiredfurni.pickfurnis.caption', [ 'count', 'limit' ], [ '0', '0' ]) }</div>
<div>{ LocalizeText('wiredfurni.pickfurnis.desc') }</div>
</> }
<div className="d-flex mt-2">
<div className="d-flex mt-3">
<button className="btn btn-success me-2 w-100" onClick={ onSave }>{ LocalizeText('wiredfurni.ready') }</button>
<button className="btn btn-secondary w-100" onClick={ close }>{ LocalizeText('cancel') }</button>
</div>

View File

@ -0,0 +1,51 @@
import Slider from 'rc-slider/lib/Slider';
import { FC, useCallback, useEffect, useState } from 'react';
import { LocalizeText } from '../../../../../utils/LocalizeText';
import { useWiredContext } from '../../../context/WiredContext';
import { WiredFurniType } from '../../../WiredView.types';
import { WiredConditionBaseView } from '../base/WiredConditionBaseView';
export const WiredConditionUserCountInRoomView: FC<{}> = props =>
{
const [ min, setMin ] = useState(1);
const [ max, setMax ] = useState(1);
const { trigger = null, setIntParams = null } = useWiredContext();
useEffect(() =>
{
if(trigger.intData.length >= 2)
{
setMin(trigger.intData[0]);
setMax(trigger.intData[1]);
}
}, [ trigger ]);
const save = useCallback(() =>
{
setIntParams([min, max]);
}, [ min, max, setIntParams ]);
return (
<WiredConditionBaseView requiresFurni={ WiredFurniType.STUFF_SELECTION_OPTION_NONE } save={ save }>
<div className="fw-bold">{ LocalizeText('wiredfurni.params.usercountmin', ['value'], [min.toString()]) }</div>
<Slider
defaultValue={ min }
dots={ true }
min={ 1 }
max={ 50 }
step={ 1 }
onChange={ event => setMin(event) }
/>
<hr className="my-1 mb-2 bg-dark" />
<div className="fw-bold">{ LocalizeText('wiredfurni.params.usercountmax', ['value'], [max.toString()]) }</div>
<Slider
defaultValue={ max }
dots={ true }
min={ 1 }
max={ 50 }
step={ 1 }
onChange={ event => setMax(event) }
/>
</WiredConditionBaseView>
);
}