import React, { createContext, useContext, useMemo } from 'react';
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
var EditorToolbarContext = /*#__PURE__*/createContext({
  editorView: null,
  editorAppearance: undefined,
  editorViewMode: undefined,
  editorToolbarDockingPreference: undefined
});

/**
 * Access editor specific config and state within a toolbar component
 */
export var useEditorToolbar = function useEditorToolbar() {
  var context = useContext(EditorToolbarContext);
  if (!context) {
    throw new Error('useEditorToolbar must be used within EditorToolbarContext');
  }
  return context;
};
// eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports
export var EditorToolbarProvider = function EditorToolbarProvider(_ref) {
  var children = _ref.children,
    editorView = _ref.editorView,
    editorAppearance = _ref.editorAppearance,
    editorViewMode = _ref.editorViewMode,
    editorToolbarDockingPreference = _ref.editorToolbarDockingPreference,
    isOffline = _ref.isOffline;
  var memoizedValue = useMemo(function () {
    return {
      editorView: editorView,
      editorAppearance: editorAppearance,
      editorViewMode: editorViewMode,
      editorToolbarDockingPreference: editorToolbarDockingPreference,
      isOffline: isOffline
    };
  }, [editorView, editorAppearance, editorViewMode, editorToolbarDockingPreference, isOffline]);
  var contextValue = expValEquals('platform_editor_perf_lint_cleanup', 'isEnabled', true) ? memoizedValue : {
    editorView: editorView,
    editorAppearance: editorAppearance,
    editorViewMode: editorViewMode,
    editorToolbarDockingPreference: editorToolbarDockingPreference,
    isOffline: isOffline
  };
  return /*#__PURE__*/React.createElement(EditorToolbarContext.Provider, {
    value: contextValue
  }, children);
};