|
|
@ -18,7 +18,7 @@ import AutosuggestInput, { AutoSuggestion } from 'soapbox/components/autosuggest
|
|
|
|
import AutosuggestTextarea from 'soapbox/components/autosuggest_textarea';
|
|
|
|
import AutosuggestTextarea from 'soapbox/components/autosuggest_textarea';
|
|
|
|
import Icon from 'soapbox/components/icon';
|
|
|
|
import Icon from 'soapbox/components/icon';
|
|
|
|
import { Button, Stack } from 'soapbox/components/ui';
|
|
|
|
import { Button, Stack } from 'soapbox/components/ui';
|
|
|
|
import { useAppDispatch, useAppSelector, useCompose, useFeatures } from 'soapbox/hooks';
|
|
|
|
import { useAppDispatch, useAppSelector, useCompose, useFeatures, usePrevious } from 'soapbox/hooks';
|
|
|
|
import { isMobile } from 'soapbox/is_mobile';
|
|
|
|
import { isMobile } from 'soapbox/is_mobile';
|
|
|
|
|
|
|
|
|
|
|
|
import EmojiPickerDropdown from '../components/emoji-picker/emoji-picker-dropdown';
|
|
|
|
import EmojiPickerDropdown from '../components/emoji-picker/emoji-picker-dropdown';
|
|
|
@ -76,6 +76,7 @@ const ComposeForm = <ID extends string>({ id, shouldCondense, autoFocus, clickab
|
|
|
|
const features = useFeatures();
|
|
|
|
const features = useFeatures();
|
|
|
|
|
|
|
|
|
|
|
|
const { text, suggestions, spoiler, spoiler_text: spoilerText, privacy, focusDate, caretPosition, is_submitting: isSubmitting, is_changing_upload: isChangingUpload, is_uploading: isUploading, schedule: scheduledAt } = compose;
|
|
|
|
const { text, suggestions, spoiler, spoiler_text: spoilerText, privacy, focusDate, caretPosition, is_submitting: isSubmitting, is_changing_upload: isChangingUpload, is_uploading: isUploading, schedule: scheduledAt } = compose;
|
|
|
|
|
|
|
|
const prevSpoiler = usePrevious(spoiler);
|
|
|
|
|
|
|
|
|
|
|
|
const hasPoll = !!compose.poll;
|
|
|
|
const hasPoll = !!compose.poll;
|
|
|
|
const isEditing = compose.id !== null;
|
|
|
|
const isEditing = compose.id !== null;
|
|
|
@ -206,9 +207,10 @@ const ComposeForm = <ID extends string>({ id, shouldCondense, autoFocus, clickab
|
|
|
|
}, []);
|
|
|
|
}, []);
|
|
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
useEffect(() => {
|
|
|
|
switch (spoiler) {
|
|
|
|
if (spoiler && !prevSpoiler) {
|
|
|
|
case true: focusSpoilerInput(); break;
|
|
|
|
focusSpoilerInput();
|
|
|
|
case false: focusTextarea(); break;
|
|
|
|
} else if (!spoiler && prevSpoiler) {
|
|
|
|
|
|
|
|
focusTextarea();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}, [spoiler]);
|
|
|
|
}, [spoiler]);
|
|
|
|
|
|
|
|
|
|
|
|