import React, { createContext, useCallback, useContext } from 'react';

/** 日历内会改本地预约数据的动作类型，供业务层拦截（如平面图未支持写接口时 toast） */

var CalendarPersistContext = /*#__PURE__*/createContext({});
export var CalendarPersistProvider = function CalendarPersistProvider(_ref) {
  var children = _ref.children,
    value = _ref.value;
  return /*#__PURE__*/React.createElement(CalendarPersistContext.Provider, {
    value: value !== null && value !== void 0 ? value : {}
  }, children);
};

/**
 * 在日历 Demo 内判断某类写操作是否允许执行本地 state 更新。
 */
export function useCalendarPersist() {
  var ctx = useContext(CalendarPersistContext);
  return useCallback(function (kind) {
    if (!ctx.beforePersist) return true;
    return ctx.beforePersist(kind);
  }, [ctx]);
}