@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
8 lines (7 loc) • 5.43 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../src/components/save-publish-panels/index.js"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { Button, createSlotFill } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport EntitiesSavedStates from '../entities-saved-states';\nimport PostPublishPanel from '../post-publish-panel';\nimport PluginPrePublishPanel from '../plugin-pre-publish-panel';\nimport PluginPostPublishPanel from '../plugin-post-publish-panel';\nimport { store as editorStore } from '../../store';\n\nconst { Fill, Slot } = createSlotFill( 'ActionsPanel' );\n\nexport const ActionsPanelFill = Fill;\n\nexport default function SavePublishPanels( {\n\tsetEntitiesSavedStatesCallback,\n\tcloseEntitiesSavedStates,\n\tisEntitiesSavedStatesOpen,\n\tforceIsDirtyPublishPanel,\n} ) {\n\tconst { closePublishSidebar, togglePublishSidebar } =\n\t\tuseDispatch( editorStore );\n\tconst {\n\t\tpublishSidebarOpened,\n\t\tisPublishable,\n\t\tisDirty,\n\t\thasOtherEntitiesChanges,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tisPublishSidebarOpened,\n\t\t\tisEditedPostPublishable,\n\t\t\tisCurrentPostPublished,\n\t\t\tisEditedPostDirty,\n\t\t\thasNonPostEntityChanges,\n\t\t} = select( editorStore );\n\t\tconst _hasOtherEntitiesChanges = hasNonPostEntityChanges();\n\t\treturn {\n\t\t\tpublishSidebarOpened: isPublishSidebarOpened(),\n\t\t\tisPublishable:\n\t\t\t\t! isCurrentPostPublished() && isEditedPostPublishable(),\n\t\t\tisDirty: _hasOtherEntitiesChanges || isEditedPostDirty(),\n\t\t\thasOtherEntitiesChanges: _hasOtherEntitiesChanges,\n\t\t};\n\t}, [] );\n\n\tconst openEntitiesSavedStates = useCallback(\n\t\t() => setEntitiesSavedStatesCallback( true ),\n\t\t[]\n\t);\n\n\t// It is ok for these components to be unmounted when not in visual use.\n\t// We don't want more than one present at a time, decide which to render.\n\tlet unmountableContent;\n\tif ( publishSidebarOpened ) {\n\t\tunmountableContent = (\n\t\t\t<PostPublishPanel\n\t\t\t\tonClose={ closePublishSidebar }\n\t\t\t\tforceIsDirty={ forceIsDirtyPublishPanel }\n\t\t\t\tPrePublishExtension={ PluginPrePublishPanel.Slot }\n\t\t\t\tPostPublishExtension={ PluginPostPublishPanel.Slot }\n\t\t\t/>\n\t\t);\n\t} else if ( isPublishable && ! hasOtherEntitiesChanges ) {\n\t\tunmountableContent = (\n\t\t\t<div className=\"editor-layout__toggle-publish-panel\">\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ togglePublishSidebar }\n\t\t\t\t\taria-expanded={ false }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Open publish panel' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t);\n\t} else {\n\t\tunmountableContent = (\n\t\t\t<div className=\"editor-layout__toggle-entities-saved-states-panel\">\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ openEntitiesSavedStates }\n\t\t\t\t\taria-expanded={ false }\n\t\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\t\tdisabled={ ! isDirty }\n\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Open save panel' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Since EntitiesSavedStates controls its own panel, we can keep it\n\t// always mounted to retain its own component state (such as checkboxes).\n\treturn (\n\t\t<>\n\t\t\t{ isEntitiesSavedStatesOpen && (\n\t\t\t\t<EntitiesSavedStates\n\t\t\t\t\tclose={ closeEntitiesSavedStates }\n\t\t\t\t\trenderDialog\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<Slot bubblesVirtually />\n\t\t\t{ ! isEntitiesSavedStatesOpen && unmountableContent }\n\t\t</>\n\t);\n}\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAuC;AACvC,wBAAuC;AACvC,kBAAmB;AACnB,qBAA4B;AAK5B,mCAAgC;AAChC,gCAA6B;AAC7B,sCAAkC;AAClC,uCAAmC;AACnC,mBAAqC;AA+ClC;AA7CH,IAAM,EAAE,MAAM,KAAK,QAAI,kCAAgB,cAAe;AAE/C,IAAM,mBAAmB;AAEjB,SAAR,kBAAoC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,EAAE,qBAAqB,qBAAqB,QACjD,yBAAa,aAAAA,KAAY;AAC1B,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,QAAI,uBAAW,CAAE,WAAY;AAC5B,UAAM;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD,IAAI,OAAQ,aAAAA,KAAY;AACxB,UAAM,2BAA2B,wBAAwB;AACzD,WAAO;AAAA,MACN,sBAAsB,uBAAuB;AAAA,MAC7C,eACC,CAAE,uBAAuB,KAAK,wBAAwB;AAAA,MACvD,SAAS,4BAA4B,kBAAkB;AAAA,MACvD,yBAAyB;AAAA,IAC1B;AAAA,EACD,GAAG,CAAC,CAAE;AAEN,QAAM,8BAA0B;AAAA,IAC/B,MAAM,+BAAgC,IAAK;AAAA,IAC3C,CAAC;AAAA,EACF;AAIA,MAAI;AACJ,MAAK,sBAAuB;AAC3B,yBACC;AAAA,MAAC,0BAAAC;AAAA,MAAA;AAAA,QACA,SAAU;AAAA,QACV,cAAe;AAAA,QACf,qBAAsB,gCAAAC,QAAsB;AAAA,QAC5C,sBAAuB,iCAAAC,QAAuB;AAAA;AAAA,IAC/C;AAAA,EAEF,WAAY,iBAAiB,CAAE,yBAA0B;AACxD,yBACC,4CAAC,SAAI,WAAU,uCACd;AAAA,MAAC;AAAA;AAAA,QACA,uBAAqB;AAAA,QACrB,SAAQ;AAAA,QACR,SAAU;AAAA,QACV,iBAAgB;AAAA,QAEd,8BAAI,oBAAqB;AAAA;AAAA,IAC5B,GACD;AAAA,EAEF,OAAO;AACN,yBACC,4CAAC,SAAI,WAAU,qDACd;AAAA,MAAC;AAAA;AAAA,QACA,uBAAqB;AAAA,QACrB,SAAQ;AAAA,QACR,SAAU;AAAA,QACV,iBAAgB;AAAA,QAChB,iBAAc;AAAA,QACd,UAAW,CAAE;AAAA,QACb,wBAAsB;AAAA,QAEpB,8BAAI,iBAAkB;AAAA;AAAA,IACzB,GACD;AAAA,EAEF;AAIA,SACC,4EACG;AAAA,iCACD;AAAA,MAAC,6BAAAC;AAAA,MAAA;AAAA,QACA,OAAQ;AAAA,QACR,cAAY;AAAA;AAAA,IACb;AAAA,IAED,4CAAC,QAAK,kBAAgB,MAAC;AAAA,IACrB,CAAE,6BAA6B;AAAA,KAClC;AAEF;",
"names": ["editorStore", "PostPublishPanel", "PluginPrePublishPanel", "PluginPostPublishPanel", "EntitiesSavedStates"]
}