0.2.0 • Published 4 years ago

popper-max-size-modifier v0.2.0

Weekly downloads
29,865
License
MIT
Repository
-
Last release
4 years ago

popper-max-size-modifier

A Popper.js modifier to change the size of your popper to fit it within the available viewport space.

Installation

# With npm
npm i popper-max-size-modifier

# With Yarn
yarn add popper-max-size-modifier

Demo

https://codesandbox.io/s/great-tesla-3roz7

Usage

import {createPopper} from '@popperjs/core';
import maxSize from 'popper-max-size-modifier';

// Create your own apply modifier that adds the styles to the state
const applyMaxSize = {
  name: 'applyMaxSize',
  enabled: true,
  phase: 'beforeWrite',
  requires: ['maxSize'],
  fn({state}) {
    // The `maxSize` modifier provides this data
    const {width, height} = state.modifiersData.maxSize;

    state.styles.popper = {
      ...state.styles.popper,
      maxWidth: `${width}px`,
      maxHeight: `${height}px`
    };
  }
};

createPopper(reference, popper, {
  modifiers: [maxSize, applyMaxSize]
});

Sometimes you may want the flip modifier to take precedence in cases where the maxSize modifier will make the popper too small (e.g. a minimum acceptable size):

// Minimum acceptable size is 100px
`${Math.max(100, width)}px`;
`${Math.max(100, height)}px`;

Options

All detectOverflow options can be passed.

createPopper(reference, popper, {
  modifiers: [
    {
      ...maxSize,
      options: {
        boundary: customBoundaryElement,
        padding: 20
      }
    },
    applyMaxSize
  ]
});

Contributing

The source is located in the root package at src/modifiers/maxSize.js.

@arthswap/widgets@openos.com/uniswappangea-widgets@everything-registry/sub-chunk-2457@forge-trade/widgets@derpdex/widgets@intimefinance/widgets@mageswap/widgets@fibery/ui-kit@mana-ui/ui@divswap/widgets@gravityfinance/widgets@frontapp/ui-kit@glide-finance/widgets@friggeco/uniswap-widgets@dso-toolkit/core@mypublished/widgets@ntbjs/react-components@nftearth/uniswap-widgetstest-swap-widgetsswap-swapy-widgetssuperdesk-ui-frameworkqihw-uniswapv3-widgetsramp-pcartstststv3ui-libuniswap-widgets-for-extensionuniswap-widgets-qwqwido-widgetwido-widget-v4wido-widget-v5zxtest666@max2204/widget-with-charitydeno-uniswapwidget@planning-center/ui-kit@planningcenter/tapestry-react@pollum-io/widgets@pondx/widgets@sanity/base@prezly/slate-editorforgetwidgets@rescui/dropdown@ricokahler/sanity-ui-testdmode-widget@openoscom/uniswapfacilmap-frontend@mokatte/widgets@mokatte/widgets-mod@kokal33/widgets@misfer-alethea/widgets@keyko.io/widgets@sheetxl/common-mui@totality-fi/widgets@treelab/panda@wtchtwr/uniswap-widgets@wunsz-4soft/uniswap-widgets@overdose/components@web3-react-widgets/core@sussyswap/widgets@uniswap/widgets@worksolutions/components@trugly-labs/widgets-forkhns-react@yumyumswap/widgets@uif/next@uif/next-over@uif/core@atestalth/widgets@0xgingi/uniswap-widgetsaxelra-uniswap-widgets@axelraag/frigg-uniswap-widgetslacront-core-components@adfuel/uniswap-widgets@airtame/ui@brydge-network/widget@brydge-network/demo-widget@byzanteam/jet-components@bombswap/widgetsblueswapbasewidgetsbase5-ui@alfalab/core-components-popover@alfalab/core-components@washingtonpost/wpds-navigation-menu@crescentswap/widgets@cronus-finance/widgets
0.2.0

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago