UNPKG

@kiwicom/smart-faq

Version:

Smart FAQ

158 lines (133 loc) 5.6 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.SearchState = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread")); var React = _interopRequireWildcard(require("react")); var _functionUtils = require("../helpers/functionUtils"); // @flow var initialState = { searchText: '', queriesBeforeClick: 0, isVisible: true }; /*:: type Props = { children: React.Node, };*/ /*:: export type State = { searchText: string, queriesBeforeClick: number, isVisible: boolean, };*/ /*:: export type SearchStateType = State & { changeSearchText: (searchText: string) => void, incrementQueriesCount: () => void, resetQueriesCount: () => void, toggleSearch: () => void, disableSearch: () => void, enableSearch: () => void, };*/ var SearchState /*: React.Context<SearchStateType>*/ = React.createContext((0, _objectSpread2.default)({}, initialState, { changeSearchText: function changeSearchText(text /*: string*/ ) {}, // eslint-disable-line no-unused-vars incrementQueriesCount: function incrementQueriesCount() {}, // eslint-disable-line no-unused-vars resetQueriesCount: function resetQueriesCount() {}, // eslint-disable-line no-unused-vars toggleSearch: function toggleSearch() {}, // eslint-disable-line no-unused-vars disableSearch: function disableSearch() {}, enableSearch: function enableSearch() {} })); exports.SearchState = SearchState; var SearchStateProvider = /*#__PURE__*/ function (_React$Component) { (0, _inherits2.default)(SearchStateProvider, _React$Component); function SearchStateProvider() { var _getPrototypeOf2; var _this; (0, _classCallCheck2.default)(this, SearchStateProvider); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(SearchStateProvider)).call.apply(_getPrototypeOf2, [this].concat(args))); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "state", initialState); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "changeSearchText", function (searchText /*: string*/ ) { _this.setState({ searchText: searchText }); }); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "resetQueriesCount", function () { _this.setState({ queriesBeforeClick: 0 }); }); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "incrementQueriesCount", (0, _functionUtils.debounce)(function () { _this.setState(function (prevState) { return { queriesBeforeClick: prevState.queriesBeforeClick + 1 }; }); })); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "toggleSearch", function () { _this.setState(function (prevState) { return { isVisible: !prevState.isVisible }; }); }); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "disableSearch", function () { _this.setState({ isVisible: false }); }); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "enableSearch", function () { _this.setState({ isVisible: true }); }); return _this; } (0, _createClass2.default)(SearchStateProvider, [{ key: "render", value: function render() { var _this$state = this.state, queriesBeforeClick = _this$state.queriesBeforeClick, searchText = _this$state.searchText, isVisible = _this$state.isVisible; return React.createElement(SearchState.Provider, { value: { searchText: searchText, isVisible: isVisible, changeSearchText: this.changeSearchText, incrementQueriesCount: this.incrementQueriesCount, resetQueriesCount: this.resetQueriesCount, queriesBeforeClick: queriesBeforeClick, toggleSearch: this.toggleSearch, enableSearch: this.enableSearch, disableSearch: this.disableSearch } }, this.props.children); } }]); return SearchStateProvider; }(React.Component); var _default = SearchStateProvider; exports.default = _default;