()
| 131 | }; |
| 132 | |
| 133 | export const useCreatePlugin = () => { |
| 134 | const client = useQueryClient(); |
| 135 | |
| 136 | return useMutation({ |
| 137 | mutationFn: (plugin: PluginDefinition) => { |
| 138 | return axios.post('/api/plugins/', plugin); |
| 139 | }, |
| 140 | onMutate: async (plugin: PluginDefinition) => { |
| 141 | await client.cancelQueries(['plugins']); |
| 142 | const previousPlugins = client.getQueryData<PluginDefinition[]>(['plugins']); |
| 143 | const updatedPlugins = Array.isArray(previousPlugins) ? [...previousPlugins, plugin] : [plugin]; |
| 144 | client.setQueryData<PluginDefinition[]>(['plugins'], updatedPlugins); |
| 145 | return { previousPlugins }; |
| 146 | }, |
| 147 | onError: (err, plugin, context) => { |
| 148 | console.error('onError', err); |
| 149 | client.setQueryData(['plugins'], context.previousPlugins); |
| 150 | }, |
| 151 | }); |
| 152 | }; |
no test coverage detected