Create empty page for calendar table (#14479)
<img width="1512" height="876" alt="image" src="https://github.com/user-attachments/assets/e845fb3a-9977-4ab7-9eb7-4e60e499165b" />
This commit is contained in:
+1
@@ -98,6 +98,7 @@ const createStory = (contentId: ObjectOptionsContentId | null): Story => ({
|
||||
objectNameSingular: 'company',
|
||||
objectMetadataItem: companyObjectMetadataItem,
|
||||
recordIndexId: instanceId,
|
||||
viewBarInstanceId: instanceId,
|
||||
fieldDefinitionByFieldMetadataItemId,
|
||||
fieldMetadataItemByFieldMetadataItemId,
|
||||
labelIdentifierFieldMetadataItem,
|
||||
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
import { type ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
|
||||
import { type RecordField } from '@/object-record/record-field/types/RecordField';
|
||||
import { type ObjectPermission } from '~/generated/graphql';
|
||||
import { createRequiredContext } from '~/utils/createRequiredContext';
|
||||
|
||||
type RecordCalendarContextValue = {
|
||||
viewBarInstanceId: string;
|
||||
objectNameSingular: string;
|
||||
objectMetadataItem: ObjectMetadataItem;
|
||||
objectPermissions: ObjectPermission;
|
||||
visibleRecordFields: RecordField[];
|
||||
};
|
||||
|
||||
export const [RecordCalendarContextProvider, useRecordCalendarContextOrThrow] =
|
||||
createRequiredContext<RecordCalendarContextValue>('RecordCalendarContext');
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
import { createComponentInstanceContext } from '@/ui/utilities/state/component-state/utils/createComponentInstanceContext';
|
||||
|
||||
export const RecordCalendarComponentInstanceContext =
|
||||
createComponentInstanceContext();
|
||||
+1
@@ -48,6 +48,7 @@ const meta: Meta = {
|
||||
objectNameSingular: CoreObjectNameSingular.Company,
|
||||
objectMetadataItem: companyObjectMetadataItem,
|
||||
recordIndexId: instanceId,
|
||||
viewBarInstanceId: instanceId,
|
||||
fieldDefinitionByFieldMetadataItemId,
|
||||
fieldMetadataItemByFieldMetadataItemId,
|
||||
labelIdentifierFieldMetadataItem,
|
||||
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
|
||||
import { useObjectPermissionsForObject } from '@/object-record/hooks/useObjectPermissionsForObject';
|
||||
import { RecordCalendarContextProvider } from '@/object-record/record-calendar/contexts/RecordCalendarContext';
|
||||
import { RecordCalendarComponentInstanceContext } from '@/object-record/record-calendar/states/contexts/RecordCalendarComponentInstanceContext';
|
||||
import { useRecordIndexContextOrThrow } from '@/object-record/record-index/contexts/RecordIndexContext';
|
||||
|
||||
type RecordIndexCalendarContainerProps = {
|
||||
recordCalendarInstanceId: string;
|
||||
viewBarInstanceId: string;
|
||||
};
|
||||
|
||||
export const RecordIndexCalendarContainer = ({
|
||||
viewBarInstanceId,
|
||||
recordCalendarInstanceId,
|
||||
}: RecordIndexCalendarContainerProps) => {
|
||||
const { objectNameSingular } = useRecordIndexContextOrThrow();
|
||||
|
||||
const { objectMetadataItem } = useObjectMetadataItem({
|
||||
objectNameSingular,
|
||||
});
|
||||
|
||||
const objectPermissions = useObjectPermissionsForObject(
|
||||
objectMetadataItem.id,
|
||||
);
|
||||
|
||||
return (
|
||||
<RecordCalendarComponentInstanceContext.Provider
|
||||
value={{
|
||||
instanceId: recordCalendarInstanceId,
|
||||
}}
|
||||
>
|
||||
<RecordCalendarContextProvider
|
||||
value={{
|
||||
viewBarInstanceId,
|
||||
objectNameSingular,
|
||||
visibleRecordFields: [],
|
||||
objectMetadataItem,
|
||||
objectPermissions,
|
||||
}}
|
||||
>
|
||||
Calendar View
|
||||
</RecordCalendarContextProvider>
|
||||
</RecordCalendarComponentInstanceContext.Provider>
|
||||
);
|
||||
};
|
||||
+10
-4
@@ -13,6 +13,7 @@ import { InformationBannerWrapper } from '@/information-banner/components/Inform
|
||||
import { useRecordIndexContextOrThrow } from '@/object-record/record-index/contexts/RecordIndexContext';
|
||||
import { SpreadsheetImportProvider } from '@/spreadsheet-import/provider/components/SpreadsheetImportProvider';
|
||||
|
||||
import { RecordIndexCalendarContainer } from '@/object-record/record-index/components/RecordIndexCalendarContainer';
|
||||
import { RecordIndexFiltersToContextStoreEffect } from '@/object-record/record-index/components/RecordIndexFiltersToContextStoreEffect';
|
||||
import { RecordIndexTableContainerEffect } from '@/object-record/record-index/components/RecordIndexTableContainerEffect';
|
||||
import { ViewBar } from '@/views/components/ViewBar';
|
||||
@@ -66,10 +67,7 @@ export const RecordIndexContainer = () => {
|
||||
<RecordIndexFiltersToContextStoreEffect />
|
||||
{recordIndexViewType === ViewType.Table && (
|
||||
<>
|
||||
<RecordIndexTableContainer
|
||||
recordTableId={recordIndexId}
|
||||
viewBarId={recordIndexId}
|
||||
/>
|
||||
<RecordIndexTableContainer recordTableId={recordIndexId} />
|
||||
<RecordIndexTableContainerEffect />
|
||||
</>
|
||||
)}
|
||||
@@ -87,6 +85,14 @@ export const RecordIndexContainer = () => {
|
||||
<RecordIndexBoardDataLoaderEffect recordBoardId={recordIndexId} />
|
||||
</StyledContainerWithPadding>
|
||||
)}
|
||||
{recordIndexViewType === ViewType.Calendar && (
|
||||
<StyledContainerWithPadding>
|
||||
<RecordIndexCalendarContainer
|
||||
recordCalendarInstanceId={recordIndexId}
|
||||
viewBarInstanceId={recordIndexId}
|
||||
/>
|
||||
</StyledContainerWithPadding>
|
||||
)}
|
||||
</StyledContainer>
|
||||
</>
|
||||
);
|
||||
|
||||
+1
@@ -73,6 +73,7 @@ export const RecordIndexContainerGater = () => {
|
||||
value={{
|
||||
objectPermissionsByObjectMetadataId,
|
||||
recordIndexId,
|
||||
viewBarInstanceId: recordIndexId,
|
||||
objectNamePlural: objectMetadataItem.namePlural,
|
||||
objectNameSingular: objectMetadataItem.nameSingular,
|
||||
objectMetadataItem,
|
||||
|
||||
+3
-4
@@ -9,14 +9,13 @@ import { useRecoilComponentValue } from '@/ui/utilities/state/component-state/ho
|
||||
|
||||
type RecordIndexTableContainerProps = {
|
||||
recordTableId: string;
|
||||
viewBarId: string;
|
||||
};
|
||||
|
||||
export const RecordIndexTableContainer = ({
|
||||
recordTableId,
|
||||
viewBarId,
|
||||
}: RecordIndexTableContainerProps) => {
|
||||
const { objectNameSingular } = useRecordIndexContextOrThrow();
|
||||
const { objectNameSingular, viewBarInstanceId } =
|
||||
useRecordIndexContextOrThrow();
|
||||
|
||||
const isRecordIndexRemoveSortingModalOpened = useRecoilComponentValue(
|
||||
isModalOpenedComponentState,
|
||||
@@ -39,7 +38,7 @@ export const RecordIndexTableContainer = ({
|
||||
<RecordTableWithWrappers
|
||||
recordTableId={recordTableId}
|
||||
objectNameSingular={objectNameSingular}
|
||||
viewBarId={viewBarId}
|
||||
viewBarId={viewBarInstanceId}
|
||||
updateRecordMutation={updateEntity}
|
||||
/>
|
||||
{isRecordIndexRemoveSortingModalOpened && (
|
||||
|
||||
+1
@@ -17,6 +17,7 @@ export type RecordIndexContextValue = {
|
||||
ObjectPermissions & { objectMetadataId: string }
|
||||
>;
|
||||
recordIndexId: string;
|
||||
viewBarInstanceId: string;
|
||||
recordFieldByFieldMetadataItemId: Record<string, RecordField>;
|
||||
labelIdentifierFieldMetadataItem: FieldMetadataItem | undefined;
|
||||
fieldMetadataItemByFieldMetadataItemId: Record<string, FieldMetadataItem>;
|
||||
|
||||
+1
@@ -142,6 +142,7 @@ const meta: Meta = {
|
||||
// TODO: update performance mocks with new data, and merge with common mocks if possible
|
||||
objectMetadataItem: mockPerformance.objectMetadataItem as any,
|
||||
recordIndexId: 'recordIndexId',
|
||||
viewBarInstanceId: 'recordIndexId',
|
||||
fieldDefinitionByFieldMetadataItemId,
|
||||
fieldMetadataItemByFieldMetadataItemId,
|
||||
labelIdentifierFieldMetadataItem,
|
||||
|
||||
+1
@@ -34,6 +34,7 @@ export const SettingsDataModelLabelIdentifierPreviewContextWrapper = ({
|
||||
objectMetadataItem,
|
||||
objectPermissionsByObjectMetadataId: {},
|
||||
recordIndexId: '',
|
||||
viewBarInstanceId: '',
|
||||
recordFieldByFieldMetadataItemId: {},
|
||||
labelIdentifierFieldMetadataItem,
|
||||
fieldMetadataItemByFieldMetadataItemId: {},
|
||||
|
||||
+1
@@ -56,6 +56,7 @@ export const SignInBackgroundMockContainer = () => {
|
||||
value={{
|
||||
objectPermissionsByObjectMetadataId: {},
|
||||
recordIndexId,
|
||||
viewBarInstanceId: recordIndexId,
|
||||
objectNamePlural,
|
||||
objectNameSingular,
|
||||
objectMetadataItem: objectMetadataItem ?? objectMetadataItems[0],
|
||||
|
||||
+1
@@ -93,6 +93,7 @@ const meta: Meta<typeof ViewBarFilterDropdown> = {
|
||||
objectNameSingular: CoreObjectNameSingular.Company,
|
||||
objectMetadataItem: companyObjectMetadataItem,
|
||||
recordIndexId: instanceId,
|
||||
viewBarInstanceId: instanceId,
|
||||
labelIdentifierFieldMetadataItem,
|
||||
recordFieldByFieldMetadataItemId,
|
||||
fieldDefinitionByFieldMetadataItemId,
|
||||
|
||||
+1
@@ -185,6 +185,7 @@ export const WorkflowEditActionFindRecords = ({
|
||||
objectNameSingular: selectedObjectMetadataItem.nameSingular,
|
||||
objectMetadataItem: selectedObjectMetadataItem,
|
||||
recordIndexId: instanceId,
|
||||
viewBarInstanceId: instanceId,
|
||||
objectPermissionsByObjectMetadataId,
|
||||
labelIdentifierFieldMetadataItem,
|
||||
recordFieldByFieldMetadataItemId,
|
||||
|
||||
@@ -145,6 +145,7 @@ const InternalTableContextProviders = ({
|
||||
objectMetadataItem: objectMetadataItem,
|
||||
objectPermissionsByObjectMetadataId,
|
||||
recordIndexId: 'record-index',
|
||||
viewBarInstanceId: 'viewBarInstanceId',
|
||||
labelIdentifierFieldMetadataItem,
|
||||
recordFieldByFieldMetadataItemId,
|
||||
fieldDefinitionByFieldMetadataItemId,
|
||||
|
||||
@@ -28,6 +28,7 @@ export const JestRecordIndexContextProviderWrapper = ({
|
||||
objectNameSingular: objectMetadataItem.nameSingular,
|
||||
objectMetadataItem: objectMetadataItem,
|
||||
recordIndexId: 'recordIndexId',
|
||||
viewBarInstanceId: 'recordIndexId',
|
||||
labelIdentifierFieldMetadataItem,
|
||||
recordFieldByFieldMetadataItemId,
|
||||
fieldDefinitionByFieldMetadataItemId,
|
||||
|
||||
+5
@@ -70,6 +70,11 @@ export const seedFeatureFlags = async (
|
||||
workspaceId: workspaceId,
|
||||
value: false,
|
||||
},
|
||||
{
|
||||
key: FeatureFlagKey.IS_CALENDAR_VIEW_ENABLED,
|
||||
workspaceId: workspaceId,
|
||||
value: true,
|
||||
},
|
||||
])
|
||||
.execute();
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user