mirror of
https://github.com/twentyhq/twenty.git
synced 2024-11-23 14:03:35 +03:00
Object creation triggers view creation
This commit is contained in:
parent
4a493b6ecf
commit
6713ac589d
@ -1,6 +1,8 @@
|
||||
import { ApolloClient, useMutation } from '@apollo/client';
|
||||
import { ApolloClient, useApolloClient, useMutation } from '@apollo/client';
|
||||
import { getOperationName } from '@apollo/client/utilities';
|
||||
|
||||
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
|
||||
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
|
||||
import {
|
||||
CreateObjectInput,
|
||||
CreateOneObjectMetadataItemMutation,
|
||||
@ -14,6 +16,10 @@ import { useApolloMetadataClient } from './useApolloMetadataClient';
|
||||
|
||||
export const useCreateOneObjectMetadataItem = () => {
|
||||
const apolloMetadataClient = useApolloMetadataClient();
|
||||
const apolloClient = useApolloClient();
|
||||
const { findManyRecordsQuery } = useObjectMetadataItem({
|
||||
objectNameSingular: CoreObjectNameSingular.View,
|
||||
});
|
||||
|
||||
const [mutate] = useMutation<
|
||||
CreateOneObjectMetadataItemMutation,
|
||||
@ -23,16 +29,20 @@ export const useCreateOneObjectMetadataItem = () => {
|
||||
});
|
||||
|
||||
const createOneObjectMetadataItem = async (input: CreateObjectInput) => {
|
||||
return await mutate({
|
||||
const createdObjectMetadata = await mutate({
|
||||
variables: {
|
||||
input: { object: input },
|
||||
},
|
||||
awaitRefetchQueries: true,
|
||||
refetchQueries: [
|
||||
getOperationName(FIND_MANY_OBJECT_METADATA_ITEMS) ?? '',
|
||||
'FindManyRecordsMultipleMetadataItems',
|
||||
],
|
||||
refetchQueries: [getOperationName(FIND_MANY_OBJECT_METADATA_ITEMS) ?? ''],
|
||||
});
|
||||
|
||||
await apolloClient.query({
|
||||
query: findManyRecordsQuery,
|
||||
fetchPolicy: 'network-only',
|
||||
});
|
||||
|
||||
return createdObjectMetadata;
|
||||
};
|
||||
|
||||
return {
|
||||
|
@ -490,8 +490,15 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadataEnt
|
||||
|
||||
const view = await workspaceDataSource?.query(
|
||||
`INSERT INTO ${dataSourceMetadata.schema}."view"
|
||||
("objectMetadataId", "type", "name")
|
||||
VALUES ('${createdObjectMetadata.id}', 'table', 'All ${createdObjectMetadata.namePlural}') RETURNING *`,
|
||||
("objectMetadataId", "type", "name", "key", "icon")
|
||||
VALUES ($1, $2, $3, $4, $5) RETURNING *`,
|
||||
[
|
||||
createdObjectMetadata.id,
|
||||
'table',
|
||||
`All ${createdObjectMetadata.namePlural}`,
|
||||
'INDEX',
|
||||
createdObjectMetadata.icon,
|
||||
],
|
||||
);
|
||||
|
||||
createdObjectMetadata.fields.map(async (field, index) => {
|
||||
|
Loading…
Reference in New Issue
Block a user