{"version":3,"file":"static/chunks/2975.8f9f135dcc0b77c6.js","mappings":"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","sources":["webpack://_N_E/./components/BookmarkButton/BookmarkButton.js","webpack://_N_E/./components/BookmarkButton/index.js","webpack://_N_E/./components/FeedbackModal/FeedbackModal.js","webpack://_N_E/./components/FeedbackModal/index.js","webpack://_N_E/./utils/feedback.js","webpack://_N_E/./components/FeedbackButtons/FeedbackButtons.js","webpack://_N_E/./components/FeedbackButtons/index.js","webpack://_N_E/./components/ShareFeedbackSegment/ShareFeedbackSegment.js","webpack://_N_E/./components/ShareFeedbackSegment/index.js","webpack://_N_E/./containers/CampaignPage/CampaignPage.js","webpack://_N_E/./containers/CampaignPage/index.js","webpack://_N_E/./components/BookmarkButton/BookmarkButton.module.scss","webpack://_N_E/./components/FeedbackButtons/FeedbackButtons.module.scss","webpack://_N_E/./components/FeedbackModal/FeedbackModal.module.scss","webpack://_N_E/./components/ShareFeedbackSegment/ShareFeedbackSegment.module.scss","webpack://_N_E/./containers/CampaignPage/CampaignPage.module.scss"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useTranslation } from 'next-i18next';\n\nimport Button from '../Button';\n\nimport * as bookmarks from '../../utils/bookmarks';\n\nimport styles from './BookmarkButton.module.scss';\n\nconst BookmarkButton = ({\n id,\n url,\n isNextToShare,\n untranslatedModifiers = [],\n untranslatedButtonModifiers,\n}) => {\n const { t } = useTranslation('common');\n const [bookmarked, setBookmarked] = useState(false);\n\n const handleBookmarkToggle = () => {\n if (bookmarked) {\n bookmarks.removeBookmark(id);\n setBookmarked(false);\n } else {\n bookmarks.addBookmark({\n id,\n url,\n });\n setBookmarked(true);\n }\n };\n\n useEffect(() => {\n setBookmarked(bookmarks.isBookmarked(id));\n }, [id]);\n\n const icon = bookmarked ? 'Bookmarked' : 'Bookmark';\n\n const text = bookmarked\n ? t('bookmarkbutton.saved')\n : t('bookmarkbutton.save');\n\n const classes = classNames(\n styles['BookmarkButton'],\n untranslatedModifiers.map((x) => styles[x])\n );\n\n return (\n
\n
\n \n
\n
\n );\n};\n\nBookmarkButton.propTypes = {\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n url: PropTypes.string,\n isNextToShare: PropTypes.bool,\n untranslatedModifiers: PropTypes.arrayOf(PropTypes.string),\n untranslatedButtonModifiers: PropTypes.arrayOf(PropTypes.string),\n};\n\nBookmarkButton.defaultProps = {\n id: '',\n url: '',\n isNextToShare: false,\n untranslatedModifiers: [],\n untranslatedButtonModifiers: [],\n};\n\nexport default BookmarkButton;\n","import BookmarkButton from './BookmarkButton';\n\nexport default BookmarkButton;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'next-i18next';\n\nimport Modal from '../Modal';\nimport HingeFadeInFromTop from '../../transitions/HingeFadeInFromTop';\n\nimport { sendArticleFeedbackComment } from '../../utils/api';\n\nimport styles from './FeedbackModal.module.scss';\n\nconst FeedbackModal = ({ feedbackId, visible, toggleVisible }) => {\n const { t } = useTranslation('common');\n const [modalContentVisible, setModalContentVisible] = useState(false);\n const [feedbackComment, setFeedbackComment] = useState('');\n\n const handleChange = (e) => setFeedbackComment(e.target.value);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n sendArticleFeedbackComment(feedbackId, feedbackComment);\n toggleVisible();\n };\n\n // trigger hinge in animation of modal content\n useEffect(() => {\n setModalContentVisible(visible);\n }, [visible]);\n\n return (\n
\n \n
\n \n
\n \n {t('feedbackmodal.thanks')}\n \n \n \n {t('feedbackmodal.submit')}\n \n \n
\n
\n
\n
\n );\n};\n\nFeedbackModal.propTypes = {\n feedbackId: PropTypes.number,\n visible: PropTypes.bool,\n toggleVisible: PropTypes.func,\n};\n\nFeedbackModal.defaultProps = {\n visible: false,\n};\n\nexport default FeedbackModal;\n","import FeedbackModal from './FeedbackModal';\n\nexport default FeedbackModal;\n","import storage from './localStorage';\n\n// init\n\nif (storage.getItem('feedbackedArticleIds') === null) {\n storage.setItem('feedbackedArticleIds', JSON.stringify([]));\n}\n\nconst getFeedbackedArticleIds = () =>\n JSON.parse(storage.getItem('feedbackedArticleIds'));\n\nconst getFeedbackByArticleId = (id) => {\n const feedback = getFeedbackedArticleIds().filter((f) => f.id === id);\n\n return feedback ? feedback[0] : null;\n};\n\nconst hasFeedbackedArticleId = (id) =>\n getFeedbackedArticleIds()\n .map((f) => f.id)\n .indexOf(id) > -1;\n\nconst addFeedbackedArticleId = (id, rating) => {\n let feedbackedIds = getFeedbackedArticleIds();\n\n storage.setItem(\n 'feedbackedArticleIds',\n JSON.stringify([\n ...feedbackedIds,\n {\n id,\n rating,\n },\n ])\n );\n};\n\nexport {\n getFeedbackedArticleIds,\n getFeedbackByArticleId,\n addFeedbackedArticleId,\n hasFeedbackedArticleId,\n};\n","import React, { useCallback, useState, useEffect } from 'react';\n\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useTranslation } from 'next-i18next';\n\nimport FeedbackModal from '../FeedbackModal';\n\nimport { addFeedbackedArticleId } from '../../utils/feedback';\n\nimport { sendArticleFeedback } from '../../utils/api';\n\nimport styles from './FeedbackButtons.module.scss';\nimport { getFeedbackByArticleId } from '../../utils/feedback';\n\nconst FeedbackButton = ({ type, handleClick, hasVoted, disabled }) => {\n const { t } = useTranslation('common');\n const rating = type === 'up-vote' ? 1 : 0;\n\n const buttonClasses = classNames(styles['FeedbackButtons__Button'], {\n [styles['FeedbackButtons__Button--DownVote']]: type === 'down-vote',\n [styles['FeedbackButtons__Button--HasVoted']]: hasVoted,\n });\n\n const handleClickWithRating = useCallback(\n () => handleClick(rating),\n [rating, handleClick]\n );\n\n return (\n \n \n {type === 'up-vote'\n ? t('feedbackbuttons.giveupvote')\n : t('feedbackbuttons.givedownvote')}\n \n \n );\n};\n\nFeedbackButton.propTypes = {\n type: PropTypes.oneOf(['up-vote', 'down-vote']),\n handleClick: PropTypes.func,\n disabled: PropTypes.bool,\n hasVoted: PropTypes.bool,\n};\n\nFeedbackButton.defaultProps = {\n type: 'up-vote',\n disabled: false,\n hasVoted: false,\n};\n\nconst FeedbackButtons = ({ articleId }) => {\n const { t } = useTranslation('common');\n const [feedbackModalOpen, setFeedbackModalOpen] = useState(false);\n const [feedbackId, setFeedbackId] = useState(null);\n const [feedbackSubmitted, setFeedbackSubmitted] = useState({\n submitted: false,\n rating: -1,\n });\n\n const toggleFeedbackModal = () => setFeedbackModalOpen(!feedbackModalOpen);\n\n const handleButtonClick = async (rating) => {\n setFeedbackSubmitted({ submitted: true, rating });\n\n try {\n const result = await sendArticleFeedback(articleId, rating);\n if (result.id) {\n // set id passed to feedback comment modal\n setFeedbackId(result.id);\n // save feedback state to storage\n addFeedbackedArticleId(articleId, rating);\n }\n } catch (e) {\n console.error('Error - could not submit feedback: ', e);\n }\n\n toggleFeedbackModal();\n };\n\n // check if user already has feedbacked article\n useEffect(() => {\n const feedback = getFeedbackByArticleId(articleId);\n if (feedback) {\n setFeedbackSubmitted({\n submitted: true,\n rating: feedback.rating,\n });\n }\n }, [articleId]);\n\n return (\n
\n \n {feedbackSubmitted.submitted\n ? t('feedbackbuttons.thanksforfeedback')\n : t('feedbackbuttons.giveusfeedback')}\n \n
\n \n \n
\n\n \n
\n );\n};\n\nFeedbackButtons.propTypes = {\n articleId: PropTypes.number,\n};\n\nFeedbackButtons.defaultProps = {};\n\nexport default FeedbackButtons;\n","import FeedbackButtons from './FeedbackButtons';\n\nexport default FeedbackButtons;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport ShareButton from '../ShareButton';\nimport FeedbackButtons from '../FeedbackButtons';\nimport BookmarkButton from '../BookmarkButton';\nimport { CookieStateContext } from '../../containers/BasePage/state';\n\nimport styles from './ShareFeedbackSegment.module.scss';\n\nconst ShareFeedbackSegment = ({ articleId, bookmark, modifier }) => {\n const { state } = useContext(CookieStateContext) || {};\n const cookieConsent = state?.categories?.includes('functionality');\n\n const classes = classNames(styles['ShareFeedbackSegment'], {\n [styles[`ShareFeedbackSegment--${modifier}`]]: modifier,\n });\n\n return (\n
\n \n {cookieConsent && (\n \n )}\n
\n \n
\n
\n \n \n \n \n );\n};\n\nShareFeedbackSegment.propTypes = {\n articleId: PropTypes.number,\n bookmark: PropTypes.object,\n};\n\nShareFeedbackSegment.defaultProps = {};\n\nexport default ShareFeedbackSegment;\n","import ShareFeedbackSegment from './ShareFeedbackSegment';\n\nexport default ShareFeedbackSegment;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { basePageWrap } from '../BasePage';\nimport styles from './CampaignPage.module.scss';\n\nimport Hero from '../../components/Hero';\nimport ShareFeedbackSegment from '../../components/ShareFeedbackSegment';\nimport StreamField from '../../components/StreamField';\n\nconst CampaignPage = ({ id, url, hideNavigation, hero, contentBlocks }) => {\n const bookmark = {\n id,\n url,\n };\n\n return (\n
\n \n\n
\n\n \n\n \n
\n );\n};\n\nCampaignPage.defaultProps = {\n id: 0,\n url: '',\n hideNavigation: false,\n hero: {},\n contentBlocks: [],\n};\n\nCampaignPage.propTypes = {\n id: PropTypes.number.isRequired,\n url: PropTypes.string.isRequired,\n hideNavigation: PropTypes.bool,\n hero: PropTypes.object,\n contentBlocks: PropTypes.oneOfType([PropTypes.array, PropTypes.object]),\n};\n\nexport default basePageWrap(CampaignPage);\n","import CampaignPage from './CampaignPage';\n\nexport default CampaignPage;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"BookmarkButton--InsideShareFeedbackSegment\":\"BookmarkButton_BookmarkButton--InsideShareFeedbackSegment__JSFM_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"FeedbackButtons\":\"FeedbackButtons_FeedbackButtons__bcF6F\",\"FeedbackButtons__Label\":\"FeedbackButtons_FeedbackButtons__Label__dxvoP\",\"FeedbackButtons__ButtonWrapper\":\"FeedbackButtons_FeedbackButtons__ButtonWrapper__fgdWM\",\"FeedbackButtons__Button\":\"FeedbackButtons_FeedbackButtons__Button__EJnjx\",\"FeedbackButtons__Button--DownVote\":\"FeedbackButtons_FeedbackButtons__Button--DownVote__YZlpp\",\"FeedbackButtons__Button--HasVoted\":\"FeedbackButtons_FeedbackButtons__Button--HasVoted__JF6P3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"FeedbackModal\":\"FeedbackModal_FeedbackModal__K7uT_\",\"FeedbackModal__Title\":\"FeedbackModal_FeedbackModal__Title__bJ_AF\",\"FeedbackModal__Textarea\":\"FeedbackModal_FeedbackModal__Textarea__qtx_O\",\"FeedbackModal__SubmitButton\":\"FeedbackModal_FeedbackModal__SubmitButton__7Vf0R\",\"FeedbackModal__Content\":\"FeedbackModal_FeedbackModal__Content__Ugxre\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ShareFeedbackSegment\":\"ShareFeedbackSegment_ShareFeedbackSegment__GUGhn\",\"ShareFeedbackSegment--Campaign\":\"ShareFeedbackSegment_ShareFeedbackSegment--Campaign__f7ta6\",\"BookmarkButton\":\"ShareFeedbackSegment_BookmarkButton___svtu\",\"ShareFeedbackSegment__Container\":\"ShareFeedbackSegment_ShareFeedbackSegment__Container__l0kT2\",\"ShareFeedbackSegment__Container--Share\":\"ShareFeedbackSegment_ShareFeedbackSegment__Container--Share__ZsrlN\",\"ShareFeedbackSegment__Container--Feedback\":\"ShareFeedbackSegment_ShareFeedbackSegment__Container--Feedback__2VGbg\",\"ShareFeedbackSegment__ShareWrapper\":\"ShareFeedbackSegment_ShareFeedbackSegment__ShareWrapper__43Lq2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"CampaignPage\":\"CampaignPage_CampaignPage__NKq5R\"};"],"names":["BookmarkButton","id","url","isNextToShare","untranslatedModifiers","untranslatedButtonModifiers","param","t","useTranslation","bookmarked","setBookmarked","useState","useEffect","bookmarks","text","classes","classNames","styles","map","x","jsx_runtime","jsx","div","className","Button","onClick","type","minWidth","icon","propTypes","PropTypes","defaultProps","components_BookmarkButton","FeedbackModal","feedbackId","visible","toggleVisible","modalContentVisible","setModalContentVisible","feedbackComment","setFeedbackComment","Modal","open","handleClose","HingeFadeInFromTop","jsxs","form","label","htmlFor","textarea","name","placeholder","value","onChange","e","target","button","preventDefault","sendArticleFeedbackComment","storage","getItem","setItem","JSON","stringify","getFeedbackedArticleIds","parse","getFeedbackByArticleId","feedback","filter","f","addFeedbackedArticleId","rating","feedbackedIds","FeedbackButton","handleClick","hasVoted","disabled","buttonClasses","handleClickWithRating","useCallback","span","FeedbackButtons","articleId","feedbackModalOpen","setFeedbackModalOpen","setFeedbackId","feedbackSubmitted","setFeedbackSubmitted","submitted","toggleFeedbackModal","handleButtonClick","result","sendArticleFeedback","console","error","ShareFeedbackSegment","state","bookmark","modifier","useContext","CookieStateContext","cookieConsent","categories","includes","concat","ShareButton","components_ShareFeedbackSegment","CampaignPage","hideNavigation","hero","contentBlocks","Hero","StreamField","items","isRequired","containers_CampaignPage","basePageWrap","module","exports"],"sourceRoot":""}