Skip to content

Commit 95af70b

Browse files
authored
Merge pull request #1584 from ASU/UDS-2056
feat(component-news): added hideTags prop that defaults to true
2 parents 7ea1f2f + f895f95 commit 95af70b

File tree

4 files changed

+22
-12
lines changed

4 files changed

+22
-12
lines changed

packages/component-news/src/components/CardCarouselNews/index.jsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ const CarouselTemplate = ({ cardButton }) => {
3838
const cardItems = feeds?.map((feed, index) =>
3939
cardRow(feed, index, cardButton)
4040
);
41-
4241
return (
4342
<NewsWrapper>
4443
<CardCarousel

packages/component-news/src/components/CardGridNews/index.jsx

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// @ts-check
22
import { Card, feedCardButtonShape, FeedContext } from "@asu/unity-react-core";
33
import React, { useContext, useEffect } from "react";
4+
import PropTypes from "prop-types";
45

56
import { trackReactComponent } from "@asu/shared";
67
import { BaseFeed } from "../../core/components/BaseFeed";
@@ -12,8 +13,9 @@ import { NewsWrapper } from "./index.styles";
1213
*
1314
* @param {Object} feed
1415
* @param {import("../../core/types/news-types").CardButton} cardButton
16+
* @param {boolean} hideTags
1517
*/
16-
const gridRow = (feed, cardButton) => (
18+
const gridRow = (feed, cardButton, hideTags) => (
1719
<div
1820
className="col col-12 col-md-6 col-lg-4 cards-items-container"
1921
key={feed.id}
@@ -38,7 +40,7 @@ const gridRow = (feed, cardButton) => (
3840
href: feed.buttonLink,
3941
},
4042
]}
41-
tags={parseInterests(feed?.interests)}
43+
tags={hideTags ? [] : parseInterests(feed?.interests)}
4244
/>
4345
</div>
4446
);
@@ -47,13 +49,14 @@ const gridRow = (feed, cardButton) => (
4749
* @param {import("../../core/types/news-types").TemplateProps} props
4850
*/
4951

50-
const GridTemplate = ({ cardButton }) => {
52+
const GridTemplate = ({ cardButton, hideTags }) => {
5153
const { feeds } = useContext(FeedContext); // Reading the "feeds" object from the context
54+
const shouldHideTags = hideTags === true || hideTags === "true";
5255

5356
return (
5457
<NewsWrapper className="row row-spaced" data-testid="grid-view-container">
5558
{feeds?.map((feed, index) => (
56-
<React.Fragment key={index}>{gridRow(feed, cardButton)}</React.Fragment>
59+
<React.Fragment key={index}>{gridRow(feed, cardButton, shouldHideTags)}</React.Fragment>
5760
))}
5861
</NewsWrapper>
5962
);
@@ -67,7 +70,7 @@ const GridTemplate = ({ cardButton }) => {
6770
/**
6871
* @param {FeedType} props
6972
*/
70-
const CardGridNews = ({ cardButton, ...props }) => {
73+
const CardGridNews = ({ cardButton, hideTags = true, ...props }) => {
7174
useEffect(() => {
7275
if (typeof window !== "undefined") {
7376
trackReactComponent({
@@ -87,6 +90,7 @@ const CardGridNews = ({ cardButton, ...props }) => {
8790
<BaseFeed {...props}>
8891
<GridTemplate
8992
cardButton={{ ...defaultProps.cardButton, ...cardButton }}
93+
hideTags={hideTags}
9094
/>
9195
</BaseFeed>
9296
);
@@ -95,6 +99,8 @@ const CardGridNews = ({ cardButton, ...props }) => {
9599
CardGridNews.propTypes = {
96100
...BaseFeed.propTypes,
97101
cardButton: feedCardButtonShape,
102+
hideTags: PropTypes.oneOf(["true", "false", true, false])
103+
98104
};
99105

100106
export { CardGridNews };

packages/component-news/src/components/CardListlNews/index.jsx

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,14 @@ import { BaseFeed } from "../../core/components/BaseFeed";
77
import { defaultProps } from "../../core/constants/default-props";
88
import { parseInterests } from "../../core/utils";
99
import { NewsWrapper } from "./index.styles";
10+
import PropTypes from "prop-types";
1011

1112
/**
1213
* @param {object} feed
1314
* @param {import("../../core/types/news-types").CardButton} cardButton
15+
* @param {boolean} hideTags
1416
*/
15-
const listRow = (feed, cardButton) => (
17+
const listRow = (feed, cardButton, hideTags) => (
1618
<div className="card card-hover cards-items-container" key={feed.id}>
1719
<Card
1820
type="story"
@@ -35,7 +37,7 @@ const listRow = (feed, cardButton) => (
3537
href: feed.buttonLink,
3638
},
3739
]}
38-
tags={parseInterests(feed?.interests)}
40+
tags={hideTags ? [] : parseInterests(feed?.interests)}
3941
/>
4042
</div>
4143
);
@@ -44,13 +46,14 @@ const listRow = (feed, cardButton) => (
4446
* @param {import("../../core/types/news-types").TemplateProps} props
4547
*/
4648

47-
const ListTemplate = ({ cardButton }) => {
49+
const ListTemplate = ({ cardButton, hideTags }) => {
4850
const { feeds } = useContext(FeedContext); // Reading the "feeds" object from the context
51+
const shouldHideTags = hideTags === true || hideTags === "true";
4952

5053
return (
5154
<NewsWrapper className="row-spaced" data-testid="list-view-container">
5255
{feeds?.map((feed, index) => (
53-
<React.Fragment key={index}>{listRow(feed, cardButton)}</React.Fragment>
56+
<React.Fragment key={index}>{listRow(feed, cardButton, shouldHideTags)}</React.Fragment>
5457
))}
5558
</NewsWrapper>
5659
);
@@ -64,7 +67,7 @@ const ListTemplate = ({ cardButton }) => {
6467
/**
6568
* @param {FeedType} props
6669
*/
67-
const CardListlNews = ({ cardButton, ...props }) => {
70+
const CardListlNews = ({ cardButton, hideTags = true, ...props }) => {
6871
useEffect(() => {
6972
if (typeof window !== "undefined") {
7073
trackReactComponent({
@@ -84,11 +87,12 @@ const CardListlNews = ({ cardButton, ...props }) => {
8487
<BaseFeed {...props}>
8588
<ListTemplate
8689
cardButton={{ ...defaultProps.cardButton, ...cardButton }}
90+
hideTags={hideTags}
8791
/>
8892
</BaseFeed>
8993
);
9094
};
9195

92-
CardListlNews.propTypes = { ...BaseFeed.propTypes, feedCardButtonShape };
96+
CardListlNews.propTypes = { ...BaseFeed.propTypes, feedCardButtonShape, hideTags: PropTypes.oneOf(["true", "false", true, false]) };
9397

9498
export { CardListlNews };

packages/component-news/src/core/types/news-types.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
* @ignore
1313
* @typedef {Object} TemplateProps
1414
* @property {CardButton} cardButton
15+
* @property {"true" | "false" | boolean} [hideTags]
1516
*/
1617

1718
/**

0 commit comments

Comments
 (0)