{ "version": 3, "sources": ["../../../../../../owl-nest/ulule/features/project/src/public/views/detail/tabs/project/index.tsx", "../../../../../../owl-nest/ulule/features/project/src/public/views/detail/tabs/project/AboutOwner.tsx", "../../../../../../owl-nest/ulule/features/project/src/public/views/detail/tabs/project/Explorer.tsx", "../../../../../../owl-nest/ulule/features/project/src/public/views/detail/tabs/project/NewsPush.tsx", "../../../../../../owl-nest/ulule/features/project/src/public/views/detail/tabs/project/NewToUlule.tsx", "../../../../../../owl-nest/ulule/features/project/src/public/views/detail/tabs/project/PushRewardsMobile.tsx", "../../../../../../owl-nest/ulule/features/project/src/public/views/detail/tabs/project/SocialFollow.tsx", "../../../../../../owl-nest/ulule/features/project/src/public/views/detail/components/SocialSquare.tsx", "../../../../../../owl-nest/ulule/features/project/src/public/views/detail/tabs/project/sidebar/index.ts", "../../../../../../owl-nest/ulule/features/project/src/public/views/detail/tabs/project/sidebar/Impact.tsx", "../../../../../../owl-nest/ulule/features/project/src/public/components/ImpactBlock.tsx", "../../../../../../owl-nest/ulule/features/project/src/public/views/detail/tabs/project/style.tsx", "../../../../../../owl-nest/ulule/features/project/src/public/views/detail/tabs/project/sidebar/Supporters.tsx", "../../../../../../owl-nest/ulule/features/project/src/public/views/detail/tabs/project/sidebar/Backer.tsx", "../../../../../../owl-nest/ulule/features/project/src/public/views/detail/tabs/project/sidebar/Sponsors.tsx", "../../../../../../owl-nest/ulule/features/project/src/public/views/detail/tabs/project/sidebar/Rewards.tsx", "../../../../../../owl-nest/ulule/features/project/src/public/views/detail/tabs/project/sidebar/RewardList.tsx", "../../../../../../owl-nest/ulule/features/project/src/public/views/detail/tabs/project/sidebar/ShippingInfo.tsx"], "sourcesContent": ["import * as React from 'react'\nimport * as Redux from 'react-redux'\nimport * as jotai from 'jotai'\nimport styled, { css } from 'styled-components'\n\nimport * as consent from '@owl-nest/consent'\nimport { t } from '@owl-nest/localize'\nimport * as model from '@owl-nest/models'\nimport { BREAKPOINTS, COLORS, glyphs, styles as S, WysiwygContent } from '@ulule/owl-kit-components/next'\nimport * as env from '@owl-nest/config'\n\nimport * as modalAction from '../../../../../actions/modal'\nimport { RootState } from '../../../../../reducers'\n\nimport { DisplayMode } from '../../../../context'\nimport * as projectModel from '../../../../models/project'\nimport { SCROLL_TO_ATOM } from '../../../../layout/DetailLayout'\n\nimport { AccordionWrapper } from '../../components/AccordionWrapper'\nimport { AdviceModal } from '../../components/AdviceModal'\nimport { CreateButton } from '../../components/CreateButton'\nimport { EditButton } from '../../components/EditButton'\nimport { ProjectFaq } from '../../components/ProjectFaq'\nimport { useIndice } from '../../hooks/useIndice'\nimport * as Styles from '../../style'\n\nimport { AboutOwner } from './AboutOwner'\nimport { Explorer } from './Explorer'\nimport { NewsPush } from './NewsPush'\nimport { NewToUlule } from './NewToUlule'\nimport { PushRewardsMobile } from './PushRewardsMobile'\nimport { SocialFollow } from './SocialFollow'\nimport * as sidebar from './sidebar'\nimport * as ProjectTabStyles from './style'\n\nexport function ProjectTab(): React.ReactElement {\n const dispatch = Redux.useDispatch()\n const project = Redux.useSelector((state) => state.application.project.data)\n const latestNews = project.latest_news\n const displayMode = React.useContext(DisplayMode)\n const [isAdviceModalOpen, setAdviceModalOpen] = React.useState(false)\n const isEditMode = displayMode === 'edit' && !model.project.refused(project)\n const fundingDescription = model.project.fundingDescription(project)\n const creatorDescription = model.project.ownerDescription(project)\n const projectIsDonationBased = model.project.isDonationBased(project)\n const userConfig = env.useUserEnv()\n\n const scrollTo = jotai.useAtomValue(SCROLL_TO_ATOM)\n\n const aboutOwnerRef = React.useRef(null)\n\n const { isOpen, updateOpenIndices } = useIndice()\n\n function getGlyphAccordion(index: string): React.ReactNode {\n return isOpen(index) ? : \n }\n\n const news = {\n latest: latestNews,\n show: false,\n } as { show: true; latest: NonNullable } | { show: false; latest: typeof latestNews }\n\n if (latestNews !== undefined) {\n if (!model.project.isFinished(project)) {\n news.show = true\n } else if (project.date_end) {\n const dateNews = new Date(latestNews.date_publication ?? latestNews.date_creation)\n const dateEndProject = new Date(project.date_end)\n news.show = dateNews > dateEndProject\n }\n }\n\n React.useEffect(() => {\n // this code is for auto scroll to a block with specific id\n if (scrollTo !== '' && aboutOwnerRef.current) {\n // NOTE: Allow for project tab to load (kinda), to ensure scrolling to the right offset\n setTimeout(() => {\n if (!isOpen(scrollTo)) {\n updateOpenIndices(scrollTo)\n }\n document.location.hash = scrollTo\n }, 300)\n }\n }, [scrollTo])\n\n return (\n <>\n \n \n \n {news.show && }\n\n
\n \n {t('About this project')}\n \n {isEditMode && (\n \n \n \n )}\n (project) || ''}>\n {\n const target = e.target as HTMLElement\n const anchor = target.closest('a[href]')\n\n if (anchor === null) {\n return\n }\n\n if (anchor.href.includes('?reward=')) {\n e.preventDefault()\n\n const rewardId = new URL(anchor.href).searchParams.get('reward')\n\n if (rewardId) {\n dispatch(modalAction.toggleModalReward(true))\n dispatch(modalAction.setRewardId(rewardId))\n }\n }\n }}\n />\n \n
\n\n {!isEditMode && !projectIsDonationBased && (\n \n \n \n )}\n\n
\n {fundingDescription === '' ? (\n isEditMode && (\n \n {\n document.location.href = `/projects/${project.id}/edit/layout/${userConfig.lang}/?description_funding`\n }}\n mode=\"small\"\n title={{t('What are the funds for?')}}\n />\n \n )\n ) : (\n <>\n {\n updateOpenIndices('funds')\n }}\n >\n {t('What are the funds for?')}\n {getGlyphAccordion('funds')}\n \n\n \n <>\n {isEditMode && (\n \n \n \n )}\n \n {\n const target = e.target as HTMLElement\n const anchor = target.closest('a[href]')\n\n if (anchor === null) {\n return\n }\n\n if (anchor.href.includes('?reward=')) {\n e.preventDefault()\n\n const rewardId = new URL(anchor.href).searchParams.get('reward')\n\n if (rewardId) {\n dispatch(modalAction.toggleModalReward(true))\n dispatch(modalAction.setRewardId(rewardId))\n }\n }\n }}\n />\n \n \n \n \n )}\n
\n\n
\n \n {\n updateOpenIndices('about-owner')\n }}\n >\n {t('About the project owner')}\n {getGlyphAccordion('about-owner')}\n \n\n \n <>\n {isEditMode && (\n \n \n \n )}\n \n\n \n {\n const target = e.target as HTMLElement\n const anchor = target.closest('a[href]')\n\n if (anchor === null) {\n return\n }\n\n if (anchor.href.includes('?reward=')) {\n e.preventDefault()\n\n const rewardId = new URL(anchor.href).searchParams.get('reward')\n\n if (rewardId) {\n dispatch(modalAction.toggleModalReward(true))\n dispatch(modalAction.setRewardId(rewardId))\n }\n }\n }}\n />\n \n \n \n {isEditMode && creatorDescription === '' && (\n \n {\n document.location.href = `/projects/${project.id}/edit/layout/${userConfig.lang}/?description_yourself`\n }}\n mode=\"small\"\n title={{t('About the project owner')}}\n />\n \n )}\n
\n\n
\n \n
\n\n {isEditMode && !project.links ? (\n
\n \n {\n document.location.href = `/projects/${project.id}/edit/layout/${userConfig.lang}/?form-0-url`\n }}\n mode=\"small\"\n title={{t('Add social media links')}}\n />\n \n
\n ) : (\n <>{project.links && }\n )}\n
\n \n {!projectIsDonationBased ? (\n <>\n \n setAdviceModalOpen(true)} />\n \n\n \n\n \n\n \n\n \n \n ) : (\n <>\n \n\n \n setAdviceModalOpen(true)} />\n \n\n \n\n \n\n \n \n )}\n \n
\n \n \n \n
\n \n \n \n )\n}\n\nconst Article = styled.div<{ isContentSet?: boolean; open?: boolean }>`\n border-bottom: ${({ open }) => (open !== undefined && !open ? `1px solid ${COLORS.GREY_SHADE_5}` : 'none')};\n margin-bottom: 25px;\n position: relative;\n\n ${S.heading.L} {\n width: 75%;\n margin-bottom: 21px;\n }\n\n @media screen and ${BREAKPOINTS.LAPTOP} {\n border-bottom: none;\n margin-bottom: ${({ isContentSet }) => (isContentSet ? '55px' : '17px')};\n padding: 0px;\n\n ${S.heading.L} {\n width: 100%;\n margin-bottom: 35px;\n }\n }\n`\n\nconst ArticleHeading = styled.div`\n position: relative;\n\n ${glyphs.Icon} {\n color: ${COLORS.GREY_SHADE_7};\n position: absolute;\n right: 0px;\n top: 50%;\n transform: translateY(-50%);\n }\n\n ${S.heading.L} {\n font-size: 26px;\n font-weight: 500;\n }\n\n @media screen and ${BREAKPOINTS.LAPTOP} {\n ${glyphs.Icon} {\n display: none;\n }\n\n ${S.heading.L} {\n font-size: 30px;\n font-weight: 900;\n }\n }\n`\n\nconst ExplorerWrapper = styled.div`\n border-top: 1px solid ${COLORS.GREY_SHADE_5};\n\n @media screen and ${BREAKPOINTS.LAPTOP} {\n box-sizing: content-box;\n margin: 0 auto;\n max-width: 1200px;\n }\n`\n\nconst InvisibleScrollHelper = styled.span<{ $offset?: number }>`\n position: relative;\n pointer-events: none;\n\n ${({ $offset = 0 }) => {\n const value = -80 - $offset\n return css`\n top: ${value}px;\n `\n }}\n`\n", "import * as React from 'react'\nimport * as Redux from 'react-redux'\nimport styled from 'styled-components'\n\nimport { t, tn } from '@owl-nest/localize'\nimport { BREAKPOINTS, glyphs, Link, styles as S } from '@ulule/owl-kit-components/next'\nimport * as model from '@owl-nest/models'\n\nimport { Project } from '../../../../models/project'\nimport { RootState } from '../../../../../reducers'\n\ntype AboutOwnerProps = {}\n\nconst AboutOwnerWrapper = styled.div`\n align-items: center;\n display: flex;\n flex-direction: column;\n margin: 0 auto;\n margin-bottom: 23px;\n text-align: center;\n width: 305px;\n\n ${S.image.Avatar}, ${S.heading.XS} {\n cursor: pointer;\n }\n\n @media screen and ${BREAKPOINTS.LAPTOP} {\n align-items: center;\n margin: 0px;\n margin-bottom: 27px;\n flex-direction: row;\n text-align: left;\n width: auto;\n }\n`\n\nconst AboutContentWrapper = styled.div`\n ${S.copy.M} {\n margin-top: 15px;\n }\n\n @media screen and ${BREAKPOINTS.LAPTOP} {\n margin-left: 24px;\n\n ${S.copy.M} {\n margin-top: 5px;\n }\n }\n`\n\nconst City = styled(S.copy.S)`\n ${Link} {\n justify-content: center;\n\n @media screen and ${BREAKPOINTS.LAPTOP} {\n justify-content: normal;\n }\n }\n`\n\nexport function AboutOwner(): React.ReactElement {\n const project = Redux.useSelector((state) => state.application.project.data)\n const ownerSupportedCount = project.owner.stats?.supported_projects_count\n const ownerOnlineCount = project.owner.stats?.created_projects_online_count\n const ownerUrl = project.owner.absolute_url\n\n const launchedProjectsLabel =\n ownerOnlineCount === 1\n ? t('First project launched on Ulule')\n : t('%(ownerOnlineCount)s projects launched on Ulule', {\n ownerOnlineCount,\n })\n const backedProjectsLabel = tn(\n '%(ownerSupportedCount)s project backed',\n '%(ownerSupportedCount)s projects backed',\n ownerSupportedCount,\n {\n ownerSupportedCount,\n },\n )\n\n return (\n \n \n \n \n\n \n \n {model.user.username(project.owner)}\n \n\n {project.owner.location && (\n \n \n {project.owner.location}\n \n \n )}\n\n \n {launchedProjectsLabel}\n {ownerSupportedCount >= 1 && <> {` - ${backedProjectsLabel}`} }\n \n \n \n )\n}\n", "import * as React from 'react'\nimport * as Redux from 'react-redux'\nimport styled from 'styled-components'\n\nimport { t } from '@owl-nest/localize'\nimport { BREAKPOINTS, ChannelCard, glyphs, Link, styles as S, ClickableTag } from '@ulule/owl-kit-components/next'\n\nimport * as model from '@owl-nest/models'\nimport { Status } from '@owl-nest/redux-wrapper'\nimport { useAuth } from '@owl-nest/redux-wrapper/hooks'\nimport { useLazyInitialLoad } from '@owl-nest/hooks'\nimport * as env from '@owl-nest/config'\n\nimport { RootState, AppState } from '../../../../../reducers'\nimport { loadProjectChannels } from '../../../../../actions/channel'\nimport * as projectModel from '../../../../models/project'\n\ntype ExplorerProps = unknown\n\nexport function Explorer(): React.ReactElement {\n const { project: projectData, channel } = Redux.useSelector((state) => state.application)\n const dispatch = Redux.useDispatch()\n const project = projectData.data\n const mainTag = model.project.mainTag(project)\n\n const auth = useAuth()\n const isLoggedIn = auth.type === 'loggedin'\n const userConfig = env.useUserEnv()\n\n const channelsWrapperRef = React.useRef(null)\n useLazyInitialLoad({\n target: channelsWrapperRef,\n load: () => {\n if (channel.status.load === Status.PRISTINE) {\n dispatch(loadProjectChannels(project.id, { pagination: `?limit=5&lang=${userConfig.lang}`, forceClean: true }))\n }\n },\n })\n\n return (\n \n
\n {t('Discover similar projects')}\n {isLoggedIn && (\n \n \n \n {t('Flag this project')}\n \n \n )}\n
\n \n {mainTag && project.main_tag?.absolute_url && (\n }\n href={project.main_tag?.absolute_url}\n forwardedAs=\"a\"\n label={{mainTag}}\n />\n )}\n {project.tags?.map((tag, index) => (\n }\n forwardedAs=\"a\"\n href={tag.absolute_url}\n label={{model.project.tagName(tag, project)}}\n />\n ))}\n \n \n {channel.channels?.map((item, index) => {\n const isPartner = item.partner?.id\n const user = item.user\n const description = isPartner\n ? t('With the support of %(name)s', { name: user.name })\n : t('Curated by %(name)s', { name: user.name })\n return (\n \n \n \n )\n })}\n \n
\n )\n}\n\nconst ExplorerWrapper = styled.div<{ addPaddingBottom: boolean }>`\n display: flex;\n flex-direction: column;\n padding: 20px 0;\n position: relative;\n\n ${({ addPaddingBottom }) => addPaddingBottom && `padding-bottom: 60px;`}\n\n @media screen and ${BREAKPOINTS.TABLET} {\n padding: 20px;\n }\n`\n\nconst Header = styled.div`\n display: inline-flex;\n justify-content: space-between;\n align-items: baseline;\n padding: 0 20px 20px 20px;\n`\n\nconst ReportLink = styled(S.copy.S)`\n position: absolute;\n bottom: 30px;\n\n @media screen and ${BREAKPOINTS.TABLET} {\n position: static;\n }\n`\n\nconst TagWrapper = styled.div`\n display: flex;\n overflow: scroll;\n padding-left: 20px;\n\n @media screen and ${BREAKPOINTS.TABLET} {\n overflow: auto;\n }\n`\n\nconst Tag = styled(ClickableTag)`\n margin-right: 14px;\n margin-bottom: 10px;\n flex-shrink: 0;\n text-decoration: none;\n\n &:last-child {\n margin-right: 0;\n }\n\n ${glyphs.Icon} {\n margin-top: 0px;\n }\n`\n\nexport const ChannelList = styled.ul`\n display: flex;\n margin: 0;\n padding: 0;\n list-style: none;\n width: 100%;\n flex-wrap: nowrap;\n justify-content: flex-start;\n overflow: scroll;\n\n @media screen and ${BREAKPOINTS.TABLET} {\n flex-wrap: wrap;\n overflow: auto;\n margin-bottom: 40px;\n }\n`\n\nexport const ChannelItem = styled.li`\n margin: 15px 0px 20px 20px;\n\n &:last-child {\n padding-right: 20px;\n }\n`\n", "import * as React from 'react'\nimport * as Redux from 'react-redux'\nimport styled from 'styled-components'\n\nimport * as api from '@owl-nest/api-client/latest'\nimport * as dateUtils from '@owl-nest/date'\nimport { t } from '@owl-nest/localize'\n\nimport * as model from '@owl-nest/models'\nimport {\n BREAKPOINTS,\n COLORS,\n glyphs,\n illustrations,\n Pastille,\n styles as S,\n ZINDEX,\n} from '@ulule/owl-kit-components/next'\n\nimport { Project } from '../../../../models/project'\nimport { RootState } from '../../../../../reducers'\nimport { useNavigation } from '../../../../hooks/useNavigation'\nimport { PATHS } from '../../../../paths'\nimport * as projectModel from '../../../../models/project'\n\nimport * as styles from '../../style'\n\ntype NewsPushProps = {\n news: api.News\n}\n\nexport function NewsPush({ news }: NewsPushProps): React.ReactElement {\n const navigation = useNavigation()\n const project = Redux.useSelector((state) => state.application.project.data)\n const formattedDate =\n news.date_publication &&\n dateUtils.formatDistanceToNow(new Date(news.date_publication ?? news.date_creation), { addSuffix: true })\n const isUserAllowed = Boolean(news.permissions.self?.includes('read'))\n const isNewsMasked = !isUserAllowed\n\n return (\n {\n if (model.project.isFinished(project) || !isNewsMasked) navigation.to(PATHS.NEWS)\n }}\n >\n {!isNewsMasked ? (\n \n \n \n \n \n \n {formattedDate}\n {model.i18n.get(news.title)}\n \n \n {t('Read more')}\n \n ) : (\n <>\n \n \n \n \n {t('Read more')}\n \n\n \n \n \n {(news.audience_type == api.NewsAudienceType.TIP ||\n news.audience_type == api.NewsAudienceType.SUPPORTERS) && (\n {t('This post is for backers only')}\n )}\n {news.audience_type == api.NewsAudienceType.FANS && (\n {t('This post is for fans only')}\n )}\n \n {!model.project.isFinished(project) && (\n {\n if (project.is_online) {\n navigation.to(PATHS.REWARDS)\n }\n }}\n size=\"small\"\n >\n {t('Back this project')}\n \n )}\n \n \n )}\n \n )\n}\n\nconst Push = styled.div`\n align-items: flex-end;\n border: 1px solid ${COLORS.GREY_SHADE_5};\n box-sizing: border-box;\n cursor: pointer;\n display: flex;\n justify-content: center;\n margin-bottom: 53px;\n padding: 20px 20px 20px 11px;\n position: relative;\n min-height: 120px;\n transition: 0.3s ease;\n\n ${Pastille} {\n margin-right: 15px;\n }\n\n ${S.heading.Card1} {\n white-space: nowrap;\n padding-left: 15px;\n text-align: right;\n }\n\n &:hover {\n box-shadow: 2px 4px 6px 1px ${COLORS.hexToRgb(COLORS.GREY_SHADE_4, 0.5)};\n }\n\n @media screen and ${BREAKPOINTS.TABLET} {\n min-height: 90px;\n }\n`\n\nconst PushContent = styled.div`\n display: flex;\n`\n\nconst Info = styled.div`\n flex: 5;\n`\n\nconst Blurred = styled(styles.Blurred)`\n align-items: flex-end;\n justify-content: inherit;\n width: 100%;\n z-index: ${ZINDEX.ABOVE};\n\n &::before {\n box-shadow:\n 40px 0 0 ${COLORS.GREY_SHADE_5},\n 80px 0 0 ${COLORS.GREY_SHADE_5},\n 120px 0 0 ${COLORS.GREY_SHADE_5},\n 160px 0 0 ${COLORS.GREY_SHADE_5},\n 0px 40px 0 ${COLORS.GREY_SHADE_5},\n 40px 40px 0 ${COLORS.GREY_SHADE_5},\n 80px 40px 0 ${COLORS.GREY_SHADE_5},\n 120px 40px 0 ${COLORS.GREY_SHADE_5},\n 160px 40px 0 ${COLORS.GREY_SHADE_5},\n 200px 40px 0 ${COLORS.GREY_SHADE_5},\n 240px 40px 0 ${COLORS.GREY_SHADE_5},\n 260px 40px 0 ${COLORS.GREY_SHADE_5},\n 300px 40px 0 ${COLORS.GREY_SHADE_5};\n left: 80px;\n top: -9px;\n }\n\n ${S.heading.Card1} {\n flex: 1;\n text-align: right;\n }\n`\n\nconst BlurredTop = styled.div`\n align-items: center;\n bottom: 0;\n display: flex;\n flex-direction: column;\n justify-content: center;\n left: 0;\n min-height: 70px;\n padding: 0 10px;\n position: absolute;\n right: 0;\n top: 0;\n z-index: ${ZINDEX.ABOVE};\n\n @media screen and ${BREAKPOINTS.TABLET} {\n flex-direction: row;\n ${S.button.Button} {\n margin-left: 38px;\n }\n }\n\n ${glyphs.stroke.Unread} {\n color: ${COLORS.GREY_SHADE_7};\n margin-right: 10px;\n }\n`\n\nconst BlurredInfo = styled.div`\n display: flex;\n align-items: center;\n padding-bottom: 10px;\n padding-left: 20px;\n\n @media screen and ${BREAKPOINTS.TABLET} {\n padding: 0;\n }\n`\n\nconst PushWrapper = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n justify-content: space-between;\n\n @media screen and ${BREAKPOINTS.TABLET} {\n flex-direction: row;\n align-items: flex-end;\n }\n`\n", "import * as React from 'react'\nimport * as Redux from 'react-redux'\nimport styled, { css } from 'styled-components'\n\nimport { t, tc } from '@owl-nest/localize'\nimport { BREAKPOINTS, COLORS, illustrations, Link, styles as S } from '@ulule/owl-kit-components/next'\nimport * as model from '@owl-nest/models'\nimport { CATEGORY, EVENT_TYPE, useTracking } from '@owl-nest/shadow'\n\nimport * as modalAction from '../../../../../actions/modal'\nimport { DisplayMode } from '../../../../context'\nimport * as projectModel from '../../../../models/project'\nimport { RootState } from '../../../../../reducers'\nimport * as URLs from '../../../../utils/URLs'\n\nimport { TRACKING_ACTION, TRACKING_SOURCE } from '../../utils/trackerEnums'\nimport { EDIT_MODE_LAPTOP_BREAKPOINT } from '../../constants'\nimport { FooterContent } from '../../utils/Data'\n\nexport function NewToUlule(): React.ReactElement {\n const project = Redux.useSelector((state) => state.application.project.data)\n const dispatch = Redux.useDispatch()\n const isEditMode = React.useContext(DisplayMode) === 'edit'\n const tracking = useTracking()\n const projectIsDonationBased = model.project.isDonationBased(project)\n\n const columns = projectIsDonationBased ? FooterContent['donationBased'] : FooterContent['rewardBased']\n\n return (\n \n \n \n {projectIsDonationBased ? t('Fundraising on Ulule') : t('First time on Ulule?')}\n \n\n \n {columns.map((column, index) => {\n return (\n \n {column.icon}\n {column.title}\n {column.content}\n \n )\n })}\n \n {model.project.hasCheckout(project) && (\n \n {\n if (project.is_online && !model.project.isFinished(project)) {\n if (!model.project.isOrdersEnabled(project)) {\n dispatch(modalAction.toggleModalPaymentDisturbance(true))\n } else {\n tracking.track({\n event: EVENT_TYPE.GENERIC,\n eventCategory: CATEGORY.PROJECT_PAGE,\n eventAction: TRACKING_ACTION.ACCESS_CHECKOUT,\n eventLabel: TRACKING_SOURCE.FIRST_TIME_FOOTER,\n })\n document.location.href = URLs.getCheckoutURL(project.id)\n }\n } else if (project.post_campaign_link) {\n dispatch(modalAction.toggleModalPostCampaign(true))\n }\n }}\n size=\"medium\"\n >\n {projectIsDonationBased ? t('Donate') : t('Back this project')}\n \n \n )}\n\n \n \n {tc('All your questions are answered in [support: our help center].', {\n support: ,\n })}\n \n \n \n \n )\n}\n\nconst Background = styled.div<{ isEditMode: boolean }>`\n background-color: ${COLORS.PRIMARY_SAND};\n padding: 37px 10px;\n\n @media screen and (min-width: 768px) {\n padding: 24px 32px;\n }\n\n @media screen and ${({ isEditMode }) => (isEditMode ? EDIT_MODE_LAPTOP_BREAKPOINT : BREAKPOINTS.LAPTOP_L)} {\n padding: 68px 0px;\n }\n`\n\nconst Column = styled.div<{ isEditMode: boolean }>`\n margin-bottom: 38px;\n\n @media screen and (min-width: 768px) {\n width: 320px;\n }\n`\n\nconst ColumnContent = styled(S.copy.M)``\n\nconst ColumnTitle = styled(S.heading.XS)`\n margin: 15px 0;\n`\n\nconst Columns = styled.div<{ isEditMode: boolean }>`\n ${illustrations.Illustration} {\n height: 75px;\n width: auto;\n }\n\n @media screen and (min-width: 768px) {\n display: flex;\n justify-content: space-between;\n gap: 16px;\n margin-top: 55px;\n\n ${illustrations.Illustration} {\n height: inherit;\n margin-left: -10px;\n }\n }\n`\n\nconst ColumnIconWrapper = styled.div`\n margin: 0px;\n margin-bottom: 6px;\n width: 64px;\n`\n\nconst ContentWrapper = styled.div<{ isEditMode: boolean }>`\n @media screen and (min-width: 768px) {\n margin: 0 auto;\n max-width: 1200px;\n width: 100%;\n }\n`\n\nconst CTAWrapper = styled.div<{ isEditMode: boolean }>`\n display: none;\n\n @media screen and (min-width: 768px) {\n align-items: center;\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n`\n\nconst CTA = styled(S.button.CallToAction)<{ isEditMode: boolean }>`\n margin-bottom: 20px;\n\n @media screen and (min-width: 768px) {\n margin: 0 auto;\n margin-top: 34px;\n margin-bottom: 14px;\n width: 260px;\n }\n`\n\nconst StyledTitle = styled(S.heading.XL)`\n margin-bottom: 26px;\n text-align: center;\n`\n\nconst LinkWrapper = styled.div`\n text-align: center;\n margin: 0 auto;\n`\n", "import * as React from 'react'\nimport styled from 'styled-components'\nimport { Link as RouterLink } from 'react-router-dom'\n\nimport { COLORS, styles as S } from '@ulule/owl-kit-components/next'\nimport { t } from '@owl-nest/localize'\n\nimport { useNavigation } from '../../../../hooks/useNavigation'\nimport { PATHS } from '../../../../paths'\n\ntype PushRewardsMobileProps = {}\n\nconst Heading = styled.div`\n margin-bottom: 30px;\n\n ${S.heading.M} {\n margin-bottom: 13px;\n }\n`\n\nconst Content = styled.div`\n text-align: center;\n\n ${S.button.CallToAction} {\n margin-bottom: 15px;\n }\n`\n\nconst Wrapper = styled.div`\n background-color: ${COLORS.PRIMARY_SAND};\n padding: 25px 10px;\n margin-bottom: 25px;\n`\n\nexport function PushRewardsMobile(): React.ReactElement {\n const navigation = useNavigation()\n return (\n \n \n {t('Rewards')}\n {t('Back project and receive exclusive rewards.')}\n \n \n \n {t('See rewards')}\n \n {t('Or continue reading')}\n \n \n )\n}\n", "import * as React from 'react'\nimport * as Redux from 'react-redux'\nimport styled from 'styled-components'\nimport * as model from '@owl-nest/models'\n\nimport { t } from '@owl-nest/localize'\nimport { BREAKPOINTS, COLORS, styles as S } from '@ulule/owl-kit-components/next'\nimport { SocialSquare } from '../../components/SocialSquare'\n\nimport { Project } from '../../../../models/project'\nimport { RootState } from '../../../../../reducers'\n\nimport { DisplayMode } from '../../../../context'\nimport { EditButton } from '../../components/EditButton'\nimport * as projectModel from '../../../../models/project'\n\ntype SocialFollowProps = {}\n\nconst Content = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n margin-top: 18px;\n\n @media screen and ${BREAKPOINTS.TABLET} {\n display: grid;\n grid-template-columns: auto auto;\n grid-gap: 10px 30px;\n }\n`\n\nconst EditButtonWrapper = styled.div`\n position: absolute;\n right: 10px;\n top: 10px;\n`\n\nconst Item = styled.div`\n margin-bottom: 15px;\n\n @media screen and ${BREAKPOINTS.LAPTOP} {\n min-width: 220px;\n }\n`\n\nconst Wrapper = styled.div`\n background-color: ${COLORS.PRIMARY_SAND};\n margin-bottom: 25px;\n padding: 26px 10px;\n position: relative;\n\n @media screen and ${BREAKPOINTS.LAPTOP} {\n margin-bottom: 50px;\n padding: 15px 26px;\n padding-bottom: 0px;\n\n ${S.heading.M} {\n margin-bottom: 25px;\n }\n }\n`\n\nexport function SocialFollow(): React.ReactElement {\n const displayMode = React.useContext(DisplayMode)\n const project = Redux.useSelector((state) => state.application.project.data)\n const isEditMode = displayMode === 'edit'\n\n return (\n \n {t('Follow the project on')}\n \n {project.links?.map((link) => (\n \n \n {model.i18n.get(link.title)}\n \n \n ))}\n \n {isEditMode && !model.project.refused(project) && (\n \n \n \n )}\n \n )\n}\n", "import * as React from 'react'\nimport styled from 'styled-components'\n\nimport type * as api from '@owl-nest/api-client/latest'\nimport { t } from '@owl-nest/localize'\nimport * as utils from '@owl-nest/utils'\nimport * as plume from '@ulule/owl-kit-components/next'\n\ntype SocialSquareProps = Omit, 'color'> & {\n platform: api.LinkServiceType\n url: string\n}\n\nexport function SocialSquare({ children, platform, url }: SocialSquareProps): React.ReactElement {\n return (\n \n \n \n {children || utils.platform.getLabel(platform)}\n \n \n )\n}\n\nconst Anchor = styled.a`\n padding: 0px;\n text-align: left;\n text-decoration: none;\n\n &:hover {\n cursor: pointer;\n }\n\n ${plume.SquarePlatformIcon} {\n margin-right: 13px;\n }\n`\n\nconst Content = styled.span`\n display: flex;\n align-items: center;\n justify-content: flex-start;\n\n ${plume.styles.heading.XXXS} {\n word-break: break-word;\n }\n`\n", "export { Impact } from './Impact'\nexport { Supporters } from './Supporters'\nexport { Sponsors } from './Sponsors'\nexport { Rewards } from './Rewards'\n", "import * as React from 'react'\nimport * as Redux from 'react-redux'\n\nimport { Status } from '@owl-nest/redux-wrapper'\nimport { Spinner, styles as S } from '@ulule/owl-kit-components/next'\nimport * as model from '@owl-nest/models'\nimport * as env from '@owl-nest/config'\nimport { t } from '@owl-nest/localize'\nimport { useLazyInitialLoad } from '@owl-nest/hooks'\n\nimport * as impactReducer from '../../../../../../reducers/impact'\nimport * as impactAction from '../../../../../../actions/impact'\nimport { ImpactBlock } from '../../../../../components/ImpactBlock'\nimport { RootState } from '../../../../../../reducers'\nimport { EditButton } from '../../../components/EditButton'\nimport { CreateButton } from '../../../components/CreateButton'\n\nimport * as Styles from '../../../style'\nimport * as ProjectTabStyles from '../style'\n\ntype ImpactProps = {\n editMode: boolean\n}\n\nexport function Impact({ editMode }: ImpactProps): React.ReactElement {\n const dispatch = Redux.useDispatch()\n const impact = Redux.useSelector((state) => state.application.impact)\n const { projectId, projectToken } = Redux.useSelector(\n (state) => ({\n projectId: state.application.project.data.id,\n projectToken: state.application.project.token,\n }),\n )\n const userConfig = env.useUserEnv()\n\n const wrapperRef = React.useRef(null)\n useLazyInitialLoad({\n target: wrapperRef,\n load: () => {\n if (impact.status.load.status === Status.PRISTINE) {\n dispatch(impactAction.load(projectId, projectToken))\n }\n },\n })\n\n return (\n
\n {impact.status.load.status === Status.PENDING ? (\n \n ) : impact.data !== undefined && !model.impact.isEmpty(impact.data) ? (\n \n \n {editMode && (\n \n \n \n )}\n \n ) : (\n editMode && (\n \n {\n document.location.href = `/projects/${projectId}/backoffice/impact/${userConfig.lang}/`\n }}\n direction={'column'}\n mode=\"small\"\n title={\n {t('What is this project\u2019s positive impact and what are its hurdles?')}\n }\n />\n \n )\n )}\n
\n )\n}\n", "import * as React from 'react'\n\nimport * as previewable from '@owl-nest/previewable'\nimport * as model from '@owl-nest/models'\nimport * as api from '@owl-nest/api-client/latest'\n\nimport * as UFE from '../../UFE'\n\ntype ImpactBlockProps = {\n impact: model.impact.Impact\n lang?: api.Lang\n}\n\nexport function ImpactBlock({ impact, lang }: ImpactBlockProps): React.ReactElement {\n return \n}\n", "import styled from 'styled-components'\nimport * as plume from '@ulule/owl-kit-components/next'\n\nexport const EditButtonWrapper = styled.div`\n right: 5px;\n top: 0px;\n\n @media screen and ${plume.BREAKPOINTS.LAPTOP} {\n position: absolute;\n right: 0px;\n }\n`\n\nexport const CreateButtonWrapper = styled.div<{ large?: boolean }>`\n border: 1px solid ${plume.COLORS.PRIMARY_SAND};\n display: flex;\n flex-direction: row;\n height: ${({ large }) => (large ? '150px' : 'auto')};\n justify-content: ${({ large }) => (large ? 'center' : 'baseline')};\n margin-bottom: ${({ large }) => (large ? '30px' : '0px')};\n padding: 21px 18px;\n text-align: center;\n transition: 0.3s ease;\n\n &:hover {\n box-shadow: ${plume.EFFECTS.SHADOW_1};\n }\n\n @media screen and ${plume.BREAKPOINTS.LAPTOP} {\n flex-direction: ${({ large }) => (large ? 'column' : 'row')};\n }\n`\n", "import * as React from 'react'\nimport * as Redux from 'react-redux'\nimport styled from 'styled-components'\n\nimport * as models from '@owl-nest/models'\nimport { Status } from '@owl-nest/redux-wrapper'\nimport { Link as RouterLink } from 'react-router-dom'\nimport { Link, Spinner, styles as S } from '@ulule/owl-kit-components/next'\nimport { t, tn } from '@owl-nest/localize'\nimport * as service from '@owl-nest/services'\nimport * as api from '@owl-nest/api-client/latest'\nimport * as hooks from '@owl-nest/hooks'\n\nimport * as supporterReducer from '../../../../../../reducers/supporter'\nimport * as supporterAction from '../../../../../../actions/supporter'\nimport { RootState } from '../../../../../../reducers'\nimport { Backer } from './Backer'\nimport * as projectModel from '../../../../../models/project'\nimport * as supporterModel from '../../../../../models/supporter'\nimport { useNavigation } from '../../../../../hooks/useNavigation'\nimport * as UFE from '../../../../../../UFE'\n\nimport * as Styles from '../../../style'\nimport { PATHS } from '../../../../../paths'\nimport { TRACKING_SOURCE } from '../../../utils/trackerEnums'\n\nconst LinkSeeAll = styled(S.copy.S)`\n margin-top: 20px;\n`\n\nconst Wrapper = styled.div`\n &:empty {\n display: none;\n }\n`\n\nexport function Supporters(): React.ReactElement {\n const dispatch = Redux.useDispatch()\n const navigation = useNavigation()\n const supporter = Redux.useSelector((state) => state.application.supporter)\n const project = Redux.useSelector((state) => state.application.project.data)\n\n const useProjectOrder = service.order.useProjectOrders(project.id, {\n params: {\n limit: 10,\n extraFields: ['latest_user_project_comment'],\n },\n fetchOnMount: false,\n })\n const orderPageList = hooks.data(useProjectOrder.response)\n\n const supporterCount = project.supporters_count\n const ordersCount = project.orders_count\n\n const wrapperRef = React.useRef(null)\n hooks.useLazyInitialLoad({\n target: wrapperRef,\n load: () => {\n if (\n supporterCount > 0 &&\n models.project.isOnline(project) &&\n useProjectOrder.response.status === hooks.QueryStatus.PRISTINE\n ) {\n useProjectOrder.query()\n }\n },\n })\n\n return (\n \n {supporter.status.load === Status.PENDING ? (\n \n ) : (\n supporterCount > 0 && (\n \n \n \n {tn('%(ordersCount)d contribution', '%(ordersCount)s contributions', ordersCount || supporterCount, {\n ordersCount: ordersCount || supporterCount,\n })}\n \n \n {orderPageList?.[0].orders.slice(0, 5).map((order) => {\n return (\n order.user && (\n \n )\n )\n })}\n \n \n {t('See all backers')}\n \n \n \n )\n )}\n \n )\n}\n", "import * as React from 'react'\nimport styled from 'styled-components'\n\nimport * as plume from '@ulule/owl-kit-components/next'\nimport { t } from '@owl-nest/localize'\nimport * as date from '@owl-nest/date'\nimport * as api from '@owl-nest/api-client/latest'\nimport * as model from '@owl-nest/models'\n\nimport * as styles from '../../../style'\n\nimport { Supporter } from '../../../../../models/supporter'\nimport * as projectModel from '../../../../../models/project'\nimport { formatBacker } from '../../../utils/formatBacker'\nimport { TRACKING_SOURCE } from '../../../utils/trackerEnums'\nimport { DonationBasedContent, RewardBasedContent } from '../../../components/Backer'\n\ntype BackerPropTypes = {\n supporter: api.Supporter\n project: projectModel.Project\n variant?: string\n source: TRACKING_SOURCE\n}\n\nexport function Backer({ supporter, project, variant, source }: BackerPropTypes): React.ReactElement {\n const { dateOrder, labelColor, labelName } = formatBacker(supporter, project)\n\n const isOwnerComment = supporter.id === project.owner.id\n\n return (\n \n {/* Avatar */}\n \n \n \n \n {/* Name */}\n {supporter.is_anonymous ? (\n {t('Anonymous backer')}\n ) : (\n \n {model.user.fullName(supporter)}\n \n )}\n {/* Label */}\n {labelName && {labelName}}\n
\n \n \n {project.type === api.ProjectType.Donation ? (\n \n ) : (\n \n )}\n \n {/* Comments */}\n {!isOwnerComment && supporter.latest_project_comment && supporter.latest_project_comment?.is_public && (\n {supporter.latest_project_comment.comment}\n )}\n \n {/* Last contribution date */}\n {dateOrder && (\n \n {date.formatDistanceToNow(dateOrder, { includeSeconds: true })}\n \n )}\n
\n
\n )\n}\n\nconst BackerInfo = styled(styles.BackerInfo)`\n flex-wrap: nowrap;\n justify-content: space-between;\n\n @media screen and ${plume.BREAKPOINTS.MOBILE_L} {\n flex-wrap: wrap;\n justify-content: flex-start;\n align-items: center;\n\n ${plume.styles.heading.XXXXXS} {\n margin-left: auto;\n }\n }\n`\n\nconst BackerContent = styled.div`\n order: 0;\n width: 100%;\n\n ${plume.styles.copy.M} {\n ${plume.Link} {\n display: inline;\n }\n }\n\n ${plume.styles.copy.S} {\n margin-top: 10px;\n }\n\n @media screen and ${plume.BREAKPOINTS.MOBILE_L} {\n order: 1;\n }\n`\n", "import * as React from 'react'\nimport * as Redux from 'react-redux'\nimport styled from 'styled-components'\n\nimport * as api from '@owl-nest/api-client/latest'\nimport * as models from '@owl-nest/models'\n\nimport { t } from '@owl-nest/localize'\nimport { MoneyDisplayer } from '@owl-nest/money'\nimport * as plume from '@ulule/owl-kit-components/next'\n\nimport { RootState, AppState } from '../../../../../../reducers'\n\nimport { useIndice } from '../../../hooks/useIndice'\nimport { AccordionWrapper } from '../../../components/AccordionWrapper'\n\nimport * as Styles from '../../../style'\n\ntype EngineTagProps = {\n children: React.ReactElement\n type: api.SponsorshipType\n}\n\nfunction EngineTag({ type, children }: EngineTagProps): React.ReactElement {\n const tagsTypes = {\n amount: {\n icon: '\u26A1\uFE0F',\n text: '+ ',\n },\n prize_winner: {\n icon: '\uD83C\uDFC6',\n text: t('Winner'),\n },\n doubled_donations: {\n icon: '\uD83D\uDCB0',\n text: t('Matched donations'),\n },\n crush: {\n icon: '\u2764\uFE0F',\n text: t('Heartthrob'),\n },\n audience: {\n icon: '\uD83D\uDC4F',\n text: t('Crowd favorite prize'),\n },\n }\n\n return (\n <>\n \n {tagsTypes[type].icon}\n \n {tagsTypes[type].text}\n {type === 'amount' && children}\n \n )\n}\n\nexport function Sponsors(): React.ReactElement {\n const { isOpen, updateOpenIndices } = useIndice()\n const { project: projectState } = Redux.useSelector((state) => state.application)\n const project = projectState.data\n const { sponsorships } = project\n const isMobile = !window.matchMedia(plume.BREAKPOINTS.LAPTOP).matches\n const Heading = isMobile ? plume.styles.heading.S : plume.styles.heading.M\n\n sponsorships?.sort(function (sponsorA, sponsorB) {\n if (sponsorA.mode !== 'prize_winner' && sponsorB.mode == 'prize_winner') {\n return 1\n } else if (sponsorA.mode == 'prize_winner' && sponsorB.mode !== 'prize_winner') {\n return -1\n }\n return 0\n })\n\n return (\n <>\n {sponsorships && sponsorships.length > 0 && (\n \n \n {t(\"Project's partner\")}\n \n {t(\"This project benefits from the support of Ulule's partners:\")}\n \n \n {sponsorships.map((sponsorshipData, i) => {\n // We force cast the sponsorship to Sponsorship<'channel'> because\n // the sponsorship should inherits of the 'sponsorships.channel' value\n const sponsorship = sponsorshipData as unknown as api.Sponsorship<'channel'>\n return (\n \n {models.sponsorship.mode(sponsorship)}\n {\n updateOpenIndices(i.toString())\n }}\n >\n \n \n \n \n \n {sponsorship.sponsor.name}\n \n {sponsorship.type && (\n \n \n \n \n \n )}\n \n {isOpen(i.toString()) ? (\n \n ) : (\n \n )}\n \n \n \n {models.sponsorship.description(sponsorship)}\n {sponsorship.channel ? (\n \n ) : (\n \n \n {t('Learn more about %(sponsorName)s', { sponsorName: sponsorship.sponsor.name })}\n \n \n )}\n \n \n \n )\n })}\n \n )}\n \n )\n}\n\nconst SponsorHeading = styled(Styles.SidebarHeading)`\n margin-bottom: 10px;\n\n ${plume.styles.heading.M}, ${plume.styles.heading.S} {\n margin-bottom: 10px;\n }\n\n ${plume.styles.copy.M} {\n padding-bottom: 5px;\n }\n\n @media screen and ${plume.BREAKPOINTS.LAPTOP_L} {\n ${plume.styles.copy.M} {\n white-space: nowrap;\n }\n }\n`\n\nconst SponsorMode = styled(plume.styles.heading.Card1)`\n display: none;\n margin-bottom: 5px;\n\n @media screen and ${plume.BREAKPOINTS.LAPTOP} {\n display: block;\n }\n`\n\nconst SponsorContainer = styled.div`\n margin-top: 30px;\n\n ${plume.styles.heading.Card1} {\n margin-bottom: 5px;\n }\n`\n\nconst Avatar = styled.a`\n margin-right: 10px;\n\n ${plume.styles.image.Avatar} {\n width: 34px;\n height: 34px;\n }\n`\n\nconst HeaderContainer = styled.div`\n display: flex;\n\n ${plume.glyphs.Icon} {\n margin-left: auto;\n color: ${plume.COLORS.PRIMARY_SAND_500};\n margin-top: 5px;\n }\n\n @media screen and ${plume.BREAKPOINTS.LAPTOP} {\n ${plume.glyphs.Icon} {\n display: none;\n }\n }\n`\n\nconst TitleContainer = styled.div`\n margin-right: 15px;\n margin-bottom: 4px;\n`\n\nconst HeaderInfo = styled.div`\n display: flex;\n align-items: end;\n flex-direction: column;\n\n ${plume.styles.heading.XS} {\n text-decoration: none;\n line-height: 19px;\n }\n\n ${plume.Tag} {\n flex-shrink: 0;\n }\n\n @media screen and ${plume.BREAKPOINTS.LAPTOP} {\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n }\n`\n\nconst SponsorContent = styled.div`\n margin-left: 0px;\n width: 100%;\n\n @media screen and ${plume.BREAKPOINTS.LAPTOP_L} {\n margin-left: 48px;\n width: calc(100% - 48px);\n }\n`\n\nconst Description = styled(plume.styles.copy.S)`\n margin-top: 10px;\n margin-bottom: 10px;\n`\n", "import * as React from 'react'\nimport * as Redux from 'react-redux'\nimport styled from 'styled-components'\n\nimport { t } from '@owl-nest/localize'\nimport * as models from '@owl-nest/models'\nimport { glyphs, Link, styles as S } from '@ulule/owl-kit-components/next'\nimport * as env from '@owl-nest/config'\n\nimport * as projectModel from '../../../../../models/project'\nimport { RootState } from '../../../../../../reducers'\nimport { CreateButton } from '../../../components/CreateButton'\nimport * as UFE from '../../../../../../UFE'\nimport { EditButton } from '../../../components/EditButton'\n\nimport * as Styles from '../../../style'\nimport * as ProjectTabStyles from '../style'\nimport { RewardList } from './RewardList'\n\ntype RewardsProps = {\n editMode: boolean\n onAdviceClick: () => void\n}\n\nconst LargeAdviceLinkWrapper = styled(S.copy.S)`\n margin: 5px auto;\n`\n\nexport function Rewards({ editMode, onAdviceClick }: RewardsProps): React.ReactElement {\n const project = Redux.useSelector((state) => state.application.project.data)\n\n const rewardsHelperUrl = models.i18n.get(UFE.LINKS.rewardsHelper)\n const projectIsDonationBased = models.project.isDonationBased(project)\n const userConfig = env.useUserEnv()\n\n if (editMode && project.rewards === null) {\n return (\n \n {\n document.location.href = `/projects/${project.id}/backoffice/rewards/`\n }}\n direction={'column'}\n mode=\"small\"\n title={{t('Add a reward')}}\n cta={\n \n {\n if (userConfig.lang === 'fr') {\n onAdviceClick()\n } else {\n document.location.href = `${rewardsHelperUrl}`\n }\n }}\n >\n \n {t('How to create great rewards')}\n \n \n }\n />\n \n )\n }\n\n return (\n \n {!projectIsDonationBased && (\n <>\n \n {t('Rewards')}\n {t('Back project and receive exclusive rewards.')}\n \n {editMode && (\n \n \n \n )}\n \n )}\n \n \n )\n}\n", "import * as React from 'react'\nimport * as Redux from 'react-redux'\n\nimport styled from 'styled-components'\n\nimport { format, parse } from '@owl-nest/date'\nimport { t } from '@owl-nest/localize'\nimport * as models from '@owl-nest/models'\nimport { text } from '@owl-nest/utils'\nimport { COLORS, glyphs, Link, styles as S } from '@ulule/owl-kit-components/next'\n\nimport * as projectModel from '../../../../../models/project'\nimport { RootState } from '../../../../../../reducers'\nimport * as modalReducer from '../../../../../../reducers/modals/rewardModal'\nimport { useReward } from '../../../hooks/useReward'\n\nimport { DonationBlock } from '../../../components/DonationBlock'\n\nimport { TRACKING_SOURCE } from '../../../utils/trackerEnums'\nimport * as UFE from '../../../../../../UFE'\nimport { ShippingInfo } from './ShippingInfo'\nimport { BaseReward } from '../../../components/Rewards/BaseReward'\n\ntype RewardsProps = unknown\n\nexport function RewardList(): React.ReactElement {\n const project = Redux.useSelector((state) => state.application.project.data)\n const modal = Redux.useSelector((state) => state.application.rewardModal)\n const { handleClick } = useReward()\n\n const { rewards } = project\n\n const projectHasEnded = models.project.isFinished(project)\n const projectIsDonationBased = models.project.isDonationBased(project)\n\n const deliveryDate = project.shippings.date_delivery\n const deliveryHelperUrl = models.i18n.get(UFE.LINKS.deliveryHelper)\n\n const featuredReward = getFeaturedReward()\n const sharedRewardId = modal.rewardId\n\n const availableRewards = React.useMemo(\n () =>\n rewards\n ?.filter((reward) => {\n if (!reward.available) {\n return false\n }\n\n if (reward.is_featured) {\n return false\n }\n\n if (reward.is_hidden) {\n return reward.id === Number(sharedRewardId)\n }\n\n return !reward.is_hidden\n })\n .sort((a, b) => {\n if (a.position && b.position) {\n return a.position - b.position\n }\n\n return (a.price ?? 0) - (b.price ?? 0)\n }),\n [rewards],\n )\n\n const soldOutRewards = rewards?.filter((reward) => {\n return !reward.available && !reward.is_hidden\n })\n\n return (\n <>\n {featuredReward && !projectIsDonationBased && (\n \n \n handleClick(id, {\n optionValuesIds,\n trackingExtraData: { source: TRACKING_SOURCE.PROJECT },\n })\n }\n reward={featuredReward}\n trackView\n disabled={!models.project.isOnline(project)}\n />\n {t('All available rewards')}\n \n )}\n\n \n {!projectIsDonationBased &&\n availableRewards?.map((rawReward, index) => {\n const reward = models.reward.Reward(rawReward, project)\n\n return (\n \n handleClick(id, {\n optionValuesIds,\n trackingExtraData: { source: TRACKING_SOURCE.PROJECT },\n })\n }\n reward={reward}\n trackView\n />\n )\n })}\n\n {!projectHasEnded && }\n\n {!projectIsDonationBased &&\n soldOutRewards?.map((rawReward, index) => {\n const reward = models.reward.Reward(rawReward, project)\n\n return (\n \n handleClick(id, {\n optionValuesIds,\n trackingExtraData: { source: TRACKING_SOURCE.PROJECT },\n })\n }\n reward={reward}\n trackView\n />\n )\n })}\n \n\n {!projectIsDonationBased && (\n \n {deliveryDate && (\n <>\n \n \n \n {t('Estimated delivery date')}\n \n\n \n {t('As of %(date)s', {\n date: text.capitalize(format(parse(deliveryDate, 'yyyy-MM', new Date()), 'MMMM yyyy')),\n })}\n \n \n \n \n )}\n\n \n \n {t('Learn more about rewards and delivery')}\n \n \n \n )}\n \n )\n\n function getFeaturedReward(): models.reward.Reward | undefined {\n const featured = rewards?.find((reward) => {\n return reward.is_featured && reward.available\n })\n\n if (featured !== undefined) {\n return models.reward.Reward(featured, project)\n }\n }\n}\n\nconst LearnMore = styled(S.copy.S)``\n\nconst RewardListWrapper = styled.div`\n display: grid;\n grid-template-columns: 1fr;\n grid-row-gap: 16px;\n`\n\nconst FeaturedRewardWrapper = styled.div`\n ${S.heading.XXXXS} {\n margin: 32px 0 20px;\n display: flex;\n justify-content: center;\n }\n`\n\nconst ShippingDetails = styled.div`\n margin-top: 26px;\n\n ${S.heading.XXXS}, ${S.copy.S} {\n padding-left: 30px;\n }\n\n ${S.copy.XS} {\n margin-top: 15px;\n padding-left: 30px;\n }\n`\n\nconst ShippingDetailsTitle = styled.div`\n align-items: center;\n display: flex;\n\n ${S.heading.XXXXXS} {\n margin-left: 10px;\n }\n\n svg {\n color: ${COLORS.GREY_SHADE_7};\n }\n`\n\nconst ShippingDetailsWrapper = styled.div`\n ${LearnMore} {\n margin-top: 20px;\n }\n`\n", "import * as React from 'react'\nimport styled from 'styled-components'\n\nimport * as plume from '@ulule/owl-kit-components/next'\nimport { t } from '@owl-nest/localize'\n\nimport * as projectModel from '../../../../../models/project'\nimport { Shippings } from '../../../components/sidebar/Shipping'\nimport { useShippingInfo } from '../../../hooks/useShippingInfo'\n\ntype ShippingInfoProps = {\n project: projectModel.Project\n className?: string\n}\n\nexport function ShippingInfo({ project, className }: ShippingInfoProps): React.ReactElement {\n const shippingType = project.shippings.shipping_type\n\n if (shippingType !== 'physical-delivery') return <>\n\n const { supportedCountries, selectedCountry, setSelectedCountry, shippingZone, rewardsHaveCustomDeliveries } =\n useShippingInfo(project)\n\n return (\n <>\n \n \n \n\n {t('Shipping methods')}\n \n\n {supportedCountries.length > 1 ? (\n 12}\n filterPlaceholder={t('Search')}\n onChange={(selected) => {\n setSelectedCountry(selected[0].value)\n }}\n >\n {supportedCountries.map(({ label, code }) => {\n return \n })}\n \n ) : (\n <>\n {supportedCountries.length > 0 && (\n {`${supportedCountries[0].label} ${t('only')}`}\n )}\n \n )}\n\n {shippingZone && (\n \n {(shippingZone.mondial_relay_delivery || shippingZone.home_delivery || shippingZone.pickup_points) && (\n \n )}\n\n {rewardsHaveCustomDeliveries && (\n \n {t(\n 'Warning, rewards can have specifics delivery settings, costs and countries of delivery can then differ.',\n )}\n \n )}\n \n )}\n \n \n )\n}\n\nconst ShippingDetails = styled.div`\n margin-top: 26px;\n\n ${plume.styles.copy.XS} {\n margin-top: 15px;\n margin-left: 16px;\n }\n\n ${plume.SelectField} {\n flex-direction: row;\n justify-content: space-between;\n\n ${plume.Select} {\n z-index: 3;\n position: relative;\n width: 200px;\n }\n }\n\n ${plume.styles.copy.M} {\n font-weight: 600; /* HACK: Irregular font manipulation. We'll be adding copy.M.semiBold, so this is just by anticipation. */\n margin-left: 16px;\n }\n`\n\nconst ShippingDetailsTitle = styled.div`\n margin-bottom: 15px;\n align-items: center;\n display: flex;\n\n ${plume.styles.heading.XXXXXS} {\n margin-left: 10px;\n }\n\n svg {\n color: ${plume.COLORS.GREY_SHADE_7};\n }\n`\n\nconst ShippingCosts = styled.div`\n margin-top: 8px;\n`\n"], "mappings": "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", "names": ["init_define_process_env", "init_sentry_release_injection_stub", "React", "init_define_process_env", "init_sentry_release_injection_stub", "React", "_a", "AboutOwnerWrapper", "src_default", "__template", "styles_exports", "breakpoints_exports", "_b", "AboutContentWrapper", "_c", "City", "Link", "AboutOwner", "project", "useSelector", "state", "ownerSupportedCount", "ownerOnlineCount", "ownerUrl", "launchedProjectsLabel", "backedProjectsLabel", "user_exports", "glyphs_exports", "init_define_process_env", "init_sentry_release_injection_stub", "React", "Explorer", "_a", "_b", "_c", "_d", "projectData", "channel", "useSelector", "state", "dispatch", "useDispatch", "project", "mainTag", "project_exports", "isLoggedIn", "useAuth", "userConfig", "useUserEnv", "channelsWrapperRef", "useLazyInitialLoad", "loadProjectChannels", "ExplorerWrapper", "Header", "styles_exports", "ReportLink", "Link", "glyphs_exports", "TagWrapper", "Tag", "tag", "index", "ChannelList", "item", "isPartner", "user", "description", "ChannelItem", "ChannelCard", "user_exports", "channel_exports", "src_default", "__template", "addPaddingBottom", "breakpoints_exports", "_e", "ClickableTag", "_f", "_g", "init_define_process_env", "init_sentry_release_injection_stub", "React", "NewsPush", "news", "_a", "_b", "navigation", "useNavigation", "project", "useSelector", "state", "formattedDate", "formatDistanceToNow", "isNewsMasked", "Push", "project_exports", "PATHS", "Blurred", "Pastille", "colors_exports", "illustrations_exports", "styles_exports", "BlurredTop", "BlurredInfo", "glyphs_exports", "PushWrapper", "PushContent", "Info", "i18n_exports", "src_default", "__template", "breakpoints_exports", "_c", "_d", "zindex_exports", "_e", "_f", "_g", "init_define_process_env", "init_sentry_release_injection_stub", "React", "NewToUlule", "project", "useSelector", "state", "dispatch", "useDispatch", "isEditMode", "DisplayMode", "tracking", "useTracking", "projectIsDonationBased", "project_exports", "columns", "FooterContent", "Background", "ContentWrapper", "StyledTitle", "Columns", "column", "index", "Column", "ColumnIconWrapper", "ColumnTitle", "ColumnContent", "CTAWrapper", "CTA", "getCheckoutURL", "toggleModalPaymentDisturbance", "toggleModalPostCampaign", "LinkWrapper", "styles_exports", "Link", "_a", "src_default", "__template", "colors_exports", "EDIT_MODE_LAPTOP_BREAKPOINT", "breakpoints_exports", "_b", "_c", "_d", "_e", "illustrations_exports", "_f", "_g", "_h", "_i", "_j", "_k", "init_define_process_env", "init_sentry_release_injection_stub", "React", "_a", "Heading", "src_default", "__template", "styles_exports", "_b", "Content", "_c", "Wrapper", "colors_exports", "PushRewardsMobile", "navigation", "useNavigation", "Link", "PATHS", "init_define_process_env", "init_sentry_release_injection_stub", "React", "init_define_process_env", "init_sentry_release_injection_stub", "React", "SocialSquare", "children", "platform", "url", "Anchor", "Content", "SquarePlatformIcon", "styles_exports", "platform_exports", "_a", "src_default", "__template", "_b", "_a", "Content", "src_default", "__template", "breakpoints_exports", "_b", "EditButtonWrapper", "_c", "Item", "_d", "Wrapper", "colors_exports", "styles_exports", "SocialFollow", "displayMode", "DisplayMode", "project", "useSelector", "state", "isEditMode", "link", "SocialSquare", "i18n_exports", "project_exports", "EditButton", "init_define_process_env", "init_sentry_release_injection_stub", "init_define_process_env", "init_sentry_release_injection_stub", "React", "init_define_process_env", "init_sentry_release_injection_stub", "React", "ImpactBlock", "impact", "lang", "LINKS", "init_define_process_env", "init_sentry_release_injection_stub", "_a", "EditButtonWrapper", "src_default", "__template", "breakpoints_exports", "_b", "CreateButtonWrapper", "colors_exports", "large", "effects_exports", "Impact", "editMode", "dispatch", "useDispatch", "impact", "useSelector", "state", "projectId", "projectToken", "userConfig", "useUserEnv", "wrapperRef", "useLazyInitialLoad", "load", "Spinner", "impact_exports", "SidebarItem", "ImpactBlock", "EditButtonWrapper", "EditButton", "CreateButtonWrapper", "CreateButton", "styles_exports", "init_define_process_env", "init_sentry_release_injection_stub", "React", "init_define_process_env", "init_sentry_release_injection_stub", "React", "Backer", "supporter", "project", "variant", "source", "_a", "dateOrder", "labelColor", "labelName", "formatBacker", "isOwnerComment", "BackerContainer", "Avatar", "styles_exports", "user_exports", "BackerInfo", "RoleTag", "BackerContent", "DonationBasedContent", "RewardBasedContent", "BackerCommentWrapper", "formatDistanceToNow", "src_default", "__template", "breakpoints_exports", "_b", "Link", "_a", "LinkSeeAll", "src_default", "styles_exports", "__template", "_b", "Wrapper", "Supporters", "dispatch", "useDispatch", "navigation", "useNavigation", "supporter", "useSelector", "state", "project", "useProjectOrder", "order_exports", "orderPageList", "data", "supporterCount", "ordersCount", "wrapperRef", "useLazyInitialLoad", "project_exports", "Spinner", "SidebarItem", "SidebarHeading", "order", "Backer", "__spreadProps", "__spreadValues", "Link", "PATHS", "init_define_process_env", "init_sentry_release_injection_stub", "React", "EngineTag", "type", "children", "tagsTypes", "Sponsors", "isOpen", "updateOpenIndices", "useIndice", "projectState", "useSelector", "state", "project", "sponsorships", "Heading", "breakpoints_exports", "styles_exports", "sponsorA", "sponsorB", "SidebarItem", "SponsorHeading", "sponsorshipData", "i", "_a", "sponsorship", "SponsorContainer", "SponsorMode", "sponsorship_exports", "HeaderContainer", "Avatar", "HeaderInfo", "TitleContainer", "Tag", "MoneyDisplayer", "glyphs_exports", "AccordionWrapper", "SponsorContent", "Description", "ChannelCard", "user_exports", "channel_exports", "Link", "src_default", "SidebarHeading", "__template", "_b", "_c", "_d", "_e", "colors_exports", "_f", "_g", "_h", "_i", "init_define_process_env", "init_sentry_release_injection_stub", "React", "init_define_process_env", "init_sentry_release_injection_stub", "React", "init_define_process_env", "init_sentry_release_injection_stub", "React", "ShippingInfo", "project", "className", "supportedCountries", "selectedCountry", "setSelectedCountry", "shippingZone", "rewardsHaveCustomDeliveries", "useShippingInfo", "ShippingDetails", "ShippingDetailsTitle", "glyphs_exports", "styles_exports", "SelectField", "selected", "label", "code", "Option", "ShippingCosts", "Shippings", "_a", "src_default", "__template", "Select", "_b", "colors_exports", "_c", "RewardList", "project", "useSelector", "state", "modal", "handleClick", "useReward", "rewards", "projectHasEnded", "project_exports", "projectIsDonationBased", "deliveryDate", "deliveryHelperUrl", "i18n_exports", "LINKS", "featuredReward", "getFeaturedReward", "sharedRewardId", "availableRewards", "reward", "a", "b", "_a", "_b", "soldOutRewards", "FeaturedRewardWrapper", "BaseReward", "id", "optionValuesIds", "styles_exports", "RewardListWrapper", "rawReward", "index", "reward_exports", "DonationBlock", "ShippingDetailsWrapper", "ShippingDetails", "ShippingDetailsTitle", "glyphs_exports", "text_exports", "format", "ShippingInfo", "LearnMore", "Link", "featured", "src_default", "__template", "_c", "_d", "_e", "colors_exports", "_f", "_a", "LargeAdviceLinkWrapper", "src_default", "styles_exports", "__template", "Rewards", "editMode", "onAdviceClick", "project", "useSelector", "state", "rewardsHelperUrl", "i18n_exports", "LINKS", "projectIsDonationBased", "project_exports", "userConfig", "useUserEnv", "CreateButtonWrapper", "CreateButton", "Link", "glyphs_exports", "SidebarItem", "SidebarHeading", "EditButtonWrapper", "EditButton", "RewardList", "ProjectTab", "_a", "dispatch", "useDispatch", "project", "useSelector", "state", "latestNews", "displayMode", "DisplayMode", "isAdviceModalOpen", "setAdviceModalOpen", "isEditMode", "project_exports", "fundingDescription", "creatorDescription", "projectIsDonationBased", "userConfig", "useUserEnv", "scrollTo", "useAtomValue", "SCROLL_TO_ATOM", "aboutOwnerRef", "isOpen", "updateOpenIndices", "useIndice", "getGlyphAccordion", "index", "glyphs_exports", "news", "dateNews", "dateEndProject", "Main", "Wrapper", "Content", "NewsPush", "Article", "ArticleHeading", "styles_exports", "EditButtonWrapper", "EditButton", "media_exports", "WysiwygContent", "e", "anchor", "rewardId", "toggleModalReward", "setRewardId", "OnlyMobileShow", "PushRewardsMobile", "CreateButtonWrapper", "CreateButton", "AccordionWrapper", "InvisibleScrollHelper", "AboutOwner", "ProjectFaq", "SocialFollow", "Sidebar", "Supporters", "OnlyDesktopShow", "Rewards", "Impact", "Sponsors", "ExplorerWrapper", "Explorer", "NewToUlule", "AdviceModal", "src_default", "__template", "open", "colors_exports", "breakpoints_exports", "isContentSet", "_b", "_c", "_d", "_e", "$offset", "value", "css"] }