0.2.0 • Published 6 years ago

popper-max-size-modifier v0.2.0

Weekly downloads
29,865
License
MIT
Repository
-
Last release
6 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-2457wido-widgetwido-widget-v4wido-widget-v5test-swap-widgetsswap-swapy-widgetsv3ui-liblacront-core-componentshns-reactintergalacticmeme-widgets@web3-react-widgets/core@wunsz-4soft/uniswap-widgets@washingtonpost/wpds-navigation-menu@washingtonpost/wpds-ui-kit@worksolutions/components@wtchtwr/uniswap-widgets@trugly-labs/widgets-fork@uif/next@uif/next-over@uif/core@uniswap/widgets@totality-fi/widgets@testlio/panthera@treelab/panda@yumyumswap/widgetsalfalab-core-components-fixedaxelra-uniswap-widgets@gravityfinance/widgets@ecgc/ramp@crescentswap/widgets@cronus-finance/widgetsstratoswap-widgetsuperdesk-ui-frameworktstststtest-copy-widgetstobiuniswap-widget@bitswap/widgets@byzanteam/jet-components@brydge-network/demo-widget@brydge-network/widget@bombswap/widgets@boy-who-cried-wolf/uniswap-widgetsuniswap-widgets-for-extensionuniswap-widgets-qwquniswap-pool-swapzxtest666@nftearth/uniswap-widgetsqihw-uniswapv3-widgetsramp-pcardeno-uniswapwidgetbase5-uiblueswapbasewidgetsdmode-widgetforgetwidgets@sheetxl/common-mui@sunmoon11100/uniswap-widgets@sussyswap/widgetseasydefi_packageex-home-uifacilmap-frontend@roheat/widgets@ntbjs/react-components@openoscom/uniswap@glide-finance/widgets@dso-toolkit/core@ensi-platform/core-components@degenfrens/swapper@derpdex/widgets@intimefinance/widgets@forge-trade/widgets@friggeco/uniswap-widgets@frontapp/ui-kit@divswap/widgets@dex-swap/widgets@fibery/ui-kit@fulcanellee/core-components-sandbox@pollum-io/widgets@pondx/widgets@misfer-alethea/widgets@justdev337/widgets@sanity/base@mokatte/widgets@mokatte/widgets-mod@semcore/base-components@overdose/components@rescui/dropdown@ricokahler/sanity-ui-test@planning-center/ui-kit@planningcenter/tapestry-react@kokal33/widgets@kofime/uniswap-widgets@mypublished/widgets@keyko.io/widgets@0xgingi/uniswap-widgets@prezly/slate-editor@adfuel/uniswap-widgets
0.2.0

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago