UNPKG

@wordpress/block-editor

Version:
70 lines (68 loc) 2.5 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // packages/block-editor/src/hooks/use-zoom-out.js var use_zoom_out_exports = {}; __export(use_zoom_out_exports, { useZoomOut: () => useZoomOut }); module.exports = __toCommonJS(use_zoom_out_exports); var import_data = require("@wordpress/data"); var import_element = require("@wordpress/element"); var import_store = require("../store"); var import_lock_unlock = require("../lock-unlock"); function useZoomOut(enabled = true) { const { setZoomLevel, resetZoomLevel } = (0, import_lock_unlock.unlock)( (0, import_data.useDispatch)(import_store.store) ); const { isZoomedOut, isZoomOut } = (0, import_data.useSelect)((select) => { const { isZoomOut: _isZoomOut } = (0, import_lock_unlock.unlock)(select(import_store.store)); return { isZoomedOut: _isZoomOut(), isZoomOut: _isZoomOut }; }, []); const controlZoomLevelRef = (0, import_element.useRef)(false); const isEnabledRef = (0, import_element.useRef)(enabled); (0, import_element.useEffect)(() => { if (isZoomedOut !== isEnabledRef.current) { controlZoomLevelRef.current = false; } }, [isZoomedOut]); (0, import_element.useEffect)(() => { isEnabledRef.current = enabled; if (enabled !== isZoomOut()) { controlZoomLevelRef.current = true; if (enabled) { setZoomLevel("auto-scaled"); } else { resetZoomLevel(); } } return () => { if (controlZoomLevelRef.current && isZoomOut()) { resetZoomLevel(); } }; }, [enabled, isZoomOut, resetZoomLevel, setZoomLevel]); } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { useZoomOut }); //# sourceMappingURL=use-zoom-out.js.map