From bd41e384b44ee2e8f76e2aac2119fa4543f172f1 Mon Sep 17 00:00:00 2001 From: John Coburn Date: Mon, 7 Oct 2024 15:29:39 -0500 Subject: [PATCH] STCOM-1353 Export StripesOverlayWrapper and document its existence, and usage (#2360) * export StripesOverlayWrapper and document its existence, and usage * add portal problem/example to storybook * typos * update usePortal documentation for Autosuggest * log changes --- .storybook/main.js | 2 +- CHANGELOG.md | 1 + guides/UIModuleLayout.stories.mdx | 28 ++++++++++++++++++++++++++++ guides/static/use-portal-false.gif | Bin 0 -> 34631 bytes guides/static/use-portal-true.gif | Bin 0 -> 21797 bytes index.js | 2 +- lib/AutoSuggest/readme.md | 4 +--- lib/Datepicker/readme.md | 2 +- lib/Modal/WrappingElement.js | 6 +++--- lib/MultiColumnList/MCLRenderer.js | 6 +++--- lib/MultiSelection/readme.md | 2 +- lib/Selection/readme.md | 2 +- lib/Timepicker/readme.md | 2 +- util/StripesOverlayWrapper.js | 13 +++++++++++++ 14 files changed, 55 insertions(+), 15 deletions(-) create mode 100644 guides/static/use-portal-false.gif create mode 100644 guides/static/use-portal-true.gif create mode 100644 util/StripesOverlayWrapper.js diff --git a/.storybook/main.js b/.storybook/main.js index 93a78946b..90589d332 100644 --- a/.storybook/main.js +++ b/.storybook/main.js @@ -15,7 +15,7 @@ const config = { titlePrefix: 'Components', files: '**/*.stories.[tj]s' }], - + staticDirs: ['../guides/static'], addons: [ '@storybook/addon-essentials', '@storybook/addon-mdx-gfm' diff --git a/CHANGELOG.md b/CHANGELOG.md index 07629cf6b..cdefd9bf4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -51,6 +51,7 @@ * Default the scope of `` to `document.body`. Remove internal wrapping div. Refs STCOM-1351. * Remove inline styling from `` content. Refs STCOM-1348. * Use ``'s formatter for rendering the selected value within the field and prevent overflow of text. Refs STCOM-1344. +* Export `` that will automatically apply the `usePortal` behavior to nested overlay components. Refs STCOM-1353. ## [12.1.0](https://github.com/folio-org/stripes-components/tree/v12.1.0) (2024-03-12) [Full Changelog](https://github.com/folio-org/stripes-components/compare/v12.0.0...v12.1.0) diff --git a/guides/UIModuleLayout.stories.mdx b/guides/UIModuleLayout.stories.mdx index b6ddfc9f2..a4b9c6f81 100644 --- a/guides/UIModuleLayout.stories.mdx +++ b/guides/UIModuleLayout.stories.mdx @@ -1,4 +1,6 @@ import { Meta } from '@storybook/addon-docs'; +import usePortalFalse from './static/use-portal-false.gif'; +import usePortalTrue from './static/use-portal-true.gif'; @@ -42,3 +44,29 @@ class LayoutExample extends React.Component { export default LayoutExample; ``` + +## Portals + +Another detail of the stripes UI is that we render a special element that 'overlay' components such as Dropdowns or Datepicker's Calendar control can render into if the controls run the risk of +being cut off by the border of a containing element. This image shows an example of this problem - controls in the list are cut off by the list's wrapping element. + +Problematic overlay control, cut off by the border of its container. + +Each of these overlay components implements a `usePortal` prop that will render its menu to the special overlay element. We also export a `` that will automatically apply +the `usePortal` behavior to nested overlay components. `` and `` components build in a `` by default. + +Overlay control with issue resolve via the 'usePortal' prop. + +This feature should **only** be used when overlapping is possible since it does involve rendering interactive elements/sending focus to other parts of the DOM. + +Basic Usage: + +``` +{/* usePortal is necessary for individual components outside of a StripesOverlayWrapper */} + + + + {/* usePortal isn't necessary here */} + + +``` diff --git a/guides/static/use-portal-false.gif b/guides/static/use-portal-false.gif new file mode 100644 index 0000000000000000000000000000000000000000..e25ce6f85336d70efa4645781fb5f217355280c8 GIT binary patch literal 34631 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
  • O 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 literal 0 HcmV?d00001 diff --git a/index.js b/index.js index 62872c202..1bde5a251 100644 --- a/index.js +++ b/index.js @@ -171,7 +171,7 @@ export { currenciesByNumber, currenciesOptions } from './util/currencies'; - +export { default as StripesOverlayWrapper } from './util/StripesOverlayWrapper'; export { default as countries, countriesByCode, diff --git a/lib/AutoSuggest/readme.md b/lib/AutoSuggest/readme.md index 0e937249e..1c7734bbb 100644 --- a/lib/AutoSuggest/readme.md +++ b/lib/AutoSuggest/readme.md @@ -17,9 +17,7 @@ prop | description | default | required `onChange` | Callback called when the value changes | | `renderOption` | Callback that renders the item in the dropdown | `item => item.value` | `renderValue` | Callback that render the item in the input field | `item => item.value` | -`usePortal` | bool | If `true`, suggestion list will render to the `div[#OverlayContainer]` element in the FOLIO UI. | | +`usePortal` | bool | If `true`, option list will render to the `div[#OverlayContainer]` element in the FOLIO UI. Given the container of this component, `usePortal` may not be required. See [portals documentation](https://folio-org.github.io/stripes-components/iframe.html?viewMode=docs&id=guides-ui-layout--docs#portals) for guidance. | | `valueKey` | The key in the item object to use as the value. | `"value"` `withFinalForm` | toggle form time: true - final-form, false - redux-from (default) | | `popper` | object | Used to adjust placement of options list overlay via underlying Popper component. [See `` props](../Popper/readme.md) | | - - diff --git a/lib/Datepicker/readme.md b/lib/Datepicker/readme.md index 8d425754a..2951c87c6 100644 --- a/lib/Datepicker/readme.md +++ b/lib/Datepicker/readme.md @@ -31,7 +31,7 @@ Name | type | description | default | required `timeZone` | string | Overrides the time zone provided by context. | "UTC" | false `useFocus` | bool | if set to false, component relies solely on clicking the calendar icon to toggle appearance of calendar. | true | false `useInput` | bool | tells the Datepicker that it is being used under react-final-form, so it can modify its behaviour accodingly. **This is necessary when used with react-final-form** or the Datepicker will not work. | false | false -`usePortal` | bool | if true, the Datepicker will render itself to a React-Portal (the `#OverlayContainer` div) this avoids haveing the Datepicker cutoff by overflow. | false | false +`usePortal` | bool | if true, the Datepicker will render itself to a React-Portal (the `#OverlayContainer` div) this avoids having the Datepicker cut off by overflow. Given the container of this component, `usePortal` may not be required. See [portals documentation](https://folio-org.github.io/stripes-components/iframe.html?viewMode=docs&id=guides-ui-layout--docs#portals) for guidance. | false | false `value` | string | date to be displayed in the textfield. In forms, this is supplied by the initialValues prop supplied to the form | "" | false diff --git a/lib/Modal/WrappingElement.js b/lib/Modal/WrappingElement.js index 2eadd29ec..a9b436b99 100644 --- a/lib/Modal/WrappingElement.js +++ b/lib/Modal/WrappingElement.js @@ -8,7 +8,7 @@ import { import PropTypes from 'prop-types'; import * as focusTrap from 'focus-trap'; import { listen } from '../../util/listen'; -import StripesOverlayContext from '../../util/StripesOverlayContext'; +import StripesOverlayWrapper from '../../util/StripesOverlayWrapper'; import { OVERLAY_CONTAINER_SELECTOR } from '../../util/consts'; import calloutCSS from '../Callout/Callout.css'; import overlayCSS from '../Popper/Popper.css'; @@ -155,9 +155,9 @@ const WrappingElement = forwardRef(({ ref={wrappingElementRef} {...rest} > - + {children} - + ); }); diff --git a/lib/MultiColumnList/MCLRenderer.js b/lib/MultiColumnList/MCLRenderer.js index 92d0cbee4..f458df21e 100644 --- a/lib/MultiColumnList/MCLRenderer.js +++ b/lib/MultiColumnList/MCLRenderer.js @@ -18,7 +18,7 @@ import memoizeOne from 'memoize-one'; import Icon from '../Icon'; import EmptyMessage from '../EmptyMessage'; -import StripesOverlayContext from '../../util/StripesOverlayContext'; +import StripesOverlayWrapper from '../../util/StripesOverlayWrapper'; import { HotKeys } from '../HotKeys'; import SRStatus from '../SRStatus'; import css from './MCLRenderer.css'; @@ -1936,7 +1936,7 @@ class MCLRenderer extends React.Component { : css.mclRowContainer; return ( - +
    @@ -2019,7 +2019,7 @@ class MCLRenderer extends React.Component { }
    -
    + ); } } diff --git a/lib/MultiSelection/readme.md b/lib/MultiSelection/readme.md index 0bc484799..240d16293 100644 --- a/lib/MultiSelection/readme.md +++ b/lib/MultiSelection/readme.md @@ -42,7 +42,7 @@ Name | type | description | default | required `onRemove` | func | Event handler specifically called when an item is removed from the selection. The removed item is passed to the handler. | | `placeholder` | string | Rendered as a placeholder for the control when no value is present. | | `showLoading` | bool | Should render loading indicator on the field | | -`usePortal` | bool | If `true`, option list will render to the `div[#OverlayContainer]` element in the FOLIO UI. | | +`usePortal` | bool | If `true`, option list will render to the `div[#OverlayContainer]` element in the FOLIO UI. Given the container of this component, `usePortal` may not be required. See [portals documentation](https://folio-org.github.io/stripes-components/iframe.html?viewMode=docs&id=guides-ui-layout--docs#portals) for guidance. | | `value` | array | Array of selected objects. | | `valueFormatter` | func | Render function that accepts an object with keys for the option. The function is called to display values in the selected values list. If the prop is missing, `formatter` will be used instead. | | `ariaLabelledBy` | string | Used for applying an accessible label if no `label` prop is provided | | diff --git a/lib/Selection/readme.md b/lib/Selection/readme.md index 789352209..e0c874d37 100644 --- a/lib/Selection/readme.md +++ b/lib/Selection/readme.md @@ -82,7 +82,7 @@ Name | type | description | default | required `useValidStyle` | bool | if true, "success" styles will be applied to control if it contains a valid value `onBlur` (using redux-form validation.) | false | `autoFocus` | bool | If this prop is `true`, control will automatically focus on mount | | `popper` | object | Used to adjust placement of options list overlay via underlying Popper component. [See `` props](../Popper/readme.md) | | false | -`usePortal` | bool | If `true`, option list will render to the `div[#OverlayContainer]` element in the FOLIO UI. | | +`usePortal` | bool | If `true`, option list will render to the `div[#OverlayContainer]` element in the FOLIO UI. Given the container of this component, `usePortal` may not be required. See [portals documentation](https://folio-org.github.io/stripes-components/iframe.html?viewMode=docs&id=guides-ui-layout--docs#portals) for guidance. | | ## Labeling Like other form controls in stripes-components, `` abides by standard conventions for labeling props if alternatives to `label` (visible label with the control) are required... `aria-label` and `aria-labelledby` are useful for this. See [Accessiblity for developers documentation](https://github.com/folio-org/stripes-components/blob/master/guides/AccessibilityDevPrimer.stories.mdx#labeling) for more details about which to choose. diff --git a/lib/Timepicker/readme.md b/lib/Timepicker/readme.md index 92f68c6d3..2ae9e19c8 100644 --- a/lib/Timepicker/readme.md +++ b/lib/Timepicker/readme.md @@ -46,7 +46,7 @@ Name | type | description | default | required `timeZone` | string | Overrides the time zone provided by context. | "UTC" | false `timeFormat` | string | String to override default time format according to locale | | false `useInput` | bool | If true - Outputs the value as it is displayed in the input. | false | -`usePortal` | bool | if true, the Timepicker will render itself to a React-Portal (the `#OverlayContainer` div) this avoids haveing the Timepicker cutoff by overflow. | false | false +`usePortal` | bool | if true, the Timepicker will render itself to a React-Portal (the `#OverlayContainer` div) this avoids having the Timepicker cut off by overflow. Given the container of this component, `usePortal` may not be required. See [portals documentation](https://folio-org.github.io/stripes-components/iframe.html?viewMode=docs&id=guides-ui-layout--docs#portals) for guidance. | false | false `value` | string | time to be displayed in the visible input. | | false diff --git a/util/StripesOverlayWrapper.js b/util/StripesOverlayWrapper.js new file mode 100644 index 000000000..cd7fe4002 --- /dev/null +++ b/util/StripesOverlayWrapper.js @@ -0,0 +1,13 @@ +import StripesOverlayContext from './StripesOverlayContext'; + +/** UI modules can import `StripesOverlayWrapper` to wrap component trees where +* usage of the `usePortal` prop will be prevalent among children. + + + +*/ +export default ({ children }) => ( + + {children} + +);