(meta: SigMFMetadata)
| 82 | }; |
| 83 | |
| 84 | export const useUpdateMeta = (meta: SigMFMetadata) => { |
| 85 | let client = useQueryClient(); |
| 86 | if (!meta.getOrigin()) { |
| 87 | throw new Error('Meta is missing origin'); |
| 88 | } |
| 89 | const { type, account, container, file_path: filePath } = meta.getOrigin(); |
| 90 | const { dataSourcesQuery, filesQuery } = useUserSettings(); |
| 91 | const { instance } = useMsal(); |
| 92 | const metadataClient = MetadataClientFactory(type, filesQuery.data, dataSourcesQuery.data, instance); |
| 93 | |
| 94 | return useMutation({ |
| 95 | mutationFn: (newMeta: SigMFMetadata) => { |
| 96 | return updateDataSourceMeta(metadataClient, account, container, filePath, newMeta); |
| 97 | }, |
| 98 | onMutate: async () => { |
| 99 | await client.cancelQueries(['datasource', type, account, container, filePath, 'meta']); |
| 100 | const previousMeta = client.getQueryData(['datasource', type, account, container, filePath, 'meta']); |
| 101 | client.setQueryData(['datasource', type, account, container, filePath, 'meta'], meta); |
| 102 | return { previousMeta }; |
| 103 | }, |
| 104 | onError: (err, newMeta, context) => { |
| 105 | console.error('onError', err); |
| 106 | client.setQueryData(['datasource', type, account, container, filePath, 'meta'], context.previousMeta); |
| 107 | }, |
| 108 | }); |
| 109 | }; |
| 110 | |
| 111 | export const useGetMetadataFeatures = (type: string) => { |
| 112 | const { filesQuery, dataSourcesQuery } = useUserSettings(); |
no test coverage detected