UNPKG

@atlaskit/help

Version:
136 lines (133 loc) 6.62 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.SearchInput = void 0; var _react = _interopRequireWildcard(require("react")); var _analyticsNext = require("@atlaskit/analytics-next"); var _textfield = _interopRequireDefault(require("@atlaskit/textfield")); var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button")); var _constants = require("@atlaskit/theme/constants"); var _spinner = _interopRequireDefault(require("@atlaskit/spinner")); var _search = _interopRequireDefault(require("@atlaskit/icon/core/migration/search")); var _closeEditorClose = _interopRequireDefault(require("@atlaskit/icon/core/migration/close--editor-close")); var _react2 = require("@emotion/react"); var _reactIntlNext = require("react-intl-next"); var _Requests = require("../../../model/Requests"); var _searchContext = require("../../contexts/searchContext"); var _messages = require("../../../messages"); var _constants2 = require("../../constants"); var _styled = require("./styled"); var _navigationContext = require("../../contexts/navigationContext"); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /** * @jsxRuntime classic * @jsx jsx */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766 var ANALYTICS_CONTEXT_DATA = { componentName: 'searchInput', packageName: "@atlaskit/help", packageVersion: "8.0.6" }; var buttonStyles = (0, _react2.css)({ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766 width: "".concat((0, _constants.gridSize)() * 3, "px"), // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766 height: "".concat((0, _constants.gridSize)() * 3, "px") }); var SearchInput = exports.SearchInput = function SearchInput(_ref) { var formatMessage = _ref.intl.formatMessage, _ref$isAiEnabled = _ref.isAiEnabled, isAiEnabled = _ref$isAiEnabled === void 0 ? false : _ref$isAiEnabled; var _useNavigationContext = (0, _navigationContext.useNavigationContext)(), view = _useNavigationContext.view; var _useSearchContext = (0, _searchContext.useSearchContext)(), searchValue = _useSearchContext.searchValue, searchState = _useSearchContext.searchState, onSearch = _useSearchContext.onSearch, onSearchInputChanged = _useSearchContext.onSearchInputChanged, onSearchInputCleared = _useSearchContext.onSearchInputCleared; var inputRef = (0, _react.useRef)(null); var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(), createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent; var handleOnInputChange = (0, _react.useCallback)(function (event) { if (onSearch) { var value = event.target.value; onSearch(value); if (onSearchInputChanged) { var analyticsEvent = createAnalyticsEvent({ action: 'inputChanged', attributes: { value: value } }); onSearchInputChanged(event, analyticsEvent, value); } } }, [createAnalyticsEvent, onSearch, onSearchInputChanged]); var handleOnKeyPress = function handleOnKeyPress(event) { if (event.key === 'Enter') { handleOnInputChange(event); } }; var handleOnClearButtonClick = (0, _react.useCallback)(function (event) { if (onSearch) { if (inputRef && inputRef.current) { inputRef.current.value = ''; onSearch(''); } if (onSearchInputCleared) { var analyticsEvent = createAnalyticsEvent({ action: 'clicked' }); onSearchInputCleared(event, analyticsEvent); } } }, [createAnalyticsEvent, onSearch, onSearchInputCleared]); if (inputRef && inputRef.current) { inputRef.current.value = searchValue; } if (view === _constants2.VIEW.ARTICLE || view === _constants2.VIEW.WHATS_NEW_ARTICLE || view === _constants2.VIEW.WHATS_NEW) { return null; } var WrapperComponent = isAiEnabled ? _styled.SearchInputContainerAi : _styled.SearchInputContainer; return (0, _react2.jsx)(WrapperComponent, null, (0, _react2.jsx)(_textfield.default, { "aria-label": formatMessage(_messages.messages.help_search_placeholder), autoComplete: "off", ref: inputRef, name: "help-search-input", elemBeforeInput: (0, _react2.jsx)(_styled.SearchIconContainer, null, (0, _react2.jsx)(_search.default, { LEGACY_margin: "0 2px", color: "currentColor", spacing: "spacious", label: "" })), elemAfterInput: (0, _react2.jsx)(_styled.CloseButtonAndSpinnerContainer, null, searchState === _Requests.REQUEST_STATE.loading && (0, _react2.jsx)(_spinner.default, { size: "small" }), searchValue !== '' && (0, _react2.jsx)(_customThemeButton.default, { css: buttonStyles, appearance: "subtle", onClick: handleOnClearButtonClick, spacing: "none", "aria-label": "Clear field" }, (0, _react2.jsx)(_closeEditorClose.default, { color: "currentColor", spacing: "spacious", label: "" }))), placeholder: formatMessage(_messages.messages.help_search_placeholder), onChange: handleOnInputChange, onKeyPress: handleOnKeyPress, value: searchValue })); }; var SearchInputWithContext = function SearchInputWithContext(props) { return (0, _react2.jsx)(_analyticsNext.AnalyticsContext, { data: ANALYTICS_CONTEXT_DATA }, (0, _react2.jsx)(SearchInput, props)); }; var _default = exports.default = (0, _reactIntlNext.injectIntl)(SearchInputWithContext);