diff --git a/client/components/seo-preview-pane/index.jsx b/client/components/seo-preview-pane/index.jsx index c333ebb2396bc..c89a9331e4941 100644 --- a/client/components/seo-preview-pane/index.jsx +++ b/client/components/seo-preview-pane/index.jsx @@ -107,18 +107,13 @@ const ComingSoonMessage = translate => ( const ReaderPost = ( site, post ) => { return ( ); }; diff --git a/client/components/seo-preview-pane/style.scss b/client/components/seo-preview-pane/style.scss index 3d129cff335a3..adaf2fb90ede9 100644 --- a/client/components/seo-preview-pane/style.scss +++ b/client/components/seo-preview-pane/style.scss @@ -95,6 +95,49 @@ background-color: $white; border: 1px solid lighten( $gray, 25% ); + + .reader-post-card { + padding: 10px; + + a { + text-decoration: none; + pointer-events: none; + cursor: default; + } + + .reader-post-card__timestamp-and-tag a { + color: $gray; + } + + .reader-post-actions__item { + white-space: nowrap; + + span, .comment-button, .like-button, .ellipsis-menu .button { + cursor: default; + pointer-events: none; + + &:hover { + color: $gray; + } + } + } + + &.card { + border-bottom: none; + } + + .comment-button__label-status, + .like-button__label-status, + .reader-share__button-label { + @include breakpoint( "<960px" ) { + display: none; + } + } + + @include breakpoint( ">960px" ) { + min-width: 480px; + } + } } .seo-preview-pane__message { diff --git a/client/components/seo/reader-preview/index.js b/client/components/seo/reader-preview/index.js index 53685a728a631..cd4c1f93ec053 100644 --- a/client/components/seo/reader-preview/index.js +++ b/client/components/seo/reader-preview/index.js @@ -6,78 +6,41 @@ import React, { PropTypes, PureComponent } from 'react'; /** * Internal dependencies */ -import humanDate from 'lib/human-date'; +import DisplayTypes from 'state/reader/posts/display-types'; +import ReaderPostCard from 'blocks/reader-post-card'; export class ReaderPreview extends PureComponent { render() { const { - siteTitle, - siteSlug, - siteIcon, - postTitle, + site, + post, postExcerpt, postImage, - postDate, - authorName, - authorIcon } = this.props; + // Add some ReaderPost specific properties that are necessary + const readerPost = Object.assign( + post, + { better_excerpt: postExcerpt }, + postImage && { canonical_media: { src: postImage } }, + ( postImage && ! postExcerpt ) && { display_type: DisplayTypes.PHOTO_ONLY }, + { author: Object.assign( + post.author, + { has_avatar: true } + ) } + ); + return ( -
-
-
-
-
- -
-
-
{ siteTitle }
-
{ siteSlug }
-
-
-
-
- { postImage && -
- -
- } -
- { postTitle && -

{ postTitle }

- } - { authorName && - - } - { postExcerpt && -

{ postExcerpt }

- } -
-
+ ); } } ReaderPreview.propTypes = { - siteTitle: PropTypes.string, - siteSlug: PropTypes.string, - siteIcon: PropTypes.string, - postTitle: PropTypes.string, + site: PropTypes.object, + post: PropTypes.object, postExcerpt: PropTypes.string, - postImage: PropTypes.string, - postDate: PropTypes.string, - authorName: PropTypes.string, - authorIcon: PropTypes.string + postImage: PropTypes.string }; export default ReaderPreview; diff --git a/client/components/seo/style.scss b/client/components/seo/style.scss index decd2fb2b1c50..65c105299151d 100644 --- a/client/components/seo/style.scss +++ b/client/components/seo/style.scss @@ -277,44 +277,3 @@ text-overflow: ellipsis; margin-top: 0.32333em; } - - -// Overrides a few styles from the Reader post component -.reader-preview { - max-width: 540px; - pointer-events: none; - - .site__content { - padding: 16px 4px 0 16px - } - - .reader__post-header { - margin: 0; - } - - .reader__post-featured-image { - margin-top: 16px; - left: 0; - width: 100%; - } - - .reader-post-byline { - margin: 8px 0; - padding: 0; - font-size: 14px; - - a { - color: $blue-medium; - } - - .reader-post-byline__author .gravatar { - height: 16px; - width: 16px; - top: 4px; - } - } -} - -.reader-preview__text { - padding: 0 16px 16px; -} diff --git a/webpack.config.node.js b/webpack.config.node.js index b3d077051e031..0b0cf290831e4 100644 --- a/webpack.config.node.js +++ b/webpack.config.node.js @@ -109,6 +109,7 @@ var webpackConfig = { new webpack.NormalModuleReplacementPlugin( /^lib\/olark$/, 'lodash/noop' ), // Too many dependencies, e.g. sites-list new webpack.NormalModuleReplacementPlugin( /^lib\/post-normalizer\/rule-create-better-excerpt$/, 'lodash/noop' ), // Depends on BOM new webpack.NormalModuleReplacementPlugin( /^components\/seo\/preview-upgrade-nudge$/, 'components/empty-component' ), // Depends on page.js and should never be required server side + new webpack.NormalModuleReplacementPlugin( /^components\/seo\/reader-preview$/, 'components/empty-component' ), // Conflicts with component-closest module new webpack.NormalModuleReplacementPlugin( /^components\/popover$/, 'components/empty-component' ), // Depends on BOM and interactions don't work without JS new webpack.NormalModuleReplacementPlugin( /^my-sites\/themes\/themes-site-selector-modal$/, 'components/empty-component' ), // Depends on BOM new webpack.NormalModuleReplacementPlugin( /^my-sites\/themes\/theme-upload$/, 'components/empty-component' ), // Depends on BOM