UNPKG

@wordpress/block-library

Version:
82 lines (75 loc) 1.69 kB
/** * External dependencies */ import classnames from 'classnames'; /** * WordPress dependencies */ import { RichText, useBlockProps, __experimentalGetElementClassName, } from '@wordpress/block-editor'; export default function save( { attributes } ) { 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 && ( <div { ...useBlockProps.save() }> { displayPreview && ( <> <object className="wp-block-file__embed" data={ href } type="application/pdf" style={ { width: '100%', height: `${ previewHeight }px`, } } aria-label={ pdfEmbedLabel } /> </> ) } { hasFilename && ( <a id={ describedById } href={ textLinkHref } target={ textLinkTarget } rel={ textLinkTarget ? 'noreferrer noopener' : undefined } > <RichText.Content value={ fileName } /> </a> ) } { showDownloadButton && ( <a href={ href } className={ classnames( 'wp-block-file__button', __experimentalGetElementClassName( 'button' ) ) } download={ true } aria-describedby={ describedById } > <RichText.Content value={ downloadButtonText } /> </a> ) } </div> ) ); }