diff --git a/apps/vr-tests/src/stories/DetailsList.stories.tsx b/apps/vr-tests/src/stories/DetailsList.stories.tsx index 5851066f8d261..0cbea1f5e945e 100644 --- a/apps/vr-tests/src/stories/DetailsList.stories.tsx +++ b/apps/vr-tests/src/stories/DetailsList.stories.tsx @@ -7,7 +7,8 @@ import { DetailsList, DetailsListLayoutMode, IColumn, - CheckboxVisibility + CheckboxVisibility, + SelectionMode } from 'office-ui-fabric-react'; const items = [ @@ -150,6 +151,16 @@ storiesOf('DetailsList', module) isHeaderVisible={true} /> )) + .addStory('Single Selection Mode', () => ( + + )) .addStory('Grouped', () => ( {onRenderColumnHeaderTooltip( { @@ -245,9 +245,15 @@ export class DetailsHeaderBase extends BaseComponent, - ariaLabelForSelectAllCheckbox && !this.props.onRenderColumnHeaderTooltip ? ( - + !this.props.onRenderColumnHeaderTooltip ? ( + ariaLabelForSelectAllCheckbox && !isCheckboxHidden ? ( + + ) : ariaLabelForSelectionColumn && isCheckboxHidden ? ( + + ) : null ) : null ] : null} diff --git a/packages/office-ui-fabric-react/src/components/DetailsList/DetailsHeader.test.tsx b/packages/office-ui-fabric-react/src/components/DetailsList/DetailsHeader.test.tsx index db0a581d34fd0..347cb447c0943 100644 --- a/packages/office-ui-fabric-react/src/components/DetailsList/DetailsHeader.test.tsx +++ b/packages/office-ui-fabric-react/src/components/DetailsList/DetailsHeader.test.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import { DetailsHeader } from './DetailsHeader'; -import { IDetailsHeader, IDropHintDetails } from './DetailsHeader.types'; +import { IDetailsHeader, IDropHintDetails, SelectAllVisibility } from './DetailsHeader.types'; import { DetailsListLayoutMode, IColumn, ColumnActionsMode } from './DetailsList.types'; import { Selection, SelectionMode } from '../../utilities/selection/index'; import { EventGroup } from '../../Utilities'; @@ -247,6 +247,19 @@ describe('DetailsHeader', () => { expect(component.toJSON()).toMatchSnapshot(); }); + it('can render a hidden select all checkbox in single selection mode', () => { + const component = renderer.create( + + ); + expect(component.toJSON()).toMatchSnapshot(); + }); + it('can resize columns', () => { let lastResize = { size: -1, index: -1 }; diff --git a/packages/office-ui-fabric-react/src/components/DetailsList/DetailsRowCheck.styles.ts b/packages/office-ui-fabric-react/src/components/DetailsList/DetailsRowCheck.styles.ts index 583b8adc7da25..13a281411c307 100644 --- a/packages/office-ui-fabric-react/src/components/DetailsList/DetailsRowCheck.styles.ts +++ b/packages/office-ui-fabric-react/src/components/DetailsList/DetailsRowCheck.styles.ts @@ -22,7 +22,7 @@ export const getStyles = (props: IDetailsRowCheckStyleProps): IDetailsRowCheckSt root: [classNames.root, className], check: [ - !canSelect && [classNames.isDisabled, { visibility: 'hidden' }], + !canSelect && classNames.isDisabled, isHeader && classNames.isHeader, getFocusStyle(theme), theme.fonts.small, diff --git a/packages/office-ui-fabric-react/src/components/DetailsList/DetailsRowCheck.tsx b/packages/office-ui-fabric-react/src/components/DetailsList/DetailsRowCheck.tsx index 22dc1832b4826..89febd5b59042 100644 --- a/packages/office-ui-fabric-react/src/components/DetailsList/DetailsRowCheck.tsx +++ b/packages/office-ui-fabric-react/src/components/DetailsList/DetailsRowCheck.tsx @@ -46,7 +46,7 @@ const DetailsRowCheckBase = (props: IDetailsRowCheckProps) => { compact }); - return ( + return canSelect ? (
{ >
+ ) : ( +
); }; diff --git a/packages/office-ui-fabric-react/src/components/DetailsList/__snapshots__/DetailsHeader.test.tsx.snap b/packages/office-ui-fabric-react/src/components/DetailsList/__snapshots__/DetailsHeader.test.tsx.snap index 1347b5f5aceb0..e362e35b5d97e 100644 --- a/packages/office-ui-fabric-react/src/components/DetailsList/__snapshots__/DetailsHeader.test.tsx.snap +++ b/packages/office-ui-fabric-react/src/components/DetailsList/__snapshots__/DetailsHeader.test.tsx.snap @@ -868,6 +868,776 @@ exports[`DetailsHeader can render 1`] = `
`; +exports[`DetailsHeader can render a hidden select all checkbox in single selection mode 1`] = ` +
+
+ +
+ +
+
+ + + + a + + + +
+
+
+ + + + b + + +  + + + +
+
+
+ + + + c + + +  + + + +
+
+
+`; + exports[`DetailsHeader renders accessible labels 1`] = `