kopia lustrzana https://gitlab.com/soapbox-pub/soapbox
ComposeForm: pass onSubmit through UploadForm to ComposeUpload
rodzic
629258613e
commit
d71bb8a673
|
@ -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
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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
|
||||||
/>
|
/>
|
||||||
|
|
Ładowanie…
Reference in New Issue