()
| 111 | }; |
| 112 | |
| 113 | export const useDeletePlugin = () => { |
| 114 | const client = useQueryClient(); |
| 115 | |
| 116 | return useMutation({ |
| 117 | mutationFn: (plugin: PluginDefinition) => { |
| 118 | return axios.delete(`/api/plugins/${plugin.name}`); |
| 119 | }, |
| 120 | onMutate: async (plugin: PluginDefinition) => { |
| 121 | await client.cancelQueries(['plugins']); |
| 122 | const previousPlugins = client.getQueryData<PluginDefinition[]>(['plugins']); |
| 123 | client.setQueryData<PluginDefinition[]>(['plugins'], (old) => old.filter((item) => item.name !== plugin.name)); |
| 124 | return { previousPlugins }; |
| 125 | }, |
| 126 | onError: (err, plugin, context) => { |
| 127 | console.error('onError', err); |
| 128 | client.setQueryData(['plugins'], context.previousPlugins); |
| 129 | }, |
| 130 | }); |
| 131 | }; |
| 132 | |
| 133 | export const useCreatePlugin = () => { |
| 134 | const client = useQueryClient(); |
no test coverage detected