From 9fb0d3c09641fc3d4b25b459cf4c3c625eb2add1 Mon Sep 17 00:00:00 2001 From: Kiril Kartunov Date: Tue, 11 Jun 2019 11:12:35 +0300 Subject: [PATCH 1/7] Implement #2336 --- ...om-inline-components-in-markdown-fields.md | 8 ++ src/server/routes/mailchimp.js | 5 ++ src/server/services/mailchimp.js | 33 +++++++++ src/shared/actions/newsletterArchive.js | 60 +++++++++++++++ .../components/NewsletterArchive/index.jsx | 36 +++++++++ .../components/NewsletterArchive/style.scss | 22 ++++++ src/shared/containers/NewsletterArchive.jsx | 74 +++++++++++++++++++ src/shared/reducers/index.js | 2 + src/shared/reducers/newsletterArchive.js | 53 +++++++++++++ src/shared/utils/markdown.js | 2 + 10 files changed, 295 insertions(+) create mode 100644 src/shared/actions/newsletterArchive.js create mode 100644 src/shared/components/NewsletterArchive/index.jsx create mode 100644 src/shared/components/NewsletterArchive/style.scss create mode 100644 src/shared/containers/NewsletterArchive.jsx create mode 100644 src/shared/reducers/newsletterArchive.js diff --git a/docs/contentful/custom-inline-components-in-markdown-fields.md b/docs/contentful/custom-inline-components-in-markdown-fields.md index ac349a5eea..b38867ccbc 100644 --- a/docs/contentful/custom-inline-components-in-markdown-fields.md +++ b/docs/contentful/custom-inline-components-in-markdown-fields.md @@ -90,6 +90,14 @@ other types too. component works only with YouTube videos, and the URL should be similar to `https://www.youtube.com/embed/mD12LIqdxqk` (). +- #### NewsletterArchive + *Example:* `` + + A list of archive links sorted by descending `sent_date` from a MailChimp's campaign folder. Sould be working under any MarkdownParser component. + + The properties are: + - `name` - the unique name of the camplaing foler. It has to be only one name entity. If those duplicate first found will be picked up and rest ignored. + ## Links - #### Link diff --git a/src/server/routes/mailchimp.js b/src/server/routes/mailchimp.js index a1999f82e8..0b8b2a98fe 100644 --- a/src/server/routes/mailchimp.js +++ b/src/server/routes/mailchimp.js @@ -23,4 +23,9 @@ routes.get('/:listId/members/:emailHash', (req, res) => new MailchimpService().c routes.put('/:listId/members/:emailHash', (req, res) => new MailchimpService().subscribeInterests(req).then(res.send.bind(res))); routes.post('/:listId/members/:emailHash/tags', (req, res) => new MailchimpService().subscribeTags(req).then(res.send.bind(res))); + +routes.get('/campaign-folders', (req, res) => new MailchimpService().getCampaignFolder(req).then(res.send.bind(res))); + +routes.get('/campaigns', (req, res) => new MailchimpService().getCampaigns(req).then(res.send.bind(res))); + export default routes; diff --git a/src/server/services/mailchimp.js b/src/server/services/mailchimp.js index f7a282b66d..1a22665a24 100644 --- a/src/server/services/mailchimp.js +++ b/src/server/services/mailchimp.js @@ -3,6 +3,7 @@ */ import fetch from 'isomorphic-fetch'; import config from 'config'; +import qs from 'qs'; /** * Auxiliary class that handles communication with mailchimp @@ -75,4 +76,36 @@ export default class MailchimpService { }); return { status: res.status }; } + + /** + * Gets campaign-folders endpoint. + * @return {Promise} + * @param {Object} the request. + */ + async getCampaignFolder(req) { + const res = await fetch(`${this.mailchimpBaseUrl}/campaign-folders?count=500`, { + method: 'GET', + headers: { + 'Content-Type': req.headers['content-type'], + Authorization: this.authorization, + }, + }); + return res.json(); + } + + /** + * Gets campaigns endpoint. + * @return {Promise} + * @param {Object} the request. + */ + async getCampaigns(req) { + const res = await fetch(`${this.mailchimpBaseUrl}/campaigns?${qs.stringify(req.query)}`, { + method: 'GET', + headers: { + 'Content-Type': req.headers['content-type'], + Authorization: this.authorization, + }, + }); + return res.json(); + } } diff --git a/src/shared/actions/newsletterArchive.js b/src/shared/actions/newsletterArchive.js new file mode 100644 index 0000000000..67e55af59b --- /dev/null +++ b/src/shared/actions/newsletterArchive.js @@ -0,0 +1,60 @@ +/** + * Actions for the Newsletter archive container. + */ + +/* global fetch */ +import _ from 'lodash'; +import { createActions } from 'redux-actions'; +import { config } from 'topcoder-react-utils'; + +// Fetching init +function fetchDataInit(name) { + return name; +} + +// Fetching done +async function fetchDataDone(name) { + /* NOTE: In the real life in most cases you don't want to use fetch() directly + * in an action. You want to create a service for your calls and use it here. + * However, in this example, to keep it a bit more compact, we use fetch() + * directly here. + * + * 1st we fetch all folders to try assicaite an `id` to the folder name + * 2nd we fetch the campaign details */ + try { + const PROXY_ENDPOINT = `${config.URL.COMMUNITY_APP}/api/mailchimp`; + let res = await fetch(`${PROXY_ENDPOINT}/campaign-folders`, { + headers: { + 'Content-Type': 'application/json', + }, + }); + if (!res.ok) throw new Error(res.statusText); + res = await res.json(); + const folder = _.find(res.folders, { name }); + if (!folder) throw new Error(`Folder '${name}' does not exist`); + let res2 = await fetch(`${PROXY_ENDPOINT}/campaigns?count=10000&sort_field=send_time&sort_dir=DESC&folder_id=${folder.id}`, { + headers: { + 'Content-Type': 'application/json', + }, + }); + if (!res2.ok) throw new Error(res2.statusText); + res2 = await res2.json(); + + return { + name, + archive: res2, + }; + } catch (error) { + return { + name, + error, + }; + } +} + +export default createActions({ + NEWSLETTER_ARCHIVE: { + FETCH_DATA_INIT: fetchDataInit, + FETCH_DATA_DONE: fetchDataDone, + }, +}); diff --git a/src/shared/components/NewsletterArchive/index.jsx b/src/shared/components/NewsletterArchive/index.jsx new file mode 100644 index 0000000000..f38a745761 --- /dev/null +++ b/src/shared/components/NewsletterArchive/index.jsx @@ -0,0 +1,36 @@ +import _ from 'lodash'; +import moment from 'moment'; +import React, { Fragment } from 'react'; +import PT from 'prop-types'; +import { themr } from 'react-css-super-themr'; +import defaultStyle from './style.scss'; + +/* Date/time format to use in the link. */ +const FORMAT = 'MMM DD, HH:mm'; + +function NewsletterArchive({ + archive, +}) { +// console.log(archive) + return _.map( + archive.campaigns, + (link, indx) => ( + + + {link.settings.title} + + Sent: {moment(link.send_time).format(FORMAT)} + + ), + ); +} + +NewsletterArchive.defaultProps = { + token: null, +}; + +NewsletterArchive.propTypes = { + archive: PT.shape().isRequired, +}; + +export default themr('NewsletterArchive', defaultStyle)(NewsletterArchive); diff --git a/src/shared/components/NewsletterArchive/style.scss b/src/shared/components/NewsletterArchive/style.scss new file mode 100644 index 0000000000..3287352ba1 --- /dev/null +++ b/src/shared/components/NewsletterArchive/style.scss @@ -0,0 +1,22 @@ +@import "~styles/mixins"; + +.archive-link { + display: block; + font-size: 15px; + color: $tc-dark-blue-110; + + &:active, + &:focus, + &:visited, + &:hover { + color: $tc-dark-blue-110; + } +} + +.archive-date { + color: $tc-gray-80; + font-size: 12px; + line-height: 15px; + margin-bottom: 0.5em; + display: block; +} diff --git a/src/shared/containers/NewsletterArchive.jsx b/src/shared/containers/NewsletterArchive.jsx new file mode 100644 index 0000000000..6923235f7a --- /dev/null +++ b/src/shared/containers/NewsletterArchive.jsx @@ -0,0 +1,74 @@ +import React from 'react'; +import PT from 'prop-types'; +import { connect } from 'react-redux'; +import actions from 'actions/newsletterArchive'; +import LoadingIndicator from 'components/LoadingIndicator'; +import NewsletterArchive from 'components/NewsletterArchive'; + +class NewsletterArchiveContainer extends React.Component { + componentDidMount() { + const { + loading, + name, + getNewsletterArchiveDone, + } = this.props; + if (!loading) { + getNewsletterArchiveDone(name); + } + } + + render() { + const { + loading, error, archive, + } = this.props; + if (loading) return ; + if (error) { + return Error loading MailChimp archive: {error.message}; + } + if (!archive || !archive.campaigns) return null; + return ; + } +} + +NewsletterArchiveContainer.defaultProps = { + loading: false, + archive: null, + error: null, +}; + +NewsletterArchiveContainer.propTypes = { + loading: PT.bool, + name: PT.string.isRequired, + getNewsletterArchiveDone: PT.func.isRequired, + archive: PT.shape(), + error: PT.shape(), +}; + +function mapStateToProps(state, ownProps) { + const { newsletterArchive } = state; + if (newsletterArchive[ownProps.name]) { + return { + loading: newsletterArchive[ownProps.name].loading, + error: newsletterArchive[ownProps.name].error, + archive: newsletterArchive[ownProps.name].archive, + }; + } + + return state; +} + +function mapDispatchToProps(dispatch) { + return { + getNewsletterArchiveDone: (name) => { + dispatch(actions.newsletterArchive.fetchDataInit(name)); + dispatch(actions.newsletterArchive.fetchDataDone(name)); + }, + }; +} + +const Container = connect( + mapStateToProps, + mapDispatchToProps, +)(NewsletterArchiveContainer); + +export default Container; diff --git a/src/shared/reducers/index.js b/src/shared/reducers/index.js index 769355cbc7..071be6b883 100644 --- a/src/shared/reducers/index.js +++ b/src/shared/reducers/index.js @@ -24,6 +24,7 @@ import { getAuthTokens } from 'utils/tc'; import contentful from './contentful'; import topcoderHeader from './topcoder_header'; import rss from './rss'; +import newsletterArchive from './newsletterArchive'; import { factory as challengeListingFactory } from './challenge-listing'; import { factory as examplesFactory } from './examples'; import { factory as pageFactory } from './page'; @@ -130,6 +131,7 @@ export function factory(req) { topcoderHeader, rss, toastr: toastrReducer, + newsletterArchive, })); } diff --git a/src/shared/reducers/newsletterArchive.js b/src/shared/reducers/newsletterArchive.js new file mode 100644 index 0000000000..df28681713 --- /dev/null +++ b/src/shared/reducers/newsletterArchive.js @@ -0,0 +1,53 @@ +/** + * Reducer for state.newsletterArchive + */ + +import actions from 'actions/newsletterArchive'; +import { handleActions } from 'redux-actions'; + +/** + * Handles newsletterArchive.fetchDatInit action. + * @param {Object} state Previous state. + * @param {Object} name The action. + */ +function onInit(state, { payload }) { + return { + ...state, + [payload]: { + archive: [], + loading: true, + }, + }; +} + +/** + * Handles newsletterArchive.fetchDataDone action. + * @param {Object} state Previous state. + * @param {Object} action The action. + */ +function onDone(state, { payload }) { + return { + ...state, + [payload.name]: { + archive: payload.error ? null : payload.archive, + error: payload.error, + loading: false, + }, + }; +} + +/** + * Creates newsletterArchive reducer with the specified initial state. + * @param {Object} state Optional. If not given, the default one is + * generated automatically. + * @return {Function} Reducer. + */ +function create(state = {}) { + return handleActions({ + [actions.newsletterArchive.fetchDataInit]: onInit, + [actions.newsletterArchive.fetchDataDone]: onDone, + }, state); +} + +/* Reducer with the default initial state. */ +export default create(); diff --git a/src/shared/utils/markdown.js b/src/shared/utils/markdown.js index 502f9f850c..37c3513fcc 100644 --- a/src/shared/utils/markdown.js +++ b/src/shared/utils/markdown.js @@ -22,6 +22,7 @@ import VideoModalButton from 'components/VideoModalButton'; import Looker from 'containers/Looker'; import AnchorLink from 'react-anchor-link-smooth-scroll'; import Modal from 'components/Contentful/Modal'; +import NewsletterArchive from 'containers/NewsletterArchive'; import tco18 from 'components/buttons/outline/tco/tco18.scss'; import tco16 from 'components/buttons/outline/tco/tco16.scss'; @@ -88,6 +89,7 @@ const customComponents = { }, }), Modal: attrs => ({ type: Modal, props: attrs }), + NewsletterArchive: attrs => ({ type: NewsletterArchive, props: attrs }), }; /** From 06f083446dddaecbd79db7ee0b3bf73b8432cd2a Mon Sep 17 00:00:00 2001 From: Sushil Shinde Date: Tue, 11 Jun 2019 17:43:09 +0530 Subject: [PATCH 2/7] deploying on dev --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 944585eb79..b2d41a177b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -174,7 +174,7 @@ workflows: filters: branches: only: - - develop + - feature-contentful # This is alternate dev env for parallel testing - "build-test": context : org-global From c1e7e75dc19dc661ee5586e570280964ad4807b9 Mon Sep 17 00:00:00 2001 From: Kiril Kartunov Date: Fri, 14 Jun 2019 11:33:52 +0300 Subject: [PATCH 3/7] implements member cards for Contentful --- .../Contentful/MemberCard/MemberCard.jsx | 20 + .../__snapshots__/MemberCard.jsx.snap | 31 + config/webpack/default.js | 17 +- docs/contentful/index.md | 1 + docs/contentful/memberCard.md | 8 + docs/contentful/pics/memberCard.png | Bin 0 -> 100534 bytes package-lock.json | 609 ++++++------------ package.json | 2 + .../Contentful/MemberCard/MemberCard.jsx | 87 +++ .../Contentful/MemberCard/index.jsx | 79 +++ .../Contentful/MemberCard/themes/default.scss | 96 +++ .../components/Contentful/Tabs/Tabs.jsx | 19 +- .../components/Contentful/Viewport/index.jsx | 2 + src/shared/routes/Examples/Contentful.jsx | 16 + 14 files changed, 578 insertions(+), 409 deletions(-) create mode 100644 __tests__/shared/components/Contentful/MemberCard/MemberCard.jsx create mode 100644 __tests__/shared/components/Contentful/MemberCard/__snapshots__/MemberCard.jsx.snap create mode 100644 docs/contentful/memberCard.md create mode 100644 docs/contentful/pics/memberCard.png create mode 100644 src/shared/components/Contentful/MemberCard/MemberCard.jsx create mode 100644 src/shared/components/Contentful/MemberCard/index.jsx create mode 100644 src/shared/components/Contentful/MemberCard/themes/default.scss diff --git a/__tests__/shared/components/Contentful/MemberCard/MemberCard.jsx b/__tests__/shared/components/Contentful/MemberCard/MemberCard.jsx new file mode 100644 index 0000000000..e5b380202c --- /dev/null +++ b/__tests__/shared/components/Contentful/MemberCard/MemberCard.jsx @@ -0,0 +1,20 @@ +import React from 'react'; +import Renderer from 'react-test-renderer/shallow'; +import { MemberCardInner } from 'components/Contentful/MemberCard/MemberCard'; + +test('Matches shallow shapshot', () => { + const renderer = new Renderer(); + const MOCK_PROPS = { + memberCard: { + country: 'es', + }, + trackIcon: { + file: { + url: 'https://www.topcoder.com', + }, + }, + theme: {}, + }; + renderer.render(); + expect(renderer.getRenderOutput()).toMatchSnapshot(); +}); diff --git a/__tests__/shared/components/Contentful/MemberCard/__snapshots__/MemberCard.jsx.snap b/__tests__/shared/components/Contentful/MemberCard/__snapshots__/MemberCard.jsx.snap new file mode 100644 index 0000000000..ab10aec06d --- /dev/null +++ b/__tests__/shared/components/Contentful/MemberCard/__snapshots__/MemberCard.jsx.snap @@ -0,0 +1,31 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Matches shallow shapshot 1`] = ` + +
+
+ track icon +
+
+
+
+ + + SPAIN + +
+
+
+
+`; diff --git a/config/webpack/default.js b/config/webpack/default.js index fb018ff22c..a4f6ff0050 100644 --- a/config/webpack/default.js +++ b/config/webpack/default.js @@ -30,14 +30,17 @@ module.exports = { * are not bundled. */ /utils[\\/]router[\\/]require/, ], - rules: [{ - test: /\.svg$/, - loader: 'file-loader', - options: { - outputPath: '/images/', - publicPath: `${publicPath}/images`, + rules: [ + { + test: /\.svg$/, + loader: 'file-loader', + options: { + outputPath: '/images/', + publicPath: `${publicPath}/images`, + }, + exclude: /node_modules/, }, - }], + ], }, plugins: [ new CopyWebpackPlugin([{ diff --git a/docs/contentful/index.md b/docs/contentful/index.md index ad54c3338c..e1b7dd72d4 100644 --- a/docs/contentful/index.md +++ b/docs/contentful/index.md @@ -27,6 +27,7 @@ Instructions are also provided below for developments that want to modify/create - [Navigation Menu](./NavigationMenu.md) - [Route](./Route.md) - [Viewport](./viewport.md) + - [Member Card](./memberCard.md) - [Preview Content](./preview-content.md) - [Custom inline components in Markdown fields](./custom-inline-components-in-markdown-fields.md) - [Miscellaneous CSS Solutions](./miscellaneous-CSS-solutions.md) diff --git a/docs/contentful/memberCard.md b/docs/contentful/memberCard.md new file mode 100644 index 0000000000..d67222046f --- /dev/null +++ b/docs/contentful/memberCard.md @@ -0,0 +1,8 @@ +# Member Card +A card looking component that represents member/speaker/person card. + +## Fields +![](./pics/memberCard.png) + +## Live Demo +https://community-app.topcoder.com/examples/contentful/viewport/4SKonli2adCNFxBvgaeayI \ No newline at end of file diff --git a/docs/contentful/pics/memberCard.png b/docs/contentful/pics/memberCard.png new file mode 100644 index 0000000000000000000000000000000000000000..f7480cf49f584a2c9ecf66b539edddc8f4ea7419 GIT binary patch literal 100534 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 + { imageUrl && ( +
+ profile +
+ )} +
+ { trackIconUrl && ( +
+ track icon +
+ )} +
+
{memberCard.memberHandle}
+ { memberName && ( +
{memberName}
+ )} + { country && ( +
+ + + {getName(country).toLocaleUpperCase()} + +
+ )} +
+ +
+
+ ); +} + +MemberCardInner.defaultProps = { + image: null, + trackIcon: null, +}; + +MemberCardInner.propTypes = { + id: PT.string.isRequired, + image: PT.shape(), + trackIcon: PT.shape(), + memberCard: PT.shape().isRequired, + theme: PT.shape({ + memberCard: PT.string, + imageWrapper: PT.string, + info: PT.string, + trackIcon: PT.string, + handleWrapper: PT.string, + handle: PT.string, + flag: PT.string, + }).isRequired, +}; + +export default themr('MemberCard', defaultTheme)(MemberCardInner); diff --git a/src/shared/components/Contentful/MemberCard/index.jsx b/src/shared/components/Contentful/MemberCard/index.jsx new file mode 100644 index 0000000000..b1ea4c450c --- /dev/null +++ b/src/shared/components/Contentful/MemberCard/index.jsx @@ -0,0 +1,79 @@ +/** + * Member Card component. + */ + +import ContentfulLoader from 'containers/ContentfulLoader'; +import LoadingIndicator from 'components/LoadingIndicator'; +import PT from 'prop-types'; +import React from 'react'; +import _ from 'lodash'; + +import MemberCard from './MemberCard'; +import defaultTheme from './themes/default.scss'; + +// Future themes added here +const THEMES = { + Default: defaultTheme, +}; + +/* Loads the main member card entry. */ +export default function MemberCardLoader(props) { + const { + id, preview, spaceName, environment, + } = props; + return ( + { + const { fields } = data.entries.items[id]; + const imgId = _.get(fields, 'image.sys.id'); + const trackIconId = _.get(fields, 'trackIcon.sys.id'); + const assetIds = _.compact([imgId, trackIconId]); + const theme = THEMES[fields.theme]; + if (assetIds.length !== 0) { + return ( + { + const { items } = assetData.assets; + const imgFields = _.get(items, [imgId, 'fields']); + const trackIconFields = _.get(items, [trackIconId, 'fields']); + return ( + + ); + }} + renderPlaceholder={LoadingIndicator} + /> + ); + } + return ; + }} + renderPlaceholder={LoadingIndicator} + /> + ); +} + +MemberCardLoader.defaultProps = { + preview: false, + spaceName: null, + environment: null, +}; + +MemberCardLoader.propTypes = { + id: PT.string.isRequired, + preview: PT.bool, + spaceName: PT.string, + environment: PT.string, +}; diff --git a/src/shared/components/Contentful/MemberCard/themes/default.scss b/src/shared/components/Contentful/MemberCard/themes/default.scss new file mode 100644 index 0000000000..7dad5fbf92 --- /dev/null +++ b/src/shared/components/Contentful/MemberCard/themes/default.scss @@ -0,0 +1,96 @@ +@import "~styles/mixins"; + +.memberCard { + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + overflow: hidden; + border: 1px solid #d5d5d5; + border-radius: 6px; + box-shadow: 0 2px 9px 0 rgba(38, 38, 40, 0.15), inset 0 1px 3px 0 rgba(0, 0, 0, 0.5); + max-width: 305px; + max-height: 322px; + + @include xs-to-sm { + margin-bottom: 1em; + } +} + +.imageWrapper { + flex: 1 1 70%; + max-height: 224px; + + img { + width: 100%; + height: 100%; + max-height: 224px; + max-width: 303px; + } +} + +.info { + flex: 1 1 30%; + display: flex; + height: 96px; + + .trackIcon { + width: 76px; + height: 96px; + display: flex; + justify-content: center; + align-items: center; + + & img { + max-height: 30px; + max-width: 30px; + } + } + + .handleWrapper { + flex: 1 1 auto; + padding: 6%; + display: flex; + flex-direction: column; + justify-content: center; + + .handle { + @include roboto-bold; + + font-size: 1.2em; + color: $tc-dark-blue-110; + line-height: 30px; + } + + .memberName { + color: #2a2a2b; + font-size: 15px; + font-weight: 500; + line-height: 30px; + text-align: left; + } + + .flag { + margin-right: 0.5em; + } + + .countryName { + @include roboto-regular; + + color: #555; + line-height: 25px; + } + } +} + +.contentWrapper { + display: flex; + margin: 0 auto; + max-width: $screen-md; + padding: 15px 0; + color: $tc-black; + + @include xs-to-sm { + flex-direction: column; + } +} diff --git a/src/shared/components/Contentful/Tabs/Tabs.jsx b/src/shared/components/Contentful/Tabs/Tabs.jsx index 9b589aa29f..096911b46e 100644 --- a/src/shared/components/Contentful/Tabs/Tabs.jsx +++ b/src/shared/components/Contentful/Tabs/Tabs.jsx @@ -7,6 +7,7 @@ import LoadingIndicator from 'components/LoadingIndicator'; import MarkdownRenderer from 'components/MarkdownRenderer'; import { AppComponentSwitch } from 'components/Contentful/AppComponent'; import ContentBlockLoader from 'components/Contentful/ContentBlock'; +import Viewport from 'components/Contentful/Viewport'; import PT from 'prop-types'; import React, { Component } from 'react'; import { @@ -96,10 +97,11 @@ export default class TabsItemsLoader extends Component { environment={environment} render={(panelItem) => { const { id } = panelItemLink.sys; - if (panelItem.entries.items[id].sys.contentType.sys.id === 'appComponent') { + const entryType = panelItem.entries.items[id].sys.contentType.sys.id; + if (entryType === 'appComponent') { return AppComponentSwitch(panelItem.entries.items[id]); } - if (panelItem.entries.items[id].sys.contentType.sys.id === 'contentBlock') { + if (entryType === 'contentBlock') { return ( ); } - if (panelItem.entries.items[id].sys.contentType.sys.id === 'tabs') { + if (entryType === 'tabs') { const { fields } = panelItem.entries.items[id]; return ( ); } + + if (entryType === 'viewport') { + return ( + + ); + } return null; }} key={tabItem.sys.id} diff --git a/src/shared/components/Contentful/Viewport/index.jsx b/src/shared/components/Contentful/Viewport/index.jsx index b16797fe0a..6a07ab2fb4 100644 --- a/src/shared/components/Contentful/Viewport/index.jsx +++ b/src/shared/components/Contentful/Viewport/index.jsx @@ -23,6 +23,7 @@ import Tabs from 'components/Contentful/Tabs'; import AppComponentLoader from 'components/Contentful/AppComponent'; import ContentSlider from 'components/Contentful/ContentSlider'; import Dropdown from 'components/Contentful/Dropdown'; +import MemberCard from 'components/Contentful/MemberCard'; import Viewport from './Viewport'; @@ -49,6 +50,7 @@ const COMPONENTS = { viewport: null, /* Assigned to ViewportLoader below. */ contentSlider: ContentSlider, dropdown: Dropdown, + memberCard: MemberCard, }; const THEMES = { diff --git a/src/shared/routes/Examples/Contentful.jsx b/src/shared/routes/Examples/Contentful.jsx index 093dc2af6f..f9ab1d63f1 100644 --- a/src/shared/routes/Examples/Contentful.jsx +++ b/src/shared/routes/Examples/Contentful.jsx @@ -22,6 +22,7 @@ import Tabs from 'components/Contentful/Tabs'; import Blog from 'components/Contentful/Blog'; import BlogFeed from 'containers/Contentful/BlogFeed'; import Modal from 'components/Contentful/Modal'; +import MemberCard from 'components/Contentful/MemberCard'; import qs from 'qs'; import { Route, Switch } from 'react-router-dom'; @@ -207,6 +208,21 @@ export default function Contentful({ location, match }) { )} /> + ( +
+

You can adjust wrapper size to scale the member card in devtools

+
+ +
+
+ )} + /> ); } From bdf6b1aaedb5ab1b49764afc4b383c2de62296b2 Mon Sep 17 00:00:00 2001 From: Kiril Kartunov Date: Fri, 14 Jun 2019 11:43:41 +0300 Subject: [PATCH 4/7] Fix #2614 --- .../components/Contentful/ContentBlock/themes/TCO19.scss | 6 +++++- .../components/Contentful/ContentBlock/themes/general.scss | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/shared/components/Contentful/ContentBlock/themes/TCO19.scss b/src/shared/components/Contentful/ContentBlock/themes/TCO19.scss index f5c66d7ba5..7f03b0a643 100644 --- a/src/shared/components/Contentful/ContentBlock/themes/TCO19.scss +++ b/src/shared/components/Contentful/ContentBlock/themes/TCO19.scss @@ -107,6 +107,10 @@ @include md-to-xl { white-space: nowrap; } + + &:first-child { + padding-left: 10px; + } } td { @@ -118,7 +122,7 @@ color: $tc-gray-80; border-top: 1px solid #ededf2; border-bottom: 1px solid #ededf2; - padding: 20px 10px 20px 0; + padding: 20px 50px 20px 0; min-height: 51px; &:first-child { diff --git a/src/shared/components/Contentful/ContentBlock/themes/general.scss b/src/shared/components/Contentful/ContentBlock/themes/general.scss index 9dee948cbc..f0682282f8 100644 --- a/src/shared/components/Contentful/ContentBlock/themes/general.scss +++ b/src/shared/components/Contentful/ContentBlock/themes/general.scss @@ -107,6 +107,10 @@ @include md-to-xl { white-space: nowrap; } + + &:first-child { + padding-left: 10px; + } } td { @@ -118,7 +122,7 @@ color: $tc-gray-80; border-top: 1px solid #ededf2; border-bottom: 1px solid #ededf2; - padding: 20px 10px 20px 0; + padding: 20px 50px 20px 0; min-height: 51px; &:first-child { From 746589300c1578272155d44790e2d05c513b80d9 Mon Sep 17 00:00:00 2001 From: Kiril Kartunov Date: Fri, 14 Jun 2019 12:06:07 +0300 Subject: [PATCH 5/7] Close #2336 #2615 --- .../Contentful/Accordion/AccordionItem/style.scss | 1 - src/shared/components/NewsletterArchive/style.scss | 2 +- src/shared/containers/NewsletterArchive.jsx | 6 +++++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/shared/components/Contentful/Accordion/AccordionItem/style.scss b/src/shared/components/Contentful/Accordion/AccordionItem/style.scss index 5bef347601..cc3d049cb8 100644 --- a/src/shared/components/Contentful/Accordion/AccordionItem/style.scss +++ b/src/shared/components/Contentful/Accordion/AccordionItem/style.scss @@ -60,7 +60,6 @@ color: #394146; font: 15px/22px 'Open Sans', sans-serif; margin-bottom: 20px; - opacity: 0.7; &:last-child { margin-bottom: 0; diff --git a/src/shared/components/NewsletterArchive/style.scss b/src/shared/components/NewsletterArchive/style.scss index 3287352ba1..e55b8bff9d 100644 --- a/src/shared/components/NewsletterArchive/style.scss +++ b/src/shared/components/NewsletterArchive/style.scss @@ -17,6 +17,6 @@ color: $tc-gray-80; font-size: 12px; line-height: 15px; - margin-bottom: 0.5em; + margin-bottom: 10px; display: block; } diff --git a/src/shared/containers/NewsletterArchive.jsx b/src/shared/containers/NewsletterArchive.jsx index 6923235f7a..1310f51913 100644 --- a/src/shared/containers/NewsletterArchive.jsx +++ b/src/shared/containers/NewsletterArchive.jsx @@ -1,3 +1,4 @@ +import _ from 'lodash'; import React from 'react'; import PT from 'prop-types'; import { connect } from 'react-redux'; @@ -19,13 +20,14 @@ class NewsletterArchiveContainer extends React.Component { render() { const { - loading, error, archive, + loading, error, archive, limit, } = this.props; if (loading) return ; if (error) { return Error loading MailChimp archive: {error.message}; } if (!archive || !archive.campaigns) return null; + if (limit > 1) archive.campaigns = _.take(archive.campaigns, limit); return ; } } @@ -34,6 +36,7 @@ NewsletterArchiveContainer.defaultProps = { loading: false, archive: null, error: null, + limit: null, }; NewsletterArchiveContainer.propTypes = { @@ -42,6 +45,7 @@ NewsletterArchiveContainer.propTypes = { getNewsletterArchiveDone: PT.func.isRequired, archive: PT.shape(), error: PT.shape(), + limit: PT.string, }; function mapStateToProps(state, ownProps) { From 5f1f1847bcdb9ae4bd994b7bb2cf99509ab42ccc Mon Sep 17 00:00:00 2001 From: Kiril Kartunov Date: Mon, 17 Jun 2019 16:29:47 +0300 Subject: [PATCH 6/7] Fixing member card look --- .../Contentful/MemberCard/MemberCard.jsx | 2 +- .../Contentful/MemberCard/themes/default.scss | 52 ++++++++++--------- 2 files changed, 29 insertions(+), 25 deletions(-) diff --git a/src/shared/components/Contentful/MemberCard/MemberCard.jsx b/src/shared/components/Contentful/MemberCard/MemberCard.jsx index 77cbf579ca..c919c840fb 100644 --- a/src/shared/components/Contentful/MemberCard/MemberCard.jsx +++ b/src/shared/components/Contentful/MemberCard/MemberCard.jsx @@ -49,7 +49,7 @@ export function MemberCardInner({
{memberName}
)} { country && ( -
+
{getName(country).toLocaleUpperCase()} diff --git a/src/shared/components/Contentful/MemberCard/themes/default.scss b/src/shared/components/Contentful/MemberCard/themes/default.scss index 7dad5fbf92..66be60cd4f 100644 --- a/src/shared/components/Contentful/MemberCard/themes/default.scss +++ b/src/shared/components/Contentful/MemberCard/themes/default.scss @@ -1,16 +1,13 @@ @import "~styles/mixins"; .memberCard { - width: 100%; - height: 100%; display: flex; flex-direction: column; overflow: hidden; - border: 1px solid #d5d5d5; border-radius: 6px; box-shadow: 0 2px 9px 0 rgba(38, 38, 40, 0.15), inset 0 1px 3px 0 rgba(0, 0, 0, 0.5); - max-width: 305px; - max-height: 322px; + width: 305px; + margin: auto; @include xs-to-sm { margin-bottom: 1em; @@ -18,25 +15,23 @@ } .imageWrapper { - flex: 1 1 70%; - max-height: 224px; + height: 219px; + width: 305px; img { width: 100%; height: 100%; - max-height: 224px; - max-width: 303px; + max-height: 219px; + max-width: 305px; } } .info { - flex: 1 1 30%; display: flex; - height: 96px; + min-height: 81px; .trackIcon { - width: 76px; - height: 96px; + width: 64px; display: flex; justify-content: center; align-items: center; @@ -49,7 +44,7 @@ .handleWrapper { flex: 1 1 auto; - padding: 6%; + padding: 13px 0 15px 20px; display: flex; flex-direction: column; justify-content: center; @@ -57,8 +52,8 @@ .handle { @include roboto-bold; - font-size: 1.2em; - color: $tc-dark-blue-110; + font-size: 20px; + color: #006dea; line-height: 30px; } @@ -66,19 +61,28 @@ color: #2a2a2b; font-size: 15px; font-weight: 500; - line-height: 30px; + line-height: 20px; text-align: left; } - .flag { - margin-right: 0.5em; - } + .countryWrapper { + display: flex; + align-items: center; + min-height: 25px; + + .flag { + margin-right: 6px; + width: 19px; + height: 11px; + } - .countryName { - @include roboto-regular; + .countryName { + @include roboto-regular; - color: #555; - line-height: 25px; + color: #555; + line-height: 25px; + font-size: 15px; + } } } } From 14ac99dbca8f7f8477326b5dccf66717fd9083e5 Mon Sep 17 00:00:00 2001 From: Kiril Kartunov Date: Tue, 18 Jun 2019 10:21:14 +0300 Subject: [PATCH 7/7] Makes grid centered --- src/shared/components/Contentful/Viewport/index.jsx | 2 +- src/shared/components/Contentful/Viewport/themes/grid.scss | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/shared/components/Contentful/Viewport/index.jsx b/src/shared/components/Contentful/Viewport/index.jsx index 6a07ab2fb4..20eb4af7fa 100644 --- a/src/shared/components/Contentful/Viewport/index.jsx +++ b/src/shared/components/Contentful/Viewport/index.jsx @@ -83,7 +83,7 @@ function ViewportContentLoader(props) { } if (themeName === 'Grid') { - extraStylesForContainer = _.assign(extraStylesForContainer || {}, { + extraStylesForContainer = _.defaults(extraStylesForContainer || {}, { 'grid-template-columns': `repeat(${grid.columns || 3}, 1fr)`, 'grid-gap': `${grid.gap || 10}px`, }); diff --git a/src/shared/components/Contentful/Viewport/themes/grid.scss b/src/shared/components/Contentful/Viewport/themes/grid.scss index 38dac7c76d..de5f5fac87 100644 --- a/src/shared/components/Contentful/Viewport/themes/grid.scss +++ b/src/shared/components/Contentful/Viewport/themes/grid.scss @@ -4,6 +4,7 @@ display: grid; margin: 1em auto; overflow: auto; + justify-content: center; @include xl { max-width: $screen-lg;