189586830e
* Refactored useFindOneObjectMetadataItem and useFindManyObjectMetadataItems to rely on a recoil family selector * Removed console.log * Cleaned * Removed unused hook * Fixed seeds
32 lines
1.0 KiB
TypeScript
32 lines
1.0 KiB
TypeScript
import { gql } from '@apollo/client';
|
|
|
|
import { useMapFieldMetadataToGraphQLQuery } from '@/object-metadata/hooks/useMapFieldMetadataToGraphQLQuery';
|
|
import { EMPTY_MUTATION } from '@/object-metadata/hooks/useObjectMetadataItem';
|
|
import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
|
|
import { capitalize } from '~/utils/string/capitalize';
|
|
|
|
export const useGenerateCreateOneObjectMutation = ({
|
|
objectMetadataItem,
|
|
}: {
|
|
objectMetadataItem: ObjectMetadataItem | undefined | null;
|
|
}) => {
|
|
const mapFieldMetadataToGraphQLQuery = useMapFieldMetadataToGraphQLQuery();
|
|
|
|
if (!objectMetadataItem) {
|
|
return EMPTY_MUTATION;
|
|
}
|
|
|
|
const capitalizedObjectName = capitalize(objectMetadataItem.nameSingular);
|
|
|
|
return gql`
|
|
mutation CreateOne${capitalizedObjectName}($input: ${capitalizedObjectName}CreateInput!) {
|
|
create${capitalizedObjectName}(data: $input) {
|
|
id
|
|
${objectMetadataItem.fields
|
|
.map((field) => mapFieldMetadataToGraphQLQuery(field))
|
|
.join('\n')}
|
|
}
|
|
}
|
|
`;
|
|
};
|