/**
* External dependencies
*/
import isUndefined from "lodash/isUndefined";
import pickBy from "lodash/pickBy";
import moment from "moment";
import classnames from "classnames";
import Inspector from "./inspector";
import PostCarouselImage from "./image";
import Slider from "react-slick";
import map from "lodash/map";
import generateCSSUnit from "../../../generateCSSUnit";
import Style from "style-it";
import { loadGoogleFont } from "../../../utils/font";
const { compose } = wp.compose;
const { Component, Fragment } = wp.element;
const { __ } = wp.i18n;
const { decodeEntities } = wp.htmlEntities;
const { withSelect } = wp.data;
const { Placeholder, Spinner, Toolbar, Dashicon } = wp.components;
const {
BlockAlignmentToolbar,
BlockControls,
AlignmentToolbar,
} = wp.blockEditor;
class LatestPostsBlock extends Component {
componentDidMount() {
this.props.setAttributes({ block_id: this.props.clientId.substr(0, 8) });
}
render() {
const { attributes, setAttributes, latestPosts } = this.props;
const {
displayPostExcerpt,
displayPostDate,
displayPostLink,
displayPostComment,
displayPostTaxonomy,
excerptLength,
columns,
pauseOnHover,
infiniteLoop,
transitionSpeed,
autoplay,
autoplaySpeed,
arrowDots,
arrowSize,
arrowBorderSize,
arrowBorderRadius,
block_id,
blockAlign,
titleColor,
contentColor,
metaColor,
dateColor,
arrowDotsColor,
ctaColor,
ctaBackColor,
ctaHoverColor,
ctaHoverBackColor,
ctaBorderColor,
ctaHoverBorderColor,
ctaBorderRadius,
ctaBorderWidth,
ctaBorderStyle,
ctaHpadding,
ctaVpadding,
contentPadding,
rowGap,
columnGap,
imageSpace,
titleSpace,
dateSpace,
excerptSpace,
ctaSpace,
titleFontFamily,
titleFontSize,
titleFontSizeMobile,
titleFontSizeTablet,
titleFontWeight,
titleLineHeight,
metaFontFamily,
metaFontSize,
metaFontWeight,
metaLineHeight,
excerptFontFamily,
excerptFontSize,
excerptFontWeight,
excerptLineHeight,
ctaFontFamily,
ctaFontSize,
ctaFontWeight,
ctaLineHeight,
imagePosition,
opacity,
readMoreText,
equalHeight,
buttonTarget,
contentPaddingMobile,
} = attributes;
setAttributes({ block_id: this.props.clientId });
let imgopacity = opacity / 100;
// Check if there are posts
const hasPosts = Array.isArray(latestPosts) && latestPosts.length;
// Check the post type
const isPost = "post" === attributes.postType;
if (!hasPosts) {
return (
{post.comments_num == "0 comments"
? "No Comments"
: post.comments_num}