Fix export view missing column and viewGroups not persisted bug (#10584)

Fixes https://github.com/twentyhq/twenty/issues/10535
Also fixes missing columns in export view
This commit is contained in:
Charles Bochet
2025-02-28 15:59:13 +01:00
committed by GitHub
parent 122a6a7801
commit 00b650a121
20 changed files with 70 additions and 38 deletions

View File

@ -19,17 +19,16 @@ import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/Drop
import { DropdownMenuSeparator } from '@/ui/layout/dropdown/components/DropdownMenuSeparator';
import { navigationMemorizedUrlState } from '@/ui/navigation/states/navigationMemorizedUrlState';
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
import { useLingui } from '@lingui/react/macro';
import { useLocation } from 'react-router-dom';
import { useSetRecoilState } from 'recoil';
import { getSettingsPath } from '~/utils/navigation/getSettingsPath';
import { useLingui } from '@lingui/react/macro';
export const ObjectOptionsDropdownHiddenRecordGroupsContent = () => {
const { t } = useLingui();
const {
viewType,
currentContentId,
recordIndexId,
objectMetadataItem,
onContentChange,
closeDropdown,
@ -49,7 +48,6 @@ export const ObjectOptionsDropdownHiddenRecordGroupsContent = () => {
const { handleVisibilityChange: handleRecordGroupVisibilityChange } =
useRecordGroupVisibility({
viewBarId: recordIndexId,
viewType,
});

View File

@ -67,7 +67,6 @@ export const ObjectOptionsDropdownRecordGroupsContent = () => {
handleVisibilityChange: handleRecordGroupVisibilityChange,
handleHideEmptyRecordGroupChange,
} = useRecordGroupVisibility({
viewBarId: recordIndexId,
viewType,
});

View File

@ -27,7 +27,7 @@ export const useRecordGroupActions = ({
const navigate = useNavigateSettings();
const location = useLocation();
const { objectNameSingular, recordIndexId } = useRecordIndexContextOrThrow();
const { objectNameSingular } = useRecordIndexContextOrThrow();
const { columnDefinition: recordGroupDefinition } = useContext(
RecordBoardColumnContext,
@ -43,7 +43,6 @@ export const useRecordGroupActions = ({
const { handleVisibilityChange: handleRecordGroupVisibilityChange } =
useRecordGroupVisibility({
viewBarId: recordIndexId,
viewType,
});

View File

@ -29,7 +29,7 @@ export const useRecordGroupReorder = ({
visibleRecordGroupIdsComponentFamilySelector,
);
const { saveViewGroups } = useSaveCurrentViewGroups(viewBarId);
const { saveViewGroups } = useSaveCurrentViewGroups();
const handleOrderChange: OnDragEndResponder = useRecoilCallback(
({ snapshot }) =>

View File

@ -8,12 +8,10 @@ import { recordGroupDefinitionToViewGroup } from '@/views/utils/recordGroupDefin
import { useRecoilCallback } from 'recoil';
type UseRecordGroupVisibilityParams = {
viewBarId: string;
viewType: ViewType;
};
export const useRecordGroupVisibility = ({
viewBarId,
viewType,
}: UseRecordGroupVisibilityParams) => {
const objectOptionsDropdownRecordGroupHideFamilyState =
@ -21,7 +19,7 @@ export const useRecordGroupVisibility = ({
recordIndexRecordGroupHideComponentFamilyState,
);
const { saveViewGroup } = useSaveCurrentViewGroups(viewBarId);
const { saveViewGroup } = useSaveCurrentViewGroups();
const handleVisibilityChange = useRecoilCallback(
({ set }) =>

View File

@ -6,6 +6,7 @@ import { contextStoreFiltersComponentState } from '@/context-store/states/contex
import { contextStoreTargetedRecordsRuleComponentState } from '@/context-store/states/contextStoreTargetedRecordsRuleComponentState';
import { computeContextStoreFilters } from '@/context-store/utils/computeContextStoreFilters';
import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
import { useLazyFetchAllRecords } from '@/object-record/hooks/useLazyFetchAllRecords';
import { EXPORT_TABLE_DATA_DEFAULT_PAGE_SIZE } from '@/object-record/object-options-dropdown/constants/ExportTableDataDefaultPageSize';
import { useObjectOptionsForBoard } from '@/object-record/object-options-dropdown/hooks/useObjectOptionsForBoard';
import { useFilterValueDependencies } from '@/object-record/record-filter/hooks/useFilterValueDependencies';
@ -14,7 +15,6 @@ import { useFindManyRecordIndexTableParams } from '@/object-record/record-index/
import { visibleTableColumnsComponentSelector } from '@/object-record/record-table/states/selectors/visibleTableColumnsComponentSelector';
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
import { ViewType } from '@/views/types/ViewType';
import { useLazyFetchAllRecords } from '@/object-record/hooks/useLazyFetchAllRecords';
export const sleep = (ms: number) =>
new Promise((resolve) => setTimeout(resolve, ms));

View File

@ -10,12 +10,12 @@ import {
} from '@/object-record/record-index/export/hooks/useExportFetchRecords';
import { ColumnDefinition } from '@/object-record/record-table/types/ColumnDefinition';
import { ObjectRecord } from '@/object-record/types/ObjectRecord';
import { t } from '@lingui/core/macro';
import { saveAs } from 'file-saver';
import { isDefined } from 'twenty-shared';
import { RelationDefinitionType } from '~/generated-metadata/graphql';
import { FieldMetadataType } from '~/generated/graphql';
import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull';
import { t } from '@lingui/core/macro';
type GenerateExportOptions = {
columns: ColumnDefinition<FieldMetadata>[];