@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
8 lines (7 loc) • 5.78 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../src/components/styles-canvas/index.js"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { ESCAPE } from '@wordpress/keycodes';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { closeSmall } from '@wordpress/icons';\nimport { useFocusOnMount, useFocusReturn } from '@wordpress/compose';\nimport { store as preferencesStore } from '@wordpress/preferences';\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport StylesCanvasStyleBook from './style-book';\nimport StylesCanvasRevisions from './revisions';\nimport { store as editorStore } from '../../store';\nimport ResizableEditor from '../resizable-editor';\n\n/**\n * Helper function to get the title for the styles canvas based on current state.\n *\n * @param {string} path Current styles path.\n * @param {boolean} showStylebook Whether stylebook is visible.\n * @return {string} Translated string for the canvas title.\n */\nexport function getStylesCanvasTitle( path, showStylebook ) {\n\tif ( showStylebook ) {\n\t\treturn __( 'Style Book' );\n\t}\n\tif ( path?.startsWith( '/revisions' ) ) {\n\t\treturn __( 'Style Revisions' );\n\t}\n\treturn '';\n}\n\n/**\n * Styles canvas component - orchestrates rendering of style book and revisions.\n * Determines what content to show based on global styles navigation state.\n *\n * @return {React.JSX.Element} The styles canvas or null if nothing to render.\n */\nexport default function StylesCanvas() {\n\tconst { stylesPath, showStylebook, showListViewByDefault } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getStylesPath, getShowStylebook } = unlock(\n\t\t\t\tselect( editorStore )\n\t\t\t);\n\n\t\t\tconst _showListViewByDefault = select( preferencesStore ).get(\n\t\t\t\t'core',\n\t\t\t\t'showListViewByDefault'\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tstylesPath: getStylesPath(),\n\t\t\t\tshowStylebook: getShowStylebook(),\n\t\t\t\tshowListViewByDefault: _showListViewByDefault,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst { resetStylesNavigation, setStylesPath } = unlock(\n\t\tuseDispatch( editorStore )\n\t);\n\tconst { setIsListViewOpened } = useDispatch( editorStore );\n\n\tconst focusOnMountRef = useFocusOnMount( 'firstElement' );\n\tconst sectionFocusReturnRef = useFocusReturn();\n\n\t// Determine what content to render\n\tlet content = null;\n\n\tif ( showStylebook ) {\n\t\tcontent = (\n\t\t\t<StylesCanvasStyleBook\n\t\t\t\tpath={ stylesPath }\n\t\t\t\tonPathChange={ setStylesPath }\n\t\t\t\tref={ sectionFocusReturnRef }\n\t\t\t/>\n\t\t);\n\t} else if ( stylesPath?.startsWith( '/revisions' ) ) {\n\t\tcontent = (\n\t\t\t<StylesCanvasRevisions\n\t\t\t\tpath={ stylesPath }\n\t\t\t\tref={ sectionFocusReturnRef }\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst title = getStylesCanvasTitle( stylesPath, showStylebook );\n\tconst onCloseCanvas = () => {\n\t\tsetIsListViewOpened( showListViewByDefault );\n\t\tresetStylesNavigation();\n\t};\n\n\tconst closeOnEscape = ( event ) => {\n\t\tif ( event.keyCode === ESCAPE && ! event.defaultPrevented ) {\n\t\t\tevent.preventDefault();\n\t\t\tonCloseCanvas();\n\t\t}\n\t};\n\n\treturn (\n\t\t<div className=\"editor-styles-canvas\">\n\t\t\t<ResizableEditor enableResizing={ false }>\n\t\t\t\t{ /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */ }\n\t\t\t\t<section\n\t\t\t\t\tclassName=\"editor-styles-canvas__section\"\n\t\t\t\t\tref={ focusOnMountRef }\n\t\t\t\t\tonKeyDown={ closeOnEscape }\n\t\t\t\t\taria-label={ title }\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tclassName=\"editor-styles-canvas__close-button\"\n\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\tlabel={ __( 'Close' ) }\n\t\t\t\t\t\tonClick={ onCloseCanvas }\n\t\t\t\t\t/>\n\t\t\t\t\t{ content }\n\t\t\t\t</section>\n\t\t\t</ResizableEditor>\n\t\t</div>\n\t);\n}\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAAuB;AACvB,sBAAuB;AACvB,kBAAmB;AACnB,kBAAuC;AACvC,mBAA2B;AAC3B,qBAAgD;AAChD,yBAA0C;AAI1C,yBAAuB;AACvB,wBAAkC;AAClC,uBAAkC;AAClC,mBAAqC;AACrC,8BAA4B;AA0DzB;AAjDI,SAAS,qBAAsB,MAAM,eAAgB;AAC3D,MAAK,eAAgB;AACpB,eAAO,gBAAI,YAAa;AAAA,EACzB;AACA,MAAK,MAAM,WAAY,YAAa,GAAI;AACvC,eAAO,gBAAI,iBAAkB;AAAA,EAC9B;AACA,SAAO;AACR;AAQe,SAAR,eAAgC;AACtC,QAAM,EAAE,YAAY,eAAe,sBAAsB,QAAI;AAAA,IAC5D,CAAE,WAAY;AACb,YAAM,EAAE,eAAe,iBAAiB,QAAI;AAAA,QAC3C,OAAQ,aAAAA,KAAY;AAAA,MACrB;AAEA,YAAM,yBAAyB,OAAQ,mBAAAC,KAAiB,EAAE;AAAA,QACzD;AAAA,QACA;AAAA,MACD;AAEA,aAAO;AAAA,QACN,YAAY,cAAc;AAAA,QAC1B,eAAe,iBAAiB;AAAA,QAChC,uBAAuB;AAAA,MACxB;AAAA,IACD;AAAA,IACA,CAAC;AAAA,EACF;AACA,QAAM,EAAE,uBAAuB,cAAc,QAAI;AAAA,QAChD,yBAAa,aAAAD,KAAY;AAAA,EAC1B;AACA,QAAM,EAAE,oBAAoB,QAAI,yBAAa,aAAAA,KAAY;AAEzD,QAAM,sBAAkB,gCAAiB,cAAe;AACxD,QAAM,4BAAwB,+BAAe;AAG7C,MAAI,UAAU;AAEd,MAAK,eAAgB;AACpB,cACC;AAAA,MAAC,kBAAAE;AAAA,MAAA;AAAA,QACA,MAAO;AAAA,QACP,cAAe;AAAA,QACf,KAAM;AAAA;AAAA,IACP;AAAA,EAEF,WAAY,YAAY,WAAY,YAAa,GAAI;AACpD,cACC;AAAA,MAAC,iBAAAC;AAAA,MAAA;AAAA,QACA,MAAO;AAAA,QACP,KAAM;AAAA;AAAA,IACP;AAAA,EAEF;AAEA,QAAM,QAAQ,qBAAsB,YAAY,aAAc;AAC9D,QAAM,gBAAgB,MAAM;AAC3B,wBAAqB,qBAAsB;AAC3C,0BAAsB;AAAA,EACvB;AAEA,QAAM,gBAAgB,CAAE,UAAW;AAClC,QAAK,MAAM,YAAY,0BAAU,CAAE,MAAM,kBAAmB;AAC3D,YAAM,eAAe;AACrB,oBAAc;AAAA,IACf;AAAA,EACD;AAEA,SACC,4CAAC,SAAI,WAAU,wBACd,sDAAC,wBAAAC,SAAA,EAAgB,gBAAiB,OAEjC;AAAA,IAAC;AAAA;AAAA,MACA,WAAU;AAAA,MACV,KAAM;AAAA,MACN,WAAY;AAAA,MACZ,cAAa;AAAA,MAEb;AAAA;AAAA,UAAC;AAAA;AAAA,YACA,MAAK;AAAA,YACL,WAAU;AAAA,YACV,MAAO;AAAA,YACP,WAAQ,gBAAI,OAAQ;AAAA,YACpB,SAAU;AAAA;AAAA,QACX;AAAA,QACE;AAAA;AAAA;AAAA,EACH,GACD,GACD;AAEF;",
"names": ["editorStore", "preferencesStore", "StylesCanvasStyleBook", "StylesCanvasRevisions", "ResizableEditor"]
}