mirror of
https://github.com/billsonnn/nitro-react.git
synced 2025-02-18 18:02:36 +01:00
Date Condition
This commit is contained in:
parent
a0098d8048
commit
35c542f7db
@ -4,6 +4,7 @@ import { WiredConditionActorIsOnFurniView } from '../views/conditions/actor-is-o
|
||||
import { WiredConditionActorIsTeamMemberView } from '../views/conditions/actor-is-team-member/WiredConditionActorIsTeamMemberView';
|
||||
import { WiredConditionActorIsWearingBadgeView } from '../views/conditions/actor-is-wearing-badge/WiredConditionActorIsWearingBadgeView';
|
||||
import { WiredConditionActorIsWearingEffectView } from '../views/conditions/actor-is-wearing-effect/WiredConditionActorIsWearingEffectView';
|
||||
import { WiredConditionDateRangeView } from '../views/conditions/date-range/WiredConditionDateRangeView';
|
||||
import { WiredConditionFurniHasAvatarOnView } from '../views/conditions/furni-has-avatar-on/WiredConditionFurniHasAvatarOnView';
|
||||
import { WiredConditionFurniHasFurniOnView } from '../views/conditions/furni-has-furni-on/WiredConditionFurniHasFurniOnView';
|
||||
import { WiredConditionFurniHasNotFurniOnView } from '../views/conditions/furni-has-not-furni-on/WiredConditionFurniHasNotFurniOnView';
|
||||
@ -35,6 +36,8 @@ export function GetWiredConditionLayout(code: number): JSX.Element
|
||||
case WiredConditionlayout.ACTOR_IS_WEARING_EFFECT:
|
||||
case WiredConditionlayout.NOT_ACTOR_WEARING_EFFECT:
|
||||
return <WiredConditionActorIsWearingEffectView />;
|
||||
case WiredConditionlayout.DATE_RANGE_ACTIVE:
|
||||
return <WiredConditionDateRangeView />;
|
||||
case WiredConditionlayout.FURNIS_HAVE_AVATARS:
|
||||
case WiredConditionlayout.FURNI_NOT_HAVE_HABBO:
|
||||
return <WiredConditionFurniHasAvatarOnView />;
|
||||
|
@ -0,0 +1,62 @@
|
||||
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 WiredConditionDateRangeView: FC<{}> = props =>
|
||||
{
|
||||
const [ startDate, setStartDate ] = useState('');
|
||||
const [ endDate, setEndDate ] = useState('');
|
||||
const { trigger = null, setIntParams = null } = useWiredContext();
|
||||
|
||||
const dateToString = useCallback((date: Date) =>
|
||||
{
|
||||
return `${date.getFullYear()}/${('0' + (date.getMonth() + 1)).slice(-2)}/${('0' + date.getDate()).slice(-2)} ` + `${('0' + date.getHours()).slice(-2)}:${('0' + date.getMinutes()).slice(-2)}`;
|
||||
}, []);
|
||||
|
||||
useEffect(() =>
|
||||
{
|
||||
if(trigger.intData.length >= 2)
|
||||
{
|
||||
let startDate = new Date();
|
||||
let endDate = new Date();
|
||||
|
||||
if(trigger.intData[0] > 0)
|
||||
startDate = new Date((trigger.intData[0] * 1000));
|
||||
|
||||
if(trigger.intData[1] > 0)
|
||||
endDate = new Date((trigger.intData[1] * 1000));
|
||||
|
||||
setStartDate(dateToString(startDate));
|
||||
setEndDate(dateToString(endDate));
|
||||
}
|
||||
}, [ trigger ]);
|
||||
|
||||
const save = useCallback(() =>
|
||||
{
|
||||
let startDateMili = 0;
|
||||
let endDateMili = 0;
|
||||
|
||||
const startDateInstance = new Date(startDate);
|
||||
const endDateInstance = new Date(endDate);
|
||||
|
||||
if(startDateInstance && endDateInstance)
|
||||
{
|
||||
startDateMili = startDateInstance.getTime() / 1000;
|
||||
endDateMili = endDateInstance.getTime() / 1000;
|
||||
}
|
||||
|
||||
setIntParams([startDateMili, endDateMili]);
|
||||
}, [ startDate, endDate, setIntParams ]);
|
||||
|
||||
return (
|
||||
<WiredConditionBaseView requiresFurni={ WiredFurniType.STUFF_SELECTION_OPTION_NONE } save={ save }>
|
||||
<div className="fw-bold">{ LocalizeText('wiredfurni.params.startdate') }</div>
|
||||
<input type="text" className="form-control form-control-sm" value={ startDate } onChange={ (e) => setStartDate(e.target.value) } />
|
||||
<hr className="my-1 mb-2 bg-dark" />
|
||||
<div className="fw-bold">{ LocalizeText('wiredfurni.params.enddate') }</div>
|
||||
<input type="text" className="form-control form-control-sm" value={ endDate } onChange={ (e) => setEndDate(e.target.value) } />
|
||||
</WiredConditionBaseView>
|
||||
);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user