@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
8 lines (7 loc) • 3.88 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../src/components/post-switch-to-draft-button/index.js"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n/**\n * Renders a button component that allows the user to switch a post to draft status.\n *\n * @return {React.ReactNode} The rendered component.\n */\nexport default function PostSwitchToDraftButton() {\n\tdeprecated( 'wp.editor.PostSwitchToDraftButton', {\n\t\tsince: '6.7',\n\t\tversion: '6.9',\n\t} );\n\tconst [ showConfirmDialog, setShowConfirmDialog ] = useState( false );\n\n\tconst { editPost, savePost } = useDispatch( editorStore );\n\tconst { isSaving, isPublished, isScheduled } = useSelect( ( select ) => {\n\t\tconst { isSavingPost, isCurrentPostPublished, isCurrentPostScheduled } =\n\t\t\tselect( editorStore );\n\t\treturn {\n\t\t\tisSaving: isSavingPost(),\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\tisScheduled: isCurrentPostScheduled(),\n\t\t};\n\t}, [] );\n\n\tconst isDisabled = isSaving || ( ! isPublished && ! isScheduled );\n\n\tlet alertMessage;\n\tlet confirmButtonText;\n\tif ( isPublished ) {\n\t\talertMessage = __( 'Are you sure you want to unpublish this post?' );\n\t\tconfirmButtonText = __( 'Unpublish' );\n\t} else if ( isScheduled ) {\n\t\talertMessage = __( 'Are you sure you want to unschedule this post?' );\n\t\tconfirmButtonText = __( 'Unschedule' );\n\t}\n\n\tconst handleConfirm = () => {\n\t\tsetShowConfirmDialog( false );\n\t\teditPost( { status: 'draft' } );\n\t\tsavePost();\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tclassName=\"editor-post-switch-to-draft\"\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tif ( ! isDisabled ) {\n\t\t\t\t\t\tsetShowConfirmDialog( true );\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\taria-disabled={ isDisabled }\n\t\t\t\tvariant=\"secondary\"\n\t\t\t\tstyle={ { flexGrow: '1', justifyContent: 'center' } }\n\t\t\t>\n\t\t\t\t{ __( 'Switch to draft' ) }\n\t\t\t</Button>\n\t\t\t<ConfirmDialog\n\t\t\t\tisOpen={ showConfirmDialog }\n\t\t\t\tonConfirm={ handleConfirm }\n\t\t\t\tonCancel={ () => setShowConfirmDialog( false ) }\n\t\t\t\tconfirmButtonText={ confirmButtonText }\n\t\t\t>\n\t\t\t\t{ alertMessage }\n\t\t\t</ConfirmDialog>\n\t\t</>\n\t);\n}\n"],
"mappings": ";AAGA;AAAA,EACC;AAAA,EACA,+BAA+B;AAAA,OACzB;AACP,SAAS,UAAU;AACnB,SAAS,aAAa,iBAAiB;AACvC,SAAS,gBAAgB;AACzB,OAAO,gBAAgB;AAKvB,SAAS,SAAS,mBAAmB;AA4CnC,mBACC,KADD;AArCa,SAAR,0BAA2C;AACjD,aAAY,qCAAqC;AAAA,IAChD,OAAO;AAAA,IACP,SAAS;AAAA,EACV,CAAE;AACF,QAAM,CAAE,mBAAmB,oBAAqB,IAAI,SAAU,KAAM;AAEpE,QAAM,EAAE,UAAU,SAAS,IAAI,YAAa,WAAY;AACxD,QAAM,EAAE,UAAU,aAAa,YAAY,IAAI,UAAW,CAAE,WAAY;AACvE,UAAM,EAAE,cAAc,wBAAwB,uBAAuB,IACpE,OAAQ,WAAY;AACrB,WAAO;AAAA,MACN,UAAU,aAAa;AAAA,MACvB,aAAa,uBAAuB;AAAA,MACpC,aAAa,uBAAuB;AAAA,IACrC;AAAA,EACD,GAAG,CAAC,CAAE;AAEN,QAAM,aAAa,YAAc,CAAE,eAAe,CAAE;AAEpD,MAAI;AACJ,MAAI;AACJ,MAAK,aAAc;AAClB,mBAAe,GAAI,+CAAgD;AACnE,wBAAoB,GAAI,WAAY;AAAA,EACrC,WAAY,aAAc;AACzB,mBAAe,GAAI,gDAAiD;AACpE,wBAAoB,GAAI,YAAa;AAAA,EACtC;AAEA,QAAM,gBAAgB,MAAM;AAC3B,yBAAsB,KAAM;AAC5B,aAAU,EAAE,QAAQ,QAAQ,CAAE;AAC9B,aAAS;AAAA,EACV;AAEA,SACC,iCACC;AAAA;AAAA,MAAC;AAAA;AAAA,QACA,uBAAqB;AAAA,QACrB,WAAU;AAAA,QACV,SAAU,MAAM;AACf,cAAK,CAAE,YAAa;AACnB,iCAAsB,IAAK;AAAA,UAC5B;AAAA,QACD;AAAA,QACA,iBAAgB;AAAA,QAChB,SAAQ;AAAA,QACR,OAAQ,EAAE,UAAU,KAAK,gBAAgB,SAAS;AAAA,QAEhD,aAAI,iBAAkB;AAAA;AAAA,IACzB;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACA,QAAS;AAAA,QACT,WAAY;AAAA,QACZ,UAAW,MAAM,qBAAsB,KAAM;AAAA,QAC7C;AAAA,QAEE;AAAA;AAAA,IACH;AAAA,KACD;AAEF;",
"names": []
}