Separated useSendWithButton hook from useAddAnnouncement

This commit is contained in:
2023-07-27 16:55:07 +03:00
parent 8220b43e9b
commit 2a229c96ba
3 changed files with 34 additions and 21 deletions

View File

@@ -1,31 +1,18 @@
import { useCallback } from 'react'
import { useSend } from '..'
import { useSendWithButton } from '..'
import { composePutAnnouncementURL, processPutAnnouncement } from '../../api/putAnnouncement'
import { isPutAnnouncementResponse } from '../../api/putAnnouncement/types'
import useSendButtonCaption from '../useSendButtonCaption'
const useAddAnnouncement = () => {
const { doSend, loading, error } = useSend(
const useAddAnnouncement = () => (
useSendWithButton(
'Опубликовать',
'Опубликовано',
true,
composePutAnnouncementURL(),
'PUT',
true,
isPutAnnouncementResponse,
processPutAnnouncement,
processPutAnnouncement
)
const { update, ...button } = useSendButtonCaption('Опубликовать', loading, error, 'Опубликовано')
const doSendWithButton = useCallback(async (formData: FormData) => {
const data = await doSend({}, {
body: formData
})
update(data)
return data
}, [doSend, update])
return { doSend: doSendWithButton, button }
}
)
export default useAddAnnouncement