UNPKG

@wordpress/block-library

Version:
8 lines (7 loc) 4.79 kB
{ "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": ";AAGA;AAAA,EACC;AAAA,EACA;AAAA,EACA,4CAA4C;AAAA,EAC5C,SAAS;AAAA,OACH;AACP,SAAS,WAAW,cAAc,oBAAoB;AACtD,SAAS,qBAAqB;AAC9B,SAAS,iBAAiB;AAC1B,SAAS,IAAI,aAAa;AAwCtB,SAoDF,UApDE,KAoDF,YApDE;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,IAAI;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAEA,QAAM,CAAE,UAAW,IAAI;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,aAAa,cAAc;AACjC,QAAM,eAAe,gBAAiB,UAAW;AACjD,QAAM,gBAAgB,KAAK,MAAO,UAAU,GAAI;AAChD,QAAM,YAAY,UAAW,CAAE,WAAY;AAC1C,UAAM,EAAE,iCAAiC,IACxC,OAAQ,gBAAiB,EAAE,YAAY;AAExC,WAAO,kCAAkC;AAAA,EAC1C,GAAG,CAAC,CAAE;AAEN,QAAM,oBACL,oBAAC,qBACA,8BAAC,aAAU,OAAQ,GAAI,UAAW,GACjC;AAAA,IAAC;AAAA;AAAA,MACA,uBAAqB;AAAA,MACrB,OAAQ,GAAI,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,CAAE,MAAM;AAAA,QACf,QAAQ;AAAA,QACR,MAAM,MAAM;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,IAAK,GAAI,QAAS,CAAE;AAAA,UACvC,GAAG;AAAA;AAAA,MACN;AAAA;AAAA,EACD;AAGD,SACC,iCACG;AAAA;AAAA,IACF,oBAAC,SAAM,GAAG,cAAiB,2BAAiB;AAAA,KAC7C;AAEF;", "names": [] }