UNPKG

jobiqo-cl

Version:

[![CircleCI](https://circleci.com/gh/jobiqo/jobiqo-cl.svg?style=svg&circle-token=5a24efa5b8bbc4879276123e77d0d3f35ca7144c)](https://circleci.com/gh/jobiqo/jobiqo-cl)

144 lines (133 loc) 6.04 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } var tslib_es6 = require('../../../../../../node_modules/tslib/tslib.es6.js'); var React = require('react'); var React__default = _interopDefault(React); var styled = require('styled-components'); var styled__default = _interopDefault(styled); var Geosuggest_esm = require('../../../../../../node_modules/react-geosuggest/module/Geosuggest.esm.js'); /** * @file index.tsx * * @fileoverview Displays a google places API Autocomplete component. */ const GoogleAutocompleteWrapper = styled__default.div ` position: relative; .geosuggest__input { box-sizing: border-box; background: ${props => props.theme.autocomplete.input.background}; font-size: ${props => props.theme.autocomplete.input.fontSize}; line-height: ${props => props.theme.autocomplete.input.lineHeight}; margin: ${props => props.theme.autocomplete.input.margin}; padding: ${props => props.theme.autocomplete.input.padding}; border-radius: ${props => props.theme.autocomplete.input.borderRadius}; border-width: ${props => props.theme.autocomplete.input.borderWidth}; border-style: ${props => props.theme.autocomplete.input.borderStyle}; border-color: ${props => props.theme.autocomplete.input.borderColor}; width: ${props => props.theme.autocomplete.input.width}; ${props => props.theme.mediaQueries.medium} { max-width: ${props => props.theme.autocomplete.input.width}; width: auto; } &:focus, &:active { outline: 0; border-color: ${props => props.theme.colors.focusRingColor}; box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 0 4px ${props => props.theme.colors.focusRingColor}; } } .geosuggest__suggests { background: ${props => props.theme.autocomplete.dropMenu.background}; max-height: ${props => props.theme.autocomplete.dropMenu.maxHeight}; max-width: ${props => props.theme.autocomplete.dropMenu.maxWidth}; border-right-width: ${props => props.theme.autocomplete.dropMenu.borderWidth}; border-bottom-width: ${props => props.theme.autocomplete.dropMenu.borderWidth}; border-left-width: ${props => props.theme.autocomplete.dropMenu.borderWidth}; border-radius: ${props => props.theme.autocomplete.dropMenu.borderRadius}; border-color: ${props => props.theme.autocomplete.dropMenu.borderColor}; box-shadow: ${props => props.theme.autocomplete.dropMenu.boxShadow}; position: absolute; z-index: 100; border-top-width: 0; overflow-y: auto; overflow-x: hidden; outline: 0; transition: opacity 0.1s ease; border-style: solid; list-style: none; margin: 0; padding: 0; } .geosuggest__suggests--hidden { max-height: 0; overflow: hidden; border-width: 0; } .geosuggest__item { font-size: ${props => props.theme.autocomplete.option.fontSize}; margin: ${props => props.theme.autocomplete.option.margin}; padding: ${props => props.theme.autocomplete.option.padding}; border-radius: ${props => props.theme.autocomplete.option.borderRadius}; border-width: ${props => props.theme.autocomplete.option.borderWidth}; border-style: ${props => props.theme.autocomplete.option.borderStyle}; border-color: ${props => props.theme.autocomplete.option.borderColor}; position: relative; cursor: pointer; display: block; border: none; height: auto; border-top: none; text-transform: none; box-shadow: none; white-space: normal; word-wrap: normal; } .geosuggest__item:hover, .geosuggest__item:focus { background: ${props => props.theme.autocomplete.option.backgroundHover}; } .geosuggest__item__matched-text { color: ${props => props.theme.autocomplete.userValue.color}; font-weight: ${props => props.theme.autocomplete.userValue.fontWeight}; font-style: ${props => props.theme.autocomplete.userValue.fontStyle}; } `; const StyledFocusElementsWrapp = styled__default.div ` position: absolute; border-top-width: 0; border-style: solid; width: 100%; z-index: 90; background: ${props => props.theme.autocomplete.dropMenu.background}; max-height: ${props => props.theme.autocomplete.dropMenu.maxHeight}; max-width: ${props => props.theme.autocomplete.dropMenu.maxWidth}; border-right-width: ${props => props.theme.autocomplete.dropMenu.borderWidth}; border-bottom-width: ${props => props.theme.autocomplete.dropMenu.borderWidth}; border-left-width: ${props => props.theme.autocomplete.dropMenu.borderWidth}; border-radius: ${props => props.theme.autocomplete.dropMenu.borderRadius}; border-color: ${props => props.theme.autocomplete.dropMenu.borderColor}; `; const GoogleGEOAutocomplete = (_a) => { var { size = 40, refElement, focusElements = null } = _a, props = tslib_es6.__rest(_a, ["size", "refElement", "focusElements"]); const [showFocusElements, setShowFocusElements] = React.useState(false); return (React__default.createElement(GoogleAutocompleteWrapper, null, React__default.createElement(Geosuggest_esm.default, Object.assign({}, (refElement ? { ref: refElement } : null), { size: size }, props, (focusElements ? { onFocus: e => setShowFocusElements(true), onBlur: e => { setTimeout(() => { setShowFocusElements(false); }, 50); }, onSuggestSelect: suggest => { props.onSuggestSelect(suggest); setShowFocusElements(false); } } : null))), showFocusElements && (React__default.createElement(StyledFocusElementsWrapp, { className: "focus-elements" }, focusElements)))); }; exports.GoogleGEOAutocomplete = GoogleGEOAutocomplete; exports.StyledFocusElementsWrapp = StyledFocusElementsWrapp;