From dda8bf90cb57667e3a05a097952971f75394c5c5 Mon Sep 17 00:00:00 2001 From: Corina <14900841+corinagum@users.noreply.github.com> Date: Wed, 10 Jun 2020 16:02:15 -0700 Subject: [PATCH 1/4] Suggested actions stacked height --- CHANGELOG.md | 1 + .../component/src/Styles/StyleSet/SuggestedActions.js | 9 ++++++++- packages/component/src/Styles/defaultStyleOptions.js | 6 +++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 33155ee695..fb9e6b41a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Resolves [#3205](https://github.com/microsoft/BotFramework-WebChat/issues/3205). Added Direct Line App Service Extension protocol, by [@compulim](https://github.com/compulim) in PR [#3206](https://github.com/microsoft/BotFramework-WebChat/pull/3206) - Resolves [#3225](https://github.com/microsoft/BotFramework-WebChat/issues/3225). Support allowed scheme with `openUrl` card action, by [@compulim](https://github.com/compulim) in PR [#3226](https://github.com/microsoft/BotFramework-WebChat/pull/3226) +- Resolves [#3182](https://github.com/microsoft/BotFramework-WebChat/issues/3182). Added stacked suggested actions height properties, by [@corinagum](https://github.com/corinagum), in PR [#XXX](https://github.com/microsoft/BotFramework-WebChat/pull/XXX) ### Fixed diff --git a/packages/component/src/Styles/StyleSet/SuggestedActions.js b/packages/component/src/Styles/StyleSet/SuggestedActions.js index c963bbf33b..daa2a1b470 100644 --- a/packages/component/src/Styles/StyleSet/SuggestedActions.js +++ b/packages/component/src/Styles/StyleSet/SuggestedActions.js @@ -1,9 +1,16 @@ /* eslint no-empty-pattern: "off" */ /* eslint no-magic-numbers: ["error", { "ignore": [2] }] */ -export default function createSuggestedActionsStyle({ paddingRegular, suggestedActionLayout }) { +export default function createSuggestedActionsStyle({ + paddingRegular, + suggestedActionLayout, + suggestedActionsStackedHeight, + suggestedActionsStackedOverflow +}) { if (suggestedActionLayout === 'stacked') { return { + height: suggestedActionsStackedHeight || 'auto', + overflowY: suggestedActionsStackedOverflow, paddingBottom: paddingRegular / 2, paddingLeft: paddingRegular / 2, paddingRight: paddingRegular / 2, diff --git a/packages/component/src/Styles/defaultStyleOptions.js b/packages/component/src/Styles/defaultStyleOptions.js index f03357b285..002878127f 100644 --- a/packages/component/src/Styles/defaultStyleOptions.js +++ b/packages/component/src/Styles/defaultStyleOptions.js @@ -111,9 +111,13 @@ const DEFAULT_OPTIONS = { suggestedActionDisabledTextColor: undefined, // defaults to subtle suggestedActionHeight: 40, suggestedActionImageHeight: 20, - suggestedActionLayout: 'carousel', // either "carousel" or "stacked" + suggestedActionLayout: 'carousel', // either 'carousel' or 'stacked' suggestedActionTextColor: null, + // Suggeseted actions 'stacked' layout + suggestedActionsStackedHeight: undefined, // defaults to 'auto' + suggestedActionsStackedOverflow: undefined, + // Timestamp groupTimestamp: true, sendTimeout: 20000, From 5eaf2e283223da66f7cd267495c550228e93ea74 Mon Sep 17 00:00:00 2001 From: Corina <14900841+corinagum@users.noreply.github.com> Date: Wed, 10 Jun 2020 16:02:33 -0700 Subject: [PATCH 2/4] Add tests --- ...ested-actions-with-height-of-50-1-snap.png | Bin 0 -> 18265 bytes ...ight-of-50-with-overflow-hidden-1-snap.png | Bin 0 -> 18326 bytes ...ight-of-50-with-overflow-scroll-1-snap.png | Bin 0 -> 18403 bytes __tests__/suggestedActions.js | 60 ++++++++++++++++++ 4 files changed, 60 insertions(+) create mode 100644 __tests__/__image_snapshots__/chrome-docker/suggested-actions-js-suggested-actions-command-should-show-stacked-suggested-actions-with-height-of-50-1-snap.png create mode 100644 __tests__/__image_snapshots__/chrome-docker/suggested-actions-js-suggested-actions-command-should-show-stacked-suggested-actions-with-height-of-50-with-overflow-hidden-1-snap.png create mode 100644 __tests__/__image_snapshots__/chrome-docker/suggested-actions-js-suggested-actions-command-should-show-stacked-suggested-actions-with-height-of-50-with-overflow-scroll-1-snap.png diff --git a/__tests__/__image_snapshots__/chrome-docker/suggested-actions-js-suggested-actions-command-should-show-stacked-suggested-actions-with-height-of-50-1-snap.png b/__tests__/__image_snapshots__/chrome-docker/suggested-actions-js-suggested-actions-command-should-show-stacked-suggested-actions-with-height-of-50-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..16492feda00617c3954932a4cf7380223470d4b2 GIT binary patch literal 18265 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 aU*=V7jn8j+!oS*ss3@u_6kIoY`u_kR<*!Bn literal 0 HcmV?d00001 diff --git a/__tests__/suggestedActions.js b/__tests__/suggestedActions.js index 6fd20b402a..026dfcc6be 100644 --- a/__tests__/suggestedActions.js +++ b/__tests__/suggestedActions.js @@ -209,4 +209,64 @@ describe('suggested-actions command', () => { expect(base64PNG).toMatchImageSnapshot(imageSnapshotOptions); }); + + test('should show stacked suggested actions with height of 50', async () => { + const { driver, pageObjects } = await setupWebDriver({ + props: { styleOptions: { suggestedActionLayout: 'stacked', suggestedActionsStackedHeight: 50 } } + }); + + await driver.wait(uiConnected(), timeouts.directLine); + await pageObjects.sendMessageViaSendBox('suggested-actions', { waitForSend: true }); + + await driver.wait(suggestedActionsShown(), timeouts.directLine); + await driver.wait(allImagesLoaded(), timeouts.fetchImage); + + const base64PNG = await driver.takeScreenshot(); + + expect(base64PNG).toMatchImageSnapshot(imageSnapshotOptions); + }); + + test('should show stacked suggested actions with height of 50 with overflow hidden', async () => { + const { driver, pageObjects } = await setupWebDriver({ + props: { + styleOptions: { + suggestedActionLayout: 'stacked', + suggestedActionsStackedHeight: 50, + suggestedActionsStackedOverflow: 'hidden' + } + } + }); + + await driver.wait(uiConnected(), timeouts.directLine); + await pageObjects.sendMessageViaSendBox('suggested-actions', { waitForSend: true }); + + await driver.wait(suggestedActionsShown(), timeouts.directLine); + await driver.wait(allImagesLoaded(), timeouts.fetchImage); + + const base64PNG = await driver.takeScreenshot(); + + expect(base64PNG).toMatchImageSnapshot(imageSnapshotOptions); + }); + + test('should show stacked suggested actions with height of 50 with overflow scroll', async () => { + const { driver, pageObjects } = await setupWebDriver({ + props: { + styleOptions: { + suggestedActionLayout: 'stacked', + suggestedActionsStackedHeight: 50, + suggestedActionsStackedOverflow: 'scroll' + } + } + }); + + await driver.wait(uiConnected(), timeouts.directLine); + await pageObjects.sendMessageViaSendBox('suggested-actions', { waitForSend: true }); + + await driver.wait(suggestedActionsShown(), timeouts.directLine); + await driver.wait(allImagesLoaded(), timeouts.fetchImage); + + const base64PNG = await driver.takeScreenshot(); + + expect(base64PNG).toMatchImageSnapshot(imageSnapshotOptions); + }); }); From 5e4ec022106de6220be9c9db1d3e6aaa29272e57 Mon Sep 17 00:00:00 2001 From: Corina <14900841+corinagum@users.noreply.github.com> Date: Wed, 10 Jun 2020 16:07:44 -0700 Subject: [PATCH 3/4] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fb9e6b41a0..ee8bd81494 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,7 +34,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Resolves [#3205](https://github.com/microsoft/BotFramework-WebChat/issues/3205). Added Direct Line App Service Extension protocol, by [@compulim](https://github.com/compulim) in PR [#3206](https://github.com/microsoft/BotFramework-WebChat/pull/3206) - Resolves [#3225](https://github.com/microsoft/BotFramework-WebChat/issues/3225). Support allowed scheme with `openUrl` card action, by [@compulim](https://github.com/compulim) in PR [#3226](https://github.com/microsoft/BotFramework-WebChat/pull/3226) -- Resolves [#3182](https://github.com/microsoft/BotFramework-WebChat/issues/3182). Added stacked suggested actions height properties, by [@corinagum](https://github.com/corinagum), in PR [#XXX](https://github.com/microsoft/BotFramework-WebChat/pull/XXX) +- Resolves [#3182](https://github.com/microsoft/BotFramework-WebChat/issues/3182). Added stacked suggested actions height properties, by [@corinagum](https://github.com/corinagum), in PR [#3235](https://github.com/microsoft/BotFramework-WebChat/pull/3235) ### Fixed From a299b763deae2d2b5e771d9e16be52b0ef19d46e Mon Sep 17 00:00:00 2001 From: Corina <14900841+corinagum@users.noreply.github.com> Date: Wed, 10 Jun 2020 16:38:53 -0700 Subject: [PATCH 4/4] Update default style options --- packages/component/src/Styles/defaultStyleOptions.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/component/src/Styles/defaultStyleOptions.js b/packages/component/src/Styles/defaultStyleOptions.js index 002878127f..ab40fdb47e 100644 --- a/packages/component/src/Styles/defaultStyleOptions.js +++ b/packages/component/src/Styles/defaultStyleOptions.js @@ -114,9 +114,9 @@ const DEFAULT_OPTIONS = { suggestedActionLayout: 'carousel', // either 'carousel' or 'stacked' suggestedActionTextColor: null, - // Suggeseted actions 'stacked' layout + // Suggested actions 'stacked' layout suggestedActionsStackedHeight: undefined, // defaults to 'auto' - suggestedActionsStackedOverflow: undefined, + suggestedActionsStackedOverflow: null, // Timestamp groupTimestamp: true,