@wordpress/block-library
Version:
Block library for the WordPress editor.
57 lines (54 loc) • 1.71 kB
JavaScript
import { createElement, Fragment } from "@wordpress/element";
/**
* External dependencies
*/
import classnames from 'classnames';
/**
* WordPress dependencies
*/
import { RichText, useBlockProps, __experimentalGetElementClassName } from '@wordpress/block-editor';
export default function save(_ref) {
let {
attributes
} = _ref;
const {
href,
fileId,
fileName,
textLinkHref,
textLinkTarget,
showDownloadButton,
downloadButtonText,
displayPreview,
previewHeight
} = attributes;
const pdfEmbedLabel = RichText.isEmpty(fileName) ? 'PDF embed' : fileName;
const hasFilename = !RichText.isEmpty(fileName); // Only output an `aria-describedby` when the element it's referring to is
// actually rendered.
const describedById = hasFilename ? fileId : undefined;
return href && createElement("div", useBlockProps.save(), displayPreview && createElement(Fragment, null, createElement("object", {
className: "wp-block-file__embed",
data: href,
type: "application/pdf",
style: {
width: '100%',
height: `${previewHeight}px`
},
"aria-label": pdfEmbedLabel
})), hasFilename && createElement("a", {
id: describedById,
href: textLinkHref,
target: textLinkTarget,
rel: textLinkTarget ? 'noreferrer noopener' : undefined
}, createElement(RichText.Content, {
value: fileName
})), showDownloadButton && createElement("a", {
href: href,
className: classnames('wp-block-file__button', __experimentalGetElementClassName('button')),
download: true,
"aria-describedby": describedById
}, createElement(RichText.Content, {
value: downloadButtonText
})));
}
//# sourceMappingURL=save.js.map