Files
twenty/front/src/modules/metadata/hooks/useUpdateOneObject.ts
Charles Bochet 685d342170 Migrate view field to new data model - Part 2 (#2270)
* Migrate view field to new data model

* Migrate view fields to new model
2023-10-28 19:13:48 +02:00

51 lines
1.2 KiB
TypeScript

import { useMutation } from '@apollo/client';
import { getOperationName } from '@apollo/client/utilities';
import { MetadataObjectIdentifier } from '../types/MetadataObjectIdentifier';
import { useFindOneMetadataObject } from './useFindOneMetadataObject';
export const useUpdateOneObject = ({
objectNamePlural,
objectNameSingular,
}: MetadataObjectIdentifier) => {
const {
foundMetadataObject,
objectNotFoundInMetadata,
findManyQuery,
updateOneMutation,
} = useFindOneMetadataObject({
objectNamePlural,
objectNameSingular,
});
// TODO: type this with a minimal type at least with Record<string, any>
const [mutate] = useMutation(updateOneMutation, {
refetchQueries: [getOperationName(findManyQuery) ?? ''],
});
const updateOneObject = foundMetadataObject
? ({
idToUpdate,
input,
}: {
idToUpdate: string;
input: Record<string, any>;
}) => {
return mutate({
variables: {
idToUpdate: idToUpdate,
input: {
...input,
},
},
});
}
: undefined;
return {
updateOneObject,
objectNotFoundInMetadata,
};
};