HorseShoe
09/09/2021, 2:07 AMakaban
09/09/2021, 2:05 PMakaban
09/09/2021, 2:08 PMexport function useCreateItem(onsettled=null,onerror=null) {
const queryClient = useQueryClient();
const query = async ({data}) => {await supabase.from('items').insert([data])}
return useMutation('createItem', query, {
onMutate: async newItem => {
await queryClient.cancelQueries('useItemsByOwner')
const previousItems = queryClient.getQueryData('useItemsByOwner')
queryClient.setQueryData('useItemsByOwner', old => [...old, newItem])
return { previousItems }
},
onError: (err, newTodo, context) => {
queryClient.setQueryData('useItemsByOwner', context.previousTodos)
if (onerror) onerror(err);
},
onSettled: () => {
queryClient.invalidateQueries('useItemsByOwner')
if (onsettled) onsettled();
},
})
akaban
09/09/2021, 2:10 PMakaban
09/09/2021, 2:10 PMakaban
09/09/2021, 2:11 PMHorseShoe
09/10/2021, 3:47 AMHorseShoe
09/10/2021, 3:57 AMHorseShoe
09/10/2021, 3:58 AMHorseShoe
09/10/2021, 3:58 AM