@kiwicom/smart-faq
Version:
Smart FAQ
158 lines (133 loc) • 5.6 kB
JavaScript
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;
;