Sha256: cdd168d5e9df0b1bfa9955ea85ec235d0eb2f7596ce59ece5bf27c1df67ca22c

Contents?: true

Size: 1.22 KB

Versions: 111

Compression:

Stored size: 1.22 KB

Contents

import React, { useState } from 'react'

import {
  Button,
} from '../..'

import Typeahead from '../_typeahead'

const options = [
  { label: 'Orange', value: '#FFA500' },
  { label: 'Red', value: '#FF0000' },
  { label: 'Green', value: '#00FF00' },
  { label: 'Blue', value: '#0000FF' },
  { label: 'Amaranth', value: '#9F2B68' },
  { label: 'Key Lime', value: '#DAF7A6' },
  { label: 'Turquois', value: '#00FFD0' },
]

const TypeaheadCustomMenuList = (props) => {
  const defaultColorOptions = options.slice(0, 3)
  const [colorOptions, setColorOptions] = useState(defaultColorOptions)

  const moreToLoad = colorOptions.length == defaultColorOptions.length
  const loadColors = moreToLoad ? () => setColorOptions(options) : () => setColorOptions(defaultColorOptions)

  const menuListProps = {
    footer: (<Button
        margin="sm"
        onClick={loadColors}
        text={`Load ${moreToLoad ? "More" : "Less"}`}
             />)
  }

  const MenuList = (props) => (
    <Typeahead.MenuList
        {...menuListProps}
        {...props}
    />
  )

  return (
    <Typeahead
        components={{ MenuList }}
        label="Colors"
        options={colorOptions}
        {...props}
    />
  )
}

export default TypeaheadCustomMenuList

Version data entries

111 entries across 111 versions & 2 rubygems

Version Path
playbook_ui_docs-13.34.1.pre.alpha.play1407statvaluekitinconsistencies3388 app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_menu_list.jsx
playbook_ui-13.34.1.pre.alpha.play1407statvaluekitinconsistencies3388 app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_menu_list.jsx
playbook_ui_docs-13.34.1.pre.alpha.PLAY14703378 app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_menu_list.jsx
playbook_ui-13.34.1.pre.alpha.PLAY14703378 app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_menu_list.jsx
playbook_ui_docs-13.34.1 app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_menu_list.jsx
playbook_ui-13.34.1 app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_menu_list.jsx
playbook_ui_docs-13.34.0.pre.alpha.PBNTR358responsiveadvancedtablereact3370 app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_menu_list.jsx
playbook_ui-13.34.0.pre.alpha.PBNTR358responsiveadvancedtablereact3370 app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_menu_list.jsx
playbook_ui_docs-13.34.0.pre.alpha.PBNTR358responsiveadvancedtablereact3369 app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_menu_list.jsx
playbook_ui-13.34.0.pre.alpha.PBNTR358responsiveadvancedtablereact3369 app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_menu_list.jsx
playbook_ui-13.34.0.pre.alpha.PBNTR358responsiveadvancedtablereact3368 app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_menu_list.jsx
playbook_ui_docs-13.34.0.pre.alpha.PBNTR358responsiveadvancedtablereact3366 app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_menu_list.jsx
playbook_ui-13.34.0.pre.alpha.PBNTR358responsiveadvancedtablereact3366 app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_menu_list.jsx
playbook_ui-13.34.0 app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_menu_list.jsx
playbook_ui_docs-13.33.1.pre.alpha.play1407statvaluekitinconsistencies3352 app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_menu_list.jsx
playbook_ui-13.33.1.pre.alpha.play1407statvaluekitinconsistencies3352 app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_menu_list.jsx
playbook_ui_docs-13.33.1.pre.alpha.PLAY14063320 app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_menu_list.jsx
playbook_ui-13.33.1.pre.alpha.PLAY14063320 app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_menu_list.jsx
playbook_ui-13.33.1 app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_menu_list.jsx
playbook_ui_docs-13.32.0.pre.alpha.PLAY1138iconkitaddcolorprop3268 app/pb_kits/playbook/pb_typeahead/docs/_typeahead_custom_menu_list.jsx