import { useMutation, UseMutationOptions } from '@tanstack/react-query' import toast from 'react-hot-toast' import { post } from 'data/fetchers' import { ResponseError } from 'types' export type SendFeedbackVariables = { message: string pathname?: string projectRef?: string organizationSlug?: string } export async function sendFeedback({ message, pathname, projectRef, organizationSlug, }: SendFeedbackVariables) { const { data, error } = await post(`/platform/feedback/send`, { body: { message, category: 'Feedback', tags: ['dashboard-feedback'], projectRef, organizationSlug, pathname, }, }) if (error) throw error return data } type SendFeedbackData = Awaited> export const useSendFeedbackMutation = ({ onError, ...options }: Omit< UseMutationOptions, 'mutationFn' > = {}) => { return useMutation( (vars) => sendFeedback(vars), { async onError(data, variables, context) { if (onError === undefined) { toast.error(`Failed to submit feedback: ${data.message}`) } else { onError(data, variables, context) } }, ...options, } ) }