From 97a656ac69d340cd47630963dc987602575b7416 Mon Sep 17 00:00:00 2001 From: JedwardMook Date: Mon, 16 Sep 2024 17:48:18 -0500 Subject: [PATCH] feature: PositionForBallotItem created and fleshed out --- .../Position/PositionForBallotItem.jsx | 153 ++++++++++++++++++ .../stories/PositionForBallotItem.stories.jsx | 10 ++ 2 files changed, 163 insertions(+) create mode 100644 src/js/common/components/Position/PositionForBallotItem.jsx create mode 100644 src/js/common/stories/PositionForBallotItem.stories.jsx diff --git a/src/js/common/components/Position/PositionForBallotItem.jsx b/src/js/common/components/Position/PositionForBallotItem.jsx new file mode 100644 index 000000000..3c92921ba --- /dev/null +++ b/src/js/common/components/Position/PositionForBallotItem.jsx @@ -0,0 +1,153 @@ +// import PropTypes from 'prop-types'; +import React from 'react'; +import styled from 'styled-components'; +import CheckOutlinedIcon from '@mui/icons-material/CheckOutlined'; +import BlockOutlinedIcon from '@mui/icons-material/BlockOutlined'; +import ThumbDownOffAltRoundedIcon from '@mui/icons-material/ThumbDownOffAltRounded'; +import MoreHorizIcon from '@mui/icons-material/MoreHoriz'; +import HeartFavoriteToggleBase from '../Widgets/HeartFavoriteToggle/HeartFavoriteToggleBase'; + +function PositionForBallotItem () { + const voter = { + image: 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTvVfSCpfKXUaZB8s159zxg1HFNApJU2ra_vg&s', + name: 'Bobbi Odessa', + bio: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', + }; + + const voterEndorsed = true; + + return ( + + + + + + + {voter.name} + + + + + + {voter.bio} + + + + {voterEndorsed ? ( + + + Endorsed a month ago + + ) : ( + + + Opposed a month ago + + )} + + + + +

7

+   + + +
+
+
+
+
+ ); +} + +// PositionForBallotItem.propTypes = { +// }; + +const PositionForBallotItemWrapper = styled('div')` + display: flex; +`; + +const VoterImageWrapper = styled('div')` +`; + +const VoterImage = styled('img')` + width: 43px; + height: 43px; + border-radius: 43px; +`; + +const VoterInfoWrapper = styled('div')` + display: flex; + flex-direction: column; + width: 450px; + margin-left: 15px; +`; + +const VoterInfoNameFavoritesWrapper = styled('div')` + display: flex; + align-items: center; +`; + +const HeartFavoriteToggleBaseWrapper = styled('div')` + margin-top: -5px; + margin-left: 5px; +`; + +const VoterName = styled('h3')` + font: Nunito; + color: var(--NeutralUI-900, rgba(61, 61, 61, 1)); +`; + +const VoterInfoBioWrapper = styled('div')` + max-width: 415px; +`; + +const VoterInfoBio = styled('p')` + color: var(Neutral/900, rgba(42, 42, 44, 1)); +`; + +const VoterPositionLikesSourceWrapper = styled('div')` + display: flex; + justify-content: space-between; +`; + +const VoterPositionWrapper = styled('div')` + display: flex; +`; + +const VoterPosition = styled('div')` + display: flex; +`; + +const PositionText = styled('p')` + margin-left: 5px; + font: Nunito; + font-weight: 400; + size: 14px; + color: var(--Neutral-700, rgba(72, 72, 72, 1)); +`; + +const VoterLikesSourceWrapper = styled('div')` + display: flex; + align-items: center; + justify-content: center; + margin-top: -15px; + `; + +const VoterLikes = styled('div')` + display: flex; +`; + +const LikeDislikeSeperator = styled('div')` + margin-left: 8px; + line-height: 16px; + border-right: 1px solid rgba(197, 197, 197, 1); +`; + +export default PositionForBallotItem; diff --git a/src/js/common/stories/PositionForBallotItem.stories.jsx b/src/js/common/stories/PositionForBallotItem.stories.jsx new file mode 100644 index 000000000..8edc1b2e5 --- /dev/null +++ b/src/js/common/stories/PositionForBallotItem.stories.jsx @@ -0,0 +1,10 @@ +import React from 'react'; +import PositionForBallotItem from '../components/Position/PositionForBallotItem'; + +export default { + title: 'Components/PositionForBallotItem', + component: PositionForBallotItem, +}; + + +export const Default = () => ;