UNPKG

@wordpress/editor

Version:
8 lines (7 loc) 4.53 kB
{ "version": 3, "sources": ["../../../src/components/post-visibility/index.js"], "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport {\n\tTextControl,\n\tRadioControl,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { VISIBILITY_OPTIONS } from './utils';\nimport { store as editorStore } from '../../store';\n\n/**\n * Allows users to set the visibility of a post.\n *\n * @param {Object} props The component props.\n * @param {Function} props.onClose Function to call when the popover is closed.\n * @return {React.ReactNode} The rendered component.\n */\nexport default function PostVisibility( { onClose } ) {\n\tconst instanceId = useInstanceId( PostVisibility );\n\n\tconst { status, visibility, password } = useSelect( ( select ) => ( {\n\t\tstatus: select( editorStore ).getEditedPostAttribute( 'status' ),\n\t\tvisibility: select( editorStore ).getEditedPostVisibility(),\n\t\tpassword: select( editorStore ).getEditedPostAttribute( 'password' ),\n\t} ) );\n\n\tconst { editPost } = useDispatch( editorStore );\n\n\tconst [ hasPassword, setHasPassword ] = useState( !! password );\n\n\tfunction updateVisibility( value ) {\n\t\tconst nextValues = {\n\t\t\tpublic: {\n\t\t\t\tstatus: visibility === 'private' ? 'draft' : status,\n\t\t\t\tpassword: '',\n\t\t\t},\n\t\t\tprivate: { status: 'private', password: '' },\n\t\t\tpassword: {\n\t\t\t\tstatus: visibility === 'private' ? 'draft' : status,\n\t\t\t\tpassword: password || '',\n\t\t\t},\n\t\t};\n\n\t\teditPost( nextValues[ value ] );\n\t\tsetHasPassword( value === 'password' );\n\t}\n\n\tconst updatePassword = ( value ) => {\n\t\teditPost( { password: value } );\n\t};\n\n\treturn (\n\t\t<div className=\"editor-post-visibility\">\n\t\t\t<InspectorPopoverHeader\n\t\t\t\ttitle={ __( 'Visibility' ) }\n\t\t\t\thelp={ __( 'Control how this post is viewed.' ) }\n\t\t\t\tonClose={ onClose }\n\t\t\t/>\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t<RadioControl\n\t\t\t\t\tlabel={ __( 'Visibility' ) }\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t\toptions={ VISIBILITY_OPTIONS }\n\t\t\t\t\tselected={ hasPassword ? 'password' : visibility }\n\t\t\t\t\tonChange={ updateVisibility }\n\t\t\t\t/>\n\t\t\t\t{ hasPassword && (\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ __( 'Password' ) }\n\t\t\t\t\t\tonChange={ updatePassword }\n\t\t\t\t\t\tvalue={ password }\n\t\t\t\t\t\tplaceholder={ __( 'Use a secure password' ) }\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tid={ `editor-post-visibility__password-input-${ instanceId }` }\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tmaxLength={ 255 }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n"], "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AACnB,qBAAyB;AACzB,wBAIO;AACP,qBAA8B;AAC9B,kBAAuC;AACvC,0BAA+E;AAK/E,mBAAmC;AACnC,mBAAqC;AA6ClC;AApCY,SAAR,eAAiC,EAAE,QAAQ,GAAI;AACrD,QAAM,iBAAa,8BAAe,cAAe;AAEjD,QAAM,EAAE,QAAQ,YAAY,SAAS,QAAI,uBAAW,CAAE,YAAc;AAAA,IACnE,QAAQ,OAAQ,aAAAA,KAAY,EAAE,uBAAwB,QAAS;AAAA,IAC/D,YAAY,OAAQ,aAAAA,KAAY,EAAE,wBAAwB;AAAA,IAC1D,UAAU,OAAQ,aAAAA,KAAY,EAAE,uBAAwB,UAAW;AAAA,EACpE,EAAI;AAEJ,QAAM,EAAE,SAAS,QAAI,yBAAa,aAAAA,KAAY;AAE9C,QAAM,CAAE,aAAa,cAAe,QAAI,yBAAU,CAAC,CAAE,QAAS;AAE9D,WAAS,iBAAkB,OAAQ;AAClC,UAAM,aAAa;AAAA,MAClB,QAAQ;AAAA,QACP,QAAQ,eAAe,YAAY,UAAU;AAAA,QAC7C,UAAU;AAAA,MACX;AAAA,MACA,SAAS,EAAE,QAAQ,WAAW,UAAU,GAAG;AAAA,MAC3C,UAAU;AAAA,QACT,QAAQ,eAAe,YAAY,UAAU;AAAA,QAC7C,UAAU,YAAY;AAAA,MACvB;AAAA,IACD;AAEA,aAAU,WAAY,KAAM,CAAE;AAC9B,mBAAgB,UAAU,UAAW;AAAA,EACtC;AAEA,QAAM,iBAAiB,CAAE,UAAW;AACnC,aAAU,EAAE,UAAU,MAAM,CAAE;AAAA,EAC/B;AAEA,SACC,6CAAC,SAAI,WAAU,0BACd;AAAA;AAAA,MAAC,oBAAAC;AAAA,MAAA;AAAA,QACA,WAAQ,gBAAI,YAAa;AAAA,QACzB,UAAO,gBAAI,kCAAmC;AAAA,QAC9C;AAAA;AAAA,IACD;AAAA,IACA,6CAAC,kBAAAC,sBAAA,EAAO,SAAU,GACjB;AAAA;AAAA,QAAC;AAAA;AAAA,UACA,WAAQ,gBAAI,YAAa;AAAA,UACzB,qBAAmB;AAAA,UACnB,SAAU;AAAA,UACV,UAAW,cAAc,aAAa;AAAA,UACtC,UAAW;AAAA;AAAA,MACZ;AAAA,MACE,eACD;AAAA,QAAC;AAAA;AAAA,UACA,WAAQ,gBAAI,UAAW;AAAA,UACvB,UAAW;AAAA,UACX,OAAQ;AAAA,UACR,iBAAc,gBAAI,uBAAwB;AAAA,UAC1C,MAAK;AAAA,UACL,IAAK,0CAA2C,UAAW;AAAA,UAC3D,uBAAqB;AAAA,UACrB,WAAY;AAAA;AAAA,MACb;AAAA,OAEF;AAAA,KACD;AAEF;", "names": ["editorStore", "InspectorPopoverHeader", "VStack"] }