refactor: remove "core" naming from views and eliminate converter layer (#18667)
## Summary
- **Remove all "core" prefixes** from the views system — the
metadata-based storage migration is complete, so `CoreView`,
`coreViewsSelector`, `getCoreViews`, etc. are now just `View`,
`viewsSelector`, `getViews`
- **Eliminate the entire converter layer** (15 files, ~850 lines
deleted) — `convertCoreViewToView` and all sub-converters were either
no-ops or trivially adding `__typename` / mapping identical enum values.
Local enums now re-export from generated GraphQL types directly (single
source of truth)
- **Unify `View` and `ViewWithRelations`** into one type —
`ViewWithRelations` is now a type alias for `View`, selectors return
data directly without conversion
### Backend
- Rename `@ObjectType('CoreView')` → `@ObjectType('View')` (and all
sub-entities)
- Rename resolver methods: `getCoreViews` → `getViews`, `createCoreView`
→ `createView`, etc.
- Rename `FIND_ALL_CORE_VIEWS_GRAPHQL_OPERATION` →
`FIND_ALL_VIEWS_GRAPHQL_OPERATION`
### Frontend
- Delete 15 converter files (`convertGqlView*ToView*`,
`convertView*ToGql`, `convertViewWithRelationsToView`)
- Re-export `ViewType`, `ViewKey`, `ViewFilterGroupLogicalOperator` from
generated enums (no more duplicate enum definitions with different
casing)
- Replace `ViewOpenRecordInType` with `ViewOpenRecordIn` from generated
- Remove `__typename` from all local view sub-types
- Remove unused `variant` from `ViewFilter`, make `displayValue` and
`definition` optional
- Rename ~45 GraphQL query/mutation files and all selectors to drop
"core" prefix
- Delete unused `viewsWithRelationsSelector`
This commit is contained in:
+1
-1
@@ -82,7 +82,7 @@ export const NavigationDrawerItemForObjectMetadataItem = ({
|
||||
|
||||
const isViewWithCustomName =
|
||||
isView &&
|
||||
navigationMenuItem?.viewKey !== ViewKey.Index &&
|
||||
navigationMenuItem?.viewKey !== ViewKey.INDEX &&
|
||||
isDefined(navigationMenuItem?.labelIdentifier);
|
||||
|
||||
const label = isRecord
|
||||
|
||||
+2
-4
@@ -4,8 +4,7 @@ import { NavigationDrawerItemForObjectMetadataItem } from '@/object-metadata/com
|
||||
import type { WorkspaceSectionItemContentProps } from '@/object-metadata/components/WorkspaceSectionItemContentProps';
|
||||
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
|
||||
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
|
||||
import { coreViewsSelector } from '@/views/states/selectors/coreViewsSelector';
|
||||
import { convertCoreViewToView } from '@/views/utils/convertCoreViewToView';
|
||||
import { viewsSelector } from '@/views/states/selectors/viewsSelector';
|
||||
|
||||
type NavigationDrawerSectionForWorkspaceItemObjectContentProps =
|
||||
WorkspaceSectionItemContentProps;
|
||||
@@ -17,8 +16,7 @@ export const NavigationDrawerSectionForWorkspaceItemObjectContent = ({
|
||||
onActiveObjectMetadataItemClick,
|
||||
}: NavigationDrawerSectionForWorkspaceItemObjectContentProps) => {
|
||||
const objectMetadataItems = useAtomStateValue(objectMetadataItemsState);
|
||||
const coreViews = useAtomStateValue(coreViewsSelector);
|
||||
const views = coreViews.map(convertCoreViewToView);
|
||||
const views = useAtomStateValue(viewsSelector);
|
||||
const objectMetadataItem = getObjectMetadataForNavigationMenuItem(
|
||||
item as ProcessedNavigationMenuItem,
|
||||
objectMetadataItems,
|
||||
|
||||
+2
-4
@@ -24,8 +24,7 @@ import { NavigationDrawerSection } from '@/ui/navigation/navigation-drawer/compo
|
||||
import { NavigationDrawerSectionTitle } from '@/ui/navigation/navigation-drawer/components/NavigationDrawerSectionTitle';
|
||||
import { useNavigationSection } from '@/ui/navigation/navigation-drawer/hooks/useNavigationSection';
|
||||
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
|
||||
import { coreViewsSelector } from '@/views/states/selectors/coreViewsSelector';
|
||||
import { convertCoreViewToView } from '@/views/utils/convertCoreViewToView';
|
||||
import { viewsSelector } from '@/views/states/selectors/viewsSelector';
|
||||
import { styled } from '@linaria/react';
|
||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
@@ -64,8 +63,7 @@ export const NavigationDrawerSectionForWorkspaceItems = ({
|
||||
);
|
||||
const { toggleNavigationSection, isNavigationSectionOpen } =
|
||||
useNavigationSection('Workspace');
|
||||
const coreViews = useAtomStateValue(coreViewsSelector);
|
||||
const views = coreViews.map(convertCoreViewToView);
|
||||
const views = useAtomStateValue(viewsSelector);
|
||||
|
||||
const { objectPermissionsByObjectMetadataId } = useObjectPermissions();
|
||||
const objectMetadataItems = useAtomStateValue(objectMetadataItemsState);
|
||||
|
||||
+2
-2
@@ -1,11 +1,11 @@
|
||||
import {
|
||||
CreateOneObjectMetadataItemDocument,
|
||||
FindManyCoreViewsDocument,
|
||||
FindManyViewsDocument,
|
||||
} from '~/generated-metadata/graphql';
|
||||
|
||||
export const query = CreateOneObjectMetadataItemDocument;
|
||||
|
||||
export const findManyCoreViewsQuery = FindManyCoreViewsDocument;
|
||||
export const findManyViewsQuery = FindManyViewsDocument;
|
||||
|
||||
export const variables = {
|
||||
input: {
|
||||
|
||||
+3
-3
@@ -4,7 +4,7 @@ import { useCreateOneObjectMetadataItem } from '@/object-metadata/hooks/useCreat
|
||||
|
||||
import { getJestMetadataAndApolloMocksWrapper } from '~/testing/jest/getJestMetadataAndApolloMocksWrapper';
|
||||
import {
|
||||
findManyCoreViewsQuery,
|
||||
findManyViewsQuery,
|
||||
query,
|
||||
responseData,
|
||||
variables,
|
||||
@@ -52,14 +52,14 @@ const mocks = [
|
||||
},
|
||||
{
|
||||
request: {
|
||||
query: findManyCoreViewsQuery,
|
||||
query: findManyViewsQuery,
|
||||
variables: {
|
||||
objectMetadataId: responseData.id,
|
||||
},
|
||||
},
|
||||
result: jest.fn(() => ({
|
||||
data: {
|
||||
getCoreViews: [],
|
||||
getViews: [],
|
||||
},
|
||||
})),
|
||||
},
|
||||
|
||||
+4
-4
@@ -10,10 +10,10 @@ import {
|
||||
|
||||
import { jestExpectSuccessfulMetadataRequestResult } from '@/object-metadata/hooks/__tests__/utils/jest-expect-metadata-request-status.util';
|
||||
import { GET_CURRENT_USER } from '@/users/graphql/queries/getCurrentUser';
|
||||
import { FIND_ALL_CORE_VIEWS } from '@/views/graphql/queries/findAllCoreViews';
|
||||
import { FIND_ALL_VIEWS } from '@/views/graphql/queries/findAllViews';
|
||||
import { getJestMetadataAndApolloMocksWrapper } from '~/testing/jest/getJestMetadataAndApolloMocksWrapper';
|
||||
import { mockedUserData } from '~/testing/mock-data/users';
|
||||
import { mockedCoreViews } from '~/testing/mock-data/generated/metadata/views/mock-views-data';
|
||||
import { mockedViews } from '~/testing/mock-data/generated/metadata/views/mock-views-data';
|
||||
import {
|
||||
query as findManyObjectMetadataItemsQuery,
|
||||
responseData as findManyObjectMetadataItemsResponseData,
|
||||
@@ -44,12 +44,12 @@ const mocks = [
|
||||
},
|
||||
{
|
||||
request: {
|
||||
query: FIND_ALL_CORE_VIEWS,
|
||||
query: FIND_ALL_VIEWS,
|
||||
variables: {},
|
||||
},
|
||||
result: jest.fn(() => ({
|
||||
data: {
|
||||
getCoreViews: mockedCoreViews,
|
||||
getViews: mockedViews,
|
||||
},
|
||||
})),
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user