UNPKG

@wordpress/block-library

Version:
8 lines (7 loc) 4.16 kB
{ "version": 3, "sources": ["../../src/avatar/hooks.js"], "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { store as coreStore, useEntityProp } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useDefaultAvatar } from '../utils/hooks';\n\nfunction getAvatarSizes( sizes ) {\n\tconst minSize = sizes ? sizes[ 0 ] : 24;\n\tconst maxSize = sizes ? sizes[ sizes.length - 1 ] : 96;\n\tconst maxSizeBuffer = Math.floor( maxSize * 2.5 );\n\treturn {\n\t\tminSize,\n\t\tmaxSize: maxSizeBuffer,\n\t};\n}\n\nexport function useCommentAvatar( { commentId } ) {\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, maxSize } = getAvatarSizes( sizes );\n\tconst defaultAvatar = useDefaultAvatar();\n\treturn {\n\t\tsrc: avatarUrls ? avatarUrls[ avatarUrls.length - 1 ] : defaultAvatar,\n\t\tminSize,\n\t\tmaxSize,\n\t\talt: authorName\n\t\t\t? // translators: %s: Author name.\n\t\t\t sprintf( __( '%s Avatar' ), authorName )\n\t\t\t: __( 'Default Avatar' ),\n\t};\n}\n\nexport function useUserAvatar( { userId, postId, postType } ) {\n\tconst { authorDetails } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, getUser } = select( coreStore );\n\t\t\tif ( userId ) {\n\t\t\t\treturn {\n\t\t\t\t\tauthorDetails: getUser( userId ),\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst _authorId = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t)?.author;\n\n\t\t\treturn {\n\t\t\t\tauthorDetails: _authorId ? getUser( _authorId ) : null,\n\t\t\t};\n\t\t},\n\t\t[ postType, postId, userId ]\n\t);\n\tconst avatarUrls = authorDetails?.avatar_urls\n\t\t? Object.values( authorDetails.avatar_urls )\n\t\t: null;\n\tconst sizes = authorDetails?.avatar_urls\n\t\t? Object.keys( authorDetails.avatar_urls )\n\t\t: null;\n\tconst { minSize, maxSize } = getAvatarSizes( sizes );\n\tconst defaultAvatar = useDefaultAvatar();\n\treturn {\n\t\tsrc: avatarUrls ? avatarUrls[ avatarUrls.length - 1 ] : defaultAvatar,\n\t\tminSize,\n\t\tmaxSize,\n\t\talt: authorDetails\n\t\t\t? // translators: %s: Author name.\n\t\t\t sprintf( __( '%s Avatar' ), authorDetails?.name )\n\t\t\t: __( 'Default Avatar' ),\n\t};\n}\n"], "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,uBAAkD;AAClD,kBAA4B;AAC5B,kBAA0B;AAK1B,mBAAiC;AAEjC,SAAS,eAAgB,OAAQ;AAChC,QAAM,UAAU,QAAQ,MAAO,CAAE,IAAI;AACrC,QAAM,UAAU,QAAQ,MAAO,MAAM,SAAS,CAAE,IAAI;AACpD,QAAM,gBAAgB,KAAK,MAAO,UAAU,GAAI;AAChD,SAAO;AAAA,IACN;AAAA,IACA,SAAS;AAAA,EACV;AACD;AAEO,SAAS,iBAAkB,EAAE,UAAU,GAAI;AACjD,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,EAAE,SAAS,QAAQ,IAAI,eAAgB,KAAM;AACnD,QAAM,oBAAgB,+BAAiB;AACvC,SAAO;AAAA,IACN,KAAK,aAAa,WAAY,WAAW,SAAS,CAAE,IAAI;AAAA,IACxD;AAAA,IACA;AAAA,IACA,KAAK;AAAA;AAAA,UAEF,yBAAS,gBAAI,WAAY,GAAG,UAAW;AAAA,YACvC,gBAAI,gBAAiB;AAAA,EACzB;AACD;AAEO,SAAS,cAAe,EAAE,QAAQ,QAAQ,SAAS,GAAI;AAC7D,QAAM,EAAE,cAAc,QAAI;AAAA,IACzB,CAAE,WAAY;AACb,YAAM,EAAE,uBAAuB,QAAQ,IAAI,OAAQ,iBAAAA,KAAU;AAC7D,UAAK,QAAS;AACb,eAAO;AAAA,UACN,eAAe,QAAS,MAAO;AAAA,QAChC;AAAA,MACD;AACA,YAAM,YAAY;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,MACD,GAAG;AAEH,aAAO;AAAA,QACN,eAAe,YAAY,QAAS,SAAU,IAAI;AAAA,MACnD;AAAA,IACD;AAAA,IACA,CAAE,UAAU,QAAQ,MAAO;AAAA,EAC5B;AACA,QAAM,aAAa,eAAe,cAC/B,OAAO,OAAQ,cAAc,WAAY,IACzC;AACH,QAAM,QAAQ,eAAe,cAC1B,OAAO,KAAM,cAAc,WAAY,IACvC;AACH,QAAM,EAAE,SAAS,QAAQ,IAAI,eAAgB,KAAM;AACnD,QAAM,oBAAgB,+BAAiB;AACvC,SAAO;AAAA,IACN,KAAK,aAAa,WAAY,WAAW,SAAS,CAAE,IAAI;AAAA,IACxD;AAAA,IACA;AAAA,IACA,KAAK;AAAA;AAAA,UAEF,yBAAS,gBAAI,WAAY,GAAG,eAAe,IAAK;AAAA,YAChD,gBAAI,gBAAiB;AAAA,EACzB;AACD;", "names": ["coreStore"] }