Fix initial condition for shift/ctrl selection to work (#1908)

This commit is contained in:
Laurent Nguyen 2024-07-31 16:52:23 +02:00 committed by GitHub
parent bcd8b7229f
commit 77c758714d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 3 deletions

View File

@ -92,6 +92,9 @@ export class DocumentsTabV2 extends TabsBase {
// Use this value to initialize the very time the component is rendered // Use this value to initialize the very time the component is rendered
const RESET_INDEX = -1; const RESET_INDEX = -1;
// Auto-select first row. Define as constant to show where first row is selected
export const INITIAL_SELECTED_ROW_INDEX = 0;
const filterButtonStyle: CSSProperties = { const filterButtonStyle: CSSProperties = {
marginLeft: 8, marginLeft: 8,
}; };
@ -506,8 +509,8 @@ export const DocumentsTabComponent: React.FunctionComponent<IDocumentsTabCompone
currentClickedRowIndex > documentIds.length - 1 currentClickedRowIndex > documentIds.length - 1
) { ) {
// reset clicked row or the current clicked row is out of bounds // reset clicked row or the current clicked row is out of bounds
currentClickedRowIndex = 0; currentClickedRowIndex = INITIAL_SELECTED_ROW_INDEX;
setSelectedRows(new Set([0])); setSelectedRows(new Set([INITIAL_SELECTED_ROW_INDEX]));
onDocumentClicked(currentClickedRowIndex, documentIds); onDocumentClicked(currentClickedRowIndex, documentIds);
} }
} }

View File

@ -23,6 +23,7 @@ import {
useTableSelection, useTableSelection,
} from "@fluentui/react-components"; } from "@fluentui/react-components";
import { NormalizedEventKey } from "Common/Constants"; import { NormalizedEventKey } from "Common/Constants";
import { INITIAL_SELECTED_ROW_INDEX } from "Explorer/Tabs/DocumentsTabV2/DocumentsTabV2";
import { selectionHelper } from "Explorer/Tabs/DocumentsTabV2/SelectionHelper"; import { selectionHelper } from "Explorer/Tabs/DocumentsTabV2/SelectionHelper";
import { isEnvironmentCtrlPressed, isEnvironmentShiftPressed } from "Utils/KeyboardUtils"; import { isEnvironmentCtrlPressed, isEnvironmentShiftPressed } from "Utils/KeyboardUtils";
import React, { useCallback, useMemo } from "react"; import React, { useCallback, useMemo } from "react";
@ -123,7 +124,7 @@ export const DocumentsTableComponent: React.FC<IDocumentsTableComponentProps> =
[columnHeaders], [columnHeaders],
); );
const [selectionStartIndex, setSelectionStartIndex] = React.useState<number>(undefined); const [selectionStartIndex, setSelectionStartIndex] = React.useState<number>(INITIAL_SELECTED_ROW_INDEX);
const onTableCellClicked = useCallback( const onTableCellClicked = useCallback(
(e: React.MouseEvent, index: number) => { (e: React.MouseEvent, index: number) => {
if (isSelectionDisabled) { if (isSelectionDisabled) {