UNPKG

@automattic/social-previews

Version:

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

20 lines 2.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FacebookPostPreview = void 0; const tslib_1 = require("tslib"); const jsx_runtime_1 = require("react/jsx-runtime"); const constants_1 = require("../constants"); const custom_text_1 = tslib_1.__importDefault(require("./custom-text")); const use_image_hook_1 = tslib_1.__importDefault(require("./hooks/use-image-hook")); const actions_1 = tslib_1.__importDefault(require("./post/actions")); const header_1 = tslib_1.__importDefault(require("./post/header")); require("./style.scss"); const FacebookPostPreview = ({ url, user, customText, media, imageMode, }) => { const [mode] = (0, use_image_hook_1.default)({ mode: imageMode }); const modeClass = `is-${mode === constants_1.PORTRAIT_MODE ? 'portrait' : 'landscape'}`; return ((0, jsx_runtime_1.jsxs)("div", { className: "facebook-preview__post", children: [(0, jsx_runtime_1.jsx)(header_1.default, { user: user }), (0, jsx_runtime_1.jsxs)("div", { className: "facebook-preview__content", children: [customText && (0, jsx_runtime_1.jsx)(custom_text_1.default, { text: customText, url: url, forceUrlDisplay: true }), (0, jsx_runtime_1.jsx)("div", { className: "facebook-preview__body", children: media ? ((0, jsx_runtime_1.jsx)("div", { className: `facebook-preview__media ${modeClass}`, children: media.map((mediaItem, index) => ((0, jsx_runtime_1.jsx)("div", { className: `facebook-preview__media-item ${modeClass}`, 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 })) }, `facebook-preview__media-item-${index}`))) })) : null })] }), (0, jsx_runtime_1.jsx)(actions_1.default, {})] })); }; exports.FacebookPostPreview = FacebookPostPreview; //# sourceMappingURL=post-preview.js.map