@automattic/social-previews
Version:
A suite of components to generate previews for a post for both social and search engines.
20 lines • 1.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BlueskyPostPreview = 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"));
const sidebar_1 = require("./post/sidebar");
require("./styles.scss");
const BlueskyPostPreview = (props) => {
const { user, media, appendUrl } = props;
return ((0, jsx_runtime_1.jsxs)("div", { className: "bluesky-preview__post", children: [(0, jsx_runtime_1.jsx)(sidebar_1.BlueskyPostSidebar, { user: user }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(header_1.default, { user: user }), (0, jsx_runtime_1.jsx)(body_1.default, { ...props, appendUrl: appendUrl ?? Boolean(media?.length), children: media?.length ? ((0, jsx_runtime_1.jsx)("div", { className: (0, clsx_1.default)('bluesky-preview__media', { 'as-grid': media.length > 1 }), children: media.map((mediaItem, index) => ((0, jsx_runtime_1.jsx)("div", { className: "bluesky-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 })) }, `bluesky-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.BlueskyPostPreview = BlueskyPostPreview;
//# sourceMappingURL=post-preview.js.map