From 68f814da649d7d353232bd7ca0900614ccb41325 Mon Sep 17 00:00:00 2001 From: Sascha Eggenberger Date: Thu, 24 Aug 2023 18:09:10 +0200 Subject: [PATCH] feat(GlTable): Add option for sticky table headers Adds a new optional property "stickyHeader". --- src/components/base/table/table.scss | 13 +++++ src/components/base/table/table.spec.js | 12 ++++- src/components/base/table/table.stories.js | 47 ++++++++++++++++++ src/components/base/table/table.vue | 10 +++- .../base/table_lite/table_lite.spec.js | 12 ++++- .../base/table_lite/table_lite.stories.js | 17 +++++-- src/components/base/table_lite/table_lite.vue | 10 +++- ...-table-table-with-sticky-header-1-snap.png | Bin 0 -> 59090 bytes 8 files changed, 114 insertions(+), 7 deletions(-) create mode 100644 tests/__image_snapshots__/storyshots-spec-js-image-storyshots-base-table-table-with-sticky-header-1-snap.png diff --git a/src/components/base/table/table.scss b/src/components/base/table/table.scss index b9f89f7c02..40d5e35895 100644 --- a/src/components/base/table/table.scss +++ b/src/components/base/table/table.scss @@ -27,9 +27,22 @@ table.gl-table { @include gl-focus; position: relative; z-index: 1; + background: $white; + + &:hover { + background: $gray-50; + } } } + // Sticky header + &--sticky-header thead tr { + position: sticky; + top: -1px; + background: $white; + box-shadow: inset 0 -1px 0 $gray-100; + } + .table-primary, .table-primary:hover { > td { diff --git a/src/components/base/table/table.spec.js b/src/components/base/table/table.spec.js index e760402cdd..ef3b0a049a 100644 --- a/src/components/base/table/table.spec.js +++ b/src/components/base/table/table.spec.js @@ -55,7 +55,17 @@ describe('GlTable', () => { it('adds gl-table class to tableClass prop', () => { factory({ props: { tableClass: 'test-class' } }); - expect(findBTable().props().tableClass).toEqual(['gl-table', 'test-class']); + expect(findBTable().props().tableClass).toEqual(['gl-table', 'test-class', null]); + }); + + it('adds sticky header class to tableClass prop', () => { + factory({ props: { stickyHeader: true } }); + + expect(findBTable().props().tableClass).toEqual([ + 'gl-table', + undefined, + 'gl-table--sticky-header', + ]); }); it('adds gl-table fields to table prop', () => { diff --git a/src/components/base/table/table.stories.js b/src/components/base/table/table.stories.js index 1bfc29cbc1..74413c58e4 100644 --- a/src/components/base/table/table.stories.js +++ b/src/components/base/table/table.stories.js @@ -20,11 +20,13 @@ const tableItems = [ ]; const generateProps = ({ + stickyHeader = false, fixed = false, footClone = false, stacked = false, caption = '', } = {}) => ({ + stickyHeader, fixed, footClone, stacked, @@ -36,6 +38,7 @@ export const Default = (args, { argTypes }) => ({ props: Object.keys(argTypes), template: ` ({
({ }); WithFilter.args = generateProps(); +export const WithStickyHeader = (args, { argTypes }) => ({ + components: { ...components, GlFormInput }, + props: Object.keys(argTypes), + template: `
+ +
+ +
`, + items: [ + ...tableItems, + ...tableItems, + ...tableItems, + ...tableItems, + ...tableItems, + ...tableItems, + ...tableItems, + ...tableItems, + ...tableItems, + ...tableItems, + ], + data() { + return { + filter: null, + }; + }, +}); +WithStickyHeader.args = generateProps({ stickyHeader: true }); + export default { title: 'base/table/table', component: GlTable, @@ -120,5 +163,9 @@ export default { options: ['sm', 'md', 'lg', 'xl', true, false], control: 'select', }, + stickyHeader: { + options: [false, true], + control: 'boolean', + }, }, }; diff --git a/src/components/base/table/table.vue b/src/components/base/table/table.vue index 62521d7987..5f72755f54 100644 --- a/src/components/base/table/table.vue +++ b/src/components/base/table/table.vue @@ -26,10 +26,18 @@ export default { required: false, default: null, }, + stickyHeader: { + type: Boolean, + default: false, + required: false, + }, }, computed: { + stickyHeaderClass() { + return this.stickyHeader ? 'gl-table--sticky-header' : null; + }, localTableClass() { - return ['gl-table', this.tableClass]; + return ['gl-table', this.tableClass, this.stickyHeaderClass]; }, }, mounted() { diff --git a/src/components/base/table_lite/table_lite.spec.js b/src/components/base/table_lite/table_lite.spec.js index a432105592..b642dd883a 100644 --- a/src/components/base/table_lite/table_lite.spec.js +++ b/src/components/base/table_lite/table_lite.spec.js @@ -16,7 +16,17 @@ describe('GlTableLite', () => { it('adds gl-table class to tableClass prop', () => { factory({ tableClass: 'test-class' }); - expect(findBTableLite().props().tableClass).toEqual(['gl-table', 'test-class']); + expect(findBTableLite().props().tableClass).toEqual(['gl-table', 'test-class', null]); + }); + + it('adds sticky header class to tableClass prop', () => { + factory({ stickyHeader: true }); + + expect(findBTableLite().props().tableClass).toEqual([ + 'gl-table', + undefined, + 'gl-table--sticky-header', + ]); }); it('adds gl-table fields to table prop', () => { diff --git a/src/components/base/table_lite/table_lite.stories.js b/src/components/base/table_lite/table_lite.stories.js index 7b4d03da10..6672ac3f9b 100644 --- a/src/components/base/table_lite/table_lite.stories.js +++ b/src/components/base/table_lite/table_lite.stories.js @@ -31,7 +31,12 @@ const tableItemsMock = [ }, ]; -const generateProps = ({ items = tableItemsMock, fields = fieldsMock } = {}) => ({ +const generateProps = ({ + stickyHeader = false, + items = tableItemsMock, + fields = fieldsMock, +} = {}) => ({ + stickyHeader, items, fields, }); @@ -40,7 +45,8 @@ const Template = (args, { argTypes }) => ({ components: { GlTableLite }, props: Object.keys(argTypes), template: ` - `, @@ -59,5 +65,10 @@ export default { }, }, }, - argTypes: {}, + argTypes: { + stickyHeader: { + options: [false, true], + control: 'boolean', + }, + }, }; diff --git a/src/components/base/table_lite/table_lite.vue b/src/components/base/table_lite/table_lite.vue index 5186477354..df6814b236 100644 --- a/src/components/base/table_lite/table_lite.vue +++ b/src/components/base/table_lite/table_lite.vue @@ -16,10 +16,18 @@ export default { required: false, default: null, }, + stickyHeader: { + type: Boolean, + default: false, + required: false, + }, }, computed: { + stickyHeaderClass() { + return this.stickyHeader ? 'gl-table--sticky-header' : null; + }, localTableClass() { - return ['gl-table', this.tableClass]; + return ['gl-table', this.tableClass, this.stickyHeaderClass]; }, }, }; diff --git a/tests/__image_snapshots__/storyshots-spec-js-image-storyshots-base-table-table-with-sticky-header-1-snap.png b/tests/__image_snapshots__/storyshots-spec-js-image-storyshots-base-table-table-with-sticky-header-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..39a2003eb2866820217459c79079c7b72a565177 GIT binary patch literal 59090 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 literal 0 HcmV?d00001 -- GitLab