@wordpress/block-library
Version:
Block library for the WordPress editor.
8 lines (7 loc) • 4.78 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../src/comment-author-avatar/edit.js"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalGetSpacingClassesAndStyles as useSpacingProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { PanelBody, ResizableBox, RangeControl } from '@wordpress/components';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { __, isRTL } from '@wordpress/i18n';\n\nexport default function Edit( {\n\tattributes,\n\tcontext: { commentId },\n\tsetAttributes,\n\tisSelected,\n} ) {\n\tconst { height, width } = attributes;\n\n\tconst [ avatars ] = useEntityProp(\n\t\t'root',\n\t\t'comment',\n\t\t'author_avatar_urls',\n\t\tcommentId\n\t);\n\n\tconst [ authorName ] = useEntityProp(\n\t\t'root',\n\t\t'comment',\n\t\t'author_name',\n\t\tcommentId\n\t);\n\tconst avatarUrls = avatars ? Object.values( avatars ) : null;\n\tconst sizes = avatars ? Object.keys( avatars ) : null;\n\tconst minSize = sizes ? sizes[ 0 ] : 24;\n\tconst maxSize = sizes ? sizes[ sizes.length - 1 ] : 96;\n\tconst blockProps = useBlockProps();\n\tconst spacingProps = useSpacingProps( attributes );\n\tconst maxSizeBuffer = Math.floor( maxSize * 2.5 );\n\tconst avatarURL = useSelect( ( select ) => {\n\t\tconst { __experimentalDiscussionSettings } =\n\t\t\tselect( blockEditorStore ).getSettings();\n\n\t\treturn __experimentalDiscussionSettings?.avatarURL;\n\t}, [] );\n\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t<RangeControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\tonChange={ ( newWidth ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\twidth: newWidth,\n\t\t\t\t\t\t\theight: newWidth,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tmin={ minSize }\n\t\t\t\t\tmax={ maxSizeBuffer }\n\t\t\t\t\tinitialPosition={ width }\n\t\t\t\t\tvalue={ width }\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\tconst resizableAvatar = (\n\t\t<ResizableBox\n\t\t\tsize={ {\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t} }\n\t\t\tshowHandle={ isSelected }\n\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\theight: parseInt( height + delta.height, 10 ),\n\t\t\t\t\twidth: parseInt( width + delta.width, 10 ),\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tlockAspectRatio\n\t\t\tenable={ {\n\t\t\t\ttop: false,\n\t\t\t\tright: ! isRTL(),\n\t\t\t\tbottom: true,\n\t\t\t\tleft: isRTL(),\n\t\t\t} }\n\t\t\tminWidth={ minSize }\n\t\t\tmaxWidth={ maxSizeBuffer }\n\t\t>\n\t\t\t<img\n\t\t\t\tsrc={\n\t\t\t\t\tavatarUrls ? avatarUrls[ avatarUrls.length - 1 ] : avatarURL\n\t\t\t\t}\n\t\t\t\talt={ `${ authorName } ${ __( 'Avatar' ) }` }\n\t\t\t\t{ ...blockProps }\n\t\t\t/>\n\t\t</ResizableBox>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ inspectorControls }\n\t\t\t<div { ...spacingProps }>{ resizableAvatar }</div>\n\t\t</>\n\t);\n}\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAKO;AACP,wBAAsD;AACtD,uBAA8B;AAC9B,kBAA0B;AAC1B,kBAA0B;AAwCtB;AAtCW,SAAR,KAAuB;AAAA,EAC7B;AAAA,EACA,SAAS,EAAE,UAAU;AAAA,EACrB;AAAA,EACA;AACD,GAAI;AACH,QAAM,EAAE,QAAQ,MAAM,IAAI;AAE1B,QAAM,CAAE,OAAQ,QAAI;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAEA,QAAM,CAAE,UAAW,QAAI;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACA,QAAM,aAAa,UAAU,OAAO,OAAQ,OAAQ,IAAI;AACxD,QAAM,QAAQ,UAAU,OAAO,KAAM,OAAQ,IAAI;AACjD,QAAM,UAAU,QAAQ,MAAO,CAAE,IAAI;AACrC,QAAM,UAAU,QAAQ,MAAO,MAAM,SAAS,CAAE,IAAI;AACpD,QAAM,iBAAa,mCAAc;AACjC,QAAM,mBAAe,oBAAAA,0CAAiB,UAAW;AACjD,QAAM,gBAAgB,KAAK,MAAO,UAAU,GAAI;AAChD,QAAM,gBAAY,uBAAW,CAAE,WAAY;AAC1C,UAAM,EAAE,iCAAiC,IACxC,OAAQ,oBAAAC,KAAiB,EAAE,YAAY;AAExC,WAAO,kCAAkC;AAAA,EAC1C,GAAG,CAAC,CAAE;AAEN,QAAM,oBACL,4CAAC,yCACA,sDAAC,+BAAU,WAAQ,gBAAI,UAAW,GACjC;AAAA,IAAC;AAAA;AAAA,MACA,uBAAqB;AAAA,MACrB,WAAQ,gBAAI,YAAa;AAAA,MACzB,UAAW,CAAE,aACZ,cAAe;AAAA,QACd,OAAO;AAAA,QACP,QAAQ;AAAA,MACT,CAAE;AAAA,MAEH,KAAM;AAAA,MACN,KAAM;AAAA,MACN,iBAAkB;AAAA,MAClB,OAAQ;AAAA;AAAA,EACT,GACD,GACD;AAGD,QAAM,kBACL;AAAA,IAAC;AAAA;AAAA,MACA,MAAO;AAAA,QACN;AAAA,QACA;AAAA,MACD;AAAA,MACA,YAAa;AAAA,MACb,cAAe,CAAE,OAAO,WAAW,KAAK,UAAW;AAClD,sBAAe;AAAA,UACd,QAAQ,SAAU,SAAS,MAAM,QAAQ,EAAG;AAAA,UAC5C,OAAO,SAAU,QAAQ,MAAM,OAAO,EAAG;AAAA,QAC1C,CAAE;AAAA,MACH;AAAA,MACA,iBAAe;AAAA,MACf,QAAS;AAAA,QACR,KAAK;AAAA,QACL,OAAO,KAAE,mBAAM;AAAA,QACf,QAAQ;AAAA,QACR,UAAM,mBAAM;AAAA,MACb;AAAA,MACA,UAAW;AAAA,MACX,UAAW;AAAA,MAEX;AAAA,QAAC;AAAA;AAAA,UACA,KACC,aAAa,WAAY,WAAW,SAAS,CAAE,IAAI;AAAA,UAEpD,KAAM,GAAI,UAAW,QAAK,gBAAI,QAAS,CAAE;AAAA,UACvC,GAAG;AAAA;AAAA,MACN;AAAA;AAAA,EACD;AAGD,SACC,4EACG;AAAA;AAAA,IACF,4CAAC,SAAM,GAAG,cAAiB,2BAAiB;AAAA,KAC7C;AAEF;",
"names": ["useSpacingProps", "blockEditorStore"]
}