Only store current object metadata id in state (#10856)
Fix group by refresh when adding a select field
This commit is contained in:
@ -2,17 +2,28 @@ import { RegisterRecordActionEffect } from '@/action-menu/actions/record-actions
|
|||||||
import { WorkflowRunRecordActionMenuEntrySetterEffect } from '@/action-menu/actions/record-actions/workflow-run-record-actions/components/WorkflowRunRecordActionMenuEntrySetter';
|
import { WorkflowRunRecordActionMenuEntrySetterEffect } from '@/action-menu/actions/record-actions/workflow-run-record-actions/components/WorkflowRunRecordActionMenuEntrySetter';
|
||||||
import { getActionConfig } from '@/action-menu/actions/utils/getActionConfig';
|
import { getActionConfig } from '@/action-menu/actions/utils/getActionConfig';
|
||||||
import { getActionViewType } from '@/action-menu/actions/utils/getActionViewType';
|
import { getActionViewType } from '@/action-menu/actions/utils/getActionViewType';
|
||||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
import { COMMAND_MENU_COMPONENT_INSTANCE_ID } from '@/command-menu/constants/CommandMenuComponentInstanceId';
|
||||||
|
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||||
import { contextStoreCurrentViewTypeComponentState } from '@/context-store/states/contextStoreCurrentViewTypeComponentState';
|
import { contextStoreCurrentViewTypeComponentState } from '@/context-store/states/contextStoreCurrentViewTypeComponentState';
|
||||||
import { contextStoreTargetedRecordsRuleComponentState } from '@/context-store/states/contextStoreTargetedRecordsRuleComponentState';
|
import { contextStoreTargetedRecordsRuleComponentState } from '@/context-store/states/contextStoreTargetedRecordsRuleComponentState';
|
||||||
|
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
|
||||||
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
||||||
import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
|
import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
|
||||||
|
import { useRecoilValue } from 'recoil';
|
||||||
import { isDefined } from 'twenty-shared';
|
import { isDefined } from 'twenty-shared';
|
||||||
import { FeatureFlagKey } from '~/generated/graphql';
|
import { FeatureFlagKey } from '~/generated/graphql';
|
||||||
|
|
||||||
export const RecordActionMenuEntriesSetter = () => {
|
export const RecordActionMenuEntriesSetter = () => {
|
||||||
const contextStoreCurrentObjectMetadataItem = useRecoilComponentValueV2(
|
const contextStoreCurrentObjectMetadataItemId = useRecoilComponentValueV2(
|
||||||
contextStoreCurrentObjectMetadataItemComponentState,
|
contextStoreCurrentObjectMetadataItemIdComponentState,
|
||||||
|
COMMAND_MENU_COMPONENT_INSTANCE_ID,
|
||||||
|
);
|
||||||
|
|
||||||
|
const objectMetadataItems = useRecoilValue(objectMetadataItemsState);
|
||||||
|
|
||||||
|
const objectMetadataItem = objectMetadataItems.find(
|
||||||
|
(objectMetadataItem) =>
|
||||||
|
objectMetadataItem.id === contextStoreCurrentObjectMetadataItemId,
|
||||||
);
|
);
|
||||||
|
|
||||||
const contextStoreTargetedRecordsRule = useRecoilComponentValueV2(
|
const contextStoreTargetedRecordsRule = useRecoilComponentValueV2(
|
||||||
@ -27,7 +38,7 @@ export const RecordActionMenuEntriesSetter = () => {
|
|||||||
FeatureFlagKey.IsWorkflowEnabled,
|
FeatureFlagKey.IsWorkflowEnabled,
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!isDefined(contextStoreCurrentObjectMetadataItem)) {
|
if (!isDefined(objectMetadataItem)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -36,7 +47,7 @@ export const RecordActionMenuEntriesSetter = () => {
|
|||||||
contextStoreTargetedRecordsRule,
|
contextStoreTargetedRecordsRule,
|
||||||
);
|
);
|
||||||
|
|
||||||
const actionConfig = getActionConfig(contextStoreCurrentObjectMetadataItem);
|
const actionConfig = getActionConfig(objectMetadataItem);
|
||||||
|
|
||||||
const actionsToRegister = isDefined(viewType)
|
const actionsToRegister = isDefined(viewType)
|
||||||
? Object.values(actionConfig ?? {}).filter((action) =>
|
? Object.values(actionConfig ?? {}).filter((action) =>
|
||||||
@ -50,7 +61,7 @@ export const RecordActionMenuEntriesSetter = () => {
|
|||||||
<RegisterRecordActionEffect
|
<RegisterRecordActionEffect
|
||||||
key={action.key}
|
key={action.key}
|
||||||
action={action}
|
action={action}
|
||||||
objectMetadataItem={contextStoreCurrentObjectMetadataItem}
|
objectMetadataItem={objectMetadataItem}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
|
|
||||||
@ -58,7 +69,7 @@ export const RecordActionMenuEntriesSetter = () => {
|
|||||||
contextStoreTargetedRecordsRule?.mode === 'selection' &&
|
contextStoreTargetedRecordsRule?.mode === 'selection' &&
|
||||||
contextStoreTargetedRecordsRule?.selectedRecordIds.length === 1 && (
|
contextStoreTargetedRecordsRule?.selectedRecordIds.length === 1 && (
|
||||||
<WorkflowRunRecordActionMenuEntrySetterEffect
|
<WorkflowRunRecordActionMenuEntrySetterEffect
|
||||||
objectMetadataItem={contextStoreCurrentObjectMetadataItem}
|
objectMetadataItem={objectMetadataItem}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import { ActionMenuConfirmationModals } from '@/action-menu/components/ActionMen
|
|||||||
import { RecordIndexActionMenuButtons } from '@/action-menu/components/RecordIndexActionMenuButtons';
|
import { RecordIndexActionMenuButtons } from '@/action-menu/components/RecordIndexActionMenuButtons';
|
||||||
import { RecordIndexActionMenuDropdown } from '@/action-menu/components/RecordIndexActionMenuDropdown';
|
import { RecordIndexActionMenuDropdown } from '@/action-menu/components/RecordIndexActionMenuDropdown';
|
||||||
import { ActionMenuContext } from '@/action-menu/contexts/ActionMenuContext';
|
import { ActionMenuContext } from '@/action-menu/contexts/ActionMenuContext';
|
||||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||||
import { isRecordIndexLoadMoreLockedComponentState } from '@/object-record/record-index/states/isRecordIndexLoadMoreLockedComponentState';
|
import { isRecordIndexLoadMoreLockedComponentState } from '@/object-record/record-index/states/isRecordIndexLoadMoreLockedComponentState';
|
||||||
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
||||||
import { useSetRecoilComponentStateV2 } from '@/ui/utilities/state/component-state/hooks/useSetRecoilComponentStateV2';
|
import { useSetRecoilComponentStateV2 } from '@/ui/utilities/state/component-state/hooks/useSetRecoilComponentStateV2';
|
||||||
@ -15,8 +15,8 @@ import { useIsMobile } from 'twenty-ui';
|
|||||||
import { FeatureFlagKey } from '~/generated/graphql';
|
import { FeatureFlagKey } from '~/generated/graphql';
|
||||||
|
|
||||||
export const RecordIndexActionMenu = ({ indexId }: { indexId: string }) => {
|
export const RecordIndexActionMenu = ({ indexId }: { indexId: string }) => {
|
||||||
const contextStoreCurrentObjectMetadataItem = useRecoilComponentValueV2(
|
const contextStoreCurrentObjectMetadataItemId = useRecoilComponentValueV2(
|
||||||
contextStoreCurrentObjectMetadataItemComponentState,
|
contextStoreCurrentObjectMetadataItemIdComponentState,
|
||||||
);
|
);
|
||||||
|
|
||||||
const isWorkflowEnabled = useIsFeatureEnabled(
|
const isWorkflowEnabled = useIsFeatureEnabled(
|
||||||
@ -32,7 +32,7 @@ export const RecordIndexActionMenu = ({ indexId }: { indexId: string }) => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{contextStoreCurrentObjectMetadataItem && (
|
{contextStoreCurrentObjectMetadataItemId && (
|
||||||
<ActionMenuContext.Provider
|
<ActionMenuContext.Provider
|
||||||
value={{
|
value={{
|
||||||
isInRightDrawer: false,
|
isInRightDrawer: false,
|
||||||
|
|||||||
@ -4,14 +4,14 @@ import { RunWorkflowRecordAgnosticActionMenuEntriesSetter } from '@/action-menu/
|
|||||||
import { ActionMenuConfirmationModals } from '@/action-menu/components/ActionMenuConfirmationModals';
|
import { ActionMenuConfirmationModals } from '@/action-menu/components/ActionMenuConfirmationModals';
|
||||||
import { RecordShowActionMenuButtons } from '@/action-menu/components/RecordShowActionMenuButtons';
|
import { RecordShowActionMenuButtons } from '@/action-menu/components/RecordShowActionMenuButtons';
|
||||||
import { ActionMenuContext } from '@/action-menu/contexts/ActionMenuContext';
|
import { ActionMenuContext } from '@/action-menu/contexts/ActionMenuContext';
|
||||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||||
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
||||||
import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
|
import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
|
||||||
import { FeatureFlagKey } from '~/generated/graphql';
|
import { FeatureFlagKey } from '~/generated/graphql';
|
||||||
|
|
||||||
export const RecordShowActionMenu = () => {
|
export const RecordShowActionMenu = () => {
|
||||||
const contextStoreCurrentObjectMetadataItem = useRecoilComponentValueV2(
|
const contextStoreCurrentObjectMetadataItemId = useRecoilComponentValueV2(
|
||||||
contextStoreCurrentObjectMetadataItemComponentState,
|
contextStoreCurrentObjectMetadataItemIdComponentState,
|
||||||
);
|
);
|
||||||
|
|
||||||
const isWorkflowEnabled = useIsFeatureEnabled(
|
const isWorkflowEnabled = useIsFeatureEnabled(
|
||||||
@ -20,7 +20,7 @@ export const RecordShowActionMenu = () => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{contextStoreCurrentObjectMetadataItem && (
|
{contextStoreCurrentObjectMetadataItemId && (
|
||||||
<ActionMenuContext.Provider
|
<ActionMenuContext.Provider
|
||||||
value={{
|
value={{
|
||||||
isInRightDrawer: false,
|
isInRightDrawer: false,
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import { ActionMenuConfirmationModals } from '@/action-menu/components/ActionMen
|
|||||||
import { CommandMenuActionMenuDropdown } from '@/action-menu/components/CommandMenuActionMenuDropdown';
|
import { CommandMenuActionMenuDropdown } from '@/action-menu/components/CommandMenuActionMenuDropdown';
|
||||||
import { ActionMenuContext } from '@/action-menu/contexts/ActionMenuContext';
|
import { ActionMenuContext } from '@/action-menu/contexts/ActionMenuContext';
|
||||||
import { useCommandMenu } from '@/command-menu/hooks/useCommandMenu';
|
import { useCommandMenu } from '@/command-menu/hooks/useCommandMenu';
|
||||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||||
import { contextStoreTargetedRecordsRuleComponentState } from '@/context-store/states/contextStoreTargetedRecordsRuleComponentState';
|
import { contextStoreTargetedRecordsRuleComponentState } from '@/context-store/states/contextStoreTargetedRecordsRuleComponentState';
|
||||||
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
||||||
import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
|
import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
|
||||||
@ -14,8 +14,8 @@ import { isDefined } from 'twenty-shared';
|
|||||||
import { FeatureFlagKey } from '~/generated-metadata/graphql';
|
import { FeatureFlagKey } from '~/generated-metadata/graphql';
|
||||||
|
|
||||||
export const RecordShowRightDrawerActionMenu = () => {
|
export const RecordShowRightDrawerActionMenu = () => {
|
||||||
const contextStoreCurrentObjectMetadataItem = useRecoilComponentValueV2(
|
const contextStoreCurrentObjectMetadataItemId = useRecoilComponentValueV2(
|
||||||
contextStoreCurrentObjectMetadataItemComponentState,
|
contextStoreCurrentObjectMetadataItemIdComponentState,
|
||||||
);
|
);
|
||||||
|
|
||||||
const contextStoreTargetedRecordsRule = useRecoilComponentValueV2(
|
const contextStoreTargetedRecordsRule = useRecoilComponentValueV2(
|
||||||
@ -30,7 +30,7 @@ export const RecordShowRightDrawerActionMenu = () => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{contextStoreCurrentObjectMetadataItem && (
|
{contextStoreCurrentObjectMetadataItemId && (
|
||||||
<ActionMenuContext.Provider
|
<ActionMenuContext.Provider
|
||||||
value={{
|
value={{
|
||||||
isInRightDrawer: true,
|
isInRightDrawer: true,
|
||||||
|
|||||||
@ -5,7 +5,8 @@ import { RESET_CONTEXT_TO_SELECTION } from '@/command-menu/constants/ResetContex
|
|||||||
import { useMatchingCommandMenuCommands } from '@/command-menu/hooks/useMatchingCommandMenuCommands';
|
import { useMatchingCommandMenuCommands } from '@/command-menu/hooks/useMatchingCommandMenuCommands';
|
||||||
import { commandMenuSearchState } from '@/command-menu/states/commandMenuSearchState';
|
import { commandMenuSearchState } from '@/command-menu/states/commandMenuSearchState';
|
||||||
import { Command } from '@/command-menu/types/Command';
|
import { Command } from '@/command-menu/types/Command';
|
||||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
import { useContextStoreObjectMetadataItemOrThrow } from '@/context-store/hooks/useContextStoreObjectMetadataItemOrThrow';
|
||||||
|
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||||
import { SelectableItem } from '@/ui/layout/selectable-list/components/SelectableItem';
|
import { SelectableItem } from '@/ui/layout/selectable-list/components/SelectableItem';
|
||||||
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
||||||
import { useLingui } from '@lingui/react/macro';
|
import { useLingui } from '@lingui/react/macro';
|
||||||
@ -35,15 +36,14 @@ export const CommandMenu = () => {
|
|||||||
commandMenuSearch,
|
commandMenuSearch,
|
||||||
});
|
});
|
||||||
|
|
||||||
const previousContextStoreCurrentObjectMetadataItem =
|
const previousContextStoreCurrentObjectMetadataItemId =
|
||||||
useRecoilComponentValueV2(
|
useRecoilComponentValueV2(
|
||||||
contextStoreCurrentObjectMetadataItemComponentState,
|
contextStoreCurrentObjectMetadataItemIdComponentState,
|
||||||
'command-menu-previous',
|
'command-menu-previous',
|
||||||
);
|
);
|
||||||
|
|
||||||
const currentObjectMetadataItem = useRecoilComponentValueV2(
|
const { objectMetadataItem: currentObjectMetadataItem } =
|
||||||
contextStoreCurrentObjectMetadataItemComponentState,
|
useContextStoreObjectMetadataItemOrThrow();
|
||||||
);
|
|
||||||
|
|
||||||
const commandGroups: CommandGroupConfig[] = [
|
const commandGroups: CommandGroupConfig[] = [
|
||||||
{
|
{
|
||||||
@ -74,7 +74,7 @@ export const CommandMenu = () => {
|
|||||||
|
|
||||||
const selectableItemIds = selectableItems.map((item) => item.id);
|
const selectableItemIds = selectableItems.map((item) => item.id);
|
||||||
|
|
||||||
if (isDefined(previousContextStoreCurrentObjectMetadataItem)) {
|
if (isDefined(previousContextStoreCurrentObjectMetadataItemId)) {
|
||||||
selectableItemIds.unshift(RESET_CONTEXT_TO_SELECTION);
|
selectableItemIds.unshift(RESET_CONTEXT_TO_SELECTION);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -84,7 +84,7 @@ export const CommandMenu = () => {
|
|||||||
selectableItemIds={selectableItemIds}
|
selectableItemIds={selectableItemIds}
|
||||||
noResults={noResults}
|
noResults={noResults}
|
||||||
>
|
>
|
||||||
{isDefined(previousContextStoreCurrentObjectMetadataItem) && (
|
{isDefined(previousContextStoreCurrentObjectMetadataItemId) && (
|
||||||
<CommandGroup heading={t`Context`}>
|
<CommandGroup heading={t`Context`}>
|
||||||
<SelectableItem itemId={RESET_CONTEXT_TO_SELECTION}>
|
<SelectableItem itemId={RESET_CONTEXT_TO_SELECTION}>
|
||||||
<ResetContextToSelectionCommandButton />
|
<ResetContextToSelectionCommandButton />
|
||||||
|
|||||||
@ -13,9 +13,10 @@ import { useCommandMenuHotKeys } from '@/command-menu/hooks/useCommandMenuHotKey
|
|||||||
import { commandMenuSearchState } from '@/command-menu/states/commandMenuSearchState';
|
import { commandMenuSearchState } from '@/command-menu/states/commandMenuSearchState';
|
||||||
import { isCommandMenuOpenedState } from '@/command-menu/states/isCommandMenuOpenedState';
|
import { isCommandMenuOpenedState } from '@/command-menu/states/isCommandMenuOpenedState';
|
||||||
import { CommandMenuAnimationVariant } from '@/command-menu/types/CommandMenuAnimationVariant';
|
import { CommandMenuAnimationVariant } from '@/command-menu/types/CommandMenuAnimationVariant';
|
||||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||||
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
||||||
import { ContextStoreComponentInstanceContext } from '@/context-store/states/contexts/ContextStoreComponentInstanceContext';
|
import { ContextStoreComponentInstanceContext } from '@/context-store/states/contexts/ContextStoreComponentInstanceContext';
|
||||||
|
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
|
||||||
import { RecordFilterGroupsComponentInstanceContext } from '@/object-record/record-filter-group/states/context/RecordFilterGroupsComponentInstanceContext';
|
import { RecordFilterGroupsComponentInstanceContext } from '@/object-record/record-filter-group/states/context/RecordFilterGroupsComponentInstanceContext';
|
||||||
import { RecordFiltersComponentInstanceContext } from '@/object-record/record-filter/states/context/RecordFiltersComponentInstanceContext';
|
import { RecordFiltersComponentInstanceContext } from '@/object-record/record-filter/states/context/RecordFiltersComponentInstanceContext';
|
||||||
import { RecordSortsComponentInstanceContext } from '@/object-record/record-sort/states/context/RecordSortsComponentInstanceContext';
|
import { RecordSortsComponentInstanceContext } from '@/object-record/record-sort/states/context/RecordSortsComponentInstanceContext';
|
||||||
@ -87,20 +88,27 @@ export const CommandMenuContainer = ({
|
|||||||
|
|
||||||
const setCommandMenuSearch = useSetRecoilState(commandMenuSearchState);
|
const setCommandMenuSearch = useSetRecoilState(commandMenuSearchState);
|
||||||
|
|
||||||
const contextStoreCurrentObjectMetadataItem = useRecoilComponentValueV2(
|
const objectMetadataItemId = useRecoilComponentValueV2(
|
||||||
contextStoreCurrentObjectMetadataItemComponentState,
|
contextStoreCurrentObjectMetadataItemIdComponentState,
|
||||||
COMMAND_MENU_COMPONENT_INSTANCE_ID,
|
COMMAND_MENU_COMPONENT_INSTANCE_ID,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const objectMetadataItems = useRecoilValue(objectMetadataItemsState);
|
||||||
|
|
||||||
|
const objectMetadataItem = objectMetadataItems.find(
|
||||||
|
(objectMetadataItem) => objectMetadataItem.id === objectMetadataItemId,
|
||||||
|
);
|
||||||
|
|
||||||
const currentViewId = useRecoilComponentValueV2(
|
const currentViewId = useRecoilComponentValueV2(
|
||||||
contextStoreCurrentViewIdComponentState,
|
contextStoreCurrentViewIdComponentState,
|
||||||
COMMAND_MENU_COMPONENT_INSTANCE_ID,
|
COMMAND_MENU_COMPONENT_INSTANCE_ID,
|
||||||
);
|
);
|
||||||
|
|
||||||
const recordIndexId = getRecordIndexIdFromObjectNamePluralAndViewId(
|
const recordIndexId = getRecordIndexIdFromObjectNamePluralAndViewId(
|
||||||
contextStoreCurrentObjectMetadataItem?.namePlural ?? '',
|
objectMetadataItem?.namePlural ?? '',
|
||||||
currentViewId ?? '',
|
currentViewId ?? '',
|
||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<RecordFilterGroupsComponentInstanceContext.Provider
|
<RecordFilterGroupsComponentInstanceContext.Provider
|
||||||
value={{ instanceId: recordIndexId }}
|
value={{ instanceId: recordIndexId }}
|
||||||
|
|||||||
@ -2,6 +2,7 @@ import { CommandMenuContextChip } from '@/command-menu/components/CommandMenuCon
|
|||||||
import { CommandMenuContextChipGroups } from '@/command-menu/components/CommandMenuContextChipGroups';
|
import { CommandMenuContextChipGroups } from '@/command-menu/components/CommandMenuContextChipGroups';
|
||||||
import { CommandMenuContextChipGroupsWithRecordSelection } from '@/command-menu/components/CommandMenuContextChipGroupsWithRecordSelection';
|
import { CommandMenuContextChipGroupsWithRecordSelection } from '@/command-menu/components/CommandMenuContextChipGroupsWithRecordSelection';
|
||||||
import { CommandMenuTopBarInputFocusEffect } from '@/command-menu/components/CommandMenuTopBarInputFocusEffect';
|
import { CommandMenuTopBarInputFocusEffect } from '@/command-menu/components/CommandMenuTopBarInputFocusEffect';
|
||||||
|
import { COMMAND_MENU_COMPONENT_INSTANCE_ID } from '@/command-menu/constants/CommandMenuComponentInstanceId';
|
||||||
import { COMMAND_MENU_SEARCH_BAR_HEIGHT } from '@/command-menu/constants/CommandMenuSearchBarHeight';
|
import { COMMAND_MENU_SEARCH_BAR_HEIGHT } from '@/command-menu/constants/CommandMenuSearchBarHeight';
|
||||||
import { COMMAND_MENU_SEARCH_BAR_PADDING } from '@/command-menu/constants/CommandMenuSearchBarPadding';
|
import { COMMAND_MENU_SEARCH_BAR_PADDING } from '@/command-menu/constants/CommandMenuSearchBarPadding';
|
||||||
import { useCommandMenu } from '@/command-menu/hooks/useCommandMenu';
|
import { useCommandMenu } from '@/command-menu/hooks/useCommandMenu';
|
||||||
@ -9,7 +10,7 @@ import { useCommandMenuContextChips } from '@/command-menu/hooks/useCommandMenuC
|
|||||||
import { commandMenuPageState } from '@/command-menu/states/commandMenuPageState';
|
import { commandMenuPageState } from '@/command-menu/states/commandMenuPageState';
|
||||||
import { commandMenuSearchState } from '@/command-menu/states/commandMenuSearchState';
|
import { commandMenuSearchState } from '@/command-menu/states/commandMenuSearchState';
|
||||||
import { CommandMenuPages } from '@/command-menu/types/CommandMenuPages';
|
import { CommandMenuPages } from '@/command-menu/types/CommandMenuPages';
|
||||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||||
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
||||||
import { useTheme } from '@emotion/react';
|
import { useTheme } from '@emotion/react';
|
||||||
import styled from '@emotion/styled';
|
import styled from '@emotion/styled';
|
||||||
@ -92,8 +93,9 @@ export const CommandMenuTopBar = () => {
|
|||||||
|
|
||||||
const { closeCommandMenu, goBackFromCommandMenu } = useCommandMenu();
|
const { closeCommandMenu, goBackFromCommandMenu } = useCommandMenu();
|
||||||
|
|
||||||
const contextStoreCurrentObjectMetadataItem = useRecoilComponentValueV2(
|
const contextStoreCurrentObjectMetadataItemId = useRecoilComponentValueV2(
|
||||||
contextStoreCurrentObjectMetadataItemComponentState,
|
contextStoreCurrentObjectMetadataItemIdComponentState,
|
||||||
|
COMMAND_MENU_COMPONENT_INSTANCE_ID,
|
||||||
);
|
);
|
||||||
|
|
||||||
const commandMenuPage = useRecoilValue(commandMenuPageState);
|
const commandMenuPage = useRecoilValue(commandMenuPageState);
|
||||||
@ -129,11 +131,11 @@ export const CommandMenuTopBar = () => {
|
|||||||
</motion.div>
|
</motion.div>
|
||||||
)}
|
)}
|
||||||
</AnimatePresence>
|
</AnimatePresence>
|
||||||
{isDefined(contextStoreCurrentObjectMetadataItem) &&
|
{isDefined(contextStoreCurrentObjectMetadataItemId) &&
|
||||||
commandMenuPage !== CommandMenuPages.SearchRecords ? (
|
commandMenuPage !== CommandMenuPages.SearchRecords ? (
|
||||||
<CommandMenuContextChipGroupsWithRecordSelection
|
<CommandMenuContextChipGroupsWithRecordSelection
|
||||||
contextChips={contextChips}
|
contextChips={contextChips}
|
||||||
objectMetadataItemId={contextStoreCurrentObjectMetadataItem.id}
|
objectMetadataItemId={contextStoreCurrentObjectMetadataItemId}
|
||||||
/>
|
/>
|
||||||
) : (
|
) : (
|
||||||
<CommandMenuContextChipGroups contextChips={contextChips} />
|
<CommandMenuContextChipGroups contextChips={contextChips} />
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import { CommandMenuContextRecordsChip } from '@/command-menu/components/Command
|
|||||||
import { CommandMenuItem } from '@/command-menu/components/CommandMenuItem';
|
import { CommandMenuItem } from '@/command-menu/components/CommandMenuItem';
|
||||||
import { RESET_CONTEXT_TO_SELECTION } from '@/command-menu/constants/ResetContextToSelection';
|
import { RESET_CONTEXT_TO_SELECTION } from '@/command-menu/constants/ResetContextToSelection';
|
||||||
import { useResetPreviousCommandMenuContext } from '@/command-menu/hooks/useResetPreviousCommandMenuContext';
|
import { useResetPreviousCommandMenuContext } from '@/command-menu/hooks/useResetPreviousCommandMenuContext';
|
||||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||||
import { contextStoreTargetedRecordsRuleComponentState } from '@/context-store/states/contextStoreTargetedRecordsRuleComponentState';
|
import { contextStoreTargetedRecordsRuleComponentState } from '@/context-store/states/contextStoreTargetedRecordsRuleComponentState';
|
||||||
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
|
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
|
||||||
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
||||||
@ -17,8 +17,8 @@ export const ResetContextToSelectionCommandButton = () => {
|
|||||||
'command-menu-previous',
|
'command-menu-previous',
|
||||||
);
|
);
|
||||||
|
|
||||||
const contextStoreCurrentObjectMetadataItem = useRecoilComponentValueV2(
|
const contextStoreCurrentObjectMetadataItemId = useRecoilComponentValueV2(
|
||||||
contextStoreCurrentObjectMetadataItemComponentState,
|
contextStoreCurrentObjectMetadataItemIdComponentState,
|
||||||
'command-menu-previous',
|
'command-menu-previous',
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ export const ResetContextToSelectionCommandButton = () => {
|
|||||||
|
|
||||||
const objectMetadataItem = objectMetadataItems.find(
|
const objectMetadataItem = objectMetadataItems.find(
|
||||||
(objectMetadataItem) =>
|
(objectMetadataItem) =>
|
||||||
objectMetadataItem.id === contextStoreCurrentObjectMetadataItem?.id,
|
objectMetadataItem.id === contextStoreCurrentObjectMetadataItemId,
|
||||||
);
|
);
|
||||||
|
|
||||||
const { resetPreviousCommandMenuContext } =
|
const { resetPreviousCommandMenuContext } =
|
||||||
|
|||||||
@ -33,7 +33,7 @@ import { hasUserSelectedCommandState } from '@/command-menu/states/hasUserSelect
|
|||||||
import { isCommandMenuClosingState } from '@/command-menu/states/isCommandMenuClosingState';
|
import { isCommandMenuClosingState } from '@/command-menu/states/isCommandMenuClosingState';
|
||||||
import { CommandMenuPages } from '@/command-menu/types/CommandMenuPages';
|
import { CommandMenuPages } from '@/command-menu/types/CommandMenuPages';
|
||||||
import { MAIN_CONTEXT_STORE_INSTANCE_ID } from '@/context-store/constants/MainContextStoreInstanceId';
|
import { MAIN_CONTEXT_STORE_INSTANCE_ID } from '@/context-store/constants/MainContextStoreInstanceId';
|
||||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||||
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
||||||
import { contextStoreCurrentViewTypeComponentState } from '@/context-store/states/contextStoreCurrentViewTypeComponentState';
|
import { contextStoreCurrentViewTypeComponentState } from '@/context-store/states/contextStoreCurrentViewTypeComponentState';
|
||||||
import { contextStoreFiltersComponentState } from '@/context-store/states/contextStoreFiltersComponentState';
|
import { contextStoreFiltersComponentState } from '@/context-store/states/contextStoreFiltersComponentState';
|
||||||
@ -374,10 +374,10 @@ export const useCommandMenu = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
set(
|
set(
|
||||||
contextStoreCurrentObjectMetadataItemComponentState.atomFamily({
|
contextStoreCurrentObjectMetadataItemIdComponentState.atomFamily({
|
||||||
instanceId: pageComponentInstanceId,
|
instanceId: pageComponentInstanceId,
|
||||||
}),
|
}),
|
||||||
objectMetadataItem,
|
objectMetadataItem.id,
|
||||||
);
|
);
|
||||||
|
|
||||||
set(
|
set(
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { actionMenuEntriesComponentState } from '@/action-menu/states/actionMenuEntriesComponentState';
|
import { actionMenuEntriesComponentState } from '@/action-menu/states/actionMenuEntriesComponentState';
|
||||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||||
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
||||||
import { contextStoreCurrentViewTypeComponentState } from '@/context-store/states/contextStoreCurrentViewTypeComponentState';
|
import { contextStoreCurrentViewTypeComponentState } from '@/context-store/states/contextStoreCurrentViewTypeComponentState';
|
||||||
import { contextStoreFiltersComponentState } from '@/context-store/states/contextStoreFiltersComponentState';
|
import { contextStoreFiltersComponentState } from '@/context-store/states/contextStoreFiltersComponentState';
|
||||||
@ -17,19 +17,19 @@ export const useCopyContextStoreStates = () => {
|
|||||||
instanceIdToCopyFrom: string;
|
instanceIdToCopyFrom: string;
|
||||||
instanceIdToCopyTo: string;
|
instanceIdToCopyTo: string;
|
||||||
}) => {
|
}) => {
|
||||||
const contextStoreCurrentObjectMetadataItem = snapshot
|
const contextStoreCurrentObjectMetadataItemId = snapshot
|
||||||
.getLoadable(
|
.getLoadable(
|
||||||
contextStoreCurrentObjectMetadataItemComponentState.atomFamily({
|
contextStoreCurrentObjectMetadataItemIdComponentState.atomFamily({
|
||||||
instanceId: instanceIdToCopyFrom,
|
instanceId: instanceIdToCopyFrom,
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
.getValue();
|
.getValue();
|
||||||
|
|
||||||
set(
|
set(
|
||||||
contextStoreCurrentObjectMetadataItemComponentState.atomFamily({
|
contextStoreCurrentObjectMetadataItemIdComponentState.atomFamily({
|
||||||
instanceId: instanceIdToCopyTo,
|
instanceId: instanceIdToCopyTo,
|
||||||
}),
|
}),
|
||||||
contextStoreCurrentObjectMetadataItem,
|
contextStoreCurrentObjectMetadataItemId,
|
||||||
);
|
);
|
||||||
|
|
||||||
const contextStoreTargetedRecordsRule = snapshot
|
const contextStoreTargetedRecordsRule = snapshot
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { actionMenuEntriesComponentState } from '@/action-menu/states/actionMenuEntriesComponentState';
|
import { actionMenuEntriesComponentState } from '@/action-menu/states/actionMenuEntriesComponentState';
|
||||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||||
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
||||||
import { contextStoreCurrentViewTypeComponentState } from '@/context-store/states/contextStoreCurrentViewTypeComponentState';
|
import { contextStoreCurrentViewTypeComponentState } from '@/context-store/states/contextStoreCurrentViewTypeComponentState';
|
||||||
import { contextStoreFiltersComponentState } from '@/context-store/states/contextStoreFiltersComponentState';
|
import { contextStoreFiltersComponentState } from '@/context-store/states/contextStoreFiltersComponentState';
|
||||||
@ -11,7 +11,7 @@ export const useResetContextStoreStates = () => {
|
|||||||
const resetContextStoreStates = useRecoilCallback(({ set }) => {
|
const resetContextStoreStates = useRecoilCallback(({ set }) => {
|
||||||
return (instanceId: string) => {
|
return (instanceId: string) => {
|
||||||
set(
|
set(
|
||||||
contextStoreCurrentObjectMetadataItemComponentState.atomFamily({
|
contextStoreCurrentObjectMetadataItemIdComponentState.atomFamily({
|
||||||
instanceId,
|
instanceId,
|
||||||
}),
|
}),
|
||||||
undefined,
|
undefined,
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { MAIN_CONTEXT_STORE_INSTANCE_ID } from '@/context-store/constants/MainContextStoreInstanceId';
|
import { MAIN_CONTEXT_STORE_INSTANCE_ID } from '@/context-store/constants/MainContextStoreInstanceId';
|
||||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||||
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
||||||
import { contextStoreCurrentViewTypeComponentState } from '@/context-store/states/contextStoreCurrentViewTypeComponentState';
|
import { contextStoreCurrentViewTypeComponentState } from '@/context-store/states/contextStoreCurrentViewTypeComponentState';
|
||||||
import { ContextStoreViewType } from '@/context-store/types/ContextStoreViewType';
|
import { ContextStoreViewType } from '@/context-store/types/ContextStoreViewType';
|
||||||
@ -40,10 +40,10 @@ export const MainContextStoreProviderEffect = ({
|
|||||||
);
|
);
|
||||||
|
|
||||||
const [
|
const [
|
||||||
contextStoreCurrentObjectMetadataItem,
|
contextStoreCurrentObjectMetadataItemId,
|
||||||
setContextStoreCurrentObjectMetadataItem,
|
setContextStoreCurrentObjectMetadataItemId,
|
||||||
] = useRecoilComponentStateV2(
|
] = useRecoilComponentStateV2(
|
||||||
contextStoreCurrentObjectMetadataItemComponentState,
|
contextStoreCurrentObjectMetadataItemIdComponentState,
|
||||||
MAIN_CONTEXT_STORE_INSTANCE_ID,
|
MAIN_CONTEXT_STORE_INSTANCE_ID,
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -54,8 +54,8 @@ export const MainContextStoreProviderEffect = ({
|
|||||||
);
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (contextStoreCurrentObjectMetadataItem?.id !== objectMetadataItem.id) {
|
if (contextStoreCurrentObjectMetadataItemId !== objectMetadataItem.id) {
|
||||||
setContextStoreCurrentObjectMetadataItem(objectMetadataItem);
|
setContextStoreCurrentObjectMetadataItemId(objectMetadataItem.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
setLastVisitedViewForObjectMetadataNamePlural({
|
setLastVisitedViewForObjectMetadataNamePlural({
|
||||||
@ -71,11 +71,11 @@ export const MainContextStoreProviderEffect = ({
|
|||||||
setContextStoreCurrentViewId(viewId);
|
setContextStoreCurrentViewId(viewId);
|
||||||
}
|
}
|
||||||
}, [
|
}, [
|
||||||
contextStoreCurrentObjectMetadataItem,
|
contextStoreCurrentObjectMetadataItemId,
|
||||||
contextStoreCurrentViewId,
|
contextStoreCurrentViewId,
|
||||||
objectMetadataItem,
|
objectMetadataItem,
|
||||||
objectMetadataItem.namePlural,
|
objectMetadataItem.namePlural,
|
||||||
setContextStoreCurrentObjectMetadataItem,
|
setContextStoreCurrentObjectMetadataItemId,
|
||||||
setContextStoreCurrentViewId,
|
setContextStoreCurrentViewId,
|
||||||
setLastVisitedObjectMetadataId,
|
setLastVisitedObjectMetadataId,
|
||||||
setLastVisitedViewForObjectMetadataNamePlural,
|
setLastVisitedViewForObjectMetadataNamePlural,
|
||||||
|
|||||||
@ -1,14 +1,19 @@
|
|||||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||||
|
import { useObjectMetadataItemById } from '@/object-metadata/hooks/useObjectMetadataItemById';
|
||||||
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
||||||
|
|
||||||
export const useContextStoreObjectMetadataItemOrThrow = (
|
export const useContextStoreObjectMetadataItemOrThrow = (
|
||||||
contextStoreInstanceId?: string,
|
contextStoreInstanceId?: string,
|
||||||
) => {
|
) => {
|
||||||
const objectMetadataItem = useRecoilComponentValueV2(
|
const objectMetadataItemId = useRecoilComponentValueV2(
|
||||||
contextStoreCurrentObjectMetadataItemComponentState,
|
contextStoreCurrentObjectMetadataItemIdComponentState,
|
||||||
contextStoreInstanceId,
|
contextStoreInstanceId,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const { objectMetadataItem } = useObjectMetadataItemById({
|
||||||
|
objectId: objectMetadataItemId ?? '',
|
||||||
|
});
|
||||||
|
|
||||||
if (!objectMetadataItem) {
|
if (!objectMetadataItem) {
|
||||||
throw new Error('Object metadata item is not set in context store');
|
throw new Error('Object metadata item is not set in context store');
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,8 @@
|
|||||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||||
import { contextStoreFiltersComponentState } from '@/context-store/states/contextStoreFiltersComponentState';
|
import { contextStoreFiltersComponentState } from '@/context-store/states/contextStoreFiltersComponentState';
|
||||||
import { contextStoreTargetedRecordsRuleComponentState } from '@/context-store/states/contextStoreTargetedRecordsRuleComponentState';
|
import { contextStoreTargetedRecordsRuleComponentState } from '@/context-store/states/contextStoreTargetedRecordsRuleComponentState';
|
||||||
import { computeContextStoreFilters } from '@/context-store/utils/computeContextStoreFilters';
|
import { computeContextStoreFilters } from '@/context-store/utils/computeContextStoreFilters';
|
||||||
|
import { useObjectMetadataItemById } from '@/object-metadata/hooks/useObjectMetadataItemById';
|
||||||
import { useFindManyRecords } from '@/object-record/hooks/useFindManyRecords';
|
import { useFindManyRecords } from '@/object-record/hooks/useFindManyRecords';
|
||||||
import { useFilterValueDependencies } from '@/object-record/record-filter/hooks/useFilterValueDependencies';
|
import { useFilterValueDependencies } from '@/object-record/record-filter/hooks/useFilterValueDependencies';
|
||||||
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
||||||
@ -13,11 +14,15 @@ export const useFindManyRecordsSelectedInContextStore = ({
|
|||||||
instanceId?: string;
|
instanceId?: string;
|
||||||
limit?: number;
|
limit?: number;
|
||||||
}) => {
|
}) => {
|
||||||
const objectMetadataItem = useRecoilComponentValueV2(
|
const contextStoreCurrentObjectMetadataItemId = useRecoilComponentValueV2(
|
||||||
contextStoreCurrentObjectMetadataItemComponentState,
|
contextStoreCurrentObjectMetadataItemIdComponentState,
|
||||||
instanceId,
|
instanceId,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const { objectMetadataItem } = useObjectMetadataItemById({
|
||||||
|
objectId: contextStoreCurrentObjectMetadataItemId ?? '',
|
||||||
|
});
|
||||||
|
|
||||||
const contextStoreTargetedRecordsRule = useRecoilComponentValueV2(
|
const contextStoreTargetedRecordsRule = useRecoilComponentValueV2(
|
||||||
contextStoreTargetedRecordsRuleComponentState,
|
contextStoreTargetedRecordsRuleComponentState,
|
||||||
instanceId,
|
instanceId,
|
||||||
|
|||||||
@ -1,10 +1,9 @@
|
|||||||
import { ContextStoreComponentInstanceContext } from '@/context-store/states/contexts/ContextStoreComponentInstanceContext';
|
import { ContextStoreComponentInstanceContext } from '@/context-store/states/contexts/ContextStoreComponentInstanceContext';
|
||||||
import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
|
|
||||||
import { createComponentStateV2 } from '@/ui/utilities/state/component-state/utils/createComponentStateV2';
|
import { createComponentStateV2 } from '@/ui/utilities/state/component-state/utils/createComponentStateV2';
|
||||||
|
|
||||||
export const contextStoreCurrentObjectMetadataItemComponentState =
|
export const contextStoreCurrentObjectMetadataItemIdComponentState =
|
||||||
createComponentStateV2<ObjectMetadataItem | undefined>({
|
createComponentStateV2<string | undefined>({
|
||||||
key: 'contextStoreCurrentObjectMetadataItemComponentState',
|
key: 'contextStoreCurrentObjectMetadataItemIdComponentState',
|
||||||
defaultValue: undefined,
|
defaultValue: undefined,
|
||||||
componentInstanceContext: ContextStoreComponentInstanceContext,
|
componentInstanceContext: ContextStoreComponentInstanceContext,
|
||||||
});
|
});
|
||||||
@ -24,12 +24,12 @@ import { DropdownMenuSeparator } from '@/ui/layout/dropdown/components/DropdownM
|
|||||||
import { navigationMemorizedUrlState } from '@/ui/navigation/states/navigationMemorizedUrlState';
|
import { navigationMemorizedUrlState } from '@/ui/navigation/states/navigationMemorizedUrlState';
|
||||||
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
||||||
import { ViewType } from '@/views/types/ViewType';
|
import { ViewType } from '@/views/types/ViewType';
|
||||||
|
import { useLingui } from '@lingui/react/macro';
|
||||||
import { useLocation } from 'react-router-dom';
|
import { useLocation } from 'react-router-dom';
|
||||||
import { useSetRecoilState } from 'recoil';
|
import { useSetRecoilState } from 'recoil';
|
||||||
import { isDefined } from 'twenty-shared';
|
import { isDefined } from 'twenty-shared';
|
||||||
import { FieldMetadataType } from '~/generated-metadata/graphql';
|
import { FieldMetadataType } from '~/generated-metadata/graphql';
|
||||||
import { getSettingsPath } from '~/utils/navigation/getSettingsPath';
|
import { getSettingsPath } from '~/utils/navigation/getSettingsPath';
|
||||||
import { useLingui } from '@lingui/react/macro';
|
|
||||||
|
|
||||||
export const ObjectOptionsDropdownRecordGroupFieldsContent = () => {
|
export const ObjectOptionsDropdownRecordGroupFieldsContent = () => {
|
||||||
const { t } = useLingui();
|
const { t } = useLingui();
|
||||||
|
|||||||
@ -1,26 +1,37 @@
|
|||||||
import { MAIN_CONTEXT_STORE_INSTANCE_ID } from '@/context-store/constants/MainContextStoreInstanceId';
|
import { MAIN_CONTEXT_STORE_INSTANCE_ID } from '@/context-store/constants/MainContextStoreInstanceId';
|
||||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||||
|
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
|
||||||
import { recordGroupDefinitionFamilyState } from '@/object-record/record-group/states/recordGroupDefinitionFamilyState';
|
import { recordGroupDefinitionFamilyState } from '@/object-record/record-group/states/recordGroupDefinitionFamilyState';
|
||||||
import { recordGroupFieldMetadataComponentState } from '@/object-record/record-group/states/recordGroupFieldMetadataComponentState';
|
import { recordGroupFieldMetadataComponentState } from '@/object-record/record-group/states/recordGroupFieldMetadataComponentState';
|
||||||
import { recordGroupIdsComponentState } from '@/object-record/record-group/states/recordGroupIdsComponentState';
|
import { recordGroupIdsComponentState } from '@/object-record/record-group/states/recordGroupIdsComponentState';
|
||||||
import { RecordGroupDefinition } from '@/object-record/record-group/types/RecordGroupDefinition';
|
import { RecordGroupDefinition } from '@/object-record/record-group/types/RecordGroupDefinition';
|
||||||
import { getSnapshotValue } from '@/ui/utilities/state/utils/getSnapshotValue';
|
import { getSnapshotValue } from '@/ui/utilities/state/utils/getSnapshotValue';
|
||||||
import { useRecoilCallback } from 'recoil';
|
import { useRecoilCallback } from 'recoil';
|
||||||
|
import { isDefined } from 'twenty-shared';
|
||||||
import { isDeeplyEqual } from '~/utils/isDeeplyEqual';
|
import { isDeeplyEqual } from '~/utils/isDeeplyEqual';
|
||||||
|
|
||||||
export const useSetRecordGroup = () => {
|
export const useSetRecordGroup = () => {
|
||||||
return useRecoilCallback(
|
return useRecoilCallback(
|
||||||
({ snapshot, set }) =>
|
({ snapshot, set }) =>
|
||||||
(recordGroups: RecordGroupDefinition[], recordIndexId: string) => {
|
(recordGroups: RecordGroupDefinition[], recordIndexId: string) => {
|
||||||
const objectMetadataItem = snapshot
|
const objectMetadataItemId = snapshot
|
||||||
.getLoadable(
|
.getLoadable(
|
||||||
contextStoreCurrentObjectMetadataItemComponentState.atomFamily({
|
contextStoreCurrentObjectMetadataItemIdComponentState.atomFamily({
|
||||||
instanceId: MAIN_CONTEXT_STORE_INSTANCE_ID,
|
instanceId: MAIN_CONTEXT_STORE_INSTANCE_ID,
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
.getValue();
|
.getValue();
|
||||||
|
|
||||||
if (!objectMetadataItem) {
|
const objectMetadataItems = snapshot
|
||||||
|
.getLoadable(objectMetadataItemsState)
|
||||||
|
.getValue();
|
||||||
|
|
||||||
|
const objectMetadataItem = objectMetadataItems.find(
|
||||||
|
(objectMetadataItem) =>
|
||||||
|
objectMetadataItem.id === objectMetadataItemId,
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!isDefined(objectMetadataItem)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
import { useContextStoreObjectMetadataItemOrThrow } from '@/context-store/hooks/useContextStoreObjectMetadataItemOrThrow';
|
||||||
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
||||||
import { useLoadRecordIndexStates } from '@/object-record/record-index/hooks/useLoadRecordIndexStates';
|
import { useLoadRecordIndexStates } from '@/object-record/record-index/hooks/useLoadRecordIndexStates';
|
||||||
import { prefetchViewFromViewIdFamilySelector } from '@/prefetch/states/selector/prefetchViewFromViewIdFamilySelector';
|
import { prefetchViewFromViewIdFamilySelector } from '@/prefetch/states/selector/prefetchViewFromViewIdFamilySelector';
|
||||||
@ -23,9 +23,7 @@ export const RecordIndexLoadBaseOnContextStoreEffect = () => {
|
|||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
const objectMetadataItem = useRecoilComponentValueV2(
|
const { objectMetadataItem } = useContextStoreObjectMetadataItemOrThrow();
|
||||||
contextStoreCurrentObjectMetadataItemComponentState,
|
|
||||||
);
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (loadedViewId === contextStoreCurrentViewId) {
|
if (loadedViewId === contextStoreCurrentViewId) {
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import styled from '@emotion/styled';
|
|||||||
|
|
||||||
import { ActionMenuComponentInstanceContext } from '@/action-menu/states/contexts/ActionMenuComponentInstanceContext';
|
import { ActionMenuComponentInstanceContext } from '@/action-menu/states/contexts/ActionMenuComponentInstanceContext';
|
||||||
import { MAIN_CONTEXT_STORE_INSTANCE_ID } from '@/context-store/constants/MainContextStoreInstanceId';
|
import { MAIN_CONTEXT_STORE_INSTANCE_ID } from '@/context-store/constants/MainContextStoreInstanceId';
|
||||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||||
import { ContextStoreComponentInstanceContext } from '@/context-store/states/contexts/ContextStoreComponentInstanceContext';
|
import { ContextStoreComponentInstanceContext } from '@/context-store/states/contexts/ContextStoreComponentInstanceContext';
|
||||||
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
|
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
|
||||||
import { RecordFilterGroupsComponentInstanceContext } from '@/object-record/record-filter-group/states/context/RecordFilterGroupsComponentInstanceContext';
|
import { RecordFilterGroupsComponentInstanceContext } from '@/object-record/record-filter-group/states/context/RecordFilterGroupsComponentInstanceContext';
|
||||||
@ -32,11 +32,15 @@ export const SignInBackgroundMockContainer = () => {
|
|||||||
|
|
||||||
const objectMetadataItems = useRecoilValue(objectMetadataItemsState);
|
const objectMetadataItems = useRecoilValue(objectMetadataItemsState);
|
||||||
|
|
||||||
const objectMetadataItem = useRecoilComponentValueV2(
|
const objectMetadataItemId = useRecoilComponentValueV2(
|
||||||
contextStoreCurrentObjectMetadataItemComponentState,
|
contextStoreCurrentObjectMetadataItemIdComponentState,
|
||||||
MAIN_CONTEXT_STORE_INSTANCE_ID,
|
MAIN_CONTEXT_STORE_INSTANCE_ID,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const objectMetadataItem = objectMetadataItems.find(
|
||||||
|
(objectMetadataItem) => objectMetadataItem.id === objectMetadataItemId,
|
||||||
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<StyledContainer>
|
<StyledContainer>
|
||||||
<RecordIndexContextProvider
|
<RecordIndexContextProvider
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import { useEffect } from 'react';
|
import { useEffect } from 'react';
|
||||||
|
|
||||||
import { MAIN_CONTEXT_STORE_INSTANCE_ID } from '@/context-store/constants/MainContextStoreInstanceId';
|
import { MAIN_CONTEXT_STORE_INSTANCE_ID } from '@/context-store/constants/MainContextStoreInstanceId';
|
||||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||||
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
|
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
|
||||||
import { useObjectNameSingularFromPlural } from '@/object-metadata/hooks/useObjectNameSingularFromPlural';
|
import { useObjectNameSingularFromPlural } from '@/object-metadata/hooks/useObjectNameSingularFromPlural';
|
||||||
import { useSetRecordIndexEntityCount } from '@/object-record/record-index/hooks/useSetRecordIndexEntityCount';
|
import { useSetRecordIndexEntityCount } from '@/object-record/record-index/hooks/useSetRecordIndexEntityCount';
|
||||||
@ -24,10 +24,11 @@ export const SignInBackgroundMockContainerEffect = ({
|
|||||||
recordTableId,
|
recordTableId,
|
||||||
viewId,
|
viewId,
|
||||||
}: SignInBackgroundMockContainerEffectProps) => {
|
}: SignInBackgroundMockContainerEffectProps) => {
|
||||||
const setContextStoreCurrentObjectMetadataItem = useSetRecoilComponentStateV2(
|
const setContextStoreCurrentObjectMetadataItemId =
|
||||||
contextStoreCurrentObjectMetadataItemComponentState,
|
useSetRecoilComponentStateV2(
|
||||||
MAIN_CONTEXT_STORE_INSTANCE_ID,
|
contextStoreCurrentObjectMetadataItemIdComponentState,
|
||||||
);
|
MAIN_CONTEXT_STORE_INSTANCE_ID,
|
||||||
|
);
|
||||||
|
|
||||||
const { setAvailableTableColumns, setOnEntityCountChange } = useRecordTable({
|
const { setAvailableTableColumns, setOnEntityCountChange } = useRecordTable({
|
||||||
recordTableId,
|
recordTableId,
|
||||||
@ -63,7 +64,7 @@ export const SignInBackgroundMockContainerEffect = ({
|
|||||||
recordTableId,
|
recordTableId,
|
||||||
);
|
);
|
||||||
|
|
||||||
setContextStoreCurrentObjectMetadataItem(objectMetadataItem);
|
setContextStoreCurrentObjectMetadataItemId(objectMetadataItem.id);
|
||||||
}, [
|
}, [
|
||||||
setViewObjectMetadataId,
|
setViewObjectMetadataId,
|
||||||
setAvailableFieldDefinitions,
|
setAvailableFieldDefinitions,
|
||||||
@ -71,7 +72,7 @@ export const SignInBackgroundMockContainerEffect = ({
|
|||||||
setAvailableTableColumns,
|
setAvailableTableColumns,
|
||||||
setTableColumns,
|
setTableColumns,
|
||||||
recordTableId,
|
recordTableId,
|
||||||
setContextStoreCurrentObjectMetadataItem,
|
setContextStoreCurrentObjectMetadataItemId,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
import { COMMAND_MENU_COMPONENT_INSTANCE_ID } from '@/command-menu/constants/CommandMenuComponentInstanceId';
|
||||||
|
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||||
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
||||||
import { useFilterableFieldMetadataItems } from '@/object-record/record-filter/hooks/useFilterableFieldMetadataItems';
|
import { useFilterableFieldMetadataItems } from '@/object-record/record-filter/hooks/useFilterableFieldMetadataItems';
|
||||||
import { currentRecordFiltersComponentState } from '@/object-record/record-filter/states/currentRecordFiltersComponentState';
|
import { currentRecordFiltersComponentState } from '@/object-record/record-filter/states/currentRecordFiltersComponentState';
|
||||||
@ -17,8 +18,9 @@ export const ViewBarRecordFilterEffect = () => {
|
|||||||
contextStoreCurrentViewIdComponentState,
|
contextStoreCurrentViewIdComponentState,
|
||||||
);
|
);
|
||||||
|
|
||||||
const contextStoreCurrentObjectMetadataItem = useRecoilComponentValueV2(
|
const contextStoreCurrentObjectMetadataItemId = useRecoilComponentValueV2(
|
||||||
contextStoreCurrentObjectMetadataItemComponentState,
|
contextStoreCurrentObjectMetadataItemIdComponentState,
|
||||||
|
COMMAND_MENU_COMPONENT_INSTANCE_ID,
|
||||||
);
|
);
|
||||||
|
|
||||||
const currentView = useRecoilValue(
|
const currentView = useRecoilValue(
|
||||||
@ -42,14 +44,13 @@ export const ViewBarRecordFilterEffect = () => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const { filterableFieldMetadataItems } = useFilterableFieldMetadataItems(
|
const { filterableFieldMetadataItems } = useFilterableFieldMetadataItems(
|
||||||
contextStoreCurrentObjectMetadataItem?.id,
|
contextStoreCurrentObjectMetadataItemId ?? '',
|
||||||
);
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (isDefined(currentView) && !hasInitializedCurrentRecordFilters) {
|
if (isDefined(currentView) && !hasInitializedCurrentRecordFilters) {
|
||||||
if (
|
if (
|
||||||
currentView.objectMetadataId !==
|
currentView.objectMetadataId !== contextStoreCurrentObjectMetadataItemId
|
||||||
contextStoreCurrentObjectMetadataItem?.id
|
|
||||||
) {
|
) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -71,8 +72,8 @@ export const ViewBarRecordFilterEffect = () => {
|
|||||||
filterableFieldMetadataItems,
|
filterableFieldMetadataItems,
|
||||||
hasInitializedCurrentRecordFilters,
|
hasInitializedCurrentRecordFilters,
|
||||||
setHasInitializedCurrentRecordFilters,
|
setHasInitializedCurrentRecordFilters,
|
||||||
contextStoreCurrentObjectMetadataItem?.id,
|
|
||||||
currentView,
|
currentView,
|
||||||
|
contextStoreCurrentObjectMetadataItemId,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
import { COMMAND_MENU_COMPONENT_INSTANCE_ID } from '@/command-menu/constants/CommandMenuComponentInstanceId';
|
||||||
|
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||||
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
||||||
import { currentRecordFilterGroupsComponentState } from '@/object-record/record-filter-group/states/currentRecordFilterGroupsComponentState';
|
import { currentRecordFilterGroupsComponentState } from '@/object-record/record-filter-group/states/currentRecordFilterGroupsComponentState';
|
||||||
import { prefetchViewFromViewIdFamilySelector } from '@/prefetch/states/selector/prefetchViewFromViewIdFamilySelector';
|
import { prefetchViewFromViewIdFamilySelector } from '@/prefetch/states/selector/prefetchViewFromViewIdFamilySelector';
|
||||||
@ -16,8 +17,9 @@ export const ViewBarRecordFilterGroupEffect = () => {
|
|||||||
contextStoreCurrentViewIdComponentState,
|
contextStoreCurrentViewIdComponentState,
|
||||||
);
|
);
|
||||||
|
|
||||||
const contextStoreCurrentObjectMetadataItem = useRecoilComponentValueV2(
|
const contextStoreCurrentObjectMetadataItemId = useRecoilComponentValueV2(
|
||||||
contextStoreCurrentObjectMetadataItemComponentState,
|
contextStoreCurrentObjectMetadataItemIdComponentState,
|
||||||
|
COMMAND_MENU_COMPONENT_INSTANCE_ID,
|
||||||
);
|
);
|
||||||
|
|
||||||
const currentView = useRecoilValue(
|
const currentView = useRecoilValue(
|
||||||
@ -43,8 +45,7 @@ export const ViewBarRecordFilterGroupEffect = () => {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (isDefined(currentView) && !hasInitializedCurrentRecordFilterGroups) {
|
if (isDefined(currentView) && !hasInitializedCurrentRecordFilterGroups) {
|
||||||
if (
|
if (
|
||||||
currentView.objectMetadataId !==
|
currentView.objectMetadataId !== contextStoreCurrentObjectMetadataItemId
|
||||||
contextStoreCurrentObjectMetadataItem?.id
|
|
||||||
) {
|
) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -64,7 +65,7 @@ export const ViewBarRecordFilterGroupEffect = () => {
|
|||||||
setCurrentRecordFilterGroups,
|
setCurrentRecordFilterGroups,
|
||||||
hasInitializedCurrentRecordFilterGroups,
|
hasInitializedCurrentRecordFilterGroups,
|
||||||
setHasInitializedCurrentRecordFilterGroups,
|
setHasInitializedCurrentRecordFilterGroups,
|
||||||
contextStoreCurrentObjectMetadataItem?.id,
|
contextStoreCurrentObjectMetadataItemId,
|
||||||
currentView,
|
currentView,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|||||||
@ -1,13 +1,12 @@
|
|||||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
import { COMMAND_MENU_COMPONENT_INSTANCE_ID } from '@/command-menu/constants/CommandMenuComponentInstanceId';
|
||||||
|
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||||
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
||||||
import { currentRecordSortsComponentState } from '@/object-record/record-sort/states/currentRecordSortsComponentState';
|
import { currentRecordSortsComponentState } from '@/object-record/record-sort/states/currentRecordSortsComponentState';
|
||||||
import { prefetchViewFromViewIdFamilySelector } from '@/prefetch/states/selector/prefetchViewFromViewIdFamilySelector';
|
import { prefetchViewFromViewIdFamilySelector } from '@/prefetch/states/selector/prefetchViewFromViewIdFamilySelector';
|
||||||
import { useRecoilComponentFamilyStateV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentFamilyStateV2';
|
import { useRecoilComponentFamilyStateV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentFamilyStateV2';
|
||||||
|
|
||||||
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
||||||
import { useSetRecoilComponentStateV2 } from '@/ui/utilities/state/component-state/hooks/useSetRecoilComponentStateV2';
|
import { useSetRecoilComponentStateV2 } from '@/ui/utilities/state/component-state/hooks/useSetRecoilComponentStateV2';
|
||||||
import { hasInitializedCurrentRecordSortsComponentFamilyState } from '@/views/states/hasInitializedCurrentRecordSortsComponentFamilyState';
|
import { hasInitializedCurrentRecordSortsComponentFamilyState } from '@/views/states/hasInitializedCurrentRecordSortsComponentFamilyState';
|
||||||
|
|
||||||
import { mapViewSortsToSorts } from '@/views/utils/mapViewSortsToSorts';
|
import { mapViewSortsToSorts } from '@/views/utils/mapViewSortsToSorts';
|
||||||
import { useEffect } from 'react';
|
import { useEffect } from 'react';
|
||||||
import { useRecoilValue } from 'recoil';
|
import { useRecoilValue } from 'recoil';
|
||||||
@ -18,8 +17,9 @@ export const ViewBarRecordSortEffect = () => {
|
|||||||
contextStoreCurrentViewIdComponentState,
|
contextStoreCurrentViewIdComponentState,
|
||||||
);
|
);
|
||||||
|
|
||||||
const contextStoreCurrentObjectMetadataItem = useRecoilComponentValueV2(
|
const contextStoreCurrentObjectMetadataItemId = useRecoilComponentValueV2(
|
||||||
contextStoreCurrentObjectMetadataItemComponentState,
|
contextStoreCurrentObjectMetadataItemIdComponentState,
|
||||||
|
COMMAND_MENU_COMPONENT_INSTANCE_ID,
|
||||||
);
|
);
|
||||||
|
|
||||||
const currentView = useRecoilValue(
|
const currentView = useRecoilValue(
|
||||||
@ -45,8 +45,7 @@ export const ViewBarRecordSortEffect = () => {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (isDefined(currentView) && !hasInitializedCurrentRecordSorts) {
|
if (isDefined(currentView) && !hasInitializedCurrentRecordSorts) {
|
||||||
if (
|
if (
|
||||||
currentView.objectMetadataId !==
|
currentView.objectMetadataId !== contextStoreCurrentObjectMetadataItemId
|
||||||
contextStoreCurrentObjectMetadataItem?.id
|
|
||||||
) {
|
) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -60,7 +59,7 @@ export const ViewBarRecordSortEffect = () => {
|
|||||||
hasInitializedCurrentRecordSorts,
|
hasInitializedCurrentRecordSorts,
|
||||||
currentView,
|
currentView,
|
||||||
setCurrentRecordSorts,
|
setCurrentRecordSorts,
|
||||||
contextStoreCurrentObjectMetadataItem,
|
contextStoreCurrentObjectMetadataItemId,
|
||||||
setHasInitializedCurrentRecordSorts,
|
setHasInitializedCurrentRecordSorts,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { MAIN_CONTEXT_STORE_INSTANCE_ID } from '@/context-store/constants/MainContextStoreInstanceId';
|
import { MAIN_CONTEXT_STORE_INSTANCE_ID } from '@/context-store/constants/MainContextStoreInstanceId';
|
||||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||||
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
||||||
import { ContextStoreComponentInstanceContext } from '@/context-store/states/contexts/ContextStoreComponentInstanceContext';
|
import { ContextStoreComponentInstanceContext } from '@/context-store/states/contexts/ContextStoreComponentInstanceContext';
|
||||||
import { RecordIndexContainerGater } from '@/object-record/record-index/components/RecordIndexContainerGater';
|
import { RecordIndexContainerGater } from '@/object-record/record-index/components/RecordIndexContainerGater';
|
||||||
@ -13,13 +13,13 @@ export const RecordIndexPage = () => {
|
|||||||
MAIN_CONTEXT_STORE_INSTANCE_ID,
|
MAIN_CONTEXT_STORE_INSTANCE_ID,
|
||||||
);
|
);
|
||||||
|
|
||||||
const objectMetadataItem = useRecoilComponentValueV2(
|
const contextStoreCurrentObjectMetadataItemId = useRecoilComponentValueV2(
|
||||||
contextStoreCurrentObjectMetadataItemComponentState,
|
contextStoreCurrentObjectMetadataItemIdComponentState,
|
||||||
MAIN_CONTEXT_STORE_INSTANCE_ID,
|
MAIN_CONTEXT_STORE_INSTANCE_ID,
|
||||||
);
|
);
|
||||||
|
|
||||||
if (
|
if (
|
||||||
isUndefined(objectMetadataItem) ||
|
isUndefined(contextStoreCurrentObjectMetadataItemId) ||
|
||||||
!isNonEmptyString(contextStoreCurrentViewId)
|
!isNonEmptyString(contextStoreCurrentViewId)
|
||||||
) {
|
) {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import { Decorator } from '@storybook/react';
|
|||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
|
|
||||||
import { MAIN_CONTEXT_STORE_INSTANCE_ID } from '@/context-store/constants/MainContextStoreInstanceId';
|
import { MAIN_CONTEXT_STORE_INSTANCE_ID } from '@/context-store/constants/MainContextStoreInstanceId';
|
||||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||||
import { ContextStoreComponentInstanceContext } from '@/context-store/states/contexts/ContextStoreComponentInstanceContext';
|
import { ContextStoreComponentInstanceContext } from '@/context-store/states/contexts/ContextStoreComponentInstanceContext';
|
||||||
import { useSetRecoilComponentStateV2 } from '@/ui/utilities/state/component-state/hooks/useSetRecoilComponentStateV2';
|
import { useSetRecoilComponentStateV2 } from '@/ui/utilities/state/component-state/hooks/useSetRecoilComponentStateV2';
|
||||||
import { isUndefined } from '@sniptt/guards';
|
import { isUndefined } from '@sniptt/guards';
|
||||||
@ -17,8 +17,8 @@ export const ContextStoreDecorator: Decorator = (Story, context) => {
|
|||||||
componentInstanceId = MAIN_CONTEXT_STORE_INSTANCE_ID;
|
componentInstanceId = MAIN_CONTEXT_STORE_INSTANCE_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
const setCurrentObjectMetadataItem = useSetRecoilComponentStateV2(
|
const setCurrentObjectMetadataItemId = useSetRecoilComponentStateV2(
|
||||||
contextStoreCurrentObjectMetadataItemComponentState,
|
contextStoreCurrentObjectMetadataItemIdComponentState,
|
||||||
componentInstanceId,
|
componentInstanceId,
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -27,9 +27,9 @@ export const ContextStoreDecorator: Decorator = (Story, context) => {
|
|||||||
const objectMetadataItem = getMockCompanyObjectMetadataItem();
|
const objectMetadataItem = getMockCompanyObjectMetadataItem();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setCurrentObjectMetadataItem(objectMetadataItem);
|
setCurrentObjectMetadataItemId(objectMetadataItem.id);
|
||||||
setIsLoaded(true);
|
setIsLoaded(true);
|
||||||
}, [setCurrentObjectMetadataItem, objectMetadataItem]);
|
}, [setCurrentObjectMetadataItemId, objectMetadataItem]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ContextStoreComponentInstanceContext.Provider
|
<ContextStoreComponentInstanceContext.Provider
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { PropsWithChildren, useEffect, useState } from 'react';
|
import { PropsWithChildren, useEffect, useState } from 'react';
|
||||||
|
|
||||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||||
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
||||||
import { contextStoreFiltersComponentState } from '@/context-store/states/contextStoreFiltersComponentState';
|
import { contextStoreFiltersComponentState } from '@/context-store/states/contextStoreFiltersComponentState';
|
||||||
import { contextStoreNumberOfSelectedRecordsComponentState } from '@/context-store/states/contextStoreNumberOfSelectedRecordsComponentState';
|
import { contextStoreNumberOfSelectedRecordsComponentState } from '@/context-store/states/contextStoreNumberOfSelectedRecordsComponentState';
|
||||||
@ -37,9 +37,10 @@ export const JestContextStoreSetter = ({
|
|||||||
contextStoreTargetedRecordsRuleComponentState,
|
contextStoreTargetedRecordsRuleComponentState,
|
||||||
);
|
);
|
||||||
|
|
||||||
const setContextStoreCurrentObjectMetadataItem = useSetRecoilComponentStateV2(
|
const setContextStoreCurrentObjectMetadataItemId =
|
||||||
contextStoreCurrentObjectMetadataItemComponentState,
|
useSetRecoilComponentStateV2(
|
||||||
);
|
contextStoreCurrentObjectMetadataItemIdComponentState,
|
||||||
|
);
|
||||||
|
|
||||||
const setContextStoreNumberOfSelectedRecords = useSetRecoilComponentStateV2(
|
const setContextStoreNumberOfSelectedRecords = useSetRecoilComponentStateV2(
|
||||||
contextStoreNumberOfSelectedRecordsComponentState,
|
contextStoreNumberOfSelectedRecordsComponentState,
|
||||||
@ -63,14 +64,14 @@ export const JestContextStoreSetter = ({
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setContextStoreCurrentViewId(contextStoreCurrentViewId);
|
setContextStoreCurrentViewId(contextStoreCurrentViewId);
|
||||||
setContextStoreTargetedRecordsRule(contextStoreTargetedRecordsRule);
|
setContextStoreTargetedRecordsRule(contextStoreTargetedRecordsRule);
|
||||||
setContextStoreCurrentObjectMetadataItem(objectMetadataItem);
|
setContextStoreCurrentObjectMetadataItemId(objectMetadataItem.id);
|
||||||
setContextStoreNumberOfSelectedRecords(contextStoreNumberOfSelectedRecords);
|
setContextStoreNumberOfSelectedRecords(contextStoreNumberOfSelectedRecords);
|
||||||
setcontextStoreFiltersComponentState(contextStoreFilters);
|
setcontextStoreFiltersComponentState(contextStoreFilters);
|
||||||
|
|
||||||
setIsLoaded(true);
|
setIsLoaded(true);
|
||||||
}, [
|
}, [
|
||||||
setContextStoreTargetedRecordsRule,
|
setContextStoreTargetedRecordsRule,
|
||||||
setContextStoreCurrentObjectMetadataItem,
|
setContextStoreCurrentObjectMetadataItemId,
|
||||||
contextStoreTargetedRecordsRule,
|
contextStoreTargetedRecordsRule,
|
||||||
contextStoreCurrentObjectMetadataId,
|
contextStoreCurrentObjectMetadataId,
|
||||||
setContextStoreNumberOfSelectedRecords,
|
setContextStoreNumberOfSelectedRecords,
|
||||||
|
|||||||
Reference in New Issue
Block a user