@wordpress/block-library
Version:
Block library for the WordPress editor.
49 lines (48 loc) • 1.46 kB
JavaScript
// packages/block-library/src/playlist/utils.js
import { __ } from "@wordpress/i18n";
import { decodeEntities } from "@wordpress/html-entities";
function getMediaUrl(media) {
return media?.url ?? media?.source_url;
}
function getMediaTitle(media) {
const title = media?.title;
if (title === void 0) {
return void 0;
}
if (typeof title === "string") {
return title;
}
return decodeEntities(title?.raw || title?.rendered || "");
}
function getTrackImageAttributes(image) {
const imageSrc = image?.src ?? getMediaUrl(image);
if (imageSrc?.endsWith("/images/media/audio.svg")) {
return {
image: "",
imageAlt: ""
};
}
return {
// Note: Image is not available when a new track is uploaded.
image: imageSrc,
imageAlt: imageSrc ? image?.alt || image?.alt_text || "" : void 0
};
}
function getTrackAttributes(media) {
const mediaUrl = getMediaUrl(media);
return {
id: media.id || mediaUrl,
// Attachment ID or URL.
src: mediaUrl,
title: getMediaTitle(media),
artist: media.artist || media?.meta?.artist || media?.media_details?.artist || __("Unknown artist"),
album: media.album || media?.meta?.album || media?.media_details?.album || __("Unknown album"),
length: media?.fileLength || media?.media_details?.length_formatted,
...getTrackImageAttributes(media?.image)
};
}
export {
getTrackAttributes,
getTrackImageAttributes
};
//# sourceMappingURL=utils.mjs.map