UNPKG

@wordpress/editor

Version:
8 lines (7 loc) 3.94 kB
{ "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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAGO;AACP,kBAAmB;AACnB,kBAAuC;AACvC,qBAAyB;AACzB,wBAAuB;AAKvB,mBAAqC;AA4CnC;AArCa,SAAR,0BAA2C;AACjD,wBAAAA,SAAY,qCAAqC;AAAA,IAChD,OAAO;AAAA,IACP,SAAS;AAAA,EACV,CAAE;AACF,QAAM,CAAE,mBAAmB,oBAAqB,QAAI,yBAAU,KAAM;AAEpE,QAAM,EAAE,UAAU,SAAS,QAAI,yBAAa,aAAAC,KAAY;AACxD,QAAM,EAAE,UAAU,aAAa,YAAY,QAAI,uBAAW,CAAE,WAAY;AACvE,UAAM,EAAE,cAAc,wBAAwB,uBAAuB,IACpE,OAAQ,aAAAA,KAAY;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,uBAAe,gBAAI,+CAAgD;AACnE,4BAAoB,gBAAI,WAAY;AAAA,EACrC,WAAY,aAAc;AACzB,uBAAe,gBAAI,gDAAiD;AACpE,4BAAoB,gBAAI,YAAa;AAAA,EACtC;AAEA,QAAM,gBAAgB,MAAM;AAC3B,yBAAsB,KAAM;AAC5B,aAAU,EAAE,QAAQ,QAAQ,CAAE;AAC9B,aAAS;AAAA,EACV;AAEA,SACC,4EACC;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,8BAAI,iBAAkB;AAAA;AAAA,IACzB;AAAA,IACA;AAAA,MAAC,kBAAAC;AAAA,MAAA;AAAA,QACA,QAAS;AAAA,QACT,WAAY;AAAA,QACZ,UAAW,MAAM,qBAAsB,KAAM;AAAA,QAC7C;AAAA,QAEE;AAAA;AAAA,IACH;AAAA,KACD;AAEF;", "names": ["deprecated", "editorStore", "ConfirmDialog"] }