UNPKG

ahooks

Version:
45 lines (44 loc) 1.88 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _tslib = require("tslib"); var _jsCookie = _interopRequireDefault(require("js-cookie")); var _react = require("react"); var _useMemoizedFn = _interopRequireDefault(require("../useMemoizedFn")); var _utils = require("../utils"); var useCookieState = function useCookieState(cookieKey) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var _useState = (0, _react.useState)(function () { var cookieValue = _jsCookie["default"].get(cookieKey); if ((0, _utils.isString)(cookieValue)) { return cookieValue; } if ((0, _utils.isFunction)(options.defaultValue)) { return options.defaultValue(); } return options.defaultValue; }), _useState2 = (0, _slicedToArray2["default"])(_useState, 2), state = _useState2[0], setState = _useState2[1]; var updateState = (0, _useMemoizedFn["default"])(function (newValue) { var newOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; // eslint-disable-next-line @typescript-eslint/no-unused-vars var _a = Object.assign(Object.assign({}, options), newOptions), defaultValue = _a.defaultValue, restOptions = (0, _tslib.__rest)(_a, ["defaultValue"]); var value = (0, _utils.isFunction)(newValue) ? newValue(state) : newValue; setState(value); if (value === undefined) { _jsCookie["default"].remove(cookieKey); } else { _jsCookie["default"].set(cookieKey, value, restOptions); } }); return [state, updateState]; }; var _default = exports["default"] = useCookieState;