Move column selection and sorting behind feature flag enableDocumentsTableColumnSelection

This commit is contained in:
Laurent Nguyen 2024-09-02 12:31:39 +02:00
parent 85352b74a3
commit e23ba02561
2 changed files with 52 additions and 45 deletions

View File

@ -50,6 +50,7 @@ import {
import { INITIAL_SELECTED_ROW_INDEX, useDocumentsTabStyles } from "Explorer/Tabs/DocumentsTabV2/DocumentsTabV2"; import { INITIAL_SELECTED_ROW_INDEX, useDocumentsTabStyles } from "Explorer/Tabs/DocumentsTabV2/DocumentsTabV2";
import { selectionHelper } from "Explorer/Tabs/DocumentsTabV2/SelectionHelper"; import { selectionHelper } from "Explorer/Tabs/DocumentsTabV2/SelectionHelper";
import { LayoutConstants } from "Explorer/Theme/ThemeUtil"; import { LayoutConstants } from "Explorer/Theme/ThemeUtil";
import { userContext } from "UserContext";
import { isEnvironmentCtrlPressed, isEnvironmentShiftPressed } from "Utils/KeyboardUtils"; import { isEnvironmentCtrlPressed, isEnvironmentShiftPressed } from "Utils/KeyboardUtils";
import { useSidePanel } from "hooks/useSidePanel"; import { useSidePanel } from "hooks/useSidePanel";
import React, { useCallback, useMemo } from "react"; import React, { useCallback, useMemo } from "react";
@ -227,51 +228,55 @@ export const DocumentsTableComponent: React.FC<IDocumentsTableComponentProps> =
<MenuItem key="refresh" icon={<ArrowClockwise16Regular />} onClick={onRefreshTable}> <MenuItem key="refresh" icon={<ArrowClockwise16Regular />} onClick={onRefreshTable}>
Refresh Refresh
</MenuItem> </MenuItem>
<MenuItem {userContext.features.enableDocumentsTableColumnSelection && (
icon={<TextSortAscendingRegular />} <>
onClick={(e) => onSortClick(e, column.id, "ascending")} <MenuItem
> icon={<TextSortAscendingRegular />}
Sort ascending onClick={(e) => onSortClick(e, column.id, "ascending")}
</MenuItem> >
<MenuItem Sort ascending
icon={<TextSortDescendingRegular />} </MenuItem>
onClick={(e) => onSortClick(e, column.id, "descending")} <MenuItem
> icon={<TextSortDescendingRegular />}
Sort descending onClick={(e) => onSortClick(e, column.id, "descending")}
</MenuItem> >
<MenuItem icon={<ArrowResetRegular />} onClick={(e) => onSortClick(e, undefined, undefined)}> Sort descending
Reset sorting </MenuItem>
</MenuItem> <MenuItem icon={<ArrowResetRegular />} onClick={(e) => onSortClick(e, undefined, undefined)}>
{!isColumnSelectionDisabled && ( Reset sorting
<MenuItem key="editcolumns" icon={<EditRegular />} onClick={openColumnSelectionPane}> </MenuItem>
Edit columns {!isColumnSelectionDisabled && (
</MenuItem> <MenuItem key="editcolumns" icon={<EditRegular />} onClick={openColumnSelectionPane}>
)} Edit columns
<MenuDivider /> </MenuItem>
<MenuItem )}
key="keyboardresize" <MenuDivider />
icon={<TableResizeColumnRegular />} <MenuItem
onClick={columnSizing.enableKeyboardMode(column.id)} key="keyboardresize"
> icon={<TableResizeColumnRegular />}
Resize with left/right arrow keys onClick={columnSizing.enableKeyboardMode(column.id)}
</MenuItem> >
{!isColumnSelectionDisabled && ( Resize with left/right arrow keys
<MenuItem </MenuItem>
key="remove" {!isColumnSelectionDisabled && (
icon={<DeleteRegular />} <MenuItem
onClick={() => { key="remove"
// Remove column id from selectedColumnIds icon={<DeleteRegular />}
const index = selectedColumnIds.indexOf(column.id); onClick={() => {
if (index === -1) { // Remove column id from selectedColumnIds
return; const index = selectedColumnIds.indexOf(column.id);
} if (index === -1) {
const newSelectedColumnIds = [...selectedColumnIds]; return;
newSelectedColumnIds.splice(index, 1); }
onColumnSelectionChange(newSelectedColumnIds); const newSelectedColumnIds = [...selectedColumnIds];
}} newSelectedColumnIds.splice(index, 1);
> onColumnSelectionChange(newSelectedColumnIds);
Remove column }}
</MenuItem> >
Remove column
</MenuItem>
)}
</>
)} )}
</MenuList> </MenuList>
</MenuPopover> </MenuPopover>

View File

@ -38,6 +38,7 @@ export type Features = {
readonly copilotChatFixedMonacoEditorHeight: boolean; readonly copilotChatFixedMonacoEditorHeight: boolean;
readonly enablePriorityBasedExecution: boolean; readonly enablePriorityBasedExecution: boolean;
readonly disableConnectionStringLogin: boolean; readonly disableConnectionStringLogin: boolean;
readonly enableDocumentsTableColumnSelection: boolean;
// can be set via both flight and feature flag // can be set via both flight and feature flag
autoscaleDefault: boolean; autoscaleDefault: boolean;
@ -108,6 +109,7 @@ export function extractFeatures(given = new URLSearchParams(window.location.sear
copilotChatFixedMonacoEditorHeight: "true" === get("copilotchatfixedmonacoeditorheight"), copilotChatFixedMonacoEditorHeight: "true" === get("copilotchatfixedmonacoeditorheight"),
enablePriorityBasedExecution: "true" === get("enableprioritybasedexecution"), enablePriorityBasedExecution: "true" === get("enableprioritybasedexecution"),
disableConnectionStringLogin: "true" === get("disableconnectionstringlogin"), disableConnectionStringLogin: "true" === get("disableconnectionstringlogin"),
enableDocumentsTableColumnSelection: "true" === get("enabledocumentstablecolumnselection"),
}; };
} }