UNPKG

6.08 kBSource Map (JSON)View Raw
1{"version":3,"file":"AutoCompleteSelected.js","sources":["../src/components/AutoComplete/AutoCompleteSelected.js"],"sourcesContent":["import React, { useRef, useCallback } from 'react'\nimport PropTypes from 'prop-types'\nimport { RADIUS } from '../../style'\nimport { useTheme } from '../../theme'\nimport { identity, noop } from '../../utils'\nimport ButtonBase from '../ButtonBase/ButtonBase'\nimport AutoComplete from './AutoComplete'\n\nfunction AutoCompleteSelected({\n forwardedRef,\n itemButtonStyles,\n items,\n onChange,\n onSelect,\n onSelectedClick = noop,\n placeholder,\n renderItem,\n required,\n renderSelected = identity,\n selected,\n selectedButtonStyles = '',\n value,\n wide,\n}) {\n const theme = useTheme()\n\n const ref = forwardedRef\n const selectedRef = useRef()\n\n const handleSelect = useCallback(\n selected => {\n onSelect(selected)\n setTimeout(() => {\n selectedRef.current.focus()\n }, 0)\n },\n [onSelect]\n )\n const handleSelectedClick = useCallback(() => {\n onSelectedClick()\n setTimeout(() => {\n if (ref && ref.current) {\n ref.current.select()\n ref.current.focus()\n }\n }, 0)\n }, [ref, onSelectedClick])\n\n if (selected) {\n return (\n <ButtonBase\n onClick={handleSelectedClick}\n ref={selectedRef}\n focusRingRadius={RADIUS}\n focusRingSpacing={1}\n css={`\n height: 40px;\n width: 100%;\n text-align: left;\n background: ${theme.surface};\n cursor: pointer;\n border: 1px solid ${theme.border};\n padding: 4px 8px;\n ${selectedButtonStyles};\n `}\n >\n {renderSelected(selected)}\n </ButtonBase>\n )\n }\n\n return (\n <AutoComplete\n itemButtonStyles={itemButtonStyles}\n items={items}\n onChange={onChange}\n onSelect={handleSelect}\n placeholder={placeholder}\n ref={ref}\n renderItem={renderItem}\n required={required}\n value={value}\n wide={wide}\n />\n )\n}\n\nAutoCompleteSelected.propTypes = {\n forwardedRef: PropTypes.object,\n itemButtonStyles: PropTypes.string,\n items: PropTypes.array.isRequired,\n onChange: PropTypes.func.isRequired,\n onSelect: PropTypes.func.isRequired,\n onSelectedClick: PropTypes.func,\n placeholder: PropTypes.string,\n renderItem: PropTypes.func,\n renderSelected: PropTypes.func,\n required: PropTypes.bool,\n selected: PropTypes.object,\n selectedButtonStyles: PropTypes.string,\n value: PropTypes.string,\n wide: PropTypes.bool,\n}\n\nconst AutoCompleteSelectedMemo = React.memo(AutoCompleteSelected)\n\nexport default React.forwardRef((props, ref) => (\n <AutoCompleteSelectedMemo {...props} forwardedRef={ref} />\n))\n"],"names":["AutoCompleteSelected","forwardedRef","itemButtonStyles","items","onChange","onSelect","onSelectedClick","noop","placeholder","renderItem","required","renderSelected","identity","selected","selectedButtonStyles","value","wide","theme","useTheme","ref","selectedRef","useRef","handleSelect","useCallback","setTimeout","current","focus","handleSelectedClick","select","React","RADIUS","surface","border","AutoComplete","propTypes","PropTypes","object","string","array","isRequired","func","bool","AutoCompleteSelectedMemo","memo","forwardRef","props"],"mappings":"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"}
\No newline at end of file