feat: put back group by feature flag (#9428)

Rollback and put back view group feature flag to push to prod.
This commit is contained in:
Jérémy M
2025-01-07 13:52:42 +01:00
committed by GitHub
parent edf0a1818c
commit b71246bc5d
4 changed files with 29 additions and 14 deletions

View File

@ -337,6 +337,7 @@ export enum FeatureFlagKey {
IsSsoEnabled = 'IsSSOEnabled', IsSsoEnabled = 'IsSSOEnabled',
IsStripeIntegrationEnabled = 'IsStripeIntegrationEnabled', IsStripeIntegrationEnabled = 'IsStripeIntegrationEnabled',
IsUniqueIndexesEnabled = 'IsUniqueIndexesEnabled', IsUniqueIndexesEnabled = 'IsUniqueIndexesEnabled',
IsViewGroupsEnabled = 'IsViewGroupsEnabled',
IsWorkflowEnabled = 'IsWorkflowEnabled' IsWorkflowEnabled = 'IsWorkflowEnabled'
} }

View File

@ -30,6 +30,8 @@ import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys';
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
import { useGetCurrentView } from '@/views/hooks/useGetCurrentView'; import { useGetCurrentView } from '@/views/hooks/useGetCurrentView';
import { ViewType } from '@/views/types/ViewType'; import { ViewType } from '@/views/types/ViewType';
import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
import { FeatureFlagKey } from '~/generated/graphql';
import { isDefined } from '~/utils/isDefined'; import { isDefined } from '~/utils/isDefined';
export const ObjectOptionsDropdownMenuContent = () => { export const ObjectOptionsDropdownMenuContent = () => {
@ -41,6 +43,10 @@ export const ObjectOptionsDropdownMenuContent = () => {
closeDropdown, closeDropdown,
} = useOptionsDropdown(); } = useOptionsDropdown();
const isViewGroupEnabled = useIsFeatureEnabled(
FeatureFlagKey.IsViewGroupsEnabled,
);
const { getIcon } = useIcons(); const { getIcon } = useIcons();
const { currentViewWithCombinedFiltersAndSorts: currentView } = const { currentViewWithCombinedFiltersAndSorts: currentView } =
useGetCurrentView(); useGetCurrentView();
@ -115,19 +121,20 @@ export const ObjectOptionsDropdownMenuContent = () => {
contextualText={`${visibleBoardFields.length} shown`} contextualText={`${visibleBoardFields.length} shown`}
hasSubMenu hasSubMenu
/> />
{currentView?.key !== 'INDEX' && ( {(viewType === ViewType.Kanban || isViewGroupEnabled) &&
<MenuItem currentView?.key !== 'INDEX' && (
onClick={() => <MenuItem
isDefined(recordGroupFieldMetadata) onClick={() =>
? onContentChange('recordGroups') isDefined(recordGroupFieldMetadata)
: onContentChange('recordGroupFields') ? onContentChange('recordGroups')
} : onContentChange('recordGroupFields')
LeftIcon={IconLayoutList} }
text="Group by" LeftIcon={IconLayoutList}
contextualText={recordGroupFieldMetadata?.label} text="Group by"
hasSubMenu contextualText={recordGroupFieldMetadata?.label}
/> hasSubMenu
)} />
)}
</DropdownMenuItemsContainer> </DropdownMenuItemsContainer>
<DropdownMenuSeparator /> <DropdownMenuSeparator />
<DropdownMenuItemsContainer> <DropdownMenuItemsContainer>

View File

@ -26,8 +26,14 @@ import { DropdownMenuSeparator } from '@/ui/layout/dropdown/components/DropdownM
import { useRecoilComponentFamilyValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentFamilyValueV2'; import { useRecoilComponentFamilyValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentFamilyValueV2';
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
import { useGetCurrentView } from '@/views/hooks/useGetCurrentView'; import { useGetCurrentView } from '@/views/hooks/useGetCurrentView';
import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
import { FeatureFlagKey } from '~/generated/graphql';
export const ObjectOptionsDropdownRecordGroupsContent = () => { export const ObjectOptionsDropdownRecordGroupsContent = () => {
const isViewGroupEnabled = useIsFeatureEnabled(
FeatureFlagKey.IsViewGroupsEnabled,
);
const { const {
viewType, viewType,
currentContentId, currentContentId,
@ -92,7 +98,7 @@ export const ObjectOptionsDropdownRecordGroupsContent = () => {
Group by Group by
</DropdownMenuHeader> </DropdownMenuHeader>
<DropdownMenuItemsContainer> <DropdownMenuItemsContainer>
{currentView?.key !== 'INDEX' && ( {isViewGroupEnabled && currentView?.key !== 'INDEX' && (
<> <>
<MenuItem <MenuItem
onClick={() => onContentChange('recordGroupFields')} onClick={() => onContentChange('recordGroupFields')}

View File

@ -14,6 +14,7 @@ export enum FeatureFlagKey {
IsMicrosoftSyncEnabled = 'IS_MICROSOFT_SYNC_ENABLED', IsMicrosoftSyncEnabled = 'IS_MICROSOFT_SYNC_ENABLED',
IsAdvancedFiltersEnabled = 'IS_ADVANCED_FILTERS_ENABLED', IsAdvancedFiltersEnabled = 'IS_ADVANCED_FILTERS_ENABLED',
IsAggregateQueryEnabled = 'IS_AGGREGATE_QUERY_ENABLED', IsAggregateQueryEnabled = 'IS_AGGREGATE_QUERY_ENABLED',
IsViewGroupsEnabled = 'IS_VIEW_GROUPS_ENABLED',
IsPageHeaderV2Enabled = 'IS_PAGE_HEADER_V2_ENABLED', IsPageHeaderV2Enabled = 'IS_PAGE_HEADER_V2_ENABLED',
IsCrmMigrationEnabled = 'IS_CRM_MIGRATION_ENABLED', IsCrmMigrationEnabled = 'IS_CRM_MIGRATION_ENABLED',
IsJsonFilterEnabled = 'IS_JSON_FILTER_ENABLED', IsJsonFilterEnabled = 'IS_JSON_FILTER_ENABLED',