|
|
|
@ -1,10 +1,10 @@
|
|
|
|
|
import clsx from 'clsx';
|
|
|
|
|
import React from 'react';
|
|
|
|
|
import React, { Suspense } from 'react';
|
|
|
|
|
import { defineMessages, FormattedMessage, useIntl } from 'react-intl';
|
|
|
|
|
|
|
|
|
|
import { setSchedule, removeSchedule } from 'soapbox/actions/compose';
|
|
|
|
|
import IconButton from 'soapbox/components/icon-button';
|
|
|
|
|
import { HStack, Stack, Text } from 'soapbox/components/ui';
|
|
|
|
|
import { HStack, Input, Stack, Text } from 'soapbox/components/ui';
|
|
|
|
|
import { DatePicker } from 'soapbox/features/ui/util/async-components';
|
|
|
|
|
import { useAppDispatch, useCompose } from 'soapbox/hooks';
|
|
|
|
|
|
|
|
|
@ -54,20 +54,22 @@ const ScheduleForm: React.FC<IScheduleForm> = ({ composeId }) => {
|
|
|
|
|
<FormattedMessage id='datepicker.hint' defaultMessage='Scheduled to post at…' />
|
|
|
|
|
</Text>
|
|
|
|
|
<HStack space={2} alignItems='center'>
|
|
|
|
|
<DatePicker
|
|
|
|
|
selected={scheduledAt}
|
|
|
|
|
showTimeSelect
|
|
|
|
|
dateFormat='MMMM d, yyyy h:mm aa'
|
|
|
|
|
timeIntervals={15}
|
|
|
|
|
wrapperClassName='react-datepicker-wrapper'
|
|
|
|
|
onChange={onSchedule}
|
|
|
|
|
placeholderText={intl.formatMessage(messages.schedule)}
|
|
|
|
|
filterDate={isCurrentOrFutureDate}
|
|
|
|
|
filterTime={isFiveMinutesFromNow}
|
|
|
|
|
className={clsx({
|
|
|
|
|
'has-error': !isFiveMinutesFromNow(scheduledAt),
|
|
|
|
|
})}
|
|
|
|
|
/>
|
|
|
|
|
<Suspense fallback={<Input type='text' disabled />}>
|
|
|
|
|
<DatePicker
|
|
|
|
|
selected={scheduledAt}
|
|
|
|
|
showTimeSelect
|
|
|
|
|
dateFormat='MMMM d, yyyy h:mm aa'
|
|
|
|
|
timeIntervals={15}
|
|
|
|
|
wrapperClassName='react-datepicker-wrapper'
|
|
|
|
|
onChange={onSchedule}
|
|
|
|
|
placeholderText={intl.formatMessage(messages.schedule)}
|
|
|
|
|
filterDate={isCurrentOrFutureDate}
|
|
|
|
|
filterTime={isFiveMinutesFromNow}
|
|
|
|
|
className={clsx({
|
|
|
|
|
'has-error': !isFiveMinutesFromNow(scheduledAt),
|
|
|
|
|
})}
|
|
|
|
|
/>
|
|
|
|
|
</Suspense>
|
|
|
|
|
<IconButton
|
|
|
|
|
iconClassName='h-4 w-4'
|
|
|
|
|
className='bg-transparent text-gray-400 hover:text-gray-600'
|
|
|
|
|