pl-fe: restore state correctly in durationselector

Signed-off-by: Nicole Mikołajczyk <git@mkljczk.pl>
This commit is contained in:
Nicole Mikołajczyk
2025-04-30 14:51:17 +02:00
parent a28fe41e15
commit 54c412d2c3
3 changed files with 10 additions and 9 deletions

View File

@ -11,16 +11,17 @@ const messages = defineMessages({
interface IDurationSelector {
onDurationChange(expiresIn: number): void;
value: number;
}
const DurationSelector = ({ onDurationChange }: IDurationSelector) => {
const DurationSelector = ({ onDurationChange, value }: IDurationSelector) => {
const intl = useIntl();
const [days, setDays] = useState<number>(2);
const [hours, setHours] = useState<number>(0);
const [minutes, setMinutes] = useState<number>(0);
const [days, setDays] = useState<number>(Math.floor(value / (24 * 60 * 60)));
const [hours, setHours] = useState<number>(Math.floor((value % (24 * 60 * 60)) / (60 * 60)));
const [minutes, setMinutes] = useState<number>(Math.floor((value % (60 * 60)) / 60));
const value = (days * 24 * 60 * 60) + (hours * 60 * 60) + (minutes * 60);
const newValue = (days * 24 * 60 * 60) + (hours * 60 * 60) + (minutes * 60);
useEffect(() => {
if (days === 7) {
@ -30,8 +31,8 @@ const DurationSelector = ({ onDurationChange }: IDurationSelector) => {
}, [days]);
useEffect(() => {
onDurationChange(value);
}, [value]);
onDurationChange(newValue);
}, [newValue]);
return (
<div className='grid grid-cols-1 gap-2 sm:grid-cols-3'>

View File

@ -203,7 +203,7 @@ const PollForm: React.FC<IPollForm> = ({ composeId }) => {
{intl.formatMessage(messages.pollDuration)}
</Text>
<DurationSelector onDurationChange={handleSelectDuration} />
<DurationSelector onDurationChange={handleSelectDuration} value={expiresIn || (2 * 24 * 60 * 60)} />
</Stack>
{/* Remove Poll */}

View File

@ -108,7 +108,7 @@ const MuteModal: React.FC<MuteModalProps & BaseModalProps> = ({ accountId, onClo
<Stack space={2}>
<Text weight='medium'><FormattedMessage id='mute_modal.duration' defaultMessage='Duration' />: </Text>
<DurationSelector onDurationChange={handleChangeMuteDuration} />
<DurationSelector onDurationChange={handleChangeMuteDuration} value={duration} />
</Stack>
)}
</>