UNPKG

@automattic/social-previews

Version:

A suite of components to generate previews for a post for both social and search engines.

19 lines 1.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MastodonPostPreview = void 0; const tslib_1 = require("tslib"); const jsx_runtime_1 = require("react/jsx-runtime"); const clsx_1 = tslib_1.__importDefault(require("clsx")); const actions_1 = tslib_1.__importDefault(require("./post/actions")); const body_1 = tslib_1.__importDefault(require("./post/body")); const card_1 = tslib_1.__importDefault(require("./post/card")); const header_1 = tslib_1.__importDefault(require("./post/header")); require("./styles.scss"); const MastodonPostPreview = (props) => { const { user, media } = props; return ((0, jsx_runtime_1.jsxs)("div", { className: "mastodon-preview__post", children: [(0, jsx_runtime_1.jsx)(header_1.default, { user: user }), (0, jsx_runtime_1.jsx)(body_1.default, { ...props, children: media?.length ? ((0, jsx_runtime_1.jsx)("div", { className: (0, clsx_1.default)('mastodon-preview__media', { 'as-grid': media.length > 1 }), children: media.map((mediaItem, index) => ((0, jsx_runtime_1.jsx)("div", { className: "mastodon-preview__media-item", children: mediaItem.type.startsWith('video/') ? ( // eslint-disable-next-line jsx-a11y/media-has-caption (0, jsx_runtime_1.jsx)("video", { controls: true, children: (0, jsx_runtime_1.jsx)("source", { src: mediaItem.url, type: mediaItem.type }) })) : ((0, jsx_runtime_1.jsx)("img", { alt: mediaItem.alt || '', src: mediaItem.url })) }, `mastodon-preview__media-item-${index}`))) })) : null }), !media?.length ? (0, jsx_runtime_1.jsx)(card_1.default, { ...props }) : null, (0, jsx_runtime_1.jsx)(actions_1.default, {})] })); }; exports.MastodonPostPreview = MastodonPostPreview; //# sourceMappingURL=post-preview.js.map