ComposeForm: pass onSubmit through UploadForm to ComposeUpload

environments/review-main-yi2y9f/deployments/4162^2
Alex Gleason 2023-10-13 11:16:43 -05:00
rodzic 629258613e
commit d71bb8a673
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 7211D1F99744FBB7
3 zmienionych plików z 8 dodań i 12 usunięć

Wyświetl plik

@ -223,7 +223,7 @@ const ComposeForm = <ID extends string>({ id, shouldCondense, autoFocus, clickab
const composeModifiers = !condensed && ( const composeModifiers = !condensed && (
<Stack space={4} className='compose-form__modifiers'> <Stack space={4} className='compose-form__modifiers'>
<UploadForm composeId={id} /> <UploadForm composeId={id} onSubmit={handleSubmit} />
<PollForm composeId={id} /> <PollForm composeId={id} />
<SpoilerInput <SpoilerInput

Wyświetl plik

@ -11,9 +11,10 @@ import type { Attachment as AttachmentEntity } from 'soapbox/types/entities';
interface IUploadForm { interface IUploadForm {
composeId: string; composeId: string;
onSubmit(): void;
} }
const UploadForm: React.FC<IUploadForm> = ({ composeId }) => { const UploadForm: React.FC<IUploadForm> = ({ composeId, onSubmit }) => {
const mediaIds = useCompose(composeId).media_attachments.map((item: AttachmentEntity) => item.id); const mediaIds = useCompose(composeId).media_attachments.map((item: AttachmentEntity) => item.id);
return ( return (
@ -22,7 +23,7 @@ const UploadForm: React.FC<IUploadForm> = ({ composeId }) => {
<HStack wrap className={clsx('overflow-hidden', mediaIds.size !== 0 && 'p-1')}> <HStack wrap className={clsx('overflow-hidden', mediaIds.size !== 0 && 'p-1')}>
{mediaIds.map((id: string) => ( {mediaIds.map((id: string) => (
<Upload id={id} key={id} composeId={composeId} /> <Upload id={id} key={id} composeId={composeId} onSubmit={onSubmit} />
))} ))}
</HStack> </HStack>
</div> </div>

Wyświetl plik

@ -1,26 +1,21 @@
import React from 'react'; import React from 'react';
import { useHistory } from 'react-router-dom';
import { undoUploadCompose, changeUploadCompose, submitCompose } from 'soapbox/actions/compose'; import { undoUploadCompose, changeUploadCompose } from 'soapbox/actions/compose';
import Upload from 'soapbox/components/upload'; import Upload from 'soapbox/components/upload';
import { useAppDispatch, useCompose, useInstance } from 'soapbox/hooks'; import { useAppDispatch, useCompose, useInstance } from 'soapbox/hooks';
interface IUploadCompose { interface IUploadCompose {
id: string; id: string;
composeId: string; composeId: string;
onSubmit?(): void;
} }
const UploadCompose: React.FC<IUploadCompose> = ({ composeId, id }) => { const UploadCompose: React.FC<IUploadCompose> = ({ composeId, id, onSubmit }) => {
const history = useHistory();
const dispatch = useAppDispatch(); const dispatch = useAppDispatch();
const { description_limit: descriptionLimit } = useInstance(); const { description_limit: descriptionLimit } = useInstance();
const media = useCompose(composeId).media_attachments.find(item => item.id === id)!; const media = useCompose(composeId).media_attachments.find(item => item.id === id)!;
const handleSubmit = () => {
dispatch(submitCompose(composeId, history));
};
const handleDescriptionChange = (description: string) => { const handleDescriptionChange = (description: string) => {
dispatch(changeUploadCompose(composeId, media.id, { description })); dispatch(changeUploadCompose(composeId, media.id, { description }));
}; };
@ -34,7 +29,7 @@ const UploadCompose: React.FC<IUploadCompose> = ({ composeId, id }) => {
media={media} media={media}
onDelete={handleDelete} onDelete={handleDelete}
onDescriptionChange={handleDescriptionChange} onDescriptionChange={handleDescriptionChange}
onSubmit={handleSubmit} onSubmit={onSubmit}
descriptionLimit={descriptionLimit} descriptionLimit={descriptionLimit}
withPreview withPreview
/> />