2282 Rename components to use the new naming convention part 3 (#2296)
part 3 of the renaming
This commit is contained in:
@ -3,7 +3,7 @@ import { useLocation, useNavigate } from 'react-router-dom';
|
|||||||
import { useCurrentUserTaskCount } from '@/activities/tasks/hooks/useCurrentUserDueTaskCount';
|
import { useCurrentUserTaskCount } from '@/activities/tasks/hooks/useCurrentUserDueTaskCount';
|
||||||
import { useCommandMenu } from '@/command-menu/hooks/useCommandMenu';
|
import { useCommandMenu } from '@/command-menu/hooks/useCommandMenu';
|
||||||
import { Favorites } from '@/favorites/components/Favorites';
|
import { Favorites } from '@/favorites/components/Favorites';
|
||||||
import { MetadataObjectNavItems } from '@/metadata/components/MetadataObjectNavItems';
|
import { ObjectMetadataNavItems } from '@/metadata/components/ObjectMetadataNavItems';
|
||||||
import { SettingsNavbar } from '@/settings/components/SettingsNavbar';
|
import { SettingsNavbar } from '@/settings/components/SettingsNavbar';
|
||||||
import {
|
import {
|
||||||
IconBell,
|
IconBell,
|
||||||
@ -95,7 +95,7 @@ export const AppNavbar = () => {
|
|||||||
Icon={IconTargetArrow}
|
Icon={IconTargetArrow}
|
||||||
active={currentPath === '/opportunities'}
|
active={currentPath === '/opportunities'}
|
||||||
/>
|
/>
|
||||||
{isFlexibleBackendEnabled && <MetadataObjectNavItems />}
|
{isFlexibleBackendEnabled && <ObjectMetadataNavItems />}
|
||||||
</MainNavbar>
|
</MainNavbar>
|
||||||
) : (
|
) : (
|
||||||
<SettingsNavbar />
|
<SettingsNavbar />
|
||||||
|
|||||||
@ -13,13 +13,13 @@ import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/
|
|||||||
* Therefore it is highly recommended to use the babel or swc plugin for production.
|
* Therefore it is highly recommended to use the babel or swc plugin for production.
|
||||||
*/
|
*/
|
||||||
const documents = {
|
const documents = {
|
||||||
"\n mutation CreateOneMetadataObject($input: CreateOneObjectInput!) {\n createOneObject(input: $input) {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n }\n }\n": types.CreateOneMetadataObjectDocument,
|
"\n mutation CreateOneObjectMetadataItem($input: CreateOneObjectInput!) {\n createOneObject(input: $input) {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n }\n }\n": types.CreateOneObjectMetadataItemDocument,
|
||||||
"\n mutation CreateOneMetadataField($input: CreateOneFieldInput!) {\n createOneField(input: $input) {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n": types.CreateOneMetadataFieldDocument,
|
"\n mutation CreateOneMetadataField($input: CreateOneFieldInput!) {\n createOneField(input: $input) {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n": types.CreateOneMetadataFieldDocument,
|
||||||
"\n mutation UpdateOneMetadataField(\n $idToUpdate: ID!\n $updatePayload: UpdateFieldInput!\n ) {\n updateOneField(input: { id: $idToUpdate, update: $updatePayload }) {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n": types.UpdateOneMetadataFieldDocument,
|
"\n mutation UpdateOneMetadataField(\n $idToUpdate: ID!\n $updatePayload: UpdateFieldInput!\n ) {\n updateOneField(input: { id: $idToUpdate, update: $updatePayload }) {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n": types.UpdateOneMetadataFieldDocument,
|
||||||
"\n mutation UpdateOneMetadataObject(\n $idToUpdate: ID!\n $updatePayload: UpdateObjectInput!\n ) {\n updateOneObject(input: { id: $idToUpdate, update: $updatePayload }) {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n }\n }\n": types.UpdateOneMetadataObjectDocument,
|
"\n mutation UpdateOneObjectMetadataItem(\n $idToUpdate: ID!\n $updatePayload: UpdateObjectInput!\n ) {\n updateOneObject(input: { id: $idToUpdate, update: $updatePayload }) {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n }\n }\n": types.UpdateOneObjectMetadataItemDocument,
|
||||||
"\n mutation DeleteOneMetadataObject($idToDelete: ID!) {\n deleteOneObject(input: { id: $idToDelete }) {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n }\n }\n": types.DeleteOneMetadataObjectDocument,
|
"\n mutation DeleteOneObjectMetadataItem($idToDelete: ID!) {\n deleteOneObject(input: { id: $idToDelete }) {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n }\n }\n": types.DeleteOneObjectMetadataItemDocument,
|
||||||
"\n mutation DeleteOneMetadataField($idToDelete: ID!) {\n deleteOneField(input: { id: $idToDelete }) {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n": types.DeleteOneMetadataFieldDocument,
|
"\n mutation DeleteOneMetadataField($idToDelete: ID!) {\n deleteOneField(input: { id: $idToDelete }) {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n": types.DeleteOneMetadataFieldDocument,
|
||||||
"\n query MetadataObjects {\n objects(paging: { first: 1000 }) {\n edges {\n node {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n fields(paging: { first: 1000 }) {\n edges {\n node {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n": types.MetadataObjectsDocument,
|
"\n query ObjectMetadataItems {\n objects(paging: { first: 1000 }) {\n edges {\n node {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n fields(paging: { first: 1000 }) {\n edges {\n node {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n": types.ObjectMetadataItemsDocument,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -39,7 +39,7 @@ export function graphql(source: string): unknown;
|
|||||||
/**
|
/**
|
||||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||||
*/
|
*/
|
||||||
export function graphql(source: "\n mutation CreateOneMetadataObject($input: CreateOneObjectInput!) {\n createOneObject(input: $input) {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n }\n }\n"): (typeof documents)["\n mutation CreateOneMetadataObject($input: CreateOneObjectInput!) {\n createOneObject(input: $input) {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n }\n }\n"];
|
export function graphql(source: "\n mutation CreateOneObjectMetadataItem($input: CreateOneObjectInput!) {\n createOneObject(input: $input) {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n }\n }\n"): (typeof documents)["\n mutation CreateOneObjectMetadataItem($input: CreateOneObjectInput!) {\n createOneObject(input: $input) {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n }\n }\n"];
|
||||||
/**
|
/**
|
||||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||||
*/
|
*/
|
||||||
@ -51,11 +51,11 @@ export function graphql(source: "\n mutation UpdateOneMetadataField(\n $idTo
|
|||||||
/**
|
/**
|
||||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||||
*/
|
*/
|
||||||
export function graphql(source: "\n mutation UpdateOneMetadataObject(\n $idToUpdate: ID!\n $updatePayload: UpdateObjectInput!\n ) {\n updateOneObject(input: { id: $idToUpdate, update: $updatePayload }) {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n }\n }\n"): (typeof documents)["\n mutation UpdateOneMetadataObject(\n $idToUpdate: ID!\n $updatePayload: UpdateObjectInput!\n ) {\n updateOneObject(input: { id: $idToUpdate, update: $updatePayload }) {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n }\n }\n"];
|
export function graphql(source: "\n mutation UpdateOneObjectMetadataItem(\n $idToUpdate: ID!\n $updatePayload: UpdateObjectInput!\n ) {\n updateOneObject(input: { id: $idToUpdate, update: $updatePayload }) {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n }\n }\n"): (typeof documents)["\n mutation UpdateOneObjectMetadataItem(\n $idToUpdate: ID!\n $updatePayload: UpdateObjectInput!\n ) {\n updateOneObject(input: { id: $idToUpdate, update: $updatePayload }) {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n }\n }\n"];
|
||||||
/**
|
/**
|
||||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||||
*/
|
*/
|
||||||
export function graphql(source: "\n mutation DeleteOneMetadataObject($idToDelete: ID!) {\n deleteOneObject(input: { id: $idToDelete }) {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n }\n }\n"): (typeof documents)["\n mutation DeleteOneMetadataObject($idToDelete: ID!) {\n deleteOneObject(input: { id: $idToDelete }) {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n }\n }\n"];
|
export function graphql(source: "\n mutation DeleteOneObjectMetadataItem($idToDelete: ID!) {\n deleteOneObject(input: { id: $idToDelete }) {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n }\n }\n"): (typeof documents)["\n mutation DeleteOneObjectMetadataItem($idToDelete: ID!) {\n deleteOneObject(input: { id: $idToDelete }) {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n }\n }\n"];
|
||||||
/**
|
/**
|
||||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||||
*/
|
*/
|
||||||
@ -63,7 +63,7 @@ export function graphql(source: "\n mutation DeleteOneMetadataField($idToDelete
|
|||||||
/**
|
/**
|
||||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||||
*/
|
*/
|
||||||
export function graphql(source: "\n query MetadataObjects {\n objects(paging: { first: 1000 }) {\n edges {\n node {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n fields(paging: { first: 1000 }) {\n edges {\n node {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n"): (typeof documents)["\n query MetadataObjects {\n objects(paging: { first: 1000 }) {\n edges {\n node {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n fields(paging: { first: 1000 }) {\n edges {\n node {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n"];
|
export function graphql(source: "\n query ObjectMetadataItems {\n objects(paging: { first: 1000 }) {\n edges {\n node {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n fields(paging: { first: 1000 }) {\n edges {\n node {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n"): (typeof documents)["\n query ObjectMetadataItems {\n objects(paging: { first: 1000 }) {\n edges {\n node {\n id\n dataSourceId\n nameSingular\n namePlural\n labelSingular\n labelPlural\n description\n icon\n isCustom\n isActive\n createdAt\n updatedAt\n fields(paging: { first: 1000 }) {\n edges {\n node {\n id\n type\n name\n label\n description\n icon\n placeholder\n isCustom\n isActive\n isNullable\n createdAt\n updatedAt\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n totalCount\n }\n }\n"];
|
||||||
|
|
||||||
export function graphql(source: string) {
|
export function graphql(source: string) {
|
||||||
return (documents as any)[source] ?? {};
|
return (documents as any)[source] ?? {};
|
||||||
|
|||||||
@ -806,12 +806,12 @@ export type ObjectEdge = {
|
|||||||
node: Object;
|
node: Object;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type CreateOneMetadataObjectMutationVariables = Exact<{
|
export type CreateOneObjectMetadataItemMutationVariables = Exact<{
|
||||||
input: CreateOneObjectInput;
|
input: CreateOneObjectInput;
|
||||||
}>;
|
}>;
|
||||||
|
|
||||||
|
|
||||||
export type CreateOneMetadataObjectMutation = { __typename?: 'Mutation', createOneObject: { __typename?: 'object', id: string, dataSourceId: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isActive: boolean, createdAt: any, updatedAt: any } };
|
export type CreateOneObjectMetadataItemMutation = { __typename?: 'Mutation', createOneObject: { __typename?: 'object', id: string, dataSourceId: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isActive: boolean, createdAt: any, updatedAt: any } };
|
||||||
|
|
||||||
export type CreateOneMetadataFieldMutationVariables = Exact<{
|
export type CreateOneMetadataFieldMutationVariables = Exact<{
|
||||||
input: CreateOneFieldInput;
|
input: CreateOneFieldInput;
|
||||||
@ -828,20 +828,20 @@ export type UpdateOneMetadataFieldMutationVariables = Exact<{
|
|||||||
|
|
||||||
export type UpdateOneMetadataFieldMutation = { __typename?: 'Mutation', updateOneField: { __typename?: 'field', id: string, type: string, name: string, label: string, description?: string | null, icon?: string | null, placeholder?: string | null, isCustom: boolean, isActive: boolean, isNullable: boolean, createdAt: any, updatedAt: any } };
|
export type UpdateOneMetadataFieldMutation = { __typename?: 'Mutation', updateOneField: { __typename?: 'field', id: string, type: string, name: string, label: string, description?: string | null, icon?: string | null, placeholder?: string | null, isCustom: boolean, isActive: boolean, isNullable: boolean, createdAt: any, updatedAt: any } };
|
||||||
|
|
||||||
export type UpdateOneMetadataObjectMutationVariables = Exact<{
|
export type UpdateOneObjectMetadataItemMutationVariables = Exact<{
|
||||||
idToUpdate: Scalars['ID']['input'];
|
idToUpdate: Scalars['ID']['input'];
|
||||||
updatePayload: UpdateObjectInput;
|
updatePayload: UpdateObjectInput;
|
||||||
}>;
|
}>;
|
||||||
|
|
||||||
|
|
||||||
export type UpdateOneMetadataObjectMutation = { __typename?: 'Mutation', updateOneObject: { __typename?: 'object', id: string, dataSourceId: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isActive: boolean, createdAt: any, updatedAt: any } };
|
export type UpdateOneObjectMetadataItemMutation = { __typename?: 'Mutation', updateOneObject: { __typename?: 'object', id: string, dataSourceId: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isActive: boolean, createdAt: any, updatedAt: any } };
|
||||||
|
|
||||||
export type DeleteOneMetadataObjectMutationVariables = Exact<{
|
export type DeleteOneObjectMetadataItemMutationVariables = Exact<{
|
||||||
idToDelete: Scalars['ID']['input'];
|
idToDelete: Scalars['ID']['input'];
|
||||||
}>;
|
}>;
|
||||||
|
|
||||||
|
|
||||||
export type DeleteOneMetadataObjectMutation = { __typename?: 'Mutation', deleteOneObject: { __typename?: 'ObjectDeleteResponse', id?: string | null, dataSourceId?: string | null, nameSingular?: string | null, namePlural?: string | null, labelSingular?: string | null, labelPlural?: string | null, description?: string | null, icon?: string | null, isCustom?: boolean | null, isActive?: boolean | null, createdAt?: any | null, updatedAt?: any | null } };
|
export type DeleteOneObjectMetadataItemMutation = { __typename?: 'Mutation', deleteOneObject: { __typename?: 'ObjectDeleteResponse', id?: string | null, dataSourceId?: string | null, nameSingular?: string | null, namePlural?: string | null, labelSingular?: string | null, labelPlural?: string | null, description?: string | null, icon?: string | null, isCustom?: boolean | null, isActive?: boolean | null, createdAt?: any | null, updatedAt?: any | null } };
|
||||||
|
|
||||||
export type DeleteOneMetadataFieldMutationVariables = Exact<{
|
export type DeleteOneMetadataFieldMutationVariables = Exact<{
|
||||||
idToDelete: Scalars['ID']['input'];
|
idToDelete: Scalars['ID']['input'];
|
||||||
@ -850,16 +850,16 @@ export type DeleteOneMetadataFieldMutationVariables = Exact<{
|
|||||||
|
|
||||||
export type DeleteOneMetadataFieldMutation = { __typename?: 'Mutation', deleteOneField: { __typename?: 'FieldDeleteResponse', id?: string | null, type?: string | null, name?: string | null, label?: string | null, description?: string | null, icon?: string | null, placeholder?: string | null, isCustom?: boolean | null, isActive?: boolean | null, isNullable?: boolean | null, createdAt?: any | null, updatedAt?: any | null } };
|
export type DeleteOneMetadataFieldMutation = { __typename?: 'Mutation', deleteOneField: { __typename?: 'FieldDeleteResponse', id?: string | null, type?: string | null, name?: string | null, label?: string | null, description?: string | null, icon?: string | null, placeholder?: string | null, isCustom?: boolean | null, isActive?: boolean | null, isNullable?: boolean | null, createdAt?: any | null, updatedAt?: any | null } };
|
||||||
|
|
||||||
export type MetadataObjectsQueryVariables = Exact<{ [key: string]: never; }>;
|
export type ObjectMetadataItemsQueryVariables = Exact<{ [key: string]: never; }>;
|
||||||
|
|
||||||
|
|
||||||
export type MetadataObjectsQuery = { __typename?: 'Query', objects: { __typename?: 'ObjectConnection', totalCount: number, edges: Array<{ __typename?: 'objectEdge', node: { __typename?: 'object', id: string, dataSourceId: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isActive: boolean, createdAt: any, updatedAt: any, fields: { __typename?: 'ObjectFieldsConnection', totalCount: number, edges: Array<{ __typename?: 'fieldEdge', node: { __typename?: 'field', id: string, type: string, name: string, label: string, description?: string | null, icon?: string | null, placeholder?: string | null, isCustom: boolean, isActive: boolean, isNullable: boolean, createdAt: any, updatedAt: any } }>, pageInfo: { __typename?: 'PageInfo', hasNextPage?: boolean | null, hasPreviousPage?: boolean | null, startCursor?: any | null, endCursor?: any | null } } } }>, pageInfo: { __typename?: 'PageInfo', hasNextPage?: boolean | null, hasPreviousPage?: boolean | null, startCursor?: any | null, endCursor?: any | null } } };
|
export type ObjectMetadataItemsQuery = { __typename?: 'Query', objects: { __typename?: 'ObjectConnection', totalCount: number, edges: Array<{ __typename?: 'objectEdge', node: { __typename?: 'object', id: string, dataSourceId: string, nameSingular: string, namePlural: string, labelSingular: string, labelPlural: string, description?: string | null, icon?: string | null, isCustom: boolean, isActive: boolean, createdAt: any, updatedAt: any, fields: { __typename?: 'ObjectFieldsConnection', totalCount: number, edges: Array<{ __typename?: 'fieldEdge', node: { __typename?: 'field', id: string, type: string, name: string, label: string, description?: string | null, icon?: string | null, placeholder?: string | null, isCustom: boolean, isActive: boolean, isNullable: boolean, createdAt: any, updatedAt: any } }>, pageInfo: { __typename?: 'PageInfo', hasNextPage?: boolean | null, hasPreviousPage?: boolean | null, startCursor?: any | null, endCursor?: any | null } } } }>, pageInfo: { __typename?: 'PageInfo', hasNextPage?: boolean | null, hasPreviousPage?: boolean | null, startCursor?: any | null, endCursor?: any | null } } };
|
||||||
|
|
||||||
|
|
||||||
export const CreateOneMetadataObjectDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"CreateOneMetadataObject"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"CreateOneObjectInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"createOneObject"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"dataSourceId"}},{"kind":"Field","name":{"kind":"Name","value":"nameSingular"}},{"kind":"Field","name":{"kind":"Name","value":"namePlural"}},{"kind":"Field","name":{"kind":"Name","value":"labelSingular"}},{"kind":"Field","name":{"kind":"Name","value":"labelPlural"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode<CreateOneMetadataObjectMutation, CreateOneMetadataObjectMutationVariables>;
|
export const CreateOneObjectMetadataItemDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"CreateOneObjectMetadataItem"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"CreateOneObjectInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"createOneObject"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"dataSourceId"}},{"kind":"Field","name":{"kind":"Name","value":"nameSingular"}},{"kind":"Field","name":{"kind":"Name","value":"namePlural"}},{"kind":"Field","name":{"kind":"Name","value":"labelSingular"}},{"kind":"Field","name":{"kind":"Name","value":"labelPlural"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode<CreateOneObjectMetadataItemMutation, CreateOneObjectMetadataItemMutationVariables>;
|
||||||
export const CreateOneMetadataFieldDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"CreateOneMetadataField"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"CreateOneFieldInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"createOneField"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"placeholder"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"isNullable"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode<CreateOneMetadataFieldMutation, CreateOneMetadataFieldMutationVariables>;
|
export const CreateOneMetadataFieldDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"CreateOneMetadataField"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"CreateOneFieldInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"createOneField"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"placeholder"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"isNullable"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode<CreateOneMetadataFieldMutation, CreateOneMetadataFieldMutationVariables>;
|
||||||
export const UpdateOneMetadataFieldDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpdateOneMetadataField"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"idToUpdate"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"updatePayload"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UpdateFieldInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"updateOneField"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"idToUpdate"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"update"},"value":{"kind":"Variable","name":{"kind":"Name","value":"updatePayload"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"placeholder"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"isNullable"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode<UpdateOneMetadataFieldMutation, UpdateOneMetadataFieldMutationVariables>;
|
export const UpdateOneMetadataFieldDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpdateOneMetadataField"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"idToUpdate"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"updatePayload"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UpdateFieldInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"updateOneField"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"idToUpdate"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"update"},"value":{"kind":"Variable","name":{"kind":"Name","value":"updatePayload"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"placeholder"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"isNullable"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode<UpdateOneMetadataFieldMutation, UpdateOneMetadataFieldMutationVariables>;
|
||||||
export const UpdateOneMetadataObjectDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpdateOneMetadataObject"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"idToUpdate"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"updatePayload"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UpdateObjectInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"updateOneObject"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"idToUpdate"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"update"},"value":{"kind":"Variable","name":{"kind":"Name","value":"updatePayload"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"dataSourceId"}},{"kind":"Field","name":{"kind":"Name","value":"nameSingular"}},{"kind":"Field","name":{"kind":"Name","value":"namePlural"}},{"kind":"Field","name":{"kind":"Name","value":"labelSingular"}},{"kind":"Field","name":{"kind":"Name","value":"labelPlural"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode<UpdateOneMetadataObjectMutation, UpdateOneMetadataObjectMutationVariables>;
|
export const UpdateOneObjectMetadataItemDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"UpdateOneObjectMetadataItem"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"idToUpdate"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"updatePayload"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"UpdateObjectInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"updateOneObject"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"idToUpdate"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"update"},"value":{"kind":"Variable","name":{"kind":"Name","value":"updatePayload"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"dataSourceId"}},{"kind":"Field","name":{"kind":"Name","value":"nameSingular"}},{"kind":"Field","name":{"kind":"Name","value":"namePlural"}},{"kind":"Field","name":{"kind":"Name","value":"labelSingular"}},{"kind":"Field","name":{"kind":"Name","value":"labelPlural"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode<UpdateOneObjectMetadataItemMutation, UpdateOneObjectMetadataItemMutationVariables>;
|
||||||
export const DeleteOneMetadataObjectDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"DeleteOneMetadataObject"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"idToDelete"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"deleteOneObject"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"idToDelete"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"dataSourceId"}},{"kind":"Field","name":{"kind":"Name","value":"nameSingular"}},{"kind":"Field","name":{"kind":"Name","value":"namePlural"}},{"kind":"Field","name":{"kind":"Name","value":"labelSingular"}},{"kind":"Field","name":{"kind":"Name","value":"labelPlural"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode<DeleteOneMetadataObjectMutation, DeleteOneMetadataObjectMutationVariables>;
|
export const DeleteOneObjectMetadataItemDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"DeleteOneObjectMetadataItem"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"idToDelete"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"deleteOneObject"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"idToDelete"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"dataSourceId"}},{"kind":"Field","name":{"kind":"Name","value":"nameSingular"}},{"kind":"Field","name":{"kind":"Name","value":"namePlural"}},{"kind":"Field","name":{"kind":"Name","value":"labelSingular"}},{"kind":"Field","name":{"kind":"Name","value":"labelPlural"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode<DeleteOneObjectMetadataItemMutation, DeleteOneObjectMetadataItemMutationVariables>;
|
||||||
export const DeleteOneMetadataFieldDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"DeleteOneMetadataField"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"idToDelete"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"deleteOneField"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"idToDelete"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"placeholder"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"isNullable"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode<DeleteOneMetadataFieldMutation, DeleteOneMetadataFieldMutationVariables>;
|
export const DeleteOneMetadataFieldDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"DeleteOneMetadataField"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"idToDelete"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"deleteOneField"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"idToDelete"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"placeholder"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"isNullable"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}}]} as unknown as DocumentNode<DeleteOneMetadataFieldMutation, DeleteOneMetadataFieldMutationVariables>;
|
||||||
export const MetadataObjectsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"MetadataObjects"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"objects"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"paging"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"dataSourceId"}},{"kind":"Field","name":{"kind":"Name","value":"nameSingular"}},{"kind":"Field","name":{"kind":"Name","value":"namePlural"}},{"kind":"Field","name":{"kind":"Name","value":"labelSingular"}},{"kind":"Field","name":{"kind":"Name","value":"labelPlural"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}},{"kind":"Field","name":{"kind":"Name","value":"fields"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"paging"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"placeholder"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"isNullable"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}},{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}}]}},{"kind":"Field","name":{"kind":"Name","value":"totalCount"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}},{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}}]}},{"kind":"Field","name":{"kind":"Name","value":"totalCount"}}]}}]}}]} as unknown as DocumentNode<MetadataObjectsQuery, MetadataObjectsQueryVariables>;
|
export const ObjectMetadataItemsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ObjectMetadataItems"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"objects"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"paging"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"dataSourceId"}},{"kind":"Field","name":{"kind":"Name","value":"nameSingular"}},{"kind":"Field","name":{"kind":"Name","value":"namePlural"}},{"kind":"Field","name":{"kind":"Name","value":"labelSingular"}},{"kind":"Field","name":{"kind":"Name","value":"labelPlural"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}},{"kind":"Field","name":{"kind":"Name","value":"fields"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"paging"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"first"},"value":{"kind":"IntValue","value":"1000"}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"edges"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"node"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"label"}},{"kind":"Field","name":{"kind":"Name","value":"description"}},{"kind":"Field","name":{"kind":"Name","value":"icon"}},{"kind":"Field","name":{"kind":"Name","value":"placeholder"}},{"kind":"Field","name":{"kind":"Name","value":"isCustom"}},{"kind":"Field","name":{"kind":"Name","value":"isActive"}},{"kind":"Field","name":{"kind":"Name","value":"isNullable"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}},{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}}]}},{"kind":"Field","name":{"kind":"Name","value":"totalCount"}}]}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}},{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}}]}},{"kind":"Field","name":{"kind":"Name","value":"totalCount"}}]}}]}}]} as unknown as DocumentNode<ObjectMetadataItemsQuery, ObjectMetadataItemsQueryVariables>;
|
||||||
@ -1,38 +0,0 @@
|
|||||||
import { useNavigate } from 'react-router-dom';
|
|
||||||
|
|
||||||
import { Icon123 } from '@/ui/input/constants/icons';
|
|
||||||
import { useLazyLoadIcons } from '@/ui/input/hooks/useLazyLoadIcons';
|
|
||||||
import NavItem from '@/ui/navigation/navbar/components/NavItem';
|
|
||||||
|
|
||||||
import { useFindManyMetadataObjects } from '../hooks/useFindManyMetadataObjects';
|
|
||||||
|
|
||||||
export const MetadataObjectNavItems = () => {
|
|
||||||
const { metadataObjects } = useFindManyMetadataObjects();
|
|
||||||
|
|
||||||
const navigate = useNavigate();
|
|
||||||
const { icons } = useLazyLoadIcons();
|
|
||||||
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
{metadataObjects
|
|
||||||
.filter(
|
|
||||||
(metadataObject) =>
|
|
||||||
metadataObject.isActive &&
|
|
||||||
!metadataObject.namePlural.endsWith('V2'),
|
|
||||||
)
|
|
||||||
.map((metadataObject) => {
|
|
||||||
return (
|
|
||||||
<NavItem
|
|
||||||
key={metadataObject.id}
|
|
||||||
label={metadataObject.labelPlural}
|
|
||||||
to={`/objects/${metadataObject.namePlural}`}
|
|
||||||
Icon={metadataObject.icon ? icons[metadataObject.icon] : Icon123}
|
|
||||||
onClick={() => {
|
|
||||||
navigate(`/objects/${metadataObject.namePlural}`);
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
})}
|
|
||||||
</>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
@ -0,0 +1,42 @@
|
|||||||
|
import { useNavigate } from 'react-router-dom';
|
||||||
|
|
||||||
|
import { Icon123 } from '@/ui/input/constants/icons';
|
||||||
|
import { useLazyLoadIcons } from '@/ui/input/hooks/useLazyLoadIcons';
|
||||||
|
import NavItem from '@/ui/navigation/navbar/components/NavItem';
|
||||||
|
|
||||||
|
import { useFindManyObjectMetadataItems } from '../hooks/useFindManyObjectMetadataItems';
|
||||||
|
|
||||||
|
export const ObjectMetadataNavItems = () => {
|
||||||
|
const { objectMetadataItems } = useFindManyObjectMetadataItems();
|
||||||
|
|
||||||
|
const navigate = useNavigate();
|
||||||
|
const { icons } = useLazyLoadIcons();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
{objectMetadataItems
|
||||||
|
.filter(
|
||||||
|
(objectMetadataItem) =>
|
||||||
|
objectMetadataItem.isActive &&
|
||||||
|
!objectMetadataItem.namePlural.endsWith('V2'),
|
||||||
|
)
|
||||||
|
.map((objectMetadataItem) => {
|
||||||
|
return (
|
||||||
|
<NavItem
|
||||||
|
key={objectMetadataItem.id}
|
||||||
|
label={objectMetadataItem.labelPlural}
|
||||||
|
to={`/objects/${objectMetadataItem.namePlural}`}
|
||||||
|
Icon={
|
||||||
|
objectMetadataItem.icon
|
||||||
|
? icons[objectMetadataItem.icon]
|
||||||
|
: Icon123
|
||||||
|
}
|
||||||
|
onClick={() => {
|
||||||
|
navigate(`/objects/${objectMetadataItem.namePlural}`);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
@ -5,7 +5,7 @@ import { availableTableColumnsScopedState } from '@/ui/object/record-table/state
|
|||||||
import { useView } from '@/views/hooks/useView';
|
import { useView } from '@/views/hooks/useView';
|
||||||
import { ViewType } from '@/views/types/ViewType';
|
import { ViewType } from '@/views/types/ViewType';
|
||||||
|
|
||||||
import { useMetadataObjectInContext } from '../hooks/useMetadataObjectInContext';
|
import { useObjectMetadataItemInContext } from '../hooks/useObjectMetadataItemInContext';
|
||||||
|
|
||||||
export const ObjectTableEffect = () => {
|
export const ObjectTableEffect = () => {
|
||||||
const {
|
const {
|
||||||
@ -20,20 +20,20 @@ export const ObjectTableEffect = () => {
|
|||||||
columnDefinitions,
|
columnDefinitions,
|
||||||
filterDefinitions,
|
filterDefinitions,
|
||||||
sortDefinitions,
|
sortDefinitions,
|
||||||
foundMetadataObject,
|
foundObjectMetadataItem,
|
||||||
} = useMetadataObjectInContext();
|
} = useObjectMetadataItemInContext();
|
||||||
|
|
||||||
const tableScopeId = foundMetadataObject?.namePlural ?? '';
|
const tableScopeId = foundObjectMetadataItem?.namePlural ?? '';
|
||||||
|
|
||||||
const setAvailableTableColumns = useSetRecoilState(
|
const setAvailableTableColumns = useSetRecoilState(
|
||||||
availableTableColumnsScopedState(tableScopeId),
|
availableTableColumnsScopedState(tableScopeId),
|
||||||
);
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!foundMetadataObject) {
|
if (!foundObjectMetadataItem) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
setViewObjectId?.(foundMetadataObject.id);
|
setViewObjectId?.(foundObjectMetadataItem.id);
|
||||||
setViewType?.(ViewType.Table);
|
setViewType?.(ViewType.Table);
|
||||||
|
|
||||||
setAvailableSortDefinitions?.(sortDefinitions);
|
setAvailableSortDefinitions?.(sortDefinitions);
|
||||||
@ -49,7 +49,7 @@ export const ObjectTableEffect = () => {
|
|||||||
setAvailableSortDefinitions,
|
setAvailableSortDefinitions,
|
||||||
setAvailableFilterDefinitions,
|
setAvailableFilterDefinitions,
|
||||||
setAvailableFieldDefinitions,
|
setAvailableFieldDefinitions,
|
||||||
foundMetadataObject,
|
foundObjectMetadataItem,
|
||||||
sortDefinitions,
|
sortDefinitions,
|
||||||
filterDefinitions,
|
filterDefinitions,
|
||||||
]);
|
]);
|
||||||
|
|||||||
@ -23,8 +23,8 @@ import { InlineCellHotkeyScope } from '@/ui/object/record-inline-cell/types/Inli
|
|||||||
import { PageTitle } from '@/ui/utilities/page-title/PageTitle';
|
import { PageTitle } from '@/ui/utilities/page-title/PageTitle';
|
||||||
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
||||||
|
|
||||||
import { useFindOneMetadataObject } from '../hooks/useFindOneMetadataObject';
|
|
||||||
import { useFindOneObject } from '../hooks/useFindOneObject';
|
import { useFindOneObject } from '../hooks/useFindOneObject';
|
||||||
|
import { useFindOneObjectMetadataItem } from '../hooks/useFindOneObjectMetadataItem';
|
||||||
import { useUpdateOneObject } from '../hooks/useUpdateOneObject';
|
import { useUpdateOneObject } from '../hooks/useUpdateOneObject';
|
||||||
import { formatMetadataFieldAsColumnDefinition } from '../utils/formatMetadataFieldAsColumnDefinition';
|
import { formatMetadataFieldAsColumnDefinition } from '../utils/formatMetadataFieldAsColumnDefinition';
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ export const RecordShowPage = () => {
|
|||||||
|
|
||||||
const { icons } = useLazyLoadIcons();
|
const { icons } = useLazyLoadIcons();
|
||||||
|
|
||||||
const { foundMetadataObject } = useFindOneMetadataObject({
|
const { foundObjectMetadataItem } = useFindOneObjectMetadataItem({
|
||||||
objectNameSingular,
|
objectNameSingular,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -115,7 +115,7 @@ export const RecordShowPage = () => {
|
|||||||
avatarType="squared"
|
avatarType="squared"
|
||||||
/>
|
/>
|
||||||
<PropertyBox extraPadding={true}>
|
<PropertyBox extraPadding={true}>
|
||||||
{foundMetadataObject?.fields
|
{foundObjectMetadataItem?.fields
|
||||||
.toSorted((a, b) =>
|
.toSorted((a, b) =>
|
||||||
DateTime.fromISO(a.createdAt)
|
DateTime.fromISO(a.createdAt)
|
||||||
.diff(DateTime.fromISO(b.createdAt))
|
.diff(DateTime.fromISO(b.createdAt))
|
||||||
@ -132,7 +132,7 @@ export const RecordShowPage = () => {
|
|||||||
formatMetadataFieldAsColumnDefinition({
|
formatMetadataFieldAsColumnDefinition({
|
||||||
field: metadataField,
|
field: metadataField,
|
||||||
position: index,
|
position: index,
|
||||||
metadataObject: foundMetadataObject,
|
objectMetadataItem: foundObjectMetadataItem,
|
||||||
icons,
|
icons,
|
||||||
}),
|
}),
|
||||||
useUpdateEntityMutation: useUpdateOneObjectMutation,
|
useUpdateEntityMutation: useUpdateOneObjectMutation,
|
||||||
|
|||||||
@ -17,9 +17,9 @@ import { viewFieldsToColumnDefinitions } from '@/views/utils/viewFieldsToColumnD
|
|||||||
import { viewFiltersToFilters } from '@/views/utils/viewFiltersToFilters';
|
import { viewFiltersToFilters } from '@/views/utils/viewFiltersToFilters';
|
||||||
import { viewSortsToSorts } from '@/views/utils/viewSortsToSorts';
|
import { viewSortsToSorts } from '@/views/utils/viewSortsToSorts';
|
||||||
|
|
||||||
import { useMetadataObjectInContext } from '../hooks/useMetadataObjectInContext';
|
import { useObjectMetadataItemInContext } from '../hooks/useObjectMetadataItemInContext';
|
||||||
import { useUpdateOneObject } from '../hooks/useUpdateOneObject';
|
import { useUpdateOneObject } from '../hooks/useUpdateOneObject';
|
||||||
import { MetadataObjectIdentifier } from '../types/MetadataObjectIdentifier';
|
import { ObjectMetadataItemIdentifier } from '../types/ObjectMetadataItemIdentifier';
|
||||||
|
|
||||||
import { ObjectTableEffect } from './ObjectTableEffect';
|
import { ObjectTableEffect } from './ObjectTableEffect';
|
||||||
import { ObjectRecordTableEffect } from './RecordTableEffect';
|
import { ObjectRecordTableEffect } from './RecordTableEffect';
|
||||||
@ -32,7 +32,7 @@ const StyledContainer = styled.div`
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
export type ObjectTableProps = Pick<
|
export type ObjectTableProps = Pick<
|
||||||
MetadataObjectIdentifier,
|
ObjectMetadataItemIdentifier,
|
||||||
'objectNamePlural'
|
'objectNamePlural'
|
||||||
>;
|
>;
|
||||||
|
|
||||||
@ -40,9 +40,9 @@ export const ObjectTable = ({ objectNamePlural }: ObjectTableProps) => {
|
|||||||
const { updateOneObject } = useUpdateOneObject({
|
const { updateOneObject } = useUpdateOneObject({
|
||||||
objectNamePlural,
|
objectNamePlural,
|
||||||
});
|
});
|
||||||
const { columnDefinitions, foundMetadataObject } =
|
const { columnDefinitions, foundObjectMetadataItem } =
|
||||||
useMetadataObjectInContext();
|
useObjectMetadataItemInContext();
|
||||||
const tableScopeId = foundMetadataObject?.namePlural ?? '';
|
const tableScopeId = foundObjectMetadataItem?.namePlural ?? '';
|
||||||
const viewScopeId = objectNamePlural ?? '';
|
const viewScopeId = objectNamePlural ?? '';
|
||||||
|
|
||||||
const { persistViewFields } = useViewFields(viewScopeId);
|
const { persistViewFields } = useViewFields(viewScopeId);
|
||||||
|
|||||||
@ -9,11 +9,11 @@ import { tableSortsScopedState } from '@/ui/object/record-table/states/tableSort
|
|||||||
import { useRecoilScopedValue } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedValue';
|
import { useRecoilScopedValue } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedValue';
|
||||||
|
|
||||||
import { useFindManyObjects } from '../hooks/useFindManyObjects';
|
import { useFindManyObjects } from '../hooks/useFindManyObjects';
|
||||||
import { useMetadataObjectInContext } from '../hooks/useMetadataObjectInContext';
|
import { useObjectMetadataItemInContext } from '../hooks/useObjectMetadataItemInContext';
|
||||||
import { MetadataObjectIdentifier } from '../types/MetadataObjectIdentifier';
|
import { ObjectMetadataItemIdentifier } from '../types/ObjectMetadataItemIdentifier';
|
||||||
|
|
||||||
export type ObjectRecordTableEffectProps = Pick<
|
export type ObjectRecordTableEffectProps = Pick<
|
||||||
MetadataObjectIdentifier,
|
ObjectMetadataItemIdentifier,
|
||||||
'objectNamePlural'
|
'objectNamePlural'
|
||||||
>;
|
>;
|
||||||
|
|
||||||
@ -22,7 +22,7 @@ export const ObjectRecordTableEffect = ({
|
|||||||
objectNamePlural,
|
objectNamePlural,
|
||||||
}: ObjectRecordTableEffectProps) => {
|
}: ObjectRecordTableEffectProps) => {
|
||||||
const setRecordTableData = useSetRecordTableData();
|
const setRecordTableData = useSetRecordTableData();
|
||||||
const { foundMetadataObject } = useMetadataObjectInContext();
|
const { foundObjectMetadataItem } = useObjectMetadataItemInContext();
|
||||||
|
|
||||||
const tableFilters = useRecoilScopedValue(
|
const tableFilters = useRecoilScopedValue(
|
||||||
tableFiltersScopedState,
|
tableFiltersScopedState,
|
||||||
@ -38,11 +38,11 @@ export const ObjectRecordTableEffect = ({
|
|||||||
objectNamePlural: objectNamePlural,
|
objectNamePlural: objectNamePlural,
|
||||||
filter: turnFiltersIntoWhereClauseV2(
|
filter: turnFiltersIntoWhereClauseV2(
|
||||||
tableFilters,
|
tableFilters,
|
||||||
foundMetadataObject?.fields ?? [],
|
foundObjectMetadataItem?.fields ?? [],
|
||||||
),
|
),
|
||||||
orderBy: turnSortsIntoOrderByV2(
|
orderBy: turnSortsIntoOrderByV2(
|
||||||
tableSorts,
|
tableSorts,
|
||||||
foundMetadataObject?.fields ?? [],
|
foundObjectMetadataItem?.fields ?? [],
|
||||||
),
|
),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import { useNavigate, useParams } from 'react-router-dom';
|
|||||||
import styled from '@emotion/styled';
|
import styled from '@emotion/styled';
|
||||||
|
|
||||||
import { ObjectTable } from '@/metadata/components/RecordTable';
|
import { ObjectTable } from '@/metadata/components/RecordTable';
|
||||||
import { MetadataObjectIdentifier } from '@/metadata/types/MetadataObjectIdentifier';
|
import { ObjectMetadataItemIdentifier } from '@/metadata/types/ObjectMetadataItemIdentifier';
|
||||||
import { IconBuildingSkyscraper } from '@/ui/display/icon';
|
import { IconBuildingSkyscraper } from '@/ui/display/icon';
|
||||||
import { PageAddButton } from '@/ui/layout/page/PageAddButton';
|
import { PageAddButton } from '@/ui/layout/page/PageAddButton';
|
||||||
import { PageBody } from '@/ui/layout/page/PageBody';
|
import { PageBody } from '@/ui/layout/page/PageBody';
|
||||||
@ -16,8 +16,8 @@ import { TableRecoilScopeContext } from '@/ui/object/record-table/states/recoil-
|
|||||||
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
|
||||||
|
|
||||||
import { useCreateOneObject } from '../hooks/useCreateOneObject';
|
import { useCreateOneObject } from '../hooks/useCreateOneObject';
|
||||||
import { useFindOneMetadataObject } from '../hooks/useFindOneMetadataObject';
|
import { useFindOneObjectMetadataItem } from '../hooks/useFindOneObjectMetadataItem';
|
||||||
import { MetadataObjectScope } from '../scopes/MetadataObjectScope';
|
import { ObjectMetadataItemScope } from '../scopes/ObjectMetadataItemScope';
|
||||||
|
|
||||||
const StyledTableContainer = styled.div`
|
const StyledTableContainer = styled.div`
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -25,14 +25,14 @@ const StyledTableContainer = styled.div`
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
export type RecordTablePageProps = Pick<
|
export type RecordTablePageProps = Pick<
|
||||||
MetadataObjectIdentifier,
|
ObjectMetadataItemIdentifier,
|
||||||
'objectNamePlural'
|
'objectNamePlural'
|
||||||
>;
|
>;
|
||||||
|
|
||||||
export const RecordTablePage = () => {
|
export const RecordTablePage = () => {
|
||||||
const objectNamePlural = useParams().objectNamePlural ?? '';
|
const objectNamePlural = useParams().objectNamePlural ?? '';
|
||||||
|
|
||||||
const { objectNotFoundInMetadata, loading } = useFindOneMetadataObject({
|
const { objectNotFoundInMetadata, loading } = useFindOneObjectMetadataItem({
|
||||||
objectNamePlural,
|
objectNamePlural,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -64,9 +64,11 @@ export const RecordTablePage = () => {
|
|||||||
CustomRecoilScopeContext={TableRecoilScopeContext}
|
CustomRecoilScopeContext={TableRecoilScopeContext}
|
||||||
>
|
>
|
||||||
<StyledTableContainer>
|
<StyledTableContainer>
|
||||||
<MetadataObjectScope metadataObjectNamePlural={objectNamePlural}>
|
<ObjectMetadataItemScope
|
||||||
|
objectMetadataItemNamePlural={objectNamePlural}
|
||||||
|
>
|
||||||
<ObjectTable objectNamePlural={objectNamePlural} />
|
<ObjectTable objectNamePlural={objectNamePlural} />
|
||||||
</MetadataObjectScope>
|
</ObjectMetadataItemScope>
|
||||||
</StyledTableContainer>
|
</StyledTableContainer>
|
||||||
<RecordTableActionBar />
|
<RecordTableActionBar />
|
||||||
<RecordTableContextMenu />
|
<RecordTableContextMenu />
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import { gql } from '@apollo/client';
|
import { gql } from '@apollo/client';
|
||||||
|
|
||||||
export const CREATE_ONE_METADATA_OBJECT = gql`
|
export const CREATE_ONE_METADATA_OBJECT = gql`
|
||||||
mutation CreateOneMetadataObject($input: CreateOneObjectInput!) {
|
mutation CreateOneObjectMetadataItem($input: CreateOneObjectInput!) {
|
||||||
createOneObject(input: $input) {
|
createOneObject(input: $input) {
|
||||||
id
|
id
|
||||||
dataSourceId
|
dataSourceId
|
||||||
@ -61,7 +61,7 @@ export const UPDATE_ONE_METADATA_FIELD = gql`
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
export const UPDATE_ONE_METADATA_OBJECT = gql`
|
export const UPDATE_ONE_METADATA_OBJECT = gql`
|
||||||
mutation UpdateOneMetadataObject(
|
mutation UpdateOneObjectMetadataItem(
|
||||||
$idToUpdate: ID!
|
$idToUpdate: ID!
|
||||||
$updatePayload: UpdateObjectInput!
|
$updatePayload: UpdateObjectInput!
|
||||||
) {
|
) {
|
||||||
@ -83,7 +83,7 @@ export const UPDATE_ONE_METADATA_OBJECT = gql`
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
export const DELETE_ONE_METADATA_OBJECT = gql`
|
export const DELETE_ONE_METADATA_OBJECT = gql`
|
||||||
mutation DeleteOneMetadataObject($idToDelete: ID!) {
|
mutation DeleteOneObjectMetadataItem($idToDelete: ID!) {
|
||||||
deleteOneObject(input: { id: $idToDelete }) {
|
deleteOneObject(input: { id: $idToDelete }) {
|
||||||
id
|
id
|
||||||
dataSourceId
|
dataSourceId
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import { gql } from '@apollo/client';
|
import { gql } from '@apollo/client';
|
||||||
|
|
||||||
export const FIND_MANY_METADATA_OBJECTS = gql`
|
export const FIND_MANY_METADATA_OBJECTS = gql`
|
||||||
query MetadataObjects {
|
query ObjectMetadataItems {
|
||||||
objects(paging: { first: 1000 }) {
|
objects(paging: { first: 1000 }) {
|
||||||
edges {
|
edges {
|
||||||
node {
|
node {
|
||||||
|
|||||||
@ -1,26 +1,26 @@
|
|||||||
import { useMutation } from '@apollo/client';
|
import { useMutation } from '@apollo/client';
|
||||||
import { getOperationName } from '@apollo/client/utilities';
|
import { getOperationName } from '@apollo/client/utilities';
|
||||||
|
|
||||||
import { MetadataObjectIdentifier } from '../types/MetadataObjectIdentifier';
|
import { ObjectMetadataItemIdentifier } from '../types/ObjectMetadataItemIdentifier';
|
||||||
|
|
||||||
import { useFindOneMetadataObject } from './useFindOneMetadataObject';
|
import { useFindOneObjectMetadataItem } from './useFindOneObjectMetadataItem';
|
||||||
|
|
||||||
export const useCreateOneObject = ({
|
export const useCreateOneObject = ({
|
||||||
objectNamePlural,
|
objectNamePlural,
|
||||||
}: Pick<MetadataObjectIdentifier, 'objectNamePlural'>) => {
|
}: Pick<ObjectMetadataItemIdentifier, 'objectNamePlural'>) => {
|
||||||
const {
|
const {
|
||||||
foundMetadataObject,
|
foundObjectMetadataItem,
|
||||||
objectNotFoundInMetadata,
|
objectNotFoundInMetadata,
|
||||||
findManyQuery,
|
findManyQuery,
|
||||||
createOneMutation,
|
createOneMutation,
|
||||||
} = useFindOneMetadataObject({
|
} = useFindOneObjectMetadataItem({
|
||||||
objectNamePlural,
|
objectNamePlural,
|
||||||
});
|
});
|
||||||
|
|
||||||
// TODO: type this with a minimal type at least with Record<string, any>
|
// TODO: type this with a minimal type at least with Record<string, any>
|
||||||
const [mutate] = useMutation(createOneMutation);
|
const [mutate] = useMutation(createOneMutation);
|
||||||
|
|
||||||
const createOneObject = foundMetadataObject
|
const createOneObject = foundObjectMetadataItem
|
||||||
? (input: Record<string, any>) => {
|
? (input: Record<string, any>) => {
|
||||||
return mutate({
|
return mutate({
|
||||||
variables: {
|
variables: {
|
||||||
|
|||||||
@ -2,8 +2,8 @@ import { ApolloClient, useMutation } from '@apollo/client';
|
|||||||
import { getOperationName } from '@apollo/client/utilities';
|
import { getOperationName } from '@apollo/client/utilities';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
CreateOneMetadataObjectMutation,
|
CreateOneObjectMetadataItemMutation,
|
||||||
CreateOneMetadataObjectMutationVariables,
|
CreateOneObjectMetadataItemMutationVariables,
|
||||||
} from '~/generated-metadata/graphql';
|
} from '~/generated-metadata/graphql';
|
||||||
|
|
||||||
import { CREATE_ONE_METADATA_OBJECT } from '../graphql/mutations';
|
import { CREATE_ONE_METADATA_OBJECT } from '../graphql/mutations';
|
||||||
@ -11,18 +11,18 @@ import { FIND_MANY_METADATA_OBJECTS } from '../graphql/queries';
|
|||||||
|
|
||||||
import { useApolloMetadataClient } from './useApolloMetadataClient';
|
import { useApolloMetadataClient } from './useApolloMetadataClient';
|
||||||
|
|
||||||
export const useCreateOneMetadataObject = () => {
|
export const useCreateOneObjectMetadataItem = () => {
|
||||||
const apolloMetadataClient = useApolloMetadataClient();
|
const apolloMetadataClient = useApolloMetadataClient();
|
||||||
|
|
||||||
const [mutate] = useMutation<
|
const [mutate] = useMutation<
|
||||||
CreateOneMetadataObjectMutation,
|
CreateOneObjectMetadataItemMutation,
|
||||||
CreateOneMetadataObjectMutationVariables
|
CreateOneObjectMetadataItemMutationVariables
|
||||||
>(CREATE_ONE_METADATA_OBJECT, {
|
>(CREATE_ONE_METADATA_OBJECT, {
|
||||||
client: apolloMetadataClient ?? ({} as ApolloClient<any>),
|
client: apolloMetadataClient ?? ({} as ApolloClient<any>),
|
||||||
});
|
});
|
||||||
|
|
||||||
const createOneMetadataObject = async (
|
const createOneObjectMetadataItem = async (
|
||||||
input: CreateOneMetadataObjectMutationVariables['input']['object'],
|
input: CreateOneObjectMetadataItemMutationVariables['input']['object'],
|
||||||
) => {
|
) => {
|
||||||
return await mutate({
|
return await mutate({
|
||||||
variables: {
|
variables: {
|
||||||
@ -38,6 +38,6 @@ export const useCreateOneMetadataObject = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
createOneMetadataObject,
|
createOneObjectMetadataItem,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -1,26 +1,26 @@
|
|||||||
import { useMutation } from '@apollo/client';
|
import { useMutation } from '@apollo/client';
|
||||||
import { getOperationName } from '@apollo/client/utilities';
|
import { getOperationName } from '@apollo/client/utilities';
|
||||||
|
|
||||||
import { MetadataObjectIdentifier } from '../types/MetadataObjectIdentifier';
|
import { ObjectMetadataItemIdentifier } from '../types/ObjectMetadataItemIdentifier';
|
||||||
|
|
||||||
import { useFindOneMetadataObject } from './useFindOneMetadataObject';
|
import { useFindOneObjectMetadataItem } from './useFindOneObjectMetadataItem';
|
||||||
|
|
||||||
export const useDeleteOneObject = ({
|
export const useDeleteOneObject = ({
|
||||||
objectNamePlural,
|
objectNamePlural,
|
||||||
}: Pick<MetadataObjectIdentifier, 'objectNamePlural'>) => {
|
}: Pick<ObjectMetadataItemIdentifier, 'objectNamePlural'>) => {
|
||||||
const {
|
const {
|
||||||
foundMetadataObject,
|
foundObjectMetadataItem,
|
||||||
objectNotFoundInMetadata,
|
objectNotFoundInMetadata,
|
||||||
findManyQuery,
|
findManyQuery,
|
||||||
deleteOneMutation,
|
deleteOneMutation,
|
||||||
} = useFindOneMetadataObject({
|
} = useFindOneObjectMetadataItem({
|
||||||
objectNamePlural,
|
objectNamePlural,
|
||||||
});
|
});
|
||||||
|
|
||||||
// TODO: type this with a minimal type at least with Record<string, any>
|
// TODO: type this with a minimal type at least with Record<string, any>
|
||||||
const [mutate] = useMutation(deleteOneMutation);
|
const [mutate] = useMutation(deleteOneMutation);
|
||||||
|
|
||||||
const deleteOneObject = foundMetadataObject
|
const deleteOneObject = foundObjectMetadataItem
|
||||||
? (input: Record<string, any>) => {
|
? (input: Record<string, any>) => {
|
||||||
return mutate({
|
return mutate({
|
||||||
variables: {
|
variables: {
|
||||||
|
|||||||
@ -2,8 +2,8 @@ import { ApolloClient, useMutation } from '@apollo/client';
|
|||||||
import { getOperationName } from '@apollo/client/utilities';
|
import { getOperationName } from '@apollo/client/utilities';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
DeleteOneMetadataObjectMutation,
|
DeleteOneObjectMetadataItemMutation,
|
||||||
DeleteOneMetadataObjectMutationVariables,
|
DeleteOneObjectMetadataItemMutationVariables,
|
||||||
} from '~/generated-metadata/graphql';
|
} from '~/generated-metadata/graphql';
|
||||||
|
|
||||||
import { DELETE_ONE_METADATA_OBJECT } from '../graphql/mutations';
|
import { DELETE_ONE_METADATA_OBJECT } from '../graphql/mutations';
|
||||||
@ -11,18 +11,18 @@ import { FIND_MANY_METADATA_OBJECTS } from '../graphql/queries';
|
|||||||
|
|
||||||
import { useApolloMetadataClient } from './useApolloMetadataClient';
|
import { useApolloMetadataClient } from './useApolloMetadataClient';
|
||||||
|
|
||||||
export const useDeleteOneMetadataObject = () => {
|
export const useDeleteOneObjectMetadataItem = () => {
|
||||||
const apolloMetadataClient = useApolloMetadataClient();
|
const apolloMetadataClient = useApolloMetadataClient();
|
||||||
|
|
||||||
const [mutate] = useMutation<
|
const [mutate] = useMutation<
|
||||||
DeleteOneMetadataObjectMutation,
|
DeleteOneObjectMetadataItemMutation,
|
||||||
DeleteOneMetadataObjectMutationVariables
|
DeleteOneObjectMetadataItemMutationVariables
|
||||||
>(DELETE_ONE_METADATA_OBJECT, {
|
>(DELETE_ONE_METADATA_OBJECT, {
|
||||||
client: apolloMetadataClient ?? ({} as ApolloClient<any>),
|
client: apolloMetadataClient ?? ({} as ApolloClient<any>),
|
||||||
});
|
});
|
||||||
|
|
||||||
const deleteOneMetadataObject = async (
|
const deleteOneObjectMetadataItem = async (
|
||||||
idToDelete: DeleteOneMetadataObjectMutationVariables['idToDelete'],
|
idToDelete: DeleteOneObjectMetadataItemMutationVariables['idToDelete'],
|
||||||
) => {
|
) => {
|
||||||
return await mutate({
|
return await mutate({
|
||||||
variables: {
|
variables: {
|
||||||
@ -34,6 +34,6 @@ export const useDeleteOneMetadataObject = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
deleteOneMetadataObject,
|
deleteOneObjectMetadataItem,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -2,12 +2,12 @@ import { useMemo } from 'react';
|
|||||||
import { useQuery } from '@apollo/client';
|
import { useQuery } from '@apollo/client';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
MetadataObjectsQuery,
|
ObjectMetadataItemsQuery,
|
||||||
MetadataObjectsQueryVariables,
|
ObjectMetadataItemsQueryVariables,
|
||||||
} from '~/generated-metadata/graphql';
|
} from '~/generated-metadata/graphql';
|
||||||
|
|
||||||
import { FIND_MANY_METADATA_OBJECTS } from '../graphql/queries';
|
import { FIND_MANY_METADATA_OBJECTS } from '../graphql/queries';
|
||||||
import { formatPagedMetadataObjectsToMetadataObjects } from '../utils/formatPagedMetadataObjectsToMetadataObjects';
|
import { formatPagedObjectMetadataItemsToObjectMetadataItems } from '../utils/formatPagedObjectMetadataItemsToObjectMetadataItems';
|
||||||
|
|
||||||
import { useApolloMetadataClient } from './useApolloMetadataClient';
|
import { useApolloMetadataClient } from './useApolloMetadataClient';
|
||||||
|
|
||||||
@ -16,8 +16,8 @@ export const useFindAllMetadata = () => {
|
|||||||
const apolloMetadataClient = useApolloMetadataClient();
|
const apolloMetadataClient = useApolloMetadataClient();
|
||||||
|
|
||||||
const { data, fetchMore: fetchMoreInternal } = useQuery<
|
const { data, fetchMore: fetchMoreInternal } = useQuery<
|
||||||
MetadataObjectsQuery,
|
ObjectMetadataItemsQuery,
|
||||||
MetadataObjectsQueryVariables
|
ObjectMetadataItemsQueryVariables
|
||||||
>(FIND_MANY_METADATA_OBJECTS, {
|
>(FIND_MANY_METADATA_OBJECTS, {
|
||||||
client: apolloMetadataClient ?? ({} as any),
|
client: apolloMetadataClient ?? ({} as any),
|
||||||
skip: !apolloMetadataClient,
|
skip: !apolloMetadataClient,
|
||||||
@ -32,14 +32,14 @@ export const useFindAllMetadata = () => {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const metadataObjects = useMemo(() => {
|
const objectMetadataItems = useMemo(() => {
|
||||||
return formatPagedMetadataObjectsToMetadataObjects({
|
return formatPagedObjectMetadataItemsToObjectMetadataItems({
|
||||||
pagedMetadataObjects: data,
|
pagedObjectMetadataItems: data,
|
||||||
});
|
});
|
||||||
}, [data]);
|
}, [data]);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
metadataObjects,
|
objectMetadataItems,
|
||||||
hasMore,
|
hasMore,
|
||||||
fetchMore,
|
fetchMore,
|
||||||
};
|
};
|
||||||
|
|||||||
@ -3,18 +3,18 @@ import { useQuery } from '@apollo/client';
|
|||||||
|
|
||||||
import { useSnackBar } from '@/ui/feedback/snack-bar/hooks/useSnackBar';
|
import { useSnackBar } from '@/ui/feedback/snack-bar/hooks/useSnackBar';
|
||||||
import {
|
import {
|
||||||
MetadataObjectsQuery,
|
ObjectMetadataItemsQuery,
|
||||||
MetadataObjectsQueryVariables,
|
ObjectMetadataItemsQueryVariables,
|
||||||
} from '~/generated-metadata/graphql';
|
} from '~/generated-metadata/graphql';
|
||||||
import { logError } from '~/utils/logError';
|
import { logError } from '~/utils/logError';
|
||||||
|
|
||||||
import { FIND_MANY_METADATA_OBJECTS } from '../graphql/queries';
|
import { FIND_MANY_METADATA_OBJECTS } from '../graphql/queries';
|
||||||
import { formatPagedMetadataObjectsToMetadataObjects } from '../utils/formatPagedMetadataObjectsToMetadataObjects';
|
import { formatPagedObjectMetadataItemsToObjectMetadataItems } from '../utils/formatPagedObjectMetadataItemsToObjectMetadataItems';
|
||||||
|
|
||||||
import { useApolloMetadataClient } from './useApolloMetadataClient';
|
import { useApolloMetadataClient } from './useApolloMetadataClient';
|
||||||
|
|
||||||
// TODO: test fetchMore
|
// TODO: test fetchMore
|
||||||
export const useFindManyMetadataObjects = () => {
|
export const useFindManyObjectMetadataItems = () => {
|
||||||
const apolloMetadataClient = useApolloMetadataClient();
|
const apolloMetadataClient = useApolloMetadataClient();
|
||||||
|
|
||||||
const { enqueueSnackBar } = useSnackBar();
|
const { enqueueSnackBar } = useSnackBar();
|
||||||
@ -24,15 +24,15 @@ export const useFindManyMetadataObjects = () => {
|
|||||||
fetchMore: fetchMoreInternal,
|
fetchMore: fetchMoreInternal,
|
||||||
loading,
|
loading,
|
||||||
error,
|
error,
|
||||||
} = useQuery<MetadataObjectsQuery, MetadataObjectsQueryVariables>(
|
} = useQuery<ObjectMetadataItemsQuery, ObjectMetadataItemsQueryVariables>(
|
||||||
FIND_MANY_METADATA_OBJECTS,
|
FIND_MANY_METADATA_OBJECTS,
|
||||||
{
|
{
|
||||||
client: apolloMetadataClient ?? undefined,
|
client: apolloMetadataClient ?? undefined,
|
||||||
skip: !apolloMetadataClient,
|
skip: !apolloMetadataClient,
|
||||||
onError: (error) => {
|
onError: (error) => {
|
||||||
logError('useFindManyMetadataObjects error : ' + error);
|
logError('useFindManyObjectMetadataItems error : ' + error);
|
||||||
enqueueSnackBar(
|
enqueueSnackBar(
|
||||||
`Error during useFindManyMetadataObjects, ${error.message}`,
|
`Error during useFindManyObjectMetadataItems, ${error.message}`,
|
||||||
{
|
{
|
||||||
variant: 'error',
|
variant: 'error',
|
||||||
},
|
},
|
||||||
@ -51,14 +51,14 @@ export const useFindManyMetadataObjects = () => {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const metadataObjects = useMemo(() => {
|
const objectMetadataItems = useMemo(() => {
|
||||||
return formatPagedMetadataObjectsToMetadataObjects({
|
return formatPagedObjectMetadataItemsToObjectMetadataItems({
|
||||||
pagedMetadataObjects: data,
|
pagedObjectMetadataItems: data,
|
||||||
});
|
});
|
||||||
}, [data]);
|
}, [data]);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
metadataObjects,
|
objectMetadataItems,
|
||||||
hasMore,
|
hasMore,
|
||||||
fetchMore,
|
fetchMore,
|
||||||
loading,
|
loading,
|
||||||
@ -4,11 +4,11 @@ import { useQuery } from '@apollo/client';
|
|||||||
import { useSnackBar } from '@/ui/feedback/snack-bar/hooks/useSnackBar';
|
import { useSnackBar } from '@/ui/feedback/snack-bar/hooks/useSnackBar';
|
||||||
import { logError } from '~/utils/logError';
|
import { logError } from '~/utils/logError';
|
||||||
|
|
||||||
import { MetadataObjectIdentifier } from '../types/MetadataObjectIdentifier';
|
import { ObjectMetadataItemIdentifier } from '../types/ObjectMetadataItemIdentifier';
|
||||||
import { PaginatedObjectType } from '../types/PaginatedObjectType';
|
import { PaginatedObjectType } from '../types/PaginatedObjectType';
|
||||||
import { formatPagedObjectsToObjects } from '../utils/formatPagedObjectsToObjects';
|
import { formatPagedObjectsToObjects } from '../utils/formatPagedObjectsToObjects';
|
||||||
|
|
||||||
import { useFindOneMetadataObject } from './useFindOneMetadataObject';
|
import { useFindOneObjectMetadataItem } from './useFindOneObjectMetadataItem';
|
||||||
|
|
||||||
// TODO: test with a wrong name
|
// TODO: test with a wrong name
|
||||||
// TODO: add zod to validate that we have at least id on each object
|
// TODO: add zod to validate that we have at least id on each object
|
||||||
@ -19,13 +19,13 @@ export const useFindManyObjects = <
|
|||||||
filter,
|
filter,
|
||||||
orderBy,
|
orderBy,
|
||||||
onCompleted,
|
onCompleted,
|
||||||
}: Pick<MetadataObjectIdentifier, 'objectNamePlural'> & {
|
}: Pick<ObjectMetadataItemIdentifier, 'objectNamePlural'> & {
|
||||||
filter?: any;
|
filter?: any;
|
||||||
orderBy?: any;
|
orderBy?: any;
|
||||||
onCompleted?: (data: any) => void;
|
onCompleted?: (data: any) => void;
|
||||||
}) => {
|
}) => {
|
||||||
const { foundMetadataObject, objectNotFoundInMetadata, findManyQuery } =
|
const { foundObjectMetadataItem, objectNotFoundInMetadata, findManyQuery } =
|
||||||
useFindOneMetadataObject({
|
useFindOneObjectMetadataItem({
|
||||||
objectNamePlural,
|
objectNamePlural,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ export const useFindManyObjects = <
|
|||||||
const { data, loading, error } = useQuery<PaginatedObjectType<ObjectType>>(
|
const { data, loading, error } = useQuery<PaginatedObjectType<ObjectType>>(
|
||||||
findManyQuery,
|
findManyQuery,
|
||||||
{
|
{
|
||||||
skip: !foundMetadataObject,
|
skip: !foundObjectMetadataItem,
|
||||||
variables: {
|
variables: {
|
||||||
filter: filter ?? {},
|
filter: filter ?? {},
|
||||||
orderBy: orderBy ?? {},
|
orderBy: orderBy ?? {},
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
import { useQuery } from '@apollo/client';
|
import { useQuery } from '@apollo/client';
|
||||||
|
|
||||||
import { MetadataObjectIdentifier } from '../types/MetadataObjectIdentifier';
|
import { ObjectMetadataItemIdentifier } from '../types/ObjectMetadataItemIdentifier';
|
||||||
|
|
||||||
import { useFindOneMetadataObject } from './useFindOneMetadataObject';
|
import { useFindOneObjectMetadataItem } from './useFindOneObjectMetadataItem';
|
||||||
|
|
||||||
export const useFindOneObject = <
|
export const useFindOneObject = <
|
||||||
ObjectType extends { id: string } & Record<string, any>,
|
ObjectType extends { id: string } & Record<string, any>,
|
||||||
@ -10,12 +10,12 @@ export const useFindOneObject = <
|
|||||||
objectNameSingular,
|
objectNameSingular,
|
||||||
objectId,
|
objectId,
|
||||||
onCompleted,
|
onCompleted,
|
||||||
}: Pick<MetadataObjectIdentifier, 'objectNameSingular'> & {
|
}: Pick<ObjectMetadataItemIdentifier, 'objectNameSingular'> & {
|
||||||
objectId: string | undefined;
|
objectId: string | undefined;
|
||||||
onCompleted?: (data: ObjectType) => void;
|
onCompleted?: (data: ObjectType) => void;
|
||||||
}) => {
|
}) => {
|
||||||
const { foundMetadataObject, objectNotFoundInMetadata, findOneQuery } =
|
const { foundObjectMetadataItem, objectNotFoundInMetadata, findOneQuery } =
|
||||||
useFindOneMetadataObject({
|
useFindOneObjectMetadataItem({
|
||||||
objectNameSingular,
|
objectNameSingular,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -23,7 +23,7 @@ export const useFindOneObject = <
|
|||||||
{ [nameSingular: string]: ObjectType },
|
{ [nameSingular: string]: ObjectType },
|
||||||
{ objectId: string }
|
{ objectId: string }
|
||||||
>(findOneQuery, {
|
>(findOneQuery, {
|
||||||
skip: !foundMetadataObject || !objectId,
|
skip: !foundObjectMetadataItem || !objectId,
|
||||||
variables: {
|
variables: {
|
||||||
objectId: objectId ?? '',
|
objectId: objectId ?? '',
|
||||||
},
|
},
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import { FilterDefinition } from '@/ui/object/object-filter-dropdown/types/Filte
|
|||||||
import { SortDefinition } from '@/ui/object/object-sort-dropdown/types/SortDefinition';
|
import { SortDefinition } from '@/ui/object/object-sort-dropdown/types/SortDefinition';
|
||||||
import { ColumnDefinition } from '@/ui/object/record-table/types/ColumnDefinition';
|
import { ColumnDefinition } from '@/ui/object/record-table/types/ColumnDefinition';
|
||||||
|
|
||||||
import { MetadataObjectIdentifier } from '../types/MetadataObjectIdentifier';
|
import { ObjectMetadataItemIdentifier } from '../types/ObjectMetadataItemIdentifier';
|
||||||
import { formatMetadataFieldAsColumnDefinition } from '../utils/formatMetadataFieldAsColumnDefinition';
|
import { formatMetadataFieldAsColumnDefinition } from '../utils/formatMetadataFieldAsColumnDefinition';
|
||||||
import { formatMetadataFieldAsFilterDefinition } from '../utils/formatMetadataFieldAsFilterDefinition';
|
import { formatMetadataFieldAsFilterDefinition } from '../utils/formatMetadataFieldAsFilterDefinition';
|
||||||
import { formatMetadataFieldAsSortDefinition } from '../utils/formatMetadataFieldAsSortDefinition';
|
import { formatMetadataFieldAsSortDefinition } from '../utils/formatMetadataFieldAsSortDefinition';
|
||||||
@ -16,15 +16,15 @@ import { generateFindManyCustomObjectsQuery } from '../utils/generateFindManyCus
|
|||||||
import { generateFindOneCustomObjectQuery } from '../utils/generateFindOneCustomObjectQuery';
|
import { generateFindOneCustomObjectQuery } from '../utils/generateFindOneCustomObjectQuery';
|
||||||
import { generateUpdateOneObjectMutation } from '../utils/generateUpdateOneObjectMutation';
|
import { generateUpdateOneObjectMutation } from '../utils/generateUpdateOneObjectMutation';
|
||||||
|
|
||||||
import { useFindManyMetadataObjects } from './useFindManyMetadataObjects';
|
import { useFindManyObjectMetadataItems } from './useFindManyObjectMetadataItems';
|
||||||
|
|
||||||
export const useFindOneMetadataObject = ({
|
export const useFindOneObjectMetadataItem = ({
|
||||||
objectNamePlural,
|
objectNamePlural,
|
||||||
objectNameSingular,
|
objectNameSingular,
|
||||||
}: MetadataObjectIdentifier) => {
|
}: ObjectMetadataItemIdentifier) => {
|
||||||
const { metadataObjects, loading } = useFindManyMetadataObjects();
|
const { objectMetadataItems, loading } = useFindManyObjectMetadataItems();
|
||||||
|
|
||||||
const foundMetadataObject = metadataObjects.find(
|
const foundObjectMetadataItem = objectMetadataItems.find(
|
||||||
(object) =>
|
(object) =>
|
||||||
object.namePlural === objectNamePlural ||
|
object.namePlural === objectNamePlural ||
|
||||||
object.nameSingular === objectNameSingular,
|
object.nameSingular === objectNameSingular,
|
||||||
@ -33,21 +33,21 @@ export const useFindOneMetadataObject = ({
|
|||||||
const { icons } = useLazyLoadIcons();
|
const { icons } = useLazyLoadIcons();
|
||||||
|
|
||||||
const objectNotFoundInMetadata =
|
const objectNotFoundInMetadata =
|
||||||
metadataObjects.length === 0 ||
|
objectMetadataItems.length === 0 ||
|
||||||
(metadataObjects.length > 0 && !foundMetadataObject);
|
(objectMetadataItems.length > 0 && !foundObjectMetadataItem);
|
||||||
|
|
||||||
const columnDefinitions: ColumnDefinition<FieldMetadata>[] =
|
const columnDefinitions: ColumnDefinition<FieldMetadata>[] =
|
||||||
foundMetadataObject?.fields.map((field, index) =>
|
foundObjectMetadataItem?.fields.map((field, index) =>
|
||||||
formatMetadataFieldAsColumnDefinition({
|
formatMetadataFieldAsColumnDefinition({
|
||||||
position: index,
|
position: index,
|
||||||
field,
|
field,
|
||||||
metadataObject: foundMetadataObject,
|
objectMetadataItem: foundObjectMetadataItem,
|
||||||
icons,
|
icons,
|
||||||
}),
|
}),
|
||||||
) ?? [];
|
) ?? [];
|
||||||
|
|
||||||
const filterDefinitions: FilterDefinition[] =
|
const filterDefinitions: FilterDefinition[] =
|
||||||
foundMetadataObject?.fields.map((field) =>
|
foundObjectMetadataItem?.fields.map((field) =>
|
||||||
formatMetadataFieldAsFilterDefinition({
|
formatMetadataFieldAsFilterDefinition({
|
||||||
field,
|
field,
|
||||||
icons,
|
icons,
|
||||||
@ -55,16 +55,16 @@ export const useFindOneMetadataObject = ({
|
|||||||
) ?? [];
|
) ?? [];
|
||||||
|
|
||||||
const sortDefinitions: SortDefinition[] =
|
const sortDefinitions: SortDefinition[] =
|
||||||
foundMetadataObject?.fields.map((field) =>
|
foundObjectMetadataItem?.fields.map((field) =>
|
||||||
formatMetadataFieldAsSortDefinition({
|
formatMetadataFieldAsSortDefinition({
|
||||||
field,
|
field,
|
||||||
icons,
|
icons,
|
||||||
}),
|
}),
|
||||||
) ?? [];
|
) ?? [];
|
||||||
|
|
||||||
const findManyQuery = foundMetadataObject
|
const findManyQuery = foundObjectMetadataItem
|
||||||
? generateFindManyCustomObjectsQuery({
|
? generateFindManyCustomObjectsQuery({
|
||||||
metadataObject: foundMetadataObject,
|
objectMetadataItem: foundObjectMetadataItem,
|
||||||
})
|
})
|
||||||
: gql`
|
: gql`
|
||||||
query EmptyQuery {
|
query EmptyQuery {
|
||||||
@ -72,9 +72,9 @@ export const useFindOneMetadataObject = ({
|
|||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
const findOneQuery = foundMetadataObject
|
const findOneQuery = foundObjectMetadataItem
|
||||||
? generateFindOneCustomObjectQuery({
|
? generateFindOneCustomObjectQuery({
|
||||||
metadataObject: foundMetadataObject,
|
objectMetadataItem: foundObjectMetadataItem,
|
||||||
})
|
})
|
||||||
: gql`
|
: gql`
|
||||||
query EmptyQuery {
|
query EmptyQuery {
|
||||||
@ -82,9 +82,9 @@ export const useFindOneMetadataObject = ({
|
|||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
const createOneMutation = foundMetadataObject
|
const createOneMutation = foundObjectMetadataItem
|
||||||
? generateCreateOneObjectMutation({
|
? generateCreateOneObjectMutation({
|
||||||
metadataObject: foundMetadataObject,
|
objectMetadataItem: foundObjectMetadataItem,
|
||||||
})
|
})
|
||||||
: gql`
|
: gql`
|
||||||
mutation EmptyMutation {
|
mutation EmptyMutation {
|
||||||
@ -92,9 +92,9 @@ export const useFindOneMetadataObject = ({
|
|||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
const updateOneMutation = foundMetadataObject
|
const updateOneMutation = foundObjectMetadataItem
|
||||||
? generateUpdateOneObjectMutation({
|
? generateUpdateOneObjectMutation({
|
||||||
metadataObject: foundMetadataObject,
|
objectMetadataItem: foundObjectMetadataItem,
|
||||||
})
|
})
|
||||||
: gql`
|
: gql`
|
||||||
mutation EmptyMutation {
|
mutation EmptyMutation {
|
||||||
@ -103,9 +103,9 @@ export const useFindOneMetadataObject = ({
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
// TODO: implement backend delete
|
// TODO: implement backend delete
|
||||||
const deleteOneMutation = foundMetadataObject
|
const deleteOneMutation = foundObjectMetadataItem
|
||||||
? generateDeleteOneObjectMutation({
|
? generateDeleteOneObjectMutation({
|
||||||
metadataObject: foundMetadataObject,
|
objectMetadataItem: foundObjectMetadataItem,
|
||||||
})
|
})
|
||||||
: gql`
|
: gql`
|
||||||
mutation EmptyMutation {
|
mutation EmptyMutation {
|
||||||
@ -114,7 +114,7 @@ export const useFindOneMetadataObject = ({
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
foundMetadataObject,
|
foundObjectMetadataItem,
|
||||||
objectNotFoundInMetadata,
|
objectNotFoundInMetadata,
|
||||||
columnDefinitions,
|
columnDefinitions,
|
||||||
filterDefinitions,
|
filterDefinitions,
|
||||||
@ -1,18 +0,0 @@
|
|||||||
import { useAvailableScopeIdOrThrow } from '@/ui/utilities/recoil-scope/scopes-internal/hooks/useAvailableScopeId';
|
|
||||||
|
|
||||||
import { MetadataObjectScopeInternalContext } from '../scopes/scope-internal-context/MetadataObjectScopeInternalContext';
|
|
||||||
|
|
||||||
type UseMetadataObjectProps = {
|
|
||||||
metadataObjectNamePlural?: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export const useMetadataObject = (props?: UseMetadataObjectProps) => {
|
|
||||||
const scopeId = useAvailableScopeIdOrThrow(
|
|
||||||
MetadataObjectScopeInternalContext,
|
|
||||||
props?.metadataObjectNamePlural,
|
|
||||||
);
|
|
||||||
|
|
||||||
return {
|
|
||||||
scopeId,
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@ -1,73 +0,0 @@
|
|||||||
import { MetadataObject } from '../types/MetadataObject';
|
|
||||||
import { formatMetadataObjectInput } from '../utils/formatMetadataObjectInput';
|
|
||||||
import { getObjectSlug } from '../utils/getObjectSlug';
|
|
||||||
|
|
||||||
import { useCreateOneMetadataObject } from './useCreateOneMetadataObject';
|
|
||||||
import { useDeleteOneMetadataObject } from './useDeleteOneMetadataObject';
|
|
||||||
import { useFindManyMetadataObjects } from './useFindManyMetadataObjects';
|
|
||||||
import { useUpdateOneMetadataObject } from './useUpdateOneMetadataObject';
|
|
||||||
|
|
||||||
export const useMetadataObjectForSettings = () => {
|
|
||||||
const { metadataObjects, loading } = useFindManyMetadataObjects();
|
|
||||||
|
|
||||||
const activeMetadataObjects = metadataObjects.filter(
|
|
||||||
({ isActive }) => isActive,
|
|
||||||
);
|
|
||||||
const disabledMetadataObjects = metadataObjects.filter(
|
|
||||||
({ isActive }) => !isActive,
|
|
||||||
);
|
|
||||||
|
|
||||||
const findActiveMetadataObjectBySlug = (slug: string) =>
|
|
||||||
activeMetadataObjects.find(
|
|
||||||
(activeMetadataObject) => getObjectSlug(activeMetadataObject) === slug,
|
|
||||||
);
|
|
||||||
|
|
||||||
const { createOneMetadataObject } = useCreateOneMetadataObject();
|
|
||||||
const { updateOneMetadataObject } = useUpdateOneMetadataObject();
|
|
||||||
const { deleteOneMetadataObject } = useDeleteOneMetadataObject();
|
|
||||||
|
|
||||||
const createMetadataObject = (
|
|
||||||
input: Pick<
|
|
||||||
MetadataObject,
|
|
||||||
'labelPlural' | 'labelSingular' | 'icon' | 'description'
|
|
||||||
>,
|
|
||||||
) => createOneMetadataObject(formatMetadataObjectInput(input));
|
|
||||||
|
|
||||||
const editMetadataObject = (
|
|
||||||
input: Pick<
|
|
||||||
MetadataObject,
|
|
||||||
'id' | 'labelPlural' | 'labelSingular' | 'icon' | 'description'
|
|
||||||
>,
|
|
||||||
) =>
|
|
||||||
updateOneMetadataObject({
|
|
||||||
idToUpdate: input.id,
|
|
||||||
updatePayload: formatMetadataObjectInput(input),
|
|
||||||
});
|
|
||||||
|
|
||||||
const activateMetadataObject = (metadataObject: Pick<MetadataObject, 'id'>) =>
|
|
||||||
updateOneMetadataObject({
|
|
||||||
idToUpdate: metadataObject.id,
|
|
||||||
updatePayload: { isActive: true },
|
|
||||||
});
|
|
||||||
|
|
||||||
const disableMetadataObject = (metadataObject: Pick<MetadataObject, 'id'>) =>
|
|
||||||
updateOneMetadataObject({
|
|
||||||
idToUpdate: metadataObject.id,
|
|
||||||
updatePayload: { isActive: false },
|
|
||||||
});
|
|
||||||
|
|
||||||
const eraseMetadataObject = (metadataObject: Pick<MetadataObject, 'id'>) =>
|
|
||||||
deleteOneMetadataObject(metadataObject.id);
|
|
||||||
|
|
||||||
return {
|
|
||||||
activateMetadataObject,
|
|
||||||
activeMetadataObjects,
|
|
||||||
createMetadataObject,
|
|
||||||
disabledMetadataObjects,
|
|
||||||
disableMetadataObject,
|
|
||||||
editMetadataObject,
|
|
||||||
eraseMetadataObject,
|
|
||||||
findActiveMetadataObjectBySlug,
|
|
||||||
loading,
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@ -1,34 +0,0 @@
|
|||||||
import { useContext } from 'react';
|
|
||||||
|
|
||||||
import { MetadataObjectScopeInternalContext } from '../scopes/scope-internal-context/MetadataObjectScopeInternalContext';
|
|
||||||
|
|
||||||
import { useFindOneMetadataObject } from './useFindOneMetadataObject';
|
|
||||||
|
|
||||||
export const useMetadataObjectInContext = () => {
|
|
||||||
const context = useContext(MetadataObjectScopeInternalContext);
|
|
||||||
|
|
||||||
if (!context) {
|
|
||||||
throw new Error(
|
|
||||||
'Could not find MetadataObjectScopeInternalContext while in useMetadataObjectInContext',
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
const {
|
|
||||||
foundMetadataObject,
|
|
||||||
loading,
|
|
||||||
columnDefinitions,
|
|
||||||
filterDefinitions,
|
|
||||||
sortDefinitions,
|
|
||||||
} = useFindOneMetadataObject({
|
|
||||||
objectNamePlural: context.objectNamePlural,
|
|
||||||
});
|
|
||||||
|
|
||||||
return {
|
|
||||||
...context,
|
|
||||||
foundMetadataObject,
|
|
||||||
loading,
|
|
||||||
columnDefinitions,
|
|
||||||
filterDefinitions,
|
|
||||||
sortDefinitions,
|
|
||||||
};
|
|
||||||
};
|
|
||||||
18
front/src/modules/metadata/hooks/useObjectMetadataItem.ts
Normal file
18
front/src/modules/metadata/hooks/useObjectMetadataItem.ts
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
import { useAvailableScopeIdOrThrow } from '@/ui/utilities/recoil-scope/scopes-internal/hooks/useAvailableScopeId';
|
||||||
|
|
||||||
|
import { ObjectMetadataItemScopeInternalContext } from '../scopes/scope-internal-context/ObjectMetadataItemScopeInternalContext';
|
||||||
|
|
||||||
|
type UseObjectMetadataItemProps = {
|
||||||
|
objectMetadataItemNamePlural?: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const useObjectMetadataItem = (props?: UseObjectMetadataItemProps) => {
|
||||||
|
const scopeId = useAvailableScopeIdOrThrow(
|
||||||
|
ObjectMetadataItemScopeInternalContext,
|
||||||
|
props?.objectMetadataItemNamePlural,
|
||||||
|
);
|
||||||
|
|
||||||
|
return {
|
||||||
|
scopeId,
|
||||||
|
};
|
||||||
|
};
|
||||||
@ -0,0 +1,79 @@
|
|||||||
|
import { ObjectMetadataItem } from '../types/ObjectMetadataItem';
|
||||||
|
import { formatObjectMetadataItemInput } from '../utils/formatObjectMetadataItemInput';
|
||||||
|
import { getObjectSlug } from '../utils/getObjectSlug';
|
||||||
|
|
||||||
|
import { useCreateOneObjectMetadataItem } from './useCreateOneObjectMetadataItem';
|
||||||
|
import { useDeleteOneObjectMetadataItem } from './useDeleteOneObjectMetadataItem';
|
||||||
|
import { useFindManyObjectMetadataItems } from './useFindManyObjectMetadataItems';
|
||||||
|
import { useUpdateOneObjectMetadataItem } from './useUpdateOneObjectMetadataItem';
|
||||||
|
|
||||||
|
export const useObjectMetadataItemForSettings = () => {
|
||||||
|
const { objectMetadataItems, loading } = useFindManyObjectMetadataItems();
|
||||||
|
|
||||||
|
const activeObjectMetadataItems = objectMetadataItems.filter(
|
||||||
|
({ isActive }) => isActive,
|
||||||
|
);
|
||||||
|
const disabledObjectMetadataItems = objectMetadataItems.filter(
|
||||||
|
({ isActive }) => !isActive,
|
||||||
|
);
|
||||||
|
|
||||||
|
const findActiveObjectMetadataItemBySlug = (slug: string) =>
|
||||||
|
activeObjectMetadataItems.find(
|
||||||
|
(activeObjectMetadataItem) =>
|
||||||
|
getObjectSlug(activeObjectMetadataItem) === slug,
|
||||||
|
);
|
||||||
|
|
||||||
|
const { createOneObjectMetadataItem } = useCreateOneObjectMetadataItem();
|
||||||
|
const { updateOneObjectMetadataItem } = useUpdateOneObjectMetadataItem();
|
||||||
|
const { deleteOneObjectMetadataItem } = useDeleteOneObjectMetadataItem();
|
||||||
|
|
||||||
|
const createObjectMetadataItem = (
|
||||||
|
input: Pick<
|
||||||
|
ObjectMetadataItem,
|
||||||
|
'labelPlural' | 'labelSingular' | 'icon' | 'description'
|
||||||
|
>,
|
||||||
|
) => createOneObjectMetadataItem(formatObjectMetadataItemInput(input));
|
||||||
|
|
||||||
|
const editObjectMetadataItem = (
|
||||||
|
input: Pick<
|
||||||
|
ObjectMetadataItem,
|
||||||
|
'id' | 'labelPlural' | 'labelSingular' | 'icon' | 'description'
|
||||||
|
>,
|
||||||
|
) =>
|
||||||
|
updateOneObjectMetadataItem({
|
||||||
|
idToUpdate: input.id,
|
||||||
|
updatePayload: formatObjectMetadataItemInput(input),
|
||||||
|
});
|
||||||
|
|
||||||
|
const activateObjectMetadataItem = (
|
||||||
|
objectMetadataItem: Pick<ObjectMetadataItem, 'id'>,
|
||||||
|
) =>
|
||||||
|
updateOneObjectMetadataItem({
|
||||||
|
idToUpdate: objectMetadataItem.id,
|
||||||
|
updatePayload: { isActive: true },
|
||||||
|
});
|
||||||
|
|
||||||
|
const disableObjectMetadataItem = (
|
||||||
|
objectMetadataItem: Pick<ObjectMetadataItem, 'id'>,
|
||||||
|
) =>
|
||||||
|
updateOneObjectMetadataItem({
|
||||||
|
idToUpdate: objectMetadataItem.id,
|
||||||
|
updatePayload: { isActive: false },
|
||||||
|
});
|
||||||
|
|
||||||
|
const eraseObjectMetadataItem = (
|
||||||
|
objectMetadataItem: Pick<ObjectMetadataItem, 'id'>,
|
||||||
|
) => deleteOneObjectMetadataItem(objectMetadataItem.id);
|
||||||
|
|
||||||
|
return {
|
||||||
|
activateObjectMetadataItem,
|
||||||
|
activeObjectMetadataItems,
|
||||||
|
createObjectMetadataItem,
|
||||||
|
disabledObjectMetadataItems,
|
||||||
|
disableObjectMetadataItem,
|
||||||
|
editObjectMetadataItem,
|
||||||
|
eraseObjectMetadataItem,
|
||||||
|
findActiveObjectMetadataItemBySlug,
|
||||||
|
loading,
|
||||||
|
};
|
||||||
|
};
|
||||||
@ -0,0 +1,34 @@
|
|||||||
|
import { useContext } from 'react';
|
||||||
|
|
||||||
|
import { ObjectMetadataItemScopeInternalContext } from '../scopes/scope-internal-context/ObjectMetadataItemScopeInternalContext';
|
||||||
|
|
||||||
|
import { useFindOneObjectMetadataItem } from './useFindOneObjectMetadataItem';
|
||||||
|
|
||||||
|
export const useObjectMetadataItemInContext = () => {
|
||||||
|
const context = useContext(ObjectMetadataItemScopeInternalContext);
|
||||||
|
|
||||||
|
if (!context) {
|
||||||
|
throw new Error(
|
||||||
|
'Could not find ObjectMetadataItemScopeInternalContext while in useObjectMetadataItemInContext',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const {
|
||||||
|
foundObjectMetadataItem,
|
||||||
|
loading,
|
||||||
|
columnDefinitions,
|
||||||
|
filterDefinitions,
|
||||||
|
sortDefinitions,
|
||||||
|
} = useFindOneObjectMetadataItem({
|
||||||
|
objectNamePlural: context.objectNamePlural,
|
||||||
|
});
|
||||||
|
|
||||||
|
return {
|
||||||
|
...context,
|
||||||
|
foundObjectMetadataItem,
|
||||||
|
loading,
|
||||||
|
columnDefinitions,
|
||||||
|
filterDefinitions,
|
||||||
|
sortDefinitions,
|
||||||
|
};
|
||||||
|
};
|
||||||
@ -1,15 +1,15 @@
|
|||||||
import { isNonEmptyArray } from '~/utils/isNonEmptyArray';
|
import { isNonEmptyArray } from '~/utils/isNonEmptyArray';
|
||||||
|
|
||||||
import { useCreateOneMetadataField } from './useCreateOneMetadataField';
|
import { useCreateOneMetadataField } from './useCreateOneMetadataField';
|
||||||
import { useCreateOneMetadataObject } from './useCreateOneMetadataObject';
|
import { useCreateOneObjectMetadataItem } from './useCreateOneObjectMetadataItem';
|
||||||
|
|
||||||
export const useSeedCustomObjectsTemp = () => {
|
export const useSeedCustomObjectsTemp = () => {
|
||||||
const { createOneMetadataObject } = useCreateOneMetadataObject();
|
const { createOneObjectMetadataItem } = useCreateOneObjectMetadataItem();
|
||||||
const { createOneMetadataField } = useCreateOneMetadataField();
|
const { createOneMetadataField } = useCreateOneMetadataField();
|
||||||
|
|
||||||
return async () => {
|
return async () => {
|
||||||
const { data: createdMetadataObject, errors } =
|
const { data: createdObjectMetadataItem, errors } =
|
||||||
await createOneMetadataObject({
|
await createOneObjectMetadataItem({
|
||||||
labelPlural: 'Suppliers',
|
labelPlural: 'Suppliers',
|
||||||
labelSingular: 'Supplier',
|
labelSingular: 'Supplier',
|
||||||
nameSingular: 'supplier',
|
nameSingular: 'supplier',
|
||||||
@ -19,7 +19,8 @@ export const useSeedCustomObjectsTemp = () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (!isNonEmptyArray(errors)) {
|
if (!isNonEmptyArray(errors)) {
|
||||||
const supplierObjectId = createdMetadataObject?.createOneObject?.id ?? '';
|
const supplierObjectId =
|
||||||
|
createdObjectMetadataItem?.createOneObject?.id ?? '';
|
||||||
|
|
||||||
await createOneMetadataField({
|
await createOneMetadataField({
|
||||||
objectId: supplierObjectId,
|
objectId: supplierObjectId,
|
||||||
|
|||||||
@ -1,20 +1,20 @@
|
|||||||
import { useMutation } from '@apollo/client';
|
import { useMutation } from '@apollo/client';
|
||||||
import { getOperationName } from '@apollo/client/utilities';
|
import { getOperationName } from '@apollo/client/utilities';
|
||||||
|
|
||||||
import { MetadataObjectIdentifier } from '../types/MetadataObjectIdentifier';
|
import { ObjectMetadataItemIdentifier } from '../types/ObjectMetadataItemIdentifier';
|
||||||
|
|
||||||
import { useFindOneMetadataObject } from './useFindOneMetadataObject';
|
import { useFindOneObjectMetadataItem } from './useFindOneObjectMetadataItem';
|
||||||
|
|
||||||
export const useUpdateOneObject = ({
|
export const useUpdateOneObject = ({
|
||||||
objectNamePlural,
|
objectNamePlural,
|
||||||
objectNameSingular,
|
objectNameSingular,
|
||||||
}: MetadataObjectIdentifier) => {
|
}: ObjectMetadataItemIdentifier) => {
|
||||||
const {
|
const {
|
||||||
foundMetadataObject,
|
foundObjectMetadataItem,
|
||||||
objectNotFoundInMetadata,
|
objectNotFoundInMetadata,
|
||||||
findManyQuery,
|
findManyQuery,
|
||||||
updateOneMutation,
|
updateOneMutation,
|
||||||
} = useFindOneMetadataObject({
|
} = useFindOneObjectMetadataItem({
|
||||||
objectNamePlural,
|
objectNamePlural,
|
||||||
objectNameSingular,
|
objectNameSingular,
|
||||||
});
|
});
|
||||||
@ -24,7 +24,7 @@ export const useUpdateOneObject = ({
|
|||||||
refetchQueries: [getOperationName(findManyQuery) ?? ''],
|
refetchQueries: [getOperationName(findManyQuery) ?? ''],
|
||||||
});
|
});
|
||||||
|
|
||||||
const updateOneObject = foundMetadataObject
|
const updateOneObject = foundObjectMetadataItem
|
||||||
? ({
|
? ({
|
||||||
idToUpdate,
|
idToUpdate,
|
||||||
input,
|
input,
|
||||||
|
|||||||
@ -2,8 +2,8 @@ import { useMutation } from '@apollo/client';
|
|||||||
import { getOperationName } from '@apollo/client/utilities';
|
import { getOperationName } from '@apollo/client/utilities';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
UpdateOneMetadataObjectMutation,
|
UpdateOneObjectMetadataItemMutation,
|
||||||
UpdateOneMetadataObjectMutationVariables,
|
UpdateOneObjectMetadataItemMutationVariables,
|
||||||
} from '~/generated-metadata/graphql';
|
} from '~/generated-metadata/graphql';
|
||||||
|
|
||||||
import { UPDATE_ONE_METADATA_OBJECT } from '../graphql/mutations';
|
import { UPDATE_ONE_METADATA_OBJECT } from '../graphql/mutations';
|
||||||
@ -12,23 +12,23 @@ import { FIND_MANY_METADATA_OBJECTS } from '../graphql/queries';
|
|||||||
import { useApolloMetadataClient } from './useApolloMetadataClient';
|
import { useApolloMetadataClient } from './useApolloMetadataClient';
|
||||||
|
|
||||||
// TODO: Slice the Apollo store synchronously in the update function instead of subscribing, so we can use update after read in the same function call
|
// TODO: Slice the Apollo store synchronously in the update function instead of subscribing, so we can use update after read in the same function call
|
||||||
export const useUpdateOneMetadataObject = () => {
|
export const useUpdateOneObjectMetadataItem = () => {
|
||||||
const apolloClientMetadata = useApolloMetadataClient();
|
const apolloClientMetadata = useApolloMetadataClient();
|
||||||
|
|
||||||
const [mutate] = useMutation<
|
const [mutate] = useMutation<
|
||||||
UpdateOneMetadataObjectMutation,
|
UpdateOneObjectMetadataItemMutation,
|
||||||
UpdateOneMetadataObjectMutationVariables
|
UpdateOneObjectMetadataItemMutationVariables
|
||||||
>(UPDATE_ONE_METADATA_OBJECT, {
|
>(UPDATE_ONE_METADATA_OBJECT, {
|
||||||
client: apolloClientMetadata ?? undefined,
|
client: apolloClientMetadata ?? undefined,
|
||||||
});
|
});
|
||||||
|
|
||||||
const updateOneMetadataObject = async ({
|
const updateOneObjectMetadataItem = async ({
|
||||||
idToUpdate,
|
idToUpdate,
|
||||||
updatePayload,
|
updatePayload,
|
||||||
}: {
|
}: {
|
||||||
idToUpdate: UpdateOneMetadataObjectMutationVariables['idToUpdate'];
|
idToUpdate: UpdateOneObjectMetadataItemMutationVariables['idToUpdate'];
|
||||||
updatePayload: Pick<
|
updatePayload: Pick<
|
||||||
UpdateOneMetadataObjectMutationVariables['updatePayload'],
|
UpdateOneObjectMetadataItemMutationVariables['updatePayload'],
|
||||||
| 'description'
|
| 'description'
|
||||||
| 'icon'
|
| 'icon'
|
||||||
| 'isActive'
|
| 'isActive'
|
||||||
@ -49,6 +49,6 @@ export const useUpdateOneMetadataObject = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
updateOneMetadataObject,
|
updateOneObjectMetadataItem,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -1,24 +0,0 @@
|
|||||||
import { ReactNode } from 'react';
|
|
||||||
|
|
||||||
import { MetadataObjectScopeInternalContext } from './scope-internal-context/MetadataObjectScopeInternalContext';
|
|
||||||
|
|
||||||
type MetadataObjectScopeProps = {
|
|
||||||
children: ReactNode;
|
|
||||||
metadataObjectNamePlural: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export const MetadataObjectScope = ({
|
|
||||||
children,
|
|
||||||
metadataObjectNamePlural,
|
|
||||||
}: MetadataObjectScopeProps) => {
|
|
||||||
return (
|
|
||||||
<MetadataObjectScopeInternalContext.Provider
|
|
||||||
value={{
|
|
||||||
scopeId: metadataObjectNamePlural,
|
|
||||||
objectNamePlural: metadataObjectNamePlural,
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
{children}
|
|
||||||
</MetadataObjectScopeInternalContext.Provider>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
import { ReactNode } from 'react';
|
||||||
|
|
||||||
|
import { ObjectMetadataItemScopeInternalContext } from './scope-internal-context/ObjectMetadataItemScopeInternalContext';
|
||||||
|
|
||||||
|
type ObjectMetadataItemScopeProps = {
|
||||||
|
children: ReactNode;
|
||||||
|
objectMetadataItemNamePlural: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const ObjectMetadataItemScope = ({
|
||||||
|
children,
|
||||||
|
objectMetadataItemNamePlural,
|
||||||
|
}: ObjectMetadataItemScopeProps) => {
|
||||||
|
return (
|
||||||
|
<ObjectMetadataItemScopeInternalContext.Provider
|
||||||
|
value={{
|
||||||
|
scopeId: objectMetadataItemNamePlural,
|
||||||
|
objectNamePlural: objectMetadataItemNamePlural,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{children}
|
||||||
|
</ObjectMetadataItemScopeInternalContext.Provider>
|
||||||
|
);
|
||||||
|
};
|
||||||
@ -1,9 +1,9 @@
|
|||||||
import { ScopedStateKey } from '@/ui/utilities/recoil-scope/scopes-internal/types/ScopedStateKey';
|
import { ScopedStateKey } from '@/ui/utilities/recoil-scope/scopes-internal/types/ScopedStateKey';
|
||||||
import { createScopeInternalContext } from '@/ui/utilities/recoil-scope/scopes-internal/utils/createScopeInternalContext';
|
import { createScopeInternalContext } from '@/ui/utilities/recoil-scope/scopes-internal/utils/createScopeInternalContext';
|
||||||
|
|
||||||
type MetadataObjectScopeInternalContextProps = ScopedStateKey & {
|
type ObjectMetadataItemScopeInternalContextProps = ScopedStateKey & {
|
||||||
objectNamePlural: string;
|
objectNamePlural: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const MetadataObjectScopeInternalContext =
|
export const ObjectMetadataItemScopeInternalContext =
|
||||||
createScopeInternalContext<MetadataObjectScopeInternalContextProps>();
|
createScopeInternalContext<ObjectMetadataItemScopeInternalContextProps>();
|
||||||
@ -1,11 +0,0 @@
|
|||||||
import { atom } from 'recoil';
|
|
||||||
|
|
||||||
import { MetadataObject } from '../types/MetadataObject';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @deprecated Use `useFindManyMetadataObjects` instead.
|
|
||||||
*/
|
|
||||||
export const metadataObjectsState = atom<MetadataObject[]>({
|
|
||||||
key: 'metadataObjectsState',
|
|
||||||
default: [],
|
|
||||||
});
|
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
import { atom } from 'recoil';
|
||||||
|
|
||||||
|
import { ObjectMetadataItem } from '../types/ObjectMetadataItem';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated Use `useFindManyObjectMetadataItems` instead.
|
||||||
|
*/
|
||||||
|
export const objectMetadataItemsState = atom<ObjectMetadataItem[]>({
|
||||||
|
key: 'objectMetadataItemsState',
|
||||||
|
default: [],
|
||||||
|
});
|
||||||
@ -1,10 +0,0 @@
|
|||||||
import { selector } from 'recoil';
|
|
||||||
|
|
||||||
import { MetadataObject } from '../../types/MetadataObject';
|
|
||||||
import { metadataObjectsState } from '../metadataObjectsState';
|
|
||||||
|
|
||||||
export const activeMetadataObjectsSelector = selector<MetadataObject[]>({
|
|
||||||
key: 'activeMetadataObjectsSelector',
|
|
||||||
get: ({ get }) =>
|
|
||||||
get(metadataObjectsState).filter(({ isActive }) => isActive),
|
|
||||||
});
|
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
import { selector } from 'recoil';
|
||||||
|
|
||||||
|
import { ObjectMetadataItem } from '../../types/ObjectMetadataItem';
|
||||||
|
import { objectMetadataItemsState } from '../objectMetadataItemsState';
|
||||||
|
|
||||||
|
export const activeObjectMetadataItemsSelector = selector<ObjectMetadataItem[]>(
|
||||||
|
{
|
||||||
|
key: 'activeObjectMetadataItemsSelector',
|
||||||
|
get: ({ get }) =>
|
||||||
|
get(objectMetadataItemsState).filter(({ isActive }) => isActive),
|
||||||
|
},
|
||||||
|
);
|
||||||
@ -1,10 +0,0 @@
|
|||||||
import { selector } from 'recoil';
|
|
||||||
|
|
||||||
import { MetadataObject } from '../../types/MetadataObject';
|
|
||||||
import { metadataObjectsState } from '../metadataObjectsState';
|
|
||||||
|
|
||||||
export const disabledMetadataObjectsSelector = selector<MetadataObject[]>({
|
|
||||||
key: 'disabledMetadataObjectsSelector',
|
|
||||||
get: ({ get }) =>
|
|
||||||
get(metadataObjectsState).filter(({ isActive }) => !isActive),
|
|
||||||
});
|
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
import { selector } from 'recoil';
|
||||||
|
|
||||||
|
import { ObjectMetadataItem } from '../../types/ObjectMetadataItem';
|
||||||
|
import { objectMetadataItemsState } from '../objectMetadataItemsState';
|
||||||
|
|
||||||
|
export const disabledObjectMetadataItemsSelector = selector<
|
||||||
|
ObjectMetadataItem[]
|
||||||
|
>({
|
||||||
|
key: 'disabledObjectMetadataItemsSelector',
|
||||||
|
get: ({ get }) =>
|
||||||
|
get(objectMetadataItemsState).filter(({ isActive }) => !isActive),
|
||||||
|
});
|
||||||
@ -1,6 +1,6 @@
|
|||||||
import { Field, Object as GeneratedObject } from '~/generated-metadata/graphql';
|
import { Field, Object as GeneratedObject } from '~/generated-metadata/graphql';
|
||||||
|
|
||||||
export type MetadataObject = Omit<
|
export type ObjectMetadataItem = Omit<
|
||||||
GeneratedObject,
|
GeneratedObject,
|
||||||
'fields' | 'dataSourceId'
|
'fields' | 'dataSourceId'
|
||||||
> & {
|
> & {
|
||||||
@ -1,4 +1,4 @@
|
|||||||
export type MetadataObjectIdentifier = {
|
export type ObjectMetadataItemIdentifier = {
|
||||||
objectNamePlural?: string;
|
objectNamePlural?: string;
|
||||||
objectNameSingular?: string;
|
objectNameSingular?: string;
|
||||||
};
|
};
|
||||||
@ -1,19 +1,19 @@
|
|||||||
import { FieldMetadata } from '@/ui/object/field/types/FieldMetadata';
|
import { FieldMetadata } from '@/ui/object/field/types/FieldMetadata';
|
||||||
import { ColumnDefinition } from '@/ui/object/record-table/types/ColumnDefinition';
|
import { ColumnDefinition } from '@/ui/object/record-table/types/ColumnDefinition';
|
||||||
|
|
||||||
import { MetadataObject } from '../types/MetadataObject';
|
import { ObjectMetadataItem } from '../types/ObjectMetadataItem';
|
||||||
|
|
||||||
import { parseFieldType } from './parseFieldType';
|
import { parseFieldType } from './parseFieldType';
|
||||||
|
|
||||||
export const formatMetadataFieldAsColumnDefinition = ({
|
export const formatMetadataFieldAsColumnDefinition = ({
|
||||||
position,
|
position,
|
||||||
field,
|
field,
|
||||||
metadataObject,
|
objectMetadataItem,
|
||||||
icons,
|
icons,
|
||||||
}: {
|
}: {
|
||||||
position: number;
|
position: number;
|
||||||
field: MetadataObject['fields'][0];
|
field: ObjectMetadataItem['fields'][0];
|
||||||
metadataObject: Omit<MetadataObject, 'fields'>;
|
objectMetadataItem: Omit<ObjectMetadataItem, 'fields'>;
|
||||||
icons: Record<string, any>;
|
icons: Record<string, any>;
|
||||||
}): ColumnDefinition<FieldMetadata> => ({
|
}): ColumnDefinition<FieldMetadata> => ({
|
||||||
position,
|
position,
|
||||||
@ -27,5 +27,5 @@ export const formatMetadataFieldAsColumnDefinition = ({
|
|||||||
},
|
},
|
||||||
Icon: icons[field.icon ?? 'Icon123'],
|
Icon: icons[field.icon ?? 'Icon123'],
|
||||||
isVisible: true,
|
isVisible: true,
|
||||||
basePathToShowPage: `/object/${metadataObject.nameSingular}/`,
|
basePathToShowPage: `/object/${objectMetadataItem.nameSingular}/`,
|
||||||
});
|
});
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
import { FilterDefinition } from '@/ui/object/object-filter-dropdown/types/FilterDefinition';
|
import { FilterDefinition } from '@/ui/object/object-filter-dropdown/types/FilterDefinition';
|
||||||
|
|
||||||
import { MetadataObject } from '../types/MetadataObject';
|
import { ObjectMetadataItem } from '../types/ObjectMetadataItem';
|
||||||
|
|
||||||
export const formatMetadataFieldAsFilterDefinition = ({
|
export const formatMetadataFieldAsFilterDefinition = ({
|
||||||
field,
|
field,
|
||||||
icons,
|
icons,
|
||||||
}: {
|
}: {
|
||||||
field: MetadataObject['fields'][0];
|
field: ObjectMetadataItem['fields'][0];
|
||||||
icons: Record<string, any>;
|
icons: Record<string, any>;
|
||||||
}): FilterDefinition => ({
|
}): FilterDefinition => ({
|
||||||
fieldId: field.id,
|
fieldId: field.id,
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
import { SortDefinition } from '@/ui/object/object-sort-dropdown/types/SortDefinition';
|
import { SortDefinition } from '@/ui/object/object-sort-dropdown/types/SortDefinition';
|
||||||
|
|
||||||
import { MetadataObject } from '../types/MetadataObject';
|
import { ObjectMetadataItem } from '../types/ObjectMetadataItem';
|
||||||
|
|
||||||
export const formatMetadataFieldAsSortDefinition = ({
|
export const formatMetadataFieldAsSortDefinition = ({
|
||||||
field,
|
field,
|
||||||
icons,
|
icons,
|
||||||
}: {
|
}: {
|
||||||
field: MetadataObject['fields'][0];
|
field: ObjectMetadataItem['fields'][0];
|
||||||
icons: Record<string, any>;
|
icons: Record<string, any>;
|
||||||
}): SortDefinition => ({
|
}): SortDefinition => ({
|
||||||
fieldId: field.id,
|
fieldId: field.id,
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
import toCamelCase from 'lodash.camelcase';
|
import toCamelCase from 'lodash.camelcase';
|
||||||
|
|
||||||
import { MetadataObject } from '../types/MetadataObject';
|
import { ObjectMetadataItem } from '../types/ObjectMetadataItem';
|
||||||
|
|
||||||
export const formatMetadataObjectInput = (
|
export const formatObjectMetadataItemInput = (
|
||||||
input: Pick<
|
input: Pick<
|
||||||
MetadataObject,
|
ObjectMetadataItem,
|
||||||
'labelPlural' | 'labelSingular' | 'icon' | 'description'
|
'labelPlural' | 'labelSingular' | 'icon' | 'description'
|
||||||
>,
|
>,
|
||||||
) => ({
|
) => ({
|
||||||
@ -1,17 +0,0 @@
|
|||||||
import { MetadataObjectsQuery } from '~/generated-metadata/graphql';
|
|
||||||
|
|
||||||
import { MetadataObject } from '../types/MetadataObject';
|
|
||||||
|
|
||||||
export const formatPagedMetadataObjectsToMetadataObjects = ({
|
|
||||||
pagedMetadataObjects: pagedMetadataObjects,
|
|
||||||
}: {
|
|
||||||
pagedMetadataObjects: MetadataObjectsQuery | undefined;
|
|
||||||
}) => {
|
|
||||||
const formattedObjects: MetadataObject[] =
|
|
||||||
pagedMetadataObjects?.objects.edges.map((object) => ({
|
|
||||||
...object.node,
|
|
||||||
fields: object.node.fields.edges.map((field) => field.node),
|
|
||||||
})) ?? [];
|
|
||||||
|
|
||||||
return formattedObjects;
|
|
||||||
};
|
|
||||||
@ -0,0 +1,17 @@
|
|||||||
|
import { ObjectMetadataItemsQuery } from '~/generated-metadata/graphql';
|
||||||
|
|
||||||
|
import { ObjectMetadataItem } from '../types/ObjectMetadataItem';
|
||||||
|
|
||||||
|
export const formatPagedObjectMetadataItemsToObjectMetadataItems = ({
|
||||||
|
pagedObjectMetadataItems: pagedObjectMetadataItems,
|
||||||
|
}: {
|
||||||
|
pagedObjectMetadataItems: ObjectMetadataItemsQuery | undefined;
|
||||||
|
}) => {
|
||||||
|
const formattedObjects: ObjectMetadataItem[] =
|
||||||
|
pagedObjectMetadataItems?.objects.edges.map((object) => ({
|
||||||
|
...object.node,
|
||||||
|
fields: object.node.fields.edges.map((field) => field.node),
|
||||||
|
})) ?? [];
|
||||||
|
|
||||||
|
return formattedObjects;
|
||||||
|
};
|
||||||
@ -2,14 +2,14 @@ import { gql } from '@apollo/client';
|
|||||||
|
|
||||||
import { capitalize } from '~/utils/string/capitalize';
|
import { capitalize } from '~/utils/string/capitalize';
|
||||||
|
|
||||||
import { MetadataObject } from '../types/MetadataObject';
|
import { ObjectMetadataItem } from '../types/ObjectMetadataItem';
|
||||||
|
|
||||||
export const generateCreateOneObjectMutation = ({
|
export const generateCreateOneObjectMutation = ({
|
||||||
metadataObject,
|
objectMetadataItem,
|
||||||
}: {
|
}: {
|
||||||
metadataObject: MetadataObject;
|
objectMetadataItem: ObjectMetadataItem;
|
||||||
}) => {
|
}) => {
|
||||||
const capitalizedObjectName = capitalize(metadataObject.nameSingular);
|
const capitalizedObjectName = capitalize(objectMetadataItem.nameSingular);
|
||||||
|
|
||||||
return gql`
|
return gql`
|
||||||
mutation CreateOne${capitalizedObjectName}($input: ${capitalizedObjectName}CreateInput!) {
|
mutation CreateOne${capitalizedObjectName}($input: ${capitalizedObjectName}CreateInput!) {
|
||||||
|
|||||||
@ -2,15 +2,15 @@ import { gql } from '@apollo/client';
|
|||||||
|
|
||||||
import { capitalize } from '~/utils/string/capitalize';
|
import { capitalize } from '~/utils/string/capitalize';
|
||||||
|
|
||||||
import { MetadataObject } from '../types/MetadataObject';
|
import { ObjectMetadataItem } from '../types/ObjectMetadataItem';
|
||||||
|
|
||||||
// TODO: implement
|
// TODO: implement
|
||||||
export const generateDeleteOneObjectMutation = ({
|
export const generateDeleteOneObjectMutation = ({
|
||||||
metadataObject,
|
objectMetadataItem,
|
||||||
}: {
|
}: {
|
||||||
metadataObject: MetadataObject;
|
objectMetadataItem: ObjectMetadataItem;
|
||||||
}) => {
|
}) => {
|
||||||
const capitalizedObjectName = capitalize(metadataObject.nameSingular);
|
const capitalizedObjectName = capitalize(objectMetadataItem.nameSingular);
|
||||||
|
|
||||||
return gql`
|
return gql`
|
||||||
mutation DeleteOne${capitalizedObjectName}($input: ${capitalizedObjectName}DeleteInput!) {
|
mutation DeleteOne${capitalizedObjectName}($input: ${capitalizedObjectName}DeleteInput!) {
|
||||||
|
|||||||
@ -2,26 +2,28 @@ import { gql } from '@apollo/client';
|
|||||||
|
|
||||||
import { capitalize } from '~/utils/string/capitalize';
|
import { capitalize } from '~/utils/string/capitalize';
|
||||||
|
|
||||||
import { MetadataObject } from '../types/MetadataObject';
|
import { ObjectMetadataItem } from '../types/ObjectMetadataItem';
|
||||||
|
|
||||||
import { mapFieldMetadataToGraphQLQuery } from './mapFieldMetadataToGraphQLQuery';
|
import { mapFieldMetadataToGraphQLQuery } from './mapFieldMetadataToGraphQLQuery';
|
||||||
|
|
||||||
export const generateFindManyCustomObjectsQuery = ({
|
export const generateFindManyCustomObjectsQuery = ({
|
||||||
metadataObject,
|
objectMetadataItem,
|
||||||
_fromCursor,
|
_fromCursor,
|
||||||
}: {
|
}: {
|
||||||
metadataObject: MetadataObject;
|
objectMetadataItem: ObjectMetadataItem;
|
||||||
_fromCursor?: string;
|
_fromCursor?: string;
|
||||||
}) => {
|
}) => {
|
||||||
return gql`
|
return gql`
|
||||||
query FindMany${metadataObject.namePlural}($filter: ${capitalize(
|
query FindMany${objectMetadataItem.namePlural}($filter: ${capitalize(
|
||||||
metadataObject.nameSingular,
|
objectMetadataItem.nameSingular,
|
||||||
)}FilterInput, $orderBy: ${capitalize(metadataObject.nameSingular)}OrderBy) {
|
)}FilterInput, $orderBy: ${capitalize(
|
||||||
${metadataObject.namePlural}(filter: $filter, orderBy: $orderBy){
|
objectMetadataItem.nameSingular,
|
||||||
|
)}OrderBy) {
|
||||||
|
${objectMetadataItem.namePlural}(filter: $filter, orderBy: $orderBy){
|
||||||
edges {
|
edges {
|
||||||
node {
|
node {
|
||||||
id
|
id
|
||||||
${metadataObject.fields
|
${objectMetadataItem.fields
|
||||||
.map(mapFieldMetadataToGraphQLQuery)
|
.map(mapFieldMetadataToGraphQLQuery)
|
||||||
.join('\n')}
|
.join('\n')}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,23 +1,25 @@
|
|||||||
import { gql } from '@apollo/client';
|
import { gql } from '@apollo/client';
|
||||||
|
|
||||||
import { MetadataObject } from '../types/MetadataObject';
|
import { ObjectMetadataItem } from '../types/ObjectMetadataItem';
|
||||||
|
|
||||||
import { mapFieldMetadataToGraphQLQuery } from './mapFieldMetadataToGraphQLQuery';
|
import { mapFieldMetadataToGraphQLQuery } from './mapFieldMetadataToGraphQLQuery';
|
||||||
|
|
||||||
export const generateFindOneCustomObjectQuery = ({
|
export const generateFindOneCustomObjectQuery = ({
|
||||||
metadataObject,
|
objectMetadataItem,
|
||||||
}: {
|
}: {
|
||||||
metadataObject: MetadataObject;
|
objectMetadataItem: ObjectMetadataItem;
|
||||||
}) => {
|
}) => {
|
||||||
return gql`
|
return gql`
|
||||||
query FindOne${metadataObject.nameSingular}($objectId: UUID!) {
|
query FindOne${objectMetadataItem.nameSingular}($objectId: UUID!) {
|
||||||
${metadataObject.nameSingular}(filter: {
|
${objectMetadataItem.nameSingular}(filter: {
|
||||||
id: {
|
id: {
|
||||||
eq: $objectId
|
eq: $objectId
|
||||||
}
|
}
|
||||||
}){
|
}){
|
||||||
id
|
id
|
||||||
${metadataObject.fields.map(mapFieldMetadataToGraphQLQuery).join('\n')}
|
${objectMetadataItem.fields
|
||||||
|
.map(mapFieldMetadataToGraphQLQuery)
|
||||||
|
.join('\n')}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|||||||
@ -2,14 +2,14 @@ import { gql } from '@apollo/client';
|
|||||||
|
|
||||||
import { capitalize } from '~/utils/string/capitalize';
|
import { capitalize } from '~/utils/string/capitalize';
|
||||||
|
|
||||||
import { MetadataObject } from '../types/MetadataObject';
|
import { ObjectMetadataItem } from '../types/ObjectMetadataItem';
|
||||||
|
|
||||||
export const generateUpdateOneObjectMutation = ({
|
export const generateUpdateOneObjectMutation = ({
|
||||||
metadataObject,
|
objectMetadataItem,
|
||||||
}: {
|
}: {
|
||||||
metadataObject: MetadataObject;
|
objectMetadataItem: ObjectMetadataItem;
|
||||||
}) => {
|
}) => {
|
||||||
const capitalizedObjectName = capitalize(metadataObject.nameSingular);
|
const capitalizedObjectName = capitalize(objectMetadataItem.nameSingular);
|
||||||
|
|
||||||
return gql`
|
return gql`
|
||||||
mutation UpdateOne${capitalizedObjectName}($idToUpdate: ID!, $input: ${capitalizedObjectName}UpdateInput!) {
|
mutation UpdateOne${capitalizedObjectName}($idToUpdate: ID!, $input: ${capitalizedObjectName}UpdateInput!) {
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import toKebabCase from 'lodash.kebabcase';
|
import toKebabCase from 'lodash.kebabcase';
|
||||||
|
|
||||||
import { MetadataObject } from '../types/MetadataObject';
|
import { ObjectMetadataItem } from '../types/ObjectMetadataItem';
|
||||||
|
|
||||||
export const getObjectSlug = (
|
export const getObjectSlug = (
|
||||||
metadataObject: Pick<MetadataObject, 'labelPlural'>,
|
objectMetadataItem: Pick<ObjectMetadataItem, 'labelPlural'>,
|
||||||
) => toKebabCase(metadataObject.labelPlural);
|
) => toKebabCase(objectMetadataItem.labelPlural);
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import { useTheme } from '@emotion/react';
|
import { useTheme } from '@emotion/react';
|
||||||
import styled from '@emotion/styled';
|
import styled from '@emotion/styled';
|
||||||
|
|
||||||
import { MetadataObject } from '@/metadata/types/MetadataObject';
|
import { ObjectMetadataItem } from '@/metadata/types/ObjectMetadataItem';
|
||||||
import { Checkbox } from '@/ui/input/components/Checkbox';
|
import { Checkbox } from '@/ui/input/components/Checkbox';
|
||||||
import { useLazyLoadIcon } from '@/ui/input/hooks/useLazyLoadIcon';
|
import { useLazyLoadIcon } from '@/ui/input/hooks/useLazyLoadIcon';
|
||||||
import { TableCell } from '@/ui/layout/table/components/TableCell';
|
import { TableCell } from '@/ui/layout/table/components/TableCell';
|
||||||
@ -9,7 +9,7 @@ import { TableRow } from '@/ui/layout/table/components/TableRow';
|
|||||||
|
|
||||||
type SettingsAvailableStandardObjectItemTableRowProps = {
|
type SettingsAvailableStandardObjectItemTableRowProps = {
|
||||||
isSelected?: boolean;
|
isSelected?: boolean;
|
||||||
objectItem: MetadataObject;
|
objectItem: ObjectMetadataItem;
|
||||||
onClick?: () => void;
|
onClick?: () => void;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { MetadataObject } from '@/metadata/types/MetadataObject';
|
import { ObjectMetadataItem } from '@/metadata/types/ObjectMetadataItem';
|
||||||
import { H2Title } from '@/ui/display/typography/components/H2Title';
|
import { H2Title } from '@/ui/display/typography/components/H2Title';
|
||||||
import { Section } from '@/ui/layout/section/components/Section';
|
import { Section } from '@/ui/layout/section/components/Section';
|
||||||
import { Table } from '@/ui/layout/table/components/Table';
|
import { Table } from '@/ui/layout/table/components/Table';
|
||||||
@ -11,7 +11,7 @@ import {
|
|||||||
} from './SettingsAvailableStandardObjectItemTableRow';
|
} from './SettingsAvailableStandardObjectItemTableRow';
|
||||||
|
|
||||||
type SettingsAvailableStandardObjectsSectionProps = {
|
type SettingsAvailableStandardObjectsSectionProps = {
|
||||||
objectItems: MetadataObject[];
|
objectItems: ObjectMetadataItem[];
|
||||||
onChange: (selectedIds: Record<string, boolean>) => void;
|
onChange: (selectedIds: Record<string, boolean>) => void;
|
||||||
selectedIds: Record<string, boolean>;
|
selectedIds: Record<string, boolean>;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import { useTheme } from '@emotion/react';
|
|||||||
import styled from '@emotion/styled';
|
import styled from '@emotion/styled';
|
||||||
|
|
||||||
import { useFindManyObjects } from '@/metadata/hooks/useFindManyObjects';
|
import { useFindManyObjects } from '@/metadata/hooks/useFindManyObjects';
|
||||||
import { MetadataObject } from '@/metadata/types/MetadataObject';
|
import { ObjectMetadataItem } from '@/metadata/types/ObjectMetadataItem';
|
||||||
import { Tag } from '@/ui/display/tag/components/Tag';
|
import { Tag } from '@/ui/display/tag/components/Tag';
|
||||||
import { useLazyLoadIcon } from '@/ui/input/hooks/useLazyLoadIcon';
|
import { useLazyLoadIcon } from '@/ui/input/hooks/useLazyLoadIcon';
|
||||||
import { TableCell } from '@/ui/layout/table/components/TableCell';
|
import { TableCell } from '@/ui/layout/table/components/TableCell';
|
||||||
@ -11,7 +11,7 @@ import { TableRow } from '@/ui/layout/table/components/TableRow';
|
|||||||
|
|
||||||
type SettingsObjectItemTableRowProps = {
|
type SettingsObjectItemTableRowProps = {
|
||||||
action: ReactNode;
|
action: ReactNode;
|
||||||
objectItem: MetadataObject;
|
objectItem: ObjectMetadataItem;
|
||||||
onClick?: () => void;
|
onClick?: () => void;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import { useApolloClient } from '@apollo/client';
|
import { useApolloClient } from '@apollo/client';
|
||||||
import { useRecoilCallback } from 'recoil';
|
import { useRecoilCallback } from 'recoil';
|
||||||
|
|
||||||
import { useFindOneMetadataObject } from '@/metadata/hooks/useFindOneMetadataObject';
|
import { useFindOneObjectMetadataItem } from '@/metadata/hooks/useFindOneObjectMetadataItem';
|
||||||
import { currentViewIdScopedState } from '@/views/states/currentViewIdScopedState';
|
import { currentViewIdScopedState } from '@/views/states/currentViewIdScopedState';
|
||||||
import { savedViewFieldByKeyScopedFamilySelector } from '@/views/states/selectors/savedViewFieldByKeyScopedFamilySelector';
|
import { savedViewFieldByKeyScopedFamilySelector } from '@/views/states/selectors/savedViewFieldByKeyScopedFamilySelector';
|
||||||
import { viewObjectIdScopeState } from '@/views/states/viewObjectIdScopeState';
|
import { viewObjectIdScopeState } from '@/views/states/viewObjectIdScopeState';
|
||||||
@ -9,7 +9,7 @@ import { ViewField } from '@/views/types/ViewField';
|
|||||||
|
|
||||||
export const useViewFields = (viewScopeId: string) => {
|
export const useViewFields = (viewScopeId: string) => {
|
||||||
const { updateOneMutation, createOneMutation, findManyQuery } =
|
const { updateOneMutation, createOneMutation, findManyQuery } =
|
||||||
useFindOneMetadataObject({
|
useFindOneObjectMetadataItem({
|
||||||
objectNameSingular: 'viewFieldV2',
|
objectNameSingular: 'viewFieldV2',
|
||||||
});
|
});
|
||||||
const apolloClient = useApolloClient();
|
const apolloClient = useApolloClient();
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import { useApolloClient } from '@apollo/client';
|
|||||||
import { produce } from 'immer';
|
import { produce } from 'immer';
|
||||||
import { useRecoilCallback } from 'recoil';
|
import { useRecoilCallback } from 'recoil';
|
||||||
|
|
||||||
import { useFindOneMetadataObject } from '@/metadata/hooks/useFindOneMetadataObject';
|
import { useFindOneObjectMetadataItem } from '@/metadata/hooks/useFindOneObjectMetadataItem';
|
||||||
import { Filter } from '@/ui/object/object-filter-dropdown/types/Filter';
|
import { Filter } from '@/ui/object/object-filter-dropdown/types/Filter';
|
||||||
import { currentViewFiltersScopedFamilyState } from '@/views/states/currentViewFiltersScopedFamilyState';
|
import { currentViewFiltersScopedFamilyState } from '@/views/states/currentViewFiltersScopedFamilyState';
|
||||||
import { currentViewIdScopedState } from '@/views/states/currentViewIdScopedState';
|
import { currentViewIdScopedState } from '@/views/states/currentViewIdScopedState';
|
||||||
@ -15,7 +15,7 @@ import { useViewSetStates } from '../useViewSetStates';
|
|||||||
|
|
||||||
export const useViewFilters = (viewScopeId: string) => {
|
export const useViewFilters = (viewScopeId: string) => {
|
||||||
const { updateOneMutation, createOneMutation, findManyQuery } =
|
const { updateOneMutation, createOneMutation, findManyQuery } =
|
||||||
useFindOneMetadataObject({
|
useFindOneObjectMetadataItem({
|
||||||
objectNameSingular: 'viewFilterV2',
|
objectNameSingular: 'viewFilterV2',
|
||||||
});
|
});
|
||||||
const apolloClient = useApolloClient();
|
const apolloClient = useApolloClient();
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import { useApolloClient } from '@apollo/client';
|
|||||||
import { produce } from 'immer';
|
import { produce } from 'immer';
|
||||||
import { useRecoilCallback } from 'recoil';
|
import { useRecoilCallback } from 'recoil';
|
||||||
|
|
||||||
import { useFindOneMetadataObject } from '@/metadata/hooks/useFindOneMetadataObject';
|
import { useFindOneObjectMetadataItem } from '@/metadata/hooks/useFindOneObjectMetadataItem';
|
||||||
import { Sort } from '@/ui/object/object-sort-dropdown/types/Sort';
|
import { Sort } from '@/ui/object/object-sort-dropdown/types/Sort';
|
||||||
import { currentViewIdScopedState } from '@/views/states/currentViewIdScopedState';
|
import { currentViewIdScopedState } from '@/views/states/currentViewIdScopedState';
|
||||||
import { currentViewSortsScopedFamilyState } from '@/views/states/currentViewSortsScopedFamilyState';
|
import { currentViewSortsScopedFamilyState } from '@/views/states/currentViewSortsScopedFamilyState';
|
||||||
@ -15,7 +15,7 @@ import { useViewSetStates } from '../useViewSetStates';
|
|||||||
|
|
||||||
export const useViewSorts = (viewScopeId: string) => {
|
export const useViewSorts = (viewScopeId: string) => {
|
||||||
const { updateOneMutation, createOneMutation, findManyQuery } =
|
const { updateOneMutation, createOneMutation, findManyQuery } =
|
||||||
useFindOneMetadataObject({
|
useFindOneObjectMetadataItem({
|
||||||
objectNameSingular: 'viewSortV2',
|
objectNameSingular: 'viewSortV2',
|
||||||
});
|
});
|
||||||
const apolloClient = useApolloClient();
|
const apolloClient = useApolloClient();
|
||||||
|
|||||||
@ -1,14 +1,14 @@
|
|||||||
import { useApolloClient } from '@apollo/client';
|
import { useApolloClient } from '@apollo/client';
|
||||||
import { useRecoilCallback } from 'recoil';
|
import { useRecoilCallback } from 'recoil';
|
||||||
|
|
||||||
import { useFindOneMetadataObject } from '@/metadata/hooks/useFindOneMetadataObject';
|
import { useFindOneObjectMetadataItem } from '@/metadata/hooks/useFindOneObjectMetadataItem';
|
||||||
import { viewObjectIdScopeState } from '@/views/states/viewObjectIdScopeState';
|
import { viewObjectIdScopeState } from '@/views/states/viewObjectIdScopeState';
|
||||||
import { viewTypeScopedState } from '@/views/states/viewTypeScopedState';
|
import { viewTypeScopedState } from '@/views/states/viewTypeScopedState';
|
||||||
import { View } from '@/views/types/View';
|
import { View } from '@/views/types/View';
|
||||||
|
|
||||||
export const useViews = (scopeId: string) => {
|
export const useViews = (scopeId: string) => {
|
||||||
const { updateOneMutation, createOneMutation, findManyQuery } =
|
const { updateOneMutation, createOneMutation, findManyQuery } =
|
||||||
useFindOneMetadataObject({
|
useFindOneObjectMetadataItem({
|
||||||
objectNameSingular: 'viewV2',
|
objectNameSingular: 'viewV2',
|
||||||
});
|
});
|
||||||
const apolloClient = useApolloClient();
|
const apolloClient = useApolloClient();
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import { useState } from 'react';
|
|||||||
import { useNavigate } from 'react-router-dom';
|
import { useNavigate } from 'react-router-dom';
|
||||||
|
|
||||||
import { useCreateOneObject } from '@/metadata/hooks/useCreateOneObject';
|
import { useCreateOneObject } from '@/metadata/hooks/useCreateOneObject';
|
||||||
import { useMetadataObjectForSettings } from '@/metadata/hooks/useMetadataObjectForSettings';
|
import { useObjectMetadataItemForSettings } from '@/metadata/hooks/useObjectMetadataItemForSettings';
|
||||||
import { getObjectSlug } from '@/metadata/utils/getObjectSlug';
|
import { getObjectSlug } from '@/metadata/utils/getObjectSlug';
|
||||||
import { SaveAndCancelButtons } from '@/settings/components/SaveAndCancelButtons/SaveAndCancelButtons';
|
import { SaveAndCancelButtons } from '@/settings/components/SaveAndCancelButtons/SaveAndCancelButtons';
|
||||||
import { SettingsHeaderContainer } from '@/settings/components/SettingsHeaderContainer';
|
import { SettingsHeaderContainer } from '@/settings/components/SettingsHeaderContainer';
|
||||||
@ -27,10 +27,10 @@ export const SettingsNewObject = () => {
|
|||||||
useState<NewObjectType>('Standard');
|
useState<NewObjectType>('Standard');
|
||||||
|
|
||||||
const {
|
const {
|
||||||
activateMetadataObject: activateObject,
|
activateObjectMetadataItem: activateObject,
|
||||||
createMetadataObject: createObject,
|
createObjectMetadataItem: createObject,
|
||||||
disabledMetadataObjects: disabledObjects,
|
disabledObjectMetadataItems: disabledObjects,
|
||||||
} = useMetadataObjectForSettings();
|
} = useObjectMetadataItemForSettings();
|
||||||
|
|
||||||
const { createOneObject: createOneView } = useCreateOneObject({
|
const { createOneObject: createOneView } = useCreateOneObject({
|
||||||
objectNamePlural: 'viewsV2',
|
objectNamePlural: 'viewsV2',
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import { useNavigate, useParams } from 'react-router-dom';
|
|||||||
import styled from '@emotion/styled';
|
import styled from '@emotion/styled';
|
||||||
|
|
||||||
import { useMetadataField } from '@/metadata/hooks/useMetadataField';
|
import { useMetadataField } from '@/metadata/hooks/useMetadataField';
|
||||||
import { useMetadataObjectForSettings } from '@/metadata/hooks/useMetadataObjectForSettings';
|
import { useObjectMetadataItemForSettings } from '@/metadata/hooks/useObjectMetadataItemForSettings';
|
||||||
import { getFieldSlug } from '@/metadata/utils/getFieldSlug';
|
import { getFieldSlug } from '@/metadata/utils/getFieldSlug';
|
||||||
import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer';
|
import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer';
|
||||||
import { SettingsAboutSection } from '@/settings/data-model/object-details/components/SettingsObjectAboutSection';
|
import { SettingsAboutSection } from '@/settings/data-model/object-details/components/SettingsObjectAboutSection';
|
||||||
@ -34,30 +34,34 @@ export const SettingsObjectDetail = () => {
|
|||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|
||||||
const { objectSlug = '' } = useParams();
|
const { objectSlug = '' } = useParams();
|
||||||
const { disableMetadataObject, findActiveMetadataObjectBySlug, loading } =
|
const {
|
||||||
useMetadataObjectForSettings();
|
disableObjectMetadataItem,
|
||||||
|
findActiveObjectMetadataItemBySlug,
|
||||||
|
loading,
|
||||||
|
} = useObjectMetadataItemForSettings();
|
||||||
|
|
||||||
const activeMetadataObject = findActiveMetadataObjectBySlug(objectSlug);
|
const activeObjectMetadataItem =
|
||||||
|
findActiveObjectMetadataItemBySlug(objectSlug);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (loading) return;
|
if (loading) return;
|
||||||
if (!activeMetadataObject) navigate(AppPath.NotFound);
|
if (!activeObjectMetadataItem) navigate(AppPath.NotFound);
|
||||||
}, [activeMetadataObject, loading, navigate]);
|
}, [activeObjectMetadataItem, loading, navigate]);
|
||||||
|
|
||||||
const { activateMetadataField, disableMetadataField, eraseMetadataField } =
|
const { activateMetadataField, disableMetadataField, eraseMetadataField } =
|
||||||
useMetadataField();
|
useMetadataField();
|
||||||
|
|
||||||
if (!activeMetadataObject) return null;
|
if (!activeObjectMetadataItem) return null;
|
||||||
|
|
||||||
const activeMetadataFields = activeMetadataObject.fields.filter(
|
const activeMetadataFields = activeObjectMetadataItem.fields.filter(
|
||||||
(metadataField) => metadataField.isActive,
|
(metadataField) => metadataField.isActive,
|
||||||
);
|
);
|
||||||
const disabledMetadataFields = activeMetadataObject.fields.filter(
|
const disabledMetadataFields = activeObjectMetadataItem.fields.filter(
|
||||||
(metadataField) => !metadataField.isActive,
|
(metadataField) => !metadataField.isActive,
|
||||||
);
|
);
|
||||||
|
|
||||||
const handleDisable = async () => {
|
const handleDisable = async () => {
|
||||||
await disableMetadataObject(activeMetadataObject);
|
await disableObjectMetadataItem(activeObjectMetadataItem);
|
||||||
navigate('/settings/objects');
|
navigate('/settings/objects');
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -67,20 +71,20 @@ export const SettingsObjectDetail = () => {
|
|||||||
<Breadcrumb
|
<Breadcrumb
|
||||||
links={[
|
links={[
|
||||||
{ children: 'Objects', href: '/settings/objects' },
|
{ children: 'Objects', href: '/settings/objects' },
|
||||||
{ children: activeMetadataObject.labelPlural },
|
{ children: activeObjectMetadataItem.labelPlural },
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
<SettingsAboutSection
|
<SettingsAboutSection
|
||||||
iconKey={activeMetadataObject.icon ?? undefined}
|
iconKey={activeObjectMetadataItem.icon ?? undefined}
|
||||||
name={activeMetadataObject.labelPlural || ''}
|
name={activeObjectMetadataItem.labelPlural || ''}
|
||||||
isCustom={activeMetadataObject.isCustom}
|
isCustom={activeObjectMetadataItem.isCustom}
|
||||||
onDisable={handleDisable}
|
onDisable={handleDisable}
|
||||||
onEdit={() => navigate('./edit')}
|
onEdit={() => navigate('./edit')}
|
||||||
/>
|
/>
|
||||||
<Section>
|
<Section>
|
||||||
<H2Title
|
<H2Title
|
||||||
title="Fields"
|
title="Fields"
|
||||||
description={`Customise the fields available in the ${activeMetadataObject.labelSingular} views and their display order in the ${activeMetadataObject.labelSingular} detail view and menus.`}
|
description={`Customise the fields available in the ${activeObjectMetadataItem.labelSingular} views and their display order in the ${activeObjectMetadataItem.labelSingular} detail view and menus.`}
|
||||||
/>
|
/>
|
||||||
<Table>
|
<Table>
|
||||||
<StyledObjectFieldTableRow>
|
<StyledObjectFieldTableRow>
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
import { useNavigate, useParams } from 'react-router-dom';
|
import { useNavigate, useParams } from 'react-router-dom';
|
||||||
|
|
||||||
import { useMetadataObjectForSettings } from '@/metadata/hooks/useMetadataObjectForSettings';
|
import { useObjectMetadataItemForSettings } from '@/metadata/hooks/useObjectMetadataItemForSettings';
|
||||||
import { getObjectSlug } from '@/metadata/utils/getObjectSlug';
|
import { getObjectSlug } from '@/metadata/utils/getObjectSlug';
|
||||||
import { SaveAndCancelButtons } from '@/settings/components/SaveAndCancelButtons/SaveAndCancelButtons';
|
import { SaveAndCancelButtons } from '@/settings/components/SaveAndCancelButtons/SaveAndCancelButtons';
|
||||||
import { SettingsHeaderContainer } from '@/settings/components/SettingsHeaderContainer';
|
import { SettingsHeaderContainer } from '@/settings/components/SettingsHeaderContainer';
|
||||||
@ -21,13 +21,14 @@ export const SettingsObjectEdit = () => {
|
|||||||
|
|
||||||
const { objectSlug = '' } = useParams();
|
const { objectSlug = '' } = useParams();
|
||||||
const {
|
const {
|
||||||
disableMetadataObject,
|
disableObjectMetadataItem,
|
||||||
editMetadataObject,
|
editObjectMetadataItem,
|
||||||
findActiveMetadataObjectBySlug,
|
findActiveObjectMetadataItemBySlug,
|
||||||
loading,
|
loading,
|
||||||
} = useMetadataObjectForSettings();
|
} = useObjectMetadataItemForSettings();
|
||||||
|
|
||||||
const activeMetadataObject = findActiveMetadataObjectBySlug(objectSlug);
|
const activeObjectMetadataItem =
|
||||||
|
findActiveObjectMetadataItemBySlug(objectSlug);
|
||||||
|
|
||||||
const [formValues, setFormValues] = useState<
|
const [formValues, setFormValues] = useState<
|
||||||
Partial<{
|
Partial<{
|
||||||
@ -41,44 +42,47 @@ export const SettingsObjectEdit = () => {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (loading) return;
|
if (loading) return;
|
||||||
|
|
||||||
if (!activeMetadataObject) {
|
if (!activeObjectMetadataItem) {
|
||||||
navigate(AppPath.NotFound);
|
navigate(AppPath.NotFound);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Object.keys(formValues).length) {
|
if (!Object.keys(formValues).length) {
|
||||||
setFormValues({
|
setFormValues({
|
||||||
icon: activeMetadataObject.icon ?? undefined,
|
icon: activeObjectMetadataItem.icon ?? undefined,
|
||||||
labelSingular: activeMetadataObject.labelSingular,
|
labelSingular: activeObjectMetadataItem.labelSingular,
|
||||||
labelPlural: activeMetadataObject.labelPlural,
|
labelPlural: activeObjectMetadataItem.labelPlural,
|
||||||
description: activeMetadataObject.description ?? undefined,
|
description: activeObjectMetadataItem.description ?? undefined,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}, [activeMetadataObject, formValues, loading, navigate]);
|
}, [activeObjectMetadataItem, formValues, loading, navigate]);
|
||||||
|
|
||||||
if (!activeMetadataObject) return null;
|
if (!activeObjectMetadataItem) return null;
|
||||||
|
|
||||||
const areRequiredFieldsFilled =
|
const areRequiredFieldsFilled =
|
||||||
!!formValues.labelSingular && !!formValues.labelPlural;
|
!!formValues.labelSingular && !!formValues.labelPlural;
|
||||||
|
|
||||||
const hasChanges =
|
const hasChanges =
|
||||||
formValues.description !== activeMetadataObject.description ||
|
formValues.description !== activeObjectMetadataItem.description ||
|
||||||
formValues.icon !== activeMetadataObject.icon ||
|
formValues.icon !== activeObjectMetadataItem.icon ||
|
||||||
formValues.labelPlural !== activeMetadataObject.labelPlural ||
|
formValues.labelPlural !== activeObjectMetadataItem.labelPlural ||
|
||||||
formValues.labelSingular !== activeMetadataObject.labelSingular;
|
formValues.labelSingular !== activeObjectMetadataItem.labelSingular;
|
||||||
|
|
||||||
const canSave = areRequiredFieldsFilled && hasChanges;
|
const canSave = areRequiredFieldsFilled && hasChanges;
|
||||||
|
|
||||||
const handleSave = async () => {
|
const handleSave = async () => {
|
||||||
const editedMetadataObject = { ...activeMetadataObject, ...formValues };
|
const editedObjectMetadataItem = {
|
||||||
|
...activeObjectMetadataItem,
|
||||||
|
...formValues,
|
||||||
|
};
|
||||||
|
|
||||||
await editMetadataObject(editedMetadataObject);
|
await editObjectMetadataItem(editedObjectMetadataItem);
|
||||||
|
|
||||||
navigate(`/settings/objects/${getObjectSlug(editedMetadataObject)}`);
|
navigate(`/settings/objects/${getObjectSlug(editedObjectMetadataItem)}`);
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleDisable = async () => {
|
const handleDisable = async () => {
|
||||||
await disableMetadataObject(activeMetadataObject);
|
await disableObjectMetadataItem(activeObjectMetadataItem);
|
||||||
navigate('/settings/objects');
|
navigate('/settings/objects');
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -90,13 +94,13 @@ export const SettingsObjectEdit = () => {
|
|||||||
links={[
|
links={[
|
||||||
{ children: 'Objects', href: '/settings/objects' },
|
{ children: 'Objects', href: '/settings/objects' },
|
||||||
{
|
{
|
||||||
children: activeMetadataObject.labelPlural,
|
children: activeObjectMetadataItem.labelPlural,
|
||||||
href: `/settings/objects/${objectSlug}`,
|
href: `/settings/objects/${objectSlug}`,
|
||||||
},
|
},
|
||||||
{ children: 'Edit' },
|
{ children: 'Edit' },
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
{activeMetadataObject.isCustom && (
|
{activeObjectMetadataItem.isCustom && (
|
||||||
<SaveAndCancelButtons
|
<SaveAndCancelButtons
|
||||||
isSaveDisabled={!canSave}
|
isSaveDisabled={!canSave}
|
||||||
onCancel={() => navigate(`/settings/objects/${objectSlug}`)}
|
onCancel={() => navigate(`/settings/objects/${objectSlug}`)}
|
||||||
@ -105,7 +109,7 @@ export const SettingsObjectEdit = () => {
|
|||||||
)}
|
)}
|
||||||
</SettingsHeaderContainer>
|
</SettingsHeaderContainer>
|
||||||
<SettingsObjectIconSection
|
<SettingsObjectIconSection
|
||||||
disabled={!activeMetadataObject.isCustom}
|
disabled={!activeObjectMetadataItem.isCustom}
|
||||||
iconKey={formValues.icon}
|
iconKey={formValues.icon}
|
||||||
label={formValues.labelPlural}
|
label={formValues.labelPlural}
|
||||||
onChange={({ iconKey }) =>
|
onChange={({ iconKey }) =>
|
||||||
@ -116,7 +120,7 @@ export const SettingsObjectEdit = () => {
|
|||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
<SettingsObjectFormSection
|
<SettingsObjectFormSection
|
||||||
disabled={!activeMetadataObject.isCustom}
|
disabled={!activeObjectMetadataItem.isCustom}
|
||||||
singularName={formValues.labelSingular}
|
singularName={formValues.labelSingular}
|
||||||
pluralName={formValues.labelPlural}
|
pluralName={formValues.labelPlural}
|
||||||
description={formValues.description}
|
description={formValues.description}
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import { useEffect, useState } from 'react';
|
|||||||
import { useNavigate, useParams } from 'react-router-dom';
|
import { useNavigate, useParams } from 'react-router-dom';
|
||||||
|
|
||||||
import { useMetadataField } from '@/metadata/hooks/useMetadataField';
|
import { useMetadataField } from '@/metadata/hooks/useMetadataField';
|
||||||
import { useMetadataObjectForSettings } from '@/metadata/hooks/useMetadataObjectForSettings';
|
import { useObjectMetadataItemForSettings } from '@/metadata/hooks/useObjectMetadataItemForSettings';
|
||||||
import { getFieldSlug } from '@/metadata/utils/getFieldSlug';
|
import { getFieldSlug } from '@/metadata/utils/getFieldSlug';
|
||||||
import { SaveAndCancelButtons } from '@/settings/components/SaveAndCancelButtons/SaveAndCancelButtons';
|
import { SaveAndCancelButtons } from '@/settings/components/SaveAndCancelButtons/SaveAndCancelButtons';
|
||||||
import { SettingsHeaderContainer } from '@/settings/components/SettingsHeaderContainer';
|
import { SettingsHeaderContainer } from '@/settings/components/SettingsHeaderContainer';
|
||||||
@ -22,13 +22,14 @@ export const SettingsObjectFieldEdit = () => {
|
|||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|
||||||
const { objectSlug = '', fieldSlug = '' } = useParams();
|
const { objectSlug = '', fieldSlug = '' } = useParams();
|
||||||
const { findActiveMetadataObjectBySlug, loading } =
|
const { findActiveObjectMetadataItemBySlug, loading } =
|
||||||
useMetadataObjectForSettings();
|
useObjectMetadataItemForSettings();
|
||||||
|
|
||||||
const activeMetadataObject = findActiveMetadataObjectBySlug(objectSlug);
|
const activeObjectMetadataItem =
|
||||||
|
findActiveObjectMetadataItemBySlug(objectSlug);
|
||||||
|
|
||||||
const { disableMetadataField, editMetadataField } = useMetadataField();
|
const { disableMetadataField, editMetadataField } = useMetadataField();
|
||||||
const activeMetadataField = activeMetadataObject?.fields.find(
|
const activeMetadataField = activeObjectMetadataItem?.fields.find(
|
||||||
(metadataField) =>
|
(metadataField) =>
|
||||||
metadataField.isActive && getFieldSlug(metadataField) === fieldSlug,
|
metadataField.isActive && getFieldSlug(metadataField) === fieldSlug,
|
||||||
);
|
);
|
||||||
@ -44,7 +45,7 @@ export const SettingsObjectFieldEdit = () => {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (loading) return;
|
if (loading) return;
|
||||||
|
|
||||||
if (!activeMetadataObject || !activeMetadataField) {
|
if (!activeObjectMetadataItem || !activeMetadataField) {
|
||||||
navigate(AppPath.NotFound);
|
navigate(AppPath.NotFound);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -58,13 +59,13 @@ export const SettingsObjectFieldEdit = () => {
|
|||||||
}
|
}
|
||||||
}, [
|
}, [
|
||||||
activeMetadataField,
|
activeMetadataField,
|
||||||
activeMetadataObject,
|
activeObjectMetadataItem,
|
||||||
formValues,
|
formValues,
|
||||||
loading,
|
loading,
|
||||||
navigate,
|
navigate,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if (!activeMetadataObject || !activeMetadataField) return null;
|
if (!activeObjectMetadataItem || !activeMetadataField) return null;
|
||||||
|
|
||||||
const areRequiredFieldsFilled = !!formValues.label;
|
const areRequiredFieldsFilled = !!formValues.label;
|
||||||
|
|
||||||
@ -96,7 +97,7 @@ export const SettingsObjectFieldEdit = () => {
|
|||||||
links={[
|
links={[
|
||||||
{ children: 'Objects', href: '/settings/objects' },
|
{ children: 'Objects', href: '/settings/objects' },
|
||||||
{
|
{
|
||||||
children: activeMetadataObject.labelPlural,
|
children: activeObjectMetadataItem.labelPlural,
|
||||||
href: `/settings/objects/${objectSlug}`,
|
href: `/settings/objects/${objectSlug}`,
|
||||||
},
|
},
|
||||||
{ children: activeMetadataField.label },
|
{ children: activeMetadataField.label },
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import { useNavigate, useParams } from 'react-router-dom';
|
|||||||
import styled from '@emotion/styled';
|
import styled from '@emotion/styled';
|
||||||
|
|
||||||
import { useMetadataField } from '@/metadata/hooks/useMetadataField';
|
import { useMetadataField } from '@/metadata/hooks/useMetadataField';
|
||||||
import { useMetadataObjectForSettings } from '@/metadata/hooks/useMetadataObjectForSettings';
|
import { useObjectMetadataItemForSettings } from '@/metadata/hooks/useObjectMetadataItemForSettings';
|
||||||
import { SaveAndCancelButtons } from '@/settings/components/SaveAndCancelButtons/SaveAndCancelButtons';
|
import { SaveAndCancelButtons } from '@/settings/components/SaveAndCancelButtons/SaveAndCancelButtons';
|
||||||
import { SettingsHeaderContainer } from '@/settings/components/SettingsHeaderContainer';
|
import { SettingsHeaderContainer } from '@/settings/components/SettingsHeaderContainer';
|
||||||
import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer';
|
import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer';
|
||||||
@ -37,14 +37,15 @@ export const SettingsObjectNewFieldStep1 = () => {
|
|||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|
||||||
const { objectSlug = '' } = useParams();
|
const { objectSlug = '' } = useParams();
|
||||||
const { findActiveMetadataObjectBySlug, loading } =
|
const { findActiveObjectMetadataItemBySlug, loading } =
|
||||||
useMetadataObjectForSettings();
|
useObjectMetadataItemForSettings();
|
||||||
|
|
||||||
const activeMetadataObject = findActiveMetadataObjectBySlug(objectSlug);
|
const activeObjectMetadataItem =
|
||||||
|
findActiveObjectMetadataItemBySlug(objectSlug);
|
||||||
|
|
||||||
const { activateMetadataField, disableMetadataField } = useMetadataField();
|
const { activateMetadataField, disableMetadataField } = useMetadataField();
|
||||||
const [metadataFields, setMetadataFields] = useState(
|
const [metadataFields, setMetadataFields] = useState(
|
||||||
activeMetadataObject?.fields ?? [],
|
activeObjectMetadataItem?.fields ?? [],
|
||||||
);
|
);
|
||||||
|
|
||||||
const activeMetadataFields = metadataFields.filter((field) => field.isActive);
|
const activeMetadataFields = metadataFields.filter((field) => field.isActive);
|
||||||
@ -54,21 +55,22 @@ export const SettingsObjectNewFieldStep1 = () => {
|
|||||||
|
|
||||||
const canSave = metadataFields.some(
|
const canSave = metadataFields.some(
|
||||||
(field, index) =>
|
(field, index) =>
|
||||||
field.isActive !== activeMetadataObject?.fields[index].isActive,
|
field.isActive !== activeObjectMetadataItem?.fields[index].isActive,
|
||||||
);
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (loading) return;
|
if (loading) return;
|
||||||
|
|
||||||
if (!activeMetadataObject) {
|
if (!activeObjectMetadataItem) {
|
||||||
navigate(AppPath.NotFound);
|
navigate(AppPath.NotFound);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!metadataFields.length) setMetadataFields(activeMetadataObject.fields);
|
if (!metadataFields.length)
|
||||||
}, [activeMetadataObject, metadataFields.length, loading, navigate]);
|
setMetadataFields(activeObjectMetadataItem.fields);
|
||||||
|
}, [activeObjectMetadataItem, metadataFields.length, loading, navigate]);
|
||||||
|
|
||||||
if (!activeMetadataObject) return null;
|
if (!activeObjectMetadataItem) return null;
|
||||||
|
|
||||||
const handleToggleField = (fieldId: string) =>
|
const handleToggleField = (fieldId: string) =>
|
||||||
setMetadataFields((previousFields) =>
|
setMetadataFields((previousFields) =>
|
||||||
@ -81,7 +83,8 @@ export const SettingsObjectNewFieldStep1 = () => {
|
|||||||
await Promise.all(
|
await Promise.all(
|
||||||
metadataFields.map((metadataField, index) => {
|
metadataFields.map((metadataField, index) => {
|
||||||
if (
|
if (
|
||||||
metadataField.isActive === activeMetadataObject.fields[index].isActive
|
metadataField.isActive ===
|
||||||
|
activeObjectMetadataItem.fields[index].isActive
|
||||||
) {
|
) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -103,7 +106,7 @@ export const SettingsObjectNewFieldStep1 = () => {
|
|||||||
links={[
|
links={[
|
||||||
{ children: 'Objects', href: '/settings/objects' },
|
{ children: 'Objects', href: '/settings/objects' },
|
||||||
{
|
{
|
||||||
children: activeMetadataObject.labelPlural,
|
children: activeObjectMetadataItem.labelPlural,
|
||||||
href: `/settings/objects/${objectSlug}`,
|
href: `/settings/objects/${objectSlug}`,
|
||||||
},
|
},
|
||||||
{ children: 'New Field' },
|
{ children: 'New Field' },
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import { useNavigate, useParams } from 'react-router-dom';
|
|||||||
import { useCreateOneObject } from '@/metadata/hooks/useCreateOneObject';
|
import { useCreateOneObject } from '@/metadata/hooks/useCreateOneObject';
|
||||||
import { useFindManyObjects } from '@/metadata/hooks/useFindManyObjects';
|
import { useFindManyObjects } from '@/metadata/hooks/useFindManyObjects';
|
||||||
import { useMetadataField } from '@/metadata/hooks/useMetadataField';
|
import { useMetadataField } from '@/metadata/hooks/useMetadataField';
|
||||||
import { useMetadataObjectForSettings } from '@/metadata/hooks/useMetadataObjectForSettings';
|
import { useObjectMetadataItemForSettings } from '@/metadata/hooks/useObjectMetadataItemForSettings';
|
||||||
import { PaginatedObjectTypeResults } from '@/metadata/types/PaginatedObjectTypeResults';
|
import { PaginatedObjectTypeResults } from '@/metadata/types/PaginatedObjectTypeResults';
|
||||||
import { SaveAndCancelButtons } from '@/settings/components/SaveAndCancelButtons/SaveAndCancelButtons';
|
import { SaveAndCancelButtons } from '@/settings/components/SaveAndCancelButtons/SaveAndCancelButtons';
|
||||||
import { SettingsHeaderContainer } from '@/settings/components/SettingsHeaderContainer';
|
import { SettingsHeaderContainer } from '@/settings/components/SettingsHeaderContainer';
|
||||||
@ -23,16 +23,17 @@ export const SettingsObjectNewFieldStep2 = () => {
|
|||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const { objectSlug = '' } = useParams();
|
const { objectSlug = '' } = useParams();
|
||||||
|
|
||||||
const { findActiveMetadataObjectBySlug, loading } =
|
const { findActiveObjectMetadataItemBySlug, loading } =
|
||||||
useMetadataObjectForSettings();
|
useObjectMetadataItemForSettings();
|
||||||
|
|
||||||
const activeMetadataObject = findActiveMetadataObjectBySlug(objectSlug);
|
const activeObjectMetadataItem =
|
||||||
|
findActiveObjectMetadataItemBySlug(objectSlug);
|
||||||
const { createMetadataField } = useMetadataField();
|
const { createMetadataField } = useMetadataField();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (loading) return;
|
if (loading) return;
|
||||||
if (!activeMetadataObject) navigate(AppPath.NotFound);
|
if (!activeObjectMetadataItem) navigate(AppPath.NotFound);
|
||||||
}, [activeMetadataObject, loading, navigate]);
|
}, [activeObjectMetadataItem, loading, navigate]);
|
||||||
|
|
||||||
const [formValues, setFormValues] = useState<{
|
const [formValues, setFormValues] = useState<{
|
||||||
description?: string;
|
description?: string;
|
||||||
@ -51,7 +52,7 @@ export const SettingsObjectNewFieldStep2 = () => {
|
|||||||
objectNamePlural: 'viewsV2',
|
objectNamePlural: 'viewsV2',
|
||||||
filter: {
|
filter: {
|
||||||
type: { eq: ViewType.Table },
|
type: { eq: ViewType.Table },
|
||||||
objectId: { eq: activeMetadataObject?.id },
|
objectId: { eq: activeObjectMetadataItem?.id },
|
||||||
},
|
},
|
||||||
onCompleted: async (data: PaginatedObjectTypeResults<View>) => {
|
onCompleted: async (data: PaginatedObjectTypeResults<View>) => {
|
||||||
const views = data.edges;
|
const views = data.edges;
|
||||||
@ -64,20 +65,20 @@ export const SettingsObjectNewFieldStep2 = () => {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!activeMetadataObject || !objectViews.length) return null;
|
if (!activeObjectMetadataItem || !objectViews.length) return null;
|
||||||
|
|
||||||
const canSave = !!formValues.label;
|
const canSave = !!formValues.label;
|
||||||
|
|
||||||
const handleSave = async () => {
|
const handleSave = async () => {
|
||||||
const createdField = await createMetadataField({
|
const createdField = await createMetadataField({
|
||||||
...formValues,
|
...formValues,
|
||||||
objectId: activeMetadataObject.id,
|
objectId: activeObjectMetadataItem.id,
|
||||||
});
|
});
|
||||||
objectViews.forEach(async (view) => {
|
objectViews.forEach(async (view) => {
|
||||||
await createOneViewField?.({
|
await createOneViewField?.({
|
||||||
viewId: view.id,
|
viewId: view.id,
|
||||||
fieldId: createdField.data?.createOneField.id,
|
fieldId: createdField.data?.createOneField.id,
|
||||||
position: activeMetadataObject.fields.length,
|
position: activeObjectMetadataItem.fields.length,
|
||||||
isVisible: true,
|
isVisible: true,
|
||||||
size: 100,
|
size: 100,
|
||||||
});
|
});
|
||||||
@ -93,7 +94,7 @@ export const SettingsObjectNewFieldStep2 = () => {
|
|||||||
links={[
|
links={[
|
||||||
{ children: 'Objects', href: '/settings/objects' },
|
{ children: 'Objects', href: '/settings/objects' },
|
||||||
{
|
{
|
||||||
children: activeMetadataObject.labelPlural,
|
children: activeObjectMetadataItem.labelPlural,
|
||||||
href: `/settings/objects/${objectSlug}`,
|
href: `/settings/objects/${objectSlug}`,
|
||||||
},
|
},
|
||||||
{ children: 'New Field' },
|
{ children: 'New Field' },
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import { useNavigate } from 'react-router-dom';
|
|||||||
import { useTheme } from '@emotion/react';
|
import { useTheme } from '@emotion/react';
|
||||||
import styled from '@emotion/styled';
|
import styled from '@emotion/styled';
|
||||||
|
|
||||||
import { useMetadataObjectForSettings } from '@/metadata/hooks/useMetadataObjectForSettings';
|
import { useObjectMetadataItemForSettings } from '@/metadata/hooks/useObjectMetadataItemForSettings';
|
||||||
import { getObjectSlug } from '@/metadata/utils/getObjectSlug';
|
import { getObjectSlug } from '@/metadata/utils/getObjectSlug';
|
||||||
import { SettingsHeaderContainer } from '@/settings/components/SettingsHeaderContainer';
|
import { SettingsHeaderContainer } from '@/settings/components/SettingsHeaderContainer';
|
||||||
import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer';
|
import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer';
|
||||||
@ -35,11 +35,11 @@ export const SettingsObjects = () => {
|
|||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|
||||||
const {
|
const {
|
||||||
activateMetadataObject,
|
activateObjectMetadataItem,
|
||||||
activeMetadataObjects,
|
activeObjectMetadataItems,
|
||||||
disabledMetadataObjects,
|
disabledObjectMetadataItems,
|
||||||
eraseMetadataObject,
|
eraseObjectMetadataItem,
|
||||||
} = useMetadataObjectForSettings();
|
} = useObjectMetadataItemForSettings();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<SubMenuTopBarContainer Icon={IconSettings} title="Settings">
|
<SubMenuTopBarContainer Icon={IconSettings} title="Settings">
|
||||||
@ -66,12 +66,12 @@ export const SettingsObjects = () => {
|
|||||||
<TableHeader align="right">Instances</TableHeader>
|
<TableHeader align="right">Instances</TableHeader>
|
||||||
<TableHeader></TableHeader>
|
<TableHeader></TableHeader>
|
||||||
</StyledObjectTableRow>
|
</StyledObjectTableRow>
|
||||||
{!!activeMetadataObjects.length && (
|
{!!activeObjectMetadataItems.length && (
|
||||||
<TableSection title="Active">
|
<TableSection title="Active">
|
||||||
{activeMetadataObjects.map((activeMetadataObject) => (
|
{activeObjectMetadataItems.map((activeObjectMetadataItem) => (
|
||||||
<SettingsObjectItemTableRow
|
<SettingsObjectItemTableRow
|
||||||
key={activeMetadataObject.namePlural}
|
key={activeObjectMetadataItem.namePlural}
|
||||||
objectItem={activeMetadataObject}
|
objectItem={activeObjectMetadataItem}
|
||||||
action={
|
action={
|
||||||
<StyledIconChevronRight
|
<StyledIconChevronRight
|
||||||
size={theme.icon.size.md}
|
size={theme.icon.size.md}
|
||||||
@ -81,7 +81,7 @@ export const SettingsObjects = () => {
|
|||||||
onClick={() =>
|
onClick={() =>
|
||||||
navigate(
|
navigate(
|
||||||
`/settings/objects/${getObjectSlug(
|
`/settings/objects/${getObjectSlug(
|
||||||
activeMetadataObject,
|
activeObjectMetadataItem,
|
||||||
)}`,
|
)}`,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -89,26 +89,32 @@ export const SettingsObjects = () => {
|
|||||||
))}
|
))}
|
||||||
</TableSection>
|
</TableSection>
|
||||||
)}
|
)}
|
||||||
{!!disabledMetadataObjects.length && (
|
{!!disabledObjectMetadataItems.length && (
|
||||||
<TableSection title="Disabled">
|
<TableSection title="Disabled">
|
||||||
{disabledMetadataObjects.map((disabledMetadataObject) => (
|
{disabledObjectMetadataItems.map(
|
||||||
<SettingsObjectItemTableRow
|
(disabledObjectMetadataItem) => (
|
||||||
key={disabledMetadataObject.namePlural}
|
<SettingsObjectItemTableRow
|
||||||
objectItem={disabledMetadataObject}
|
key={disabledObjectMetadataItem.namePlural}
|
||||||
action={
|
objectItem={disabledObjectMetadataItem}
|
||||||
<SettingsObjectDisabledMenuDropDown
|
action={
|
||||||
isCustomObject={disabledMetadataObject.isCustom}
|
<SettingsObjectDisabledMenuDropDown
|
||||||
scopeKey={disabledMetadataObject.namePlural}
|
isCustomObject={disabledObjectMetadataItem.isCustom}
|
||||||
onActivate={() =>
|
scopeKey={disabledObjectMetadataItem.namePlural}
|
||||||
activateMetadataObject(disabledMetadataObject)
|
onActivate={() =>
|
||||||
}
|
activateObjectMetadataItem(
|
||||||
onErase={() =>
|
disabledObjectMetadataItem,
|
||||||
eraseMetadataObject(disabledMetadataObject)
|
)
|
||||||
}
|
}
|
||||||
/>
|
onErase={() =>
|
||||||
}
|
eraseObjectMetadataItem(
|
||||||
/>
|
disabledObjectMetadataItem,
|
||||||
))}
|
)
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
),
|
||||||
|
)}
|
||||||
</TableSection>
|
</TableSection>
|
||||||
)}
|
)}
|
||||||
</Table>
|
</Table>
|
||||||
|
|||||||
@ -34,7 +34,7 @@ import { mockedApiKeys } from '~/testing/mock-data/api-keys';
|
|||||||
|
|
||||||
import { mockedActivities, mockedTasks } from './mock-data/activities';
|
import { mockedActivities, mockedTasks } from './mock-data/activities';
|
||||||
import { mockedCompaniesData } from './mock-data/companies';
|
import { mockedCompaniesData } from './mock-data/companies';
|
||||||
import { mockedMetadataObjects } from './mock-data/metadata';
|
import { mockedObjectMetadataItems } from './mock-data/metadata';
|
||||||
import { mockedPeopleData } from './mock-data/people';
|
import { mockedPeopleData } from './mock-data/people';
|
||||||
import { mockedPipelineProgressData } from './mock-data/pipeline-progress';
|
import { mockedPipelineProgressData } from './mock-data/pipeline-progress';
|
||||||
import { mockedPipelinesData } from './mock-data/pipelines';
|
import { mockedPipelinesData } from './mock-data/pipelines';
|
||||||
@ -291,7 +291,7 @@ export const graphqlMocks = [
|
|||||||
metadataGraphql.query(
|
metadataGraphql.query(
|
||||||
getOperationName(FIND_MANY_METADATA_OBJECTS) ?? '',
|
getOperationName(FIND_MANY_METADATA_OBJECTS) ?? '',
|
||||||
(req, res, ctx) => {
|
(req, res, ctx) => {
|
||||||
return res(ctx.data({ objects: mockedMetadataObjects }));
|
return res(ctx.data({ objects: mockedObjectMetadataItems }));
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
export const mockedMetadataObjects = {
|
export const mockedObjectMetadataItems = {
|
||||||
edges: [
|
edges: [
|
||||||
{
|
{
|
||||||
node: {
|
node: {
|
||||||
|
|||||||
Reference in New Issue
Block a user