{"version":3,"file":"modern.channels.Dmo2cry7.js","names":["React","PropTypes","styled","colors","Icon","jsx","_jsx","jsxs","_jsxs","VideoLoaderPlayIcon","VideoLoaderWrapper","VideoLoaderButton","VideoLoaderThumbnail","VideoWrapper","Video","setParam","videoHtml","param","value","paramAlreadySet","RegExp","hasQueryParams","srcAttribute","test","url","match","lastCharacter","charAt","length","replace","setParams","params","useEnterView","onEnterView","threshold","ref","useRef","useEffect","observer","window","IntersectionObserver","entries","hasEnteredView","some","entry","intersectionRatio","current","observe","VideoLoader","className","placeholder","autoplay","srcSet","videoLoaded","setVideoLoaded","useState","video","mute","Fragment","children","onClick","event","preventDefault","size","glyph","src","dangerouslySetInnerHTML","__html","propTypes","string","isRequired","bool","displayName","PropTypes","ActionTypes.GET_CHANNEL_REQUEST","ActionTypes.GET_CHANNEL_SUCCESS","ActionTypes.GET_CHANNEL_FAILURE","ActionTypes.SUBSCRIBE_DETAIL_CHANNEL_REQUEST","ActionTypes.SUBSCRIBE_DETAIL_CHANNEL_SUCCESS","ActionTypes.SUBSCRIBE_DETAIL_CHANNEL_FAILURE","ActionTypes.CLOSE_MODALS","ActionTypes.OPEN_NO_AUTH","ActionTypes.GET_CHANNELS_SUCCESS","ActionTypes.GET_CHANNELS_REQUEST","ActionTypes.GET_CHANNELS_FAILURE","ActionTypes.SUBSCRIBE_CHANNEL_REQUEST","ActionTypes.SUBSCRIBE_CHANNEL_SUCCESS","ActionTypes.SUBSCRIBE_CHANNEL_FAILURE","config","PropTypes","cookie.get","text.numberToLocaleString","PropTypes","styled","css","plume","COLORS","Title1","rem","CardWrapper","props","theme","isVertical","colors","primary","MediaWrapper","OutlineButton","ButtonAsLink","attrs","kind","OutlineButtonVertical","Text","TextWrapper","plume.ButtonAsLink","Text","React","PropTypes","YakThemeProvider","Title1","VideoLoader","S","jsx","_jsx","jsxs","_jsxs","DEFAULT_TRACKER","element","Fragment","props","EMPTY_THEME","ThemedCard","ctaLabel","ctaLink","image","isVertical","text","theme","title","tracker","videoHtml","customizedTheme","CtaComponent","OutlineButtonVertical","OutlineButton","Tracker","trackerProps","children","CardWrapper","MediaWrapper","placeholder","alt","src","TextWrapper","Text","href","target","rel","propTypes","string","bool","shape","elementType","EMPTY_THEME","S.OutlineButtonVertical","S.OutlineButton","S.CardWrapper","S.MediaWrapper","S.TextWrapper","S.Text","PropTypes","styled","css","CallToAction","COLORS","FONTS","RegularText","SecondaryLink","Title1","Title2","Title5","rem","DEFAULT_GRID_BASIS","LARGE_GRID_BASIS","HEIGHT_SHIFT","SPACING","ChannelPageCover","props","theme","colors","accent","primary","background","ChannelPageHeader","ChannelPageTitleContainer","layout","isLarge","ChannelPageLogo","ChannelPageTitle","ChannelPageCuratedProjects","ChannelPageCuratedProjectsFooter","ChannelPageEditorialContent","listMode","ChannelPageFullWidthSection","ChannelSubButton","ChannelPageGutteredSection","raised","ChannelPageRightAside","ChannelPageFeaturedContent","ChannelPageFeaturedSection","ChannelPageCuratedProjectList","ChannelPageCuratedProjectsTitle","ChannelPageEditorialContentItem","ChannelPageEditorialContentList","itemCount","ChannelPageOwnerCardTitle","ChannelPageOwnerCard","ChannelPageOwnerCardDescription","ChannelPageOwnerCardImage","ChannelPagePartnerCard","ChannelPagePartnerCardCTA","PRIMARY_BLUE_500","ChannelPageTaggedProjects","ChannelPageTaggedProjectsFooter","ChannelPageTaggedProjectsHeader","ChannelPageTaggedProjectList","ChannelPageTaggedProjectsNoResults","ChannelPageTaggedProjectsNoResultsText","ChannelPageTaggedProjectsResetFilters","ChannelPageUserCard","ChannelPageUserCardLabel","ChannelPageUserCardName","ChannelPageUserCardProfileLink","ChannelHeader","ChannelContainer","ChannelTitle","ChannelSubtitle","ChannelWrapper","ChannelList","ChannelItem","ChannelCTAWrapper","ChannelTvBoxWrapper","ChannelTvBoxContainer","ChannelTvBoxImgWrapper","ChannelTvBoxImg","ChannelTvBoxContent","ChannelTvBoxTitle","ChannelTvBoxText","ChannelTvBoxCTAWrapper","ChannelTvBoxCTA","ChannelSubButton","ChannelList","EMPTY_EDITORIAL_CONTENT","EMPTY_THEME","S.ChannelPageEditorialContent","S.ChannelPageEditorialContentItem","S.ChannelPageEditorialContentList","PropTypes","CURRENCY_RATES","REMIND_ME_IMAGE","EMPTY_RESULTS","S.ChannelPageTaggedProjectsHeader","S.ChannelPageTaggedProjectsNoResults","S.ChannelPageTaggedProjectsNoResultsText","S.ChannelPageTaggedProjectsResetFilters","S.ChannelPageTaggedProjectList","ProjectList","S.ChannelPageTaggedProjectsFooter","PropTypes","React","styled","PropTypes","t","plume","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","InactiveHeart","glyphs","stroke","Heart","ActiveHeart","fill","Label","ChannelSubButton","isActive","onClick","subscribe","unsubscribe","subscribed","ActionButton","active","contents","inactive","children","inactiveHover","activeHover","propTypes","bool","isRequired","func","plume.glyphs.stroke.Heart","plume.glyphs.fill.Heart","plume.ActionButton","_Fragment","PropTypes","CURRENCY_RATES","REMIND_ME_IMAGE","URLS","EMPTY_EDITORIAL_CONTENT","EMPTY_THEME","NOOP","S.ChannelPageTaggedProjects","TaggedProjectList","S.ChannelPageCuratedProjects","S.ChannelPageCuratedProjectsTitle","S.ChannelPageCuratedProjectList","ProjectList","S.ChannelPageCuratedProjectsFooter","_Fragment","S.ChannelPageGutteredSection","S.ChannelSubButton","S.ChannelPageFeaturedSection","S.ChannelPageFeaturedContent","S.ChannelPageRightAside","S.ChannelPageOwnerCard","S.ChannelPagePartnerCard","S.ChannelPageOwnerCardTitle","S.ChannelPageOwnerCardImage","S.ChannelPageOwnerCardDescription","S.ChannelPagePartnerCardCTA","S.ChannelPageFullWidthSection","PropTypes","mapStateToProps","mapDispatchToProps","CURRENCY_RATES","REMIND_ME_IMAGE","S.ChannelPageCuratedProjects","S.ChannelPageCuratedProjectsTitle","S.ChannelPageCuratedProjectList","ProjectList","S.ChannelPageCuratedProjectsFooter","PropTypes","_Fragment","S.ChannelPageGutteredSection","S.ChannelSubButton","S.ChannelPageFeaturedSection","S.ChannelPageFeaturedContent","S.ChannelPageRightAside","S.ChannelPageOwnerCard","S.ChannelPageUserCard","S.ChannelPageOwnerCardTitle","S.ChannelPageUserCardLabel","S.ChannelPageUserCardProfileLink","S.ChannelPageUserCardName","S.ChannelPageOwnerCardDescription","S.ChannelPagePartnerCardCTA","CuratedProjectList","S.ChannelPageFullWidthSection","S.ChannelPageTaggedProjects","TaggedProjectList","PropTypes","React","PropTypes","styled","t","tc","plume","jsx","_jsx","jsxs","_jsxs","ModalChannelNoAuth","open","onClose","ModalWithIcon","closable","icon","illustrations","twoToned","EnvelopeWithHeart","size","noBackground","svgScale","children","Title","Text","login","Link","href","window","UFE","urls","signin","location","tinted","signup","br","propTypes","bool","isRequired","func","styles","heading","XXS","copy","S","regular","ModalWithIcon","plume.illustrations.twoToned.EnvelopeWithHeart","Title","Text","plume.Link","PropTypes","plume.ModalWithIcon","plume.styles.heading.XXS","React","PropTypes","styled","t","plume","jsx","_jsx","jsxs","_jsxs","ModalChannelSuccess","open","onClose","ModalWithIcon","closable","icon","illustrations","twoToned","EnvelopeWithHeart","size","noBackground","svgScale","buttons","type","props","onClick","children","Title","Text","propTypes","bool","isRequired","func","styles","heading","XXS","copy","S","regular","plume.illustrations.twoToned.EnvelopeWithHeart","PropTypes","plume.ModalWithIcon","plume.styles.heading.XXS","React","PropTypes","connect","YakThemeProvider","COLORS","getResourceUrl","projectShape","userShape","editorialContentShape","PartnerChannelView","UserChannelView","S","UserSettingsContext","subscribeChannel","openNoAuth","closeModals","ModalChannelNoAuth","ModalChannelSuccess","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SEARCH_DATA","window","CHANNEL_PAGE_SEARCH_DATA","EMPTY_CHANNEL","ChannelPage","channel","showFirstTime","showNoAuth","accent_color","accentColor","background","bg_color","bgColor","cta_description","ctaLabel","cta_url","ctaUrl","description","featured_project","featuredProject","id","is_subscribed","isSubscribed","links","name","partner","channelPartner","selection_first","isSelectionFirst","slug","title","user","channelOwner","initialSearchSettings","taggedProjects","filters","channels","statuses","ignoreQueryParams","sorting","curatedProjects","theme","colors","accent","primary","PRIMARY_BLUE_500","layout","isLarge","titleImage","context","useContext","isAuth","currentUser","is_authenticated","handleSubscription","children","open","onClose","ChannelPageHeader","ChannelPageCover","ChannelPageTitleContainer","ChannelPageLogo","alt","src","ChannelPageTitle","channelDescription","channelName","channelSlug","channelOwnerProfileURL","absolute_url","editorialContent","partnerLogo","logo","partnerName","partnerOwnerId","user_id","partnerSlug","taggedProjectsData","tagged_projects","Boolean","propTypes","shape","string","versions","full","height","number","url","width","oneOfType","boolean","arrayOf","isRequired","value","mapStateToProps","state","detail","error","isLoading","mapDispatchToProps","dispatch","_Fragment","S.ChannelPageHeader","S.ChannelPageCover","S.ChannelPageTitleContainer","S.ChannelPageLogo","S.ChannelPageTitle","PartnerChannelView","UserChannelView","PropTypes","mapStateToProps","mapDispatchToProps","S.ChannelTvBoxWrapper","S.ChannelTvBoxContainer","S.ChannelTvBoxImgWrapper","S.ChannelTvBoxImg","S.ChannelTvBoxContent","S.ChannelTvBoxTitle","S.ChannelTvBoxText","S.ChannelTvBoxCTAWrapper","S.ChannelTvBoxCTA","PropTypes","ChannelList","S.ChannelList","S.ChannelItem","PropTypes","_Fragment","S.ChannelHeader","S.ChannelContainer","S.ChannelTitle","S.ChannelSubtitle","S.ChannelWrapper","Channels","S.ChannelCTAWrapper","PropTypes","config","ChannelList","ChannelDetail","PropTypes","Provider","Router","ChannelRouter","require_react","__toESM","__yak_header","Heart","__yak_footer","S","tn","__yak_li","YakThemeProvider","__yak_a","t","__yak_ul","__yak_span","styled","__yak_h1","css","__yak_div","_defineProperty","tc","__yak_aside","__yak_img","require_client","Heart$1","EnvelopeWithHeart","XXS","ChannelCard","Link","ActionButton","CardTypeSelector","ButtonAsLink","numberToLocaleString","ModalWithIcon$2","api","getDefaultLanguage","updateUserRole","get","getCurrentLanguage","set","saveAction","config_default","require_prop_types","SecondaryLink","RegularText","Icon","LoadMoreButton","CallToAction","ModalProjectNoAuth","ModalProjectRemindMe","ProjectsList","Title5","Title2","Title1","Avatar","DropdownFilter","SortingBar","Tag","getResourceUrl","getResourceWithLanguage","rem","userShape","projectShape","dataUTMPageContextShape","Routes","Route","BrowserRouter","getShortCountdown","getLabel","getFinishTrad","getProgress","getFullName","getComingSoonLabel","withProjectResults","connect","Provider_default","createStore","applyMiddleware","combineReducers","thunk","callAPIMiddleware","listPartnerProjects","partners","SponsorshipTracker","import_react","import_prop_types","import_jsx_runtime","require_jsx_runtime","VideoLoaderPlayIcon","VideoLoaderWrapper","VideoLoaderButton","VideoLoaderThumbnail","VideoWrapper","Video","setParam","paramAlreadySet","param","hasQueryParams","srcAttribute","videoHtml","url","lastCharacter","value","setParams","params","useEnterView","ref","observer","entries","entry","threshold","onEnterView","VideoLoader","videoLoaded","setVideoLoaded","video","autoplay","event","placeholder","import_client","GET_CHANNEL_REQUEST","GET_CHANNEL_SUCCESS","GET_CHANNEL_FAILURE","GET_CHANNELS_REQUEST","GET_CHANNELS_SUCCESS","GET_CHANNELS_FAILURE","SUBSCRIBE_CHANNEL_REQUEST","SUBSCRIBE_CHANNEL_SUCCESS","SUBSCRIBE_CHANNEL_FAILURE","SUBSCRIBE_DETAIL_CHANNEL_REQUEST","SUBSCRIBE_DETAIL_CHANNEL_SUCCESS","SUBSCRIBE_DETAIL_CHANNEL_FAILURE","CLOSE_MODALS","OPEN_NO_AUTH","getChannels","limit","lang","country","extraFields","isAuthenticated","next","openNoAuth","closeModals","subscribeChannel","detailPage","postRes","id","isSubscribed","initialState","channels","action","state","channel","error","response","meta","reducers","store_default","editorialContentShape","USER_ROLE_STATUS","LOCALSTORAGE_NAMESPACE","COOKIE_MODAL_NAMESPACE","getRelatedUserRole","userRole","BigProjectCard","props","status","hasCookie","project","isOpen","newStatus","apiAction","postAction","endDate","extraTime","isFinished","projectStatus","isOnline","countdownText","prevState","progress","isProjectFinished","textFinishProject","dataUTMPageContext","CardWrapper","\"style\"","MediaWrapper","OutlineButton","OutlineButtonVertical","Text$2","TextWrapper","DEFAULT_TRACKER","EMPTY_THEME$3","ThemedCard","customizedTheme","theme","CtaComponent","isVertical","Tracker","trackerProps","tracker","image","title","text","ctaLabel","ctaLink","DEFAULT_GRID_BASIS","LARGE_GRID_BASIS","SPACING","ChannelPageCover","ChannelPageHeader","ChannelPageTitleContainer","ChannelPageLogo","ChannelPageTitle","ChannelPageCuratedProjects","ChannelPageCuratedProjectsFooter","ChannelPageEditorialContent","ChannelPageFullWidthSection","ChannelSubButton$1","ChannelPageGutteredSection","ChannelPageRightAside","ChannelPageFeaturedContent","ChannelPageFeaturedSection","ChannelPageCuratedProjectList","ChannelPageCuratedProjectsTitle","ChannelPageEditorialContentItem","ChannelPageEditorialContentList","ChannelPageOwnerCardTitle","ChannelPageOwnerCard","ChannelPageOwnerCardDescription","ChannelPageOwnerCardImage","ChannelPagePartnerCard","ChannelPagePartnerCardCTA","ChannelPageTaggedProjects","ChannelPageTaggedProjectsFooter","ChannelPageTaggedProjectsHeader","ChannelPageTaggedProjectList","ChannelPageTaggedProjectsNoResults","ChannelPageTaggedProjectsNoResultsText","ChannelPageTaggedProjectsResetFilters","ChannelPageUserCard","ChannelPageUserCardLabel","ChannelPageUserCardName","ChannelPageUserCardProfileLink","ChannelHeader","ChannelContainer","ChannelTitle","ChannelSubtitle","ChannelWrapper","ChannelList$2","ChannelItem","ChannelCTAWrapper","ChannelTvBoxWrapper","ChannelTvBoxContainer","ChannelTvBoxImgWrapper","ChannelTvBoxImg","ChannelTvBoxContent","ChannelTvBoxTitle","ChannelTvBoxText","ChannelTvBoxCTAWrapper","ChannelTvBoxCTA","EMPTY_EDITORIAL_CONTENT$2","EMPTY_THEME$2","getProperties","content","EditorialContent","editorialContent","partnerOwnerId","partnerSlug","channelSlug","nodes","index","CURRENCY_RATES$3","NO_RESULTS_IMAGE","REMIND_ME_IMAGE$3","EMPTY_FILTERS","EMPTY_RESULTS$1","TaggedProjectList","noProjectWithInitialParams","projectCount","channelName","updateSorting","filters","updateFilter","currentFilters","isFetching","userIsAuthenticated","results","moreProjectsToFetch","isFetchingMore","errorFetchingMore","loadMoreProjects","TaggedProjectList_default","InactiveHeart","ActiveHeart","Label","ChannelSubButton","subscribe","unsubscribe","subscribed","isActive","CURRENCY_RATES$2","REMIND_ME_IMAGE$2","URLS$1","EMPTY_EDITORIAL_CONTENT$1","EMPTY_SPONSORED_PROJECTS","EMPTY_THEME$1","NOOP$1","Partner","listProjects","taggedProjectsNode","taggedProjectsData","initialSearchSettings","currentUser","sponsorProjectNode","sponsoredProjectsAreLoading","sponsoredProjects","hasSponsorProjects","taggedProjectsOnFeaturePosition","featuredProject","isSelectionFirst","taggedProjectsOnFirstPosition","taggedrojectsOnLastPosition","sponsorProjectsOnFeaturePosition","sponsorProjectsOnFirstPosition","sponsorProjectsOnLastPosition","handleSubscription","currentLanguage","currentCurrency","channelOwnerProfileURL","partnerName","partnerLogo","channelDescription","ctaUrl","Partner_default","ownProps","withAccessToken","dispatch","CURRENCY_RATES$1","REMIND_ME_IMAGE$1","EMPTY_RESULTS","NOOP","CuratedProjectList","CuratedProjectList_default","CURRENCY_RATES","REMIND_ME_IMAGE","URLS","EMPTY_EDITORIAL_CONTENT","EMPTY_THEME","UserChannel","label","channelOwner","UserSettingsContext","ModalChannelNoAuth","ModalWithIcon$1","Title$1","Text$1","ModalChannelSuccess","ModalWithIcon","onClose","Title","Text","SEARCH_DATA","EMPTY_CHANNEL","ChannelPage","accentColor","bgColor","channelPartner","titleImage","context","showNoAuth","showFirstTime","background","name","description","slug","links","detail_default","TvBox","channelTvImages","\"x3\"","EMPTY_CHANNELS","ChannelList$1","channelsLength","isPartner","user","onClick","ChannelList","_args","language","isLoadingChannels","list_default","Router","Channel","container","currentLocation","currentCountryCode"],"sources":["../../../../../../owl-nest/external/owl-kit/src/legacy/VideoLoader.jsx","../../src/modern/redux/actions/channels.js","../../src/modern/redux/reducers/channels.js","../../src/modern/features/channel/store.js","../../src/modern/features/channel/prop-types.js","../../src/modern/components/BigProjectCard/BigProjectCard.js","../../src/modern/features/channel/detail/components/ThemedCard/styles.js","../../src/modern/features/channel/detail/components/ThemedCard/index.js","../../src/modern/features/channel/styles.js","../../src/modern/features/channel/detail/components/EditorialContent.js","../../src/modern/features/channel/detail/components/TaggedProjectList.js","../../src/modern/components/ChannelSubButton.js","../../src/modern/features/channel/detail/views/Partner.js","../../src/modern/features/channel/detail/components/CuratedProjectList.js","../../src/modern/features/channel/detail/views/User.js","../../src/modern/features/channel/context.js","../../src/modern/features/channel/components/ModalChannelNoAuth.js","../../src/modern/features/channel/components/ModalChannelSuccess.js","../../src/modern/features/channel/detail/index.js","../../src/modern/features/channel/list/TvBox.js","../../src/modern/features/channel/list/List.js","../../src/modern/features/channel/list/index.js","../../src/modern/features/channel/Router.js","../../src/modern/features/channel/index.js"],"sourcesContent":["import * as React from 'react'\nimport * as PropTypes from 'prop-types'\nimport { styled } from 'next-yak'\n\nimport * as colors from '../constants/colors.ts'\n\nimport Icon from './Icon.jsx'\n\n// NOTE: This is merely a proxy enabling us to target the component and style it\nconst VideoLoaderPlayIcon = styled(Icon)``\n\nconst VideoLoaderWrapper = styled.div`\n margin: 0 auto;\n text-align: center;\n position: relative;\n\n &:hover {\n cursor: pointer;\n\n ${VideoLoaderPlayIcon} {\n polygon {\n fill: ${colors.PRIMARY_BLUE_700};\n }\n }\n }\n`\n\nconst VideoLoaderButton = styled.div`\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n`\n\nconst VideoLoaderThumbnail = styled.img`\n max-width: 100%;\n`\n\n// TODO: Improve support for non-16/9 videos\nconst VideoWrapper = styled.div`\n background-color: black;\n height: 0;\n padding-bottom: 56.25%;\n position: relative;\n`\n\nconst Video = styled.div`\n iframe,\n video {\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n }\n`\n\nconst setParam = (videoHtml = '', param, value) => {\n const paramAlreadySet = new RegExp(`[?&]${param}=`)\n const hasQueryParams = /\\?[^=]+=/\n const srcAttribute = /src=\"(\\S+)\"/\n\n if (paramAlreadySet.test(videoHtml)) {\n return videoHtml\n }\n\n const [, url] = videoHtml.match(srcAttribute)\n\n const lastCharacter = url.charAt(url.length - 1)\n if (lastCharacter === '?' || lastCharacter === '&') {\n return videoHtml.replace(srcAttribute, `src=\"${url}${param}=${value}\"`)\n }\n\n if (hasQueryParams.test(url)) {\n return videoHtml.replace(srcAttribute, `src=\"${url}&${param}=${value}\"`)\n }\n\n return videoHtml.replace(srcAttribute, `src=\"${url}?${param}=${value}\"`)\n}\n\nconst setParams = (videoHtml = '', params) => {\n for (const param in params) {\n const value = params[param]\n videoHtml = setParam(videoHtml, param, value)\n }\n return videoHtml\n}\n\nconst useEnterView = (onEnterView, threshold) => {\n const ref = React.useRef(null)\n\n React.useEffect(() => {\n // References to window object must be done in useEffect or componentDidMount to be\n // ignored by gatsby when building the DS website. Otherwise we get\n // `XXX is not defined` errors\n const observer = new window.IntersectionObserver(\n (entries) => {\n const hasEnteredView = entries.some((entry) => entry.intersectionRatio >= threshold)\n if (hasEnteredView) {\n onEnterView()\n }\n },\n { threshold },\n )\n\n if (ref.current !== null) {\n observer.observe(ref.current)\n }\n })\n\n return ref\n}\n\n/** Acts as a placeholder for video content, and only loads the video when clicked. */\nconst VideoLoader = ({ className, placeholder, autoplay, srcSet, videoHtml }) => {\n const [videoLoaded, setVideoLoaded] = React.useState(false)\n const video = autoplay ? setParams(videoHtml, { mute: 1, autoplay: 1 }) : setParams(videoHtml, { autoplay: 1 })\n\n const ref = useEnterView(() => {\n if (autoplay) {\n setVideoLoaded(true)\n }\n }, 1)\n\n return (\n \n {!videoLoaded && (\n {\n event.preventDefault()\n setVideoLoaded(true)\n }}\n >\n \n \n \n \n \n )}\n {videoLoaded && (\n \n \n \n )}\n \n )\n}\n\nVideoLoader.propTypes = {\n className: PropTypes.string,\n /** URL of the placeholder image (shown before video is actually loaded) */\n placeholder: PropTypes.string.isRequired,\n /** Whether to autoplay the video when it enters view or not */\n autoplay: PropTypes.bool,\n /** String of images for retina screen */\n srcSet: PropTypes.string,\n /** HTML code (iframe or video element) that will be loaded after a click */\n videoHtml: PropTypes.string.isRequired,\n}\n\nVideoLoader.displayName = 'legacy.VideoLoader'\n\nexport default VideoLoader\n","import { api } from '$utils/apiRequester'\n\nexport const GET_CHANNEL_REQUEST = 'GET_CHANNEL_REQUEST'\nexport const GET_CHANNEL_SUCCESS = 'GET_CHANNEL_SUCCESS'\nexport const GET_CHANNEL_FAILURE = 'GET_CHANNEL_FAILURE'\n\nexport const GET_CHANNELS_REQUEST = 'GET_CHANNELS_REQUEST'\nexport const GET_CHANNELS_SUCCESS = 'GET_CHANNELS_SUCCESS'\nexport const GET_CHANNELS_FAILURE = 'GET_CHANNELS_FAILURE'\n\nexport const SUBSCRIBE_CHANNEL_REQUEST = 'SUBSCRIBE_CHANNEL_REQUEST'\nexport const SUBSCRIBE_CHANNEL_SUCCESS = 'SUBSCRIBE_CHANNEL_SUCCESS'\nexport const SUBSCRIBE_CHANNEL_FAILURE = 'SUBSCRIBE_CHANNEL_FAILURE'\n\nexport const SUBSCRIBE_DETAIL_CHANNEL_REQUEST = 'SUBSCRIBE_DETAIL_CHANNEL_REQUEST'\nexport const SUBSCRIBE_DETAIL_CHANNEL_SUCCESS = 'SUBSCRIBE_DETAIL_CHANNEL_SUCCESS'\nexport const SUBSCRIBE_DETAIL_CHANNEL_FAILURE = 'SUBSCRIBE_DETAIL_CHANNEL_FAILURE'\n\nexport const CLOSE_MODALS = 'CLOSE_MODALS'\nexport const OPEN_NO_AUTH = 'OPEN_NO_AUTH'\n\n/**\n * getChannel\n * @param {number} id ID of the channel to load\n * @return {object} redux action\n */\nexport const getChannel = id => {\n return {\n types: [GET_CHANNEL_REQUEST, GET_CHANNEL_SUCCESS, GET_CHANNEL_FAILURE],\n promise: () => api('ulule').get(`/channels/${id}`)\n }\n}\n\nexport const getChannels = (lang, country, limit = 18, extraFields, isAuthenticated, next) => {\n return {\n types: [GET_CHANNELS_REQUEST, GET_CHANNELS_SUCCESS, GET_CHANNELS_FAILURE],\n promise: () =>\n api('ulule').get(\n `/channels?limit=${limit}${lang ? `&lang=${lang}` : ''}${country ? `&country=${country}` : ''}${\n extraFields && isAuthenticated ? `&extra_fields=${extraFields}` : ''\n }${next ? `&next=${next}` : ''}`,\n {\n withAccessToken: isAuthenticated\n }\n )\n }\n}\nexport const openNoAuth = () => {\n return { type: OPEN_NO_AUTH }\n}\nexport const closeModals = () => {\n return { type: CLOSE_MODALS }\n}\nexport const subscribeChannel = (id, isSubscribed, detailPage = false) => {\n return {\n id,\n isSubscribed,\n types: detailPage\n ? [SUBSCRIBE_DETAIL_CHANNEL_REQUEST, SUBSCRIBE_DETAIL_CHANNEL_SUCCESS, SUBSCRIBE_DETAIL_CHANNEL_FAILURE]\n : [SUBSCRIBE_CHANNEL_REQUEST, SUBSCRIBE_CHANNEL_SUCCESS, SUBSCRIBE_CHANNEL_FAILURE],\n promise: async () => {\n const postRes = await api('ulule').post(`/channels/${id}/${isSubscribed ? 'unsubscribe' : 'subscribe'}`, {\n withAccessToken: true\n })\n return isSubscribed ? false : postRes.subscriptions_count\n }\n }\n}\n","import { combineReducers } from 'redux'\n\nimport * as ActionTypes from '../actions/channels'\n\nconst initialState = {\n detail: {\n showFirstTime: false,\n showNoAuth: false,\n subscriptionStatus: 'PRISTINE',\n error: false,\n isLoading: false,\n channel: null\n },\n list: {\n showFirstTime: false,\n showNoAuth: false,\n subscriptionStatus: 'PRISTINE',\n channels: null,\n error: false,\n isLoadingChannels: false,\n meta: null\n }\n}\n\nconst channelDetail = (state = initialState.detail, action) => {\n switch (action.type) {\n case ActionTypes.GET_CHANNEL_REQUEST: {\n return {\n ...state,\n isLoading: true\n }\n }\n\n case ActionTypes.GET_CHANNEL_SUCCESS: {\n const channel = action.response\n\n return {\n ...state,\n error: null,\n channel,\n isLoading: false\n }\n }\n\n // TODO: More detailed error handling\n case ActionTypes.GET_CHANNEL_FAILURE: {\n const { error } = action\n\n return {\n ...state,\n ...(error && { error: true }),\n channel: null,\n isLoading: false\n }\n }\n case ActionTypes.SUBSCRIBE_DETAIL_CHANNEL_REQUEST: {\n return {\n ...state,\n subscriptionStatus: 'PENDING'\n }\n }\n case ActionTypes.SUBSCRIBE_DETAIL_CHANNEL_SUCCESS: {\n const { isSubscribed, response } = action\n return {\n ...state,\n subscriptionStatus: 'SUCCESS',\n showFirstTime: response === 1,\n channel: {\n ...state.channel,\n is_subscribed: !isSubscribed\n }\n }\n }\n case ActionTypes.SUBSCRIBE_DETAIL_CHANNEL_FAILURE: {\n return {\n ...state,\n subscriptionStatus: 'FAILURE'\n }\n }\n case ActionTypes.CLOSE_MODALS:\n return {\n ...state,\n showFirstTime: false,\n showNoAuth: false\n }\n case ActionTypes.OPEN_NO_AUTH:\n return {\n ...state,\n showNoAuth: true\n }\n default:\n return state\n }\n}\n\nconst channelList = (state = initialState.list, action) => {\n switch (action.type) {\n case ActionTypes.GET_CHANNELS_SUCCESS: {\n const channels = state.channels ? [...state.channels, ...action.response.channels] : action.response.channels\n const meta = action.response.meta\n\n return {\n ...state,\n channels,\n meta,\n isLoadingChannels: false\n }\n }\n\n case ActionTypes.GET_CHANNELS_REQUEST: {\n return {\n isLoadingChannels: true,\n ...state\n }\n }\n case ActionTypes.GET_CHANNELS_FAILURE: {\n const { error } = action\n return {\n ...state,\n ...(error && { error: true }),\n channels: null,\n isLoadingChannels: false\n }\n }\n\n case ActionTypes.SUBSCRIBE_CHANNEL_REQUEST: {\n return {\n ...state,\n subscriptionStatus: 'PENDING'\n }\n }\n case ActionTypes.SUBSCRIBE_CHANNEL_SUCCESS: {\n const { response } = action\n\n return {\n ...state,\n subscriptionStatus: 'SUCCESS',\n showFirstTime: response === 1,\n channels: state.channels.map(channel => {\n if (channel.id === action.id) {\n return {\n ...channel,\n is_subscribed: !action.isSubscribed\n }\n }\n return channel\n })\n }\n }\n case ActionTypes.SUBSCRIBE_CHANNEL_FAILURE: {\n return {\n ...state,\n subscriptionStatus: 'FAILURE'\n }\n }\n\n case ActionTypes.CLOSE_MODALS: {\n return {\n ...state,\n showFirstTime: false,\n showNoAuth: false\n }\n }\n case ActionTypes.OPEN_NO_AUTH: {\n return {\n ...state,\n showNoAuth: true\n }\n }\n\n default:\n return state\n }\n}\n\nexport const channels = combineReducers({\n detail: channelDetail,\n list: channelList\n})\n","import { applyMiddleware, combineReducers, createStore } from 'redux'\nimport { thunk } from 'redux-thunk'\n\nimport { callAPIMiddleware } from '$redux/middleware/callAPI'\nimport { channels } from '$redux/reducers/channels'\nimport partners from '$redux/reducers/partner'\n\nimport config from '$utils/config'\n\nconfig.set({\n ...window.CHANNEL_LIST_DATA,\n channel: window.CHANNEL_DATA\n})\n\nconst reducers = combineReducers({\n channels,\n partners\n})\n\nexport default createStore(\n reducers,\n {\n channels: {\n detail: {\n showFirstTime: false,\n showNoAuth: false,\n subscriptionStatus: 'PRISTINE',\n error: false,\n isLoading: false,\n channel: config.get('channel')\n }\n }\n },\n applyMiddleware(thunk, callAPIMiddleware)\n)\n","import PropTypes from 'prop-types'\n\nexport const editorialContentShape = PropTypes.shape({\n ctaLabel: PropTypes.string,\n ctaLink: PropTypes.string,\n description: PropTypes.objectOf(PropTypes.string).isRequired,\n image: PropTypes.shape({\n value: PropTypes.string.isRequired,\n versions: PropTypes.shape({\n full: PropTypes.shape({\n height: PropTypes.string,\n url: PropTypes.string.isRequired,\n width: PropTypes.string\n }).isRequired\n })\n }),\n title: PropTypes.string,\n url: PropTypes.string,\n video: PropTypes.string\n})\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nimport { text } from '@owl-nest/utils'\nimport { CardTypeSelector } from '@ulule/duvet/CardTypeSelector.tsx'\nimport { t, tn } from '@owl-nest/localize'\n\nimport { getComingSoonLabel, getProgress, getShortCountdown, getFinishTrad } from '$models/projects'\nimport { updateUserRole, saveAction } from '../../features/init/services'\nimport * as cookie from '$utils/cookie'\nimport { projectShape, dataUTMPageContextShape } from '$utils/prop-types'\n\nimport { ModalProjectRemindMe, ModalProjectNoAuth } from '$components/Project/Modals'\n\nconst USER_ROLE_STATUS = {\n neutral: null,\n listed: 'fan',\n created: 'owner',\n backed: 'supporter',\n}\n\nconst LOCALSTORAGE_NAMESPACE = 'ul_modalShowedUp'\nconst COOKIE_MODAL_NAMESPACE = 'ul_modal_remind_me'\n\nconst getRelatedUserRole = (userRole) => {\n switch (userRole) {\n case 'fan':\n return {\n status: 'listed',\n label: t('Listed'),\n apiAction: 'unlike',\n roundButton: {\n text: t('Listed'),\n icon: 'active-heart',\n isCompact: true,\n },\n }\n\n case 'supporter':\n return {\n status: 'backed',\n label: t('Backed'),\n apiAction: null,\n roundButton: {\n text: t('Backed'),\n icon: 'backed',\n },\n }\n\n case 'owner':\n case 'coordinator':\n case 'editor':\n case 'moderator':\n return {\n status: 'created',\n label: t('Created'),\n apiAction: null,\n roundButton: {\n text: t('Created'),\n icon: 'created',\n },\n }\n\n default:\n return {\n status: 'neutral',\n label: t('Add to my list'),\n apiAction: 'like',\n roundButton: {\n text: t('Add to my list'),\n icon: 'inactive-heart',\n isCompact: true,\n },\n }\n }\n}\n\nclass BigProjectCard extends React.Component {\n constructor(props) {\n super(props)\n\n const { project } = props\n if (project && project.user_role === undefined) return\n\n this.state = {\n ...getRelatedUserRole(project && project.user_role),\n postAction: {\n onBeforeAction: this.checkAuth,\n onSuccess: this.handleModal,\n onError: this.onError,\n },\n isOpen: false,\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { project } = this.props\n const { status } = this.state\n const prevStatus = prevState && prevState.status\n\n if (status !== prevStatus) {\n if (project && project.user_role === undefined) return\n this.setState({\n ...getRelatedUserRole(USER_ROLE_STATUS[status]),\n })\n }\n\n if (window.localStorage.getItem(LOCALSTORAGE_NAMESPACE) === 'true') {\n return {\n modalShowedUp: true,\n }\n }\n }\n\n handleModal = (project, status) => {\n // we don't want to show modal for unlike event\n if (status && status === 'neutral') return\n\n const { isOpen } = this.state\n\n const { isAuthenticated } = this.props\n const hasCookie = cookie.get(COOKIE_MODAL_NAMESPACE) === 'true'\n if (hasCookie) {\n this.setState({\n modalShowedUp: true,\n })\n }\n\n // do not display modal if project ended\n // also shutdown the modal if cookie is here and\n // user is authenticated\n if ((isAuthenticated && hasCookie) || project.finished) {\n this.setState({\n isOpen: false,\n })\n return\n }\n\n this.setState(\n {\n isOpen: !isOpen,\n },\n () => {\n cookie.set(COOKIE_MODAL_NAMESPACE, true, { expires: +new Date(), path: '/', domain: 'ulule.com' })\n },\n )\n }\n\n onError = () => {\n const { isAuthenticated } = this.props\n\n if (!isAuthenticated) {\n this.setState({\n isOpen: true,\n })\n }\n }\n\n handleCloseModal = () => {\n this.setState({\n isOpen: false,\n })\n }\n\n onClick = (event) => {\n event.preventDefault()\n\n const { project, isAuthenticated } = this.props\n const { apiAction, postAction, status } = this.state\n if (isAuthenticated) {\n if (status && (status === 'created' || status === 'backed')) return\n\n const newStatus = status && status === 'listed' ? 'neutral' : 'listed'\n\n this.setState({\n status: newStatus,\n })\n\n updateUserRole(project && project.id, apiAction).then(() => {\n if (window.dataLayer) {\n window.dataLayer.push({\n event: 'socialInt',\n socialNetwork: 'Ulule',\n socialAction: newStatus === 'listed' ? 'Like' : 'Unlike',\n socialTarget: project && project.absolute_url,\n ululeProjectId: project && project.id,\n })\n }\n postAction.onSuccess(project, newStatus)\n }, postAction.onError)\n return\n }\n saveAction(project.id, apiAction)\n\n postAction.onError()\n }\n\n getStatus = () => {\n const { project } = this.props\n\n const { date_end: endDate, is_in_extra_time: extraTime, finished: isFinished, status: projectStatus } = project\n\n const isOnline = projectStatus === 'online'\n const countdownText = getShortCountdown(project)\n\n if (extraTime) {\n return t('Extension')\n } else if (isFinished) {\n return t('Finished')\n } else if (!endDate) {\n return ''\n }\n\n return isOnline && countdownText\n }\n\n render() {\n const { dataUTMPageContext, project } = this.props\n\n const progress = getProgress(project)\n\n const countdownText = getShortCountdown(project)\n\n const isOnline = project && project.status === 'online'\n const isProjectFinished = project && project.finished\n\n let textFinishProject = t('Finished')\n if (isProjectFinished) {\n textFinishProject = getFinishTrad(project.date_end)\n }\n\n const action =\n project.user_role !== undefined\n ? {\n ...this.state.roundButton,\n onClick: (event) => this.onClick(event),\n }\n : undefined\n\n return (\n \n \n {this.props.isAuthenticated && (\n \n )}\n {!this.props.isAuthenticated && (\n \n )}\n \n )\n }\n}\n\nBigProjectCard.defaultProps = {\n picture: null,\n rates: {},\n ribbonImage: null,\n srcSet: null,\n targetCurrency: 'EUR',\n}\n\nBigProjectCard.propTypes = {\n dataUTMPageContext: dataUTMPageContextShape,\n isAuthenticated: PropTypes.bool.isRequired,\n language: PropTypes.string.isRequired,\n modalImg: PropTypes.shape({\n x1: PropTypes.string,\n x2: PropTypes.string,\n x3: PropTypes.string,\n }).isRequired,\n picture: PropTypes.string,\n project: projectShape.isRequired,\n rates: PropTypes.objectOf(PropTypes.number),\n ribbonImage: PropTypes.string,\n srcSet: PropTypes.string,\n targetCurrency: PropTypes.string,\n}\n\nexport default BigProjectCard\n","import { styled, css } from 'next-yak'\nimport * as plume from '@ulule/owl-kit-components/next'\n\nimport { COLORS, Title1 } from '@ulule/owl-kit-components'\n\nimport { rem } from '$utils/styles'\n\nexport const CardWrapper = styled.div`\n background-color: ${COLORS.PRIMARY_SAND_100};\n color: ${COLORS.PRIMARY_GREY_000};\n color: ${(props) => props.theme.colors.primary};\n display: flex;\n flex-direction: column;\n\n ${Title1} {\n color: ${(props) => props.theme.colors.primary};\n }\n\n @media screen and (min-width: 767px) {\n flex-direction: ${(props) => (props.theme.isVertical ? 'column' : 'row')};\n\n ${(props) =>\n props.theme.isVertical\n ? css`\n height: 100%;\n padding: 7% 7% 8%;\n `\n : css`\n padding: ${() => rem(42)} ${() => rem(36)};\n `}\n }\n`\n\nexport const MediaWrapper = styled.div`\n width: 100%;\n\n img {\n width: 100%;\n }\n\n @media screen and (min-width: 767px) {\n margin-right: ${(props) => (props.theme.isVertical ? 0 : `${rem(50)}`)};\n width: ${(props) => (props.theme.isVertical ? '100%' : '50%')};\n }\n`\n\nexport const OutlineButton = styled(plume.ButtonAsLink).attrs({ kind: 'secondary' })`\n align-self: baseline;\n display: block;\n width: 100%;\n\n ${plume.Button} {\n width: 100%;\n }\n\n @media screen and (min-width: 767px) {\n width: initial;\n\n ${plume.Button} {\n width: initial;\n }\n }\n`\n\nexport const OutlineButtonVertical = styled(OutlineButton)`\n bottom: 0;\n position: absolute;\n`\n\nexport const Text = styled.div`\n font-size: ${() => rem(17)};\n font-weight: 300;\n line-height: ${() => rem(26)};\n margin: ${() => rem(21)} 0 ${() => rem(24)};\n margin-bottom: ${(props) => (props.theme.isVertical ? `${rem(78)}` : `${rem(24)}`)};\n\n @media screen and (min-width: 767px) {\n margin-bottom: ${() => rem(34)};\n\n ${(props) =>\n props.theme.isVertical &&\n css`\n margin-bottom: ${() => rem(78)};\n margin-top: ${() => rem(16)};\n `}\n }\n`\n\nexport const TextWrapper = styled.div`\n margin: ${() => rem(28)} ${() => rem(16)};\n position: ${(props) => (props.theme.isVertical ? 'relative' : 'initial')};\n\n @media screen and (min-width: 767px) {\n margin: 0;\n\n ${(props) =>\n props.theme.isVertical &&\n css`\n display: flex;\n flex-direction: column;\n height: 100%;\n margin-top: ${() => rem(34)};\n `}\n width: ${(props) => (props.theme.isVertical ? '100%' : '45%')};\n }\n`\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { YakThemeProvider } from 'next-yak'\n\nimport { Title1, VideoLoader } from '@ulule/owl-kit-components'\n\nimport * as S from './styles'\n\nconst DEFAULT_TRACKER = {\n element: React.Fragment,\n props: {},\n}\nconst EMPTY_THEME = {}\n\nconst ThemedCard = ({\n ctaLabel = null,\n ctaLink = null,\n image = null,\n isVertical = false,\n text = null,\n theme = EMPTY_THEME,\n title = null,\n tracker = DEFAULT_TRACKER,\n videoHtml = null,\n}) => {\n const customizedTheme = {\n ...theme,\n isVertical,\n }\n const CtaComponent = isVertical ? S.OutlineButtonVertical : S.OutlineButton\n\n const { element: Tracker, props: trackerProps } = tracker\n\n return (\n \n \n {image && (\n \n {videoHtml ? :
}\n \n )}\n \n {title && {title}}\n {text && {text}}\n {ctaLabel && ctaLink && (\n \n \n {ctaLabel}\n \n \n )}\n \n \n \n )\n}\n\nThemedCard.propTypes = {\n ctaLabel: PropTypes.string,\n ctaLink: PropTypes.string,\n image: PropTypes.string,\n isVertical: PropTypes.bool,\n text: PropTypes.string,\n theme: PropTypes.shape({}),\n title: PropTypes.string,\n tracker: PropTypes.shape({\n element: PropTypes.elementType,\n props: PropTypes.shape({}),\n }),\n videoHtml: PropTypes.string,\n}\n\nexport default ThemedCard\n","import { styled, css } from 'next-yak'\nimport {\n CallToAction,\n COLORS,\n FONTS,\n RegularText,\n SecondaryLink,\n Title1,\n Title2,\n Title5,\n} from '@ulule/owl-kit-components'\n\nimport { rem } from '$utils/styles'\n\nconst DEFAULT_GRID_BASIS = 1012\nconst LARGE_GRID_BASIS = 1146\nconst HEIGHT_SHIFT = 128\nconst SPACING = 16\n\n/**\n * CHANNEL PAGE — HEADER LAYOUT\n */\n\nexport const ChannelPageCover = styled.div`\n background-color: ${(props) => props.theme.colors.accent || props.theme.colors.primary};\n border-bottom: 4px solid ${(props) => props.theme.colors.primary};\n min-height: ${() => rem(250)};\n background-image: ${(props) => `url(${props.background})`};\n background-position: center bottom;\n background-repeat: no-repeat;\n\n @media screen and (min-width: 768px) {\n min-height: ${() => rem(350)};\n }\n`\n\nexport const ChannelPageHeader = styled.header`\n position: relative;\n z-index: -1;\n /**\n &:after {\n content: '';\n width: 100%;\n height: 100%;\n display: block;\n position: absolute;\n top: 0px;\n left: 0px;\n background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.35) 100%);\n }*/\n`\n\nexport const ChannelPageTitleContainer = styled.div`\n margin: auto;\n max-width: ${(props) => (props.theme.layout.isLarge ? rem(LARGE_GRID_BASIS) : rem(DEFAULT_GRID_BASIS))};\n padding: 0 ${() => rem(SPACING)};\n position: relative;\n z-index: 1;\n\n @media screen and (max-width: 767px) {\n margin-top: 12%;\n margin-bottom: ${() => `-${rem(68)}`};\n }\n`\n\n/**\n * CHANNEL PAGE — HEADER COMPONENTS\n */\n\nexport const ChannelPageLogo = styled.img`\n bottom: ${() => rem(HEIGHT_SHIFT - SPACING)};\n margin: 0;\n max-width: 90%;\n position: absolute;\n`\n\nexport const ChannelPageTitle = styled.h1`\n bottom: ${() => rem(HEIGHT_SHIFT - SPACING)};\n color: ${COLORS.PRIMARY_GREY_000};\n font-family: ${FONTS.PRIMARY_FONT};\n font-size: ${() => rem(55)};\n margin: 0;\n position: absolute;\n font-weight: 900;\n\n @media screen and (min-width: 768px) {\n max-width: 70%;\n font-size: ${() => rem(65)};\n }\n`\n\n/**\n * CHANNEL PAGE — BODY LAYOUT\n */\n\nexport const ChannelPageCuratedProjects = styled.div`\n margin-bottom: ${() => rem(64)};\n`\n\nexport const ChannelPageCuratedProjectsFooter = styled.div`\n margin-top: ${() => rem(32)};\n text-align: center;\n`\n\nexport const ChannelPageEditorialContent = styled.div`\n margin-bottom: ${() => rem(46)};\n\n ${(props) =>\n props.listMode &&\n css`\n display: flex;\n justify-content: space-between;\n `}\n\n @media screen and (min-width: 768px) {\n margin-bottom: ${() => rem(84)};\n }\n`\n\nexport const ChannelPageFullWidthSection = styled.div`\n @media screen and (min-width: 768px) {\n margin: auto;\n max-width: ${(props) => (props.theme.layout.isLarge ? rem(LARGE_GRID_BASIS) : rem(DEFAULT_GRID_BASIS))};\n padding: 0 ${() => rem(SPACING)};\n }\n`\nexport const ChannelSubButton = styled.div`\n position: absolute;\n right: 1.230769rem;\n top: -55px;\n`\nexport const ChannelPageGutteredSection = styled.div`\n position: relative;\n margin: auto;\n max-width: ${(props) => (props.theme.layout.isLarge ? rem(LARGE_GRID_BASIS) : rem(DEFAULT_GRID_BASIS))};\n padding: 0 ${() => rem(SPACING)};\n\n ${(props) =>\n !props.theme.layout.isLarge &&\n props.raised &&\n css`\n margin-top: ${() => `-${rem(26)}`};\n `}\n\n @media screen and (min-width: 768px) {\n ${(props) =>\n !props.theme.layout.isLarge &&\n props.raised &&\n css`\n margin-top: ${() => `-${rem(90)}`};\n `}\n }\n`\n\nexport const ChannelPageRightAside = styled.aside`\n margin: 0 auto;\n max-width: ${() => rem(360)};\n width: 100%;\n\n ${(props) =>\n props.theme.layout.isLarge &&\n css`\n margin-top: ${() => `-${rem(20)}`};\n `}\n\n @media screen and (min-width: 768px) {\n ${(props) =>\n !props.theme.layout.isLarge &&\n css`\n margin: 0;\n `}\n }\n`\n\nexport const ChannelPageFeaturedContent = styled.div`\n margin-bottom: ${(props) => !props.theme.layout.isLarge && `${rem(22)}`};\n width: 100%;\n\n @media screen and (min-width: 768px) {\n margin-bottom: 0;\n margin-right: ${() => rem(40)};\n }\n`\n\nexport const ChannelPageFeaturedSection = styled.div`\n display: flex;\n flex-direction: column;\n margin-bottom: ${() => rem(52)};\n\n @media (min-width: 768px) {\n flex-direction: row;\n }\n`\n\n/**\n * CHANNEL PAGE — BODY COMPONENTS\n */\n\nexport const ChannelPageCuratedProjectList = styled.div`\n margin-top: ${() => rem(32)};\n\n /* HACK: TODO: If you are reading this and the 'ProjectList' component\n ** has been migrated to SC, please use it here instead of the generic ul/li.\n */\n ul {\n @media screen and (max-width: 767px) {\n margin: 0;\n }\n }\n\n ul > li {\n box-sizing: border-box;\n display: flex;\n flex: 0 1 auto;\n justify-content: center;\n margin: 0;\n padding: ${() => rem(SPACING / 2)};\n width: 33%;\n\n @media screen and (max-width: 767px) {\n width: 50%;\n }\n\n @media screen and (max-width: 498px) {\n width: 100%;\n }\n }\n`\n\nexport const ChannelPageCuratedProjectsTitle = styled(Title1)`\n text-align: center;\n\n em {\n color: ${(props) => props.theme.colors.primary};\n font-style: normal;\n }\n`\n\nexport const ChannelPageEditorialContentItem = styled.li``\n\nexport const ChannelPageEditorialContentList = styled.ul`\n display: block;\n list-style: none;\n\n ${ChannelPageEditorialContentItem} + ${ChannelPageEditorialContentItem} {\n margin-top: ${() => rem(20)};\n }\n\n @media screen and (min-width: 768px) {\n display: inline-flex;\n\n ${ChannelPageEditorialContentItem} {\n width: ${(props) => props.itemCount && `${100 / props.itemCount}%`};\n }\n\n ${ChannelPageEditorialContentItem} + ${ChannelPageEditorialContentItem} {\n margin-top: 0;\n margin-left: ${(props) => (props.itemCount === 2 ? `${rem(46)}` : `${rem(14)}`)};\n }\n }\n`\n\nexport const ChannelPageOwnerCardTitle = styled(Title2)`\n margin-bottom: ${() => rem(22)};\n`\n\nexport const ChannelPageOwnerCard = styled.div`\n background: #ffffff;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n padding: ${() => rem(20)} ${() => rem(14)};\n width: 100%;\n\n ${ChannelPageOwnerCardTitle} {\n text-align: center;\n }\n\n @media (min-width: 768px) {\n padding: ${() => rem(23)};\n padding-bottom: ${() => rem(20)};\n }\n`\n\nexport const ChannelPageOwnerCardDescription = styled.div`\n font-size: 15px;\n font-weight: 300;\n line-height: 22px;\n margin-top: ${() => rem(28)};\n\n strong {\n font-weight: 500;\n }\n`\n\nexport const ChannelPageOwnerCardImage = styled.img`\n max-width: 250px;\n`\n\nexport const ChannelPagePartnerCard = styled.div``\n\nexport const ChannelPagePartnerCardCTA = styled(CallToAction)`\n background-color: ${(props) => props.theme.colors.primary || COLORS.PRIMARY_BLUE_500};\n margin-top: ${() => rem(20)};\n\n &:hover {\n background-color: ${(props) => props.theme.colors.primary || COLORS.PRIMARY_BLUE_500};\n opacity: 0.9;\n }\n`\n\nexport const ChannelPageTaggedProjects = styled.div`\n margin-bottom: ${(props) => (props.theme.layout.isLarge ? `${rem(42)}` : `${rem(62)}`)};\n margin-top: ${(props) => (props.theme.layout.isLarge ? `${rem(62)}` : 0)};\n\n @media screen and (min-width: 768px) {\n margin-bottom: ${() => rem(62)};\n margin-top: ${(props) => (props.theme.layout.isLarge ? `${rem(42)}` : 0)};\n }\n`\n\nexport const ChannelPageTaggedProjectsFooter = styled.footer`\n margin-top: ${() => rem(32)};\n text-align: center;\n`\n\nexport const ChannelPageTaggedProjectsHeader = styled.header`\n display: flex;\n justify-content: space-between;\n margin-bottom: ${() => rem(32)};\n width: 100%;\n\n @media screen and (max-width: 767px) {\n justify-content: center;\n }\n\n /* Sorting bar title */\n & > div {\n display: ${(props) => (!props.theme.layout.isLarge ? `flex` : `block`)};\n\n @media screen and (max-width: 820px) {\n display: block;\n }\n }\n\n strong {\n color: ${(props) => props.theme.colors.primary};\n font-size: 26px;\n margin-right: ${() => rem(10)};\n\n ${(props) =>\n props.theme.layout.isLarge &&\n css`\n display: block;\n margin-bottom: ${() => rem(4)};\n `}\n\n @media screen and (max-width: 820px) {\n display: block;\n margin-bottom: ${() => rem(10)};\n }\n }\n\n /* Filter dropdown */\n & > span {\n display: none;\n max-height: ${() => rem(42)};\n\n @media screen and (min-width: 768px) {\n display: inline-flex;\n }\n }\n`\n\nexport const ChannelPageTaggedProjectList = styled.div`\n /* HACK: TODO: If you are reading this and the 'ProjectList' component\n ** has been migrated to SC, please use it here instead of the generic ul/li.\n */\n ul {\n position: relative;\n display: flex;\n flex-flow: row wrap;\n justify-content: center;\n list-style: none;\n margin: -${() => rem(SPACING * 0.5)};\n margin: ${() => `-${rem(SPACING * 0.5)}`};\n padding: 0;\n\n li {\n box-sizing: border-box;\n display: flex;\n flex: 0 1 auto;\n justify-content: center;\n margin: 0;\n padding: ${() => rem(SPACING / 2)};\n width: ${(props) => (props.theme.layout.isLarge ? '33%' : '25%')};\n\n @media screen and (max-width: 1139px) {\n ${(props) => props.theme.layout.isLarge && `width: 50%`};\n }\n\n @media screen and (max-width: 989px) {\n ${(props) => !props.theme.layout.isLarge && `width: 33%`};\n }\n\n @media screen and (max-width: 899px) {\n ${(props) => props.theme.layout.isLarge && `width: 100%`};\n }\n\n @media screen and (max-width: 767px) {\n width: 50%;\n }\n\n @media screen and (max-width: 498px) {\n width: 100%;\n }\n }\n }\n`\n\nexport const ChannelPageTaggedProjectsNoResults = styled.div`\n text-align: center;\n`\n\nexport const ChannelPageTaggedProjectsNoResultsText = styled.div`\n margin-top: ${() => rem(24)};\n`\n\nexport const ChannelPageTaggedProjectsResetFilters = styled(SecondaryLink)`\n align-items: center;\n display: inline-flex;\n height: ${() => rem(50)};\n\n > div:first-child {\n color: ${COLORS.PRIMARY_GREY_500};\n margin-right: ${() => rem(5)};\n transform: rotate(-180deg);\n transition: transform 200ms ease-out;\n }\n\n &:hover {\n > div:first-child {\n transition: transform 400ms ease-in;\n transform: rotate(180deg);\n }\n }\n`\n\nexport const ChannelPageUserCard = styled.div`\n /* NOTE: Reset image styling applied in the main css */\n img {\n margin: 0;\n }\n`\n\nexport const ChannelPageUserCardLabel = styled.div`\n align-items: center;\n display: flex;\n justify-content: center;\n`\n\nexport const ChannelPageUserCardName = styled(Title1)`\n margin: 0 ${() => rem(14)};\n max-width: ${() => rem(150)};\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover {\n color: ${(props) => props.theme.colors.primary};\n }\n`\n\nexport const ChannelPageUserCardProfileLink = styled.a`\n align-items: center;\n display: flex;\n justify-content: center;\n`\n\n/**\n * CHANNEL LIST\n */\n\nexport const ChannelHeader = styled.div`\n background-color: ${COLORS.PRIMARY_BLUE_500};\n margin-top: -20px;\n padding: 35px 0 60px;\n transform-origin: top left;\n transform: skew(0, -5deg);\n\n @media screen and (min-width: 768px) {\n padding: 7% 0 0 0;\n }\n`\n\nexport const ChannelContainer = styled.div`\n transform: skew(0, 5deg);\n color: ${COLORS.PRIMARY_GREY_000};\n max-width: 1080px;\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n margin: 0 auto;\n\n @media (max-width: 1155px) {\n padding: 0 30px;\n }\n\n @media screen and (max-width: 767px) {\n flex-direction: column;\n margin-top: 30px;\n padding-bottom: 0;\n }\n`\n\nexport const ChannelTitle = styled(Title1)`\n color: ${COLORS.PRIMARY_GREY_000};\n font-family: ${FONTS.EMPHASIS_FONT};\n font-size: 50px;\n font-weight: 900;\n font-style: italic;\n line-height: 1.1;\n margin-bottom: 10px;\n\n @media screen and (min-width: 768px) {\n font-size: 80px;\n min-width: 445px;\n }\n`\n\nexport const ChannelSubtitle = styled(RegularText)`\n color: ${COLORS.PRIMARY_GREY_000};\n font-size: 18px;\n font-weight: 500;\n max-width: 615px;\n`\n\nexport const ChannelWrapper = styled.div`\n max-width: 1200px;\n margin: 0 auto;\n`\n\nexport const ChannelList = styled.ul`\n display: flex;\n margin-top: -60px;\n padding: 0;\n list-style: none;\n width: 100%;\n flex-wrap: wrap;\n justify-content: center;\n\n @media (min-width: 768px) {\n margin-top: 57px;\n }\n`\n\nexport const ChannelItem = styled.li`\n padding: 15px 15px 55px 15px;\n\n @media (max-width: 500px) {\n padding-bottom: 12px;\n padding-top: 12px;\n }\n`\n\nexport const ChannelCTAWrapper = styled.div`\n display: flex;\n justify-content: center;\n margin-bottom: 70px;\n\n @media (max-width: 500px) {\n margin-top: 25px;\n padding: 0 25px;\n margin-bottom: 40px;\n\n > span {\n width: 100%;\n max-width: 320px;\n }\n }\n`\n\nexport const ChannelTvBoxWrapper = styled.li`\n max-width: 1015px;\n min-height: 232px;\n max-height: 232px;\n width: 100%;\n background-color: ${COLORS.PRIMARY_BLUE_200};\n margin-bottom: 60px;\n margin-top: 50px;\n\n @media (max-width: 800px) {\n margin-top: 25px;\n margin-bottom: 30px;\n }\n`\n\nexport const ChannelTvBoxContainer = styled.div`\n display: flex;\n flex-direction: row;\n height: 100%;\n`\n\nexport const ChannelTvBoxImgWrapper = styled.div`\n margin: -40px 90px 0 90px;\n\n @media (max-width: 800px) {\n display: none;\n }\n`\n\nexport const ChannelTvBoxImg = styled.img`\n margin: 0;\n`\n\nexport const ChannelTvBoxContent = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding-right: 90px;\n\n @media (max-width: 800px) {\n padding: 30px;\n margin: 0 auto;\n align-items: center;\n }\n`\n\nexport const ChannelTvBoxTitle = styled(Title5)`\n font-size: 22px;\n margin-bottom: 20px;\n color: ${COLORS.PRIMARY_BLUE_900};\n font-weight: 600;\n\n @media (max-width: 800px) {\n margin-bottom: 16px;\n }\n`\n\nexport const ChannelTvBoxText = styled(RegularText)`\n color: ${COLORS.PRIMARY_BLUE_900};\n font-weight: 300;\n margin-bottom: 30px;\n font-size: 15px;\n\n @media (max-width: 800px) {\n margin-bottom: 25px;\n text-align: center;\n }\n`\n\nexport const ChannelTvBoxCTAWrapper = styled.div`\n @media (max-width: 800px) {\n width: 100%;\n max-width: 300px;\n }\n`\n\nexport const ChannelTvBoxCTA = styled(CallToAction)`\n width: 241px;\n\n @media (max-width: 800px) {\n width: 100%;\n }\n`\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nimport { getResourceUrl, getResourceWithLanguage } from '$models/resources'\n\nimport { editorialContentShape } from '../../prop-types'\n\nimport SponsorshipTracker from '$components/SponsorshipTracker/SponsorshipTracker'\nimport ThemedCard from './ThemedCard'\n\nimport * as S from '../../styles'\n\nconst EMPTY_EDITORIAL_CONTENT = []\nconst EMPTY_THEME = {}\n\nconst getProperties = (content) => {\n const ctaLabel = getResourceWithLanguage(content.cta_label)\n const image = getResourceUrl(content.image)\n const text = getResourceWithLanguage(content.description)\n const title = getResourceWithLanguage(content.name)\n\n let videoHtml\n if (content.video) {\n videoHtml = ``\n }\n\n return {\n ctaLabel,\n id: content.id,\n image,\n text,\n title,\n url: content.url,\n videoHtml,\n }\n}\n\nconst EditorialContent = ({\n channelSlug = 'channel',\n editorialContent = EMPTY_EDITORIAL_CONTENT,\n partnerOwnerId,\n partnerSlug,\n theme = EMPTY_THEME,\n}) => {\n if (!editorialContent || editorialContent.length < 1) {\n return null\n }\n\n if (editorialContent.length === 1) {\n const { ctaLabel, image, text, title, url: ctaLink, videoHtml } = getProperties(editorialContent[0])\n\n return (\n \n \n \n )\n }\n\n const nodes = editorialContent.map((content, index) => {\n const { ctaLabel, id, image, text, title, url: ctaLink, videoHtml } = getProperties(content)\n\n return (\n \n \n \n )\n })\n\n return (\n \n {nodes}\n \n )\n}\n\nEditorialContent.propTypes = {\n channelSlug: PropTypes.string,\n editorialContent: PropTypes.arrayOf(editorialContentShape),\n partnerOwnerId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n partnerSlug: PropTypes.string,\n theme: PropTypes.shape({}),\n}\n\nexport default EditorialContent\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nimport { t, tc } from '@owl-nest/localize'\nimport { DropdownFilter, LoadMoreButton, Icon } from '@ulule/owl-kit-components'\n\nimport { projectShape } from '$utils/prop-types'\n\nimport ProjectList from '$components/ProjectsList/ProjectsList'\nimport SortingBar from '$features/discover/components/sortingbar'\nimport { withProjectResults, DEFAULT_LIMIT } from '$hocs/ProjectSearchResults'\n\nimport * as S from '../../styles'\n\nconst CURRENCY_RATES = window.CURRENCIES && { ...window.CURRENCIES.RATES }\nconst { noResults: NO_RESULTS_IMAGE, remindMe: REMIND_ME_IMAGE } = { ...window.CHANNEL_PAGE_TAGGED_PROJECTS_ASSETS }\nconst EMPTY_FILTERS = {}\nconst EMPTY_RESULTS = []\n\nconst TaggedProjectList = ({\n channelName,\n currentFilters = EMPTY_FILTERS,\n currentCurrency,\n currentLanguage,\n currentSorting = null,\n errorFetchingMore = false,\n filters = [],\n isFetching = true,\n isFetchingMore = false,\n loadMoreProjects,\n moreProjectsToFetch = false,\n noProjectWithInitialParams = false,\n projectCount = 0,\n results = EMPTY_RESULTS,\n sorting,\n updateFilter,\n updateSorting,\n userIsAuthenticated = false,\n}) => {\n return noProjectWithInitialParams ? null : (\n \n \n updateSorting({ value })}\n withBigTitle\n />\n {\n updateFilter(filters[0].name, event.target.value)\n }}\n options={filters[0].options}\n useDefault\n value={currentFilters.statuses[0]}\n />\n \n\n {!projectCount && !isFetching ? (\n \n
\n \n {tc('[strong: No results]. We invite you to change your search criteria.', { strong: })}\n \n updateFilter('statuses', 'all')}>\n \n {t('Reinitialize filters')}\n \n \n ) : (\n \n \n \n )}\n\n {moreProjectsToFetch && (\n \n \n \n )}\n \n )\n}\n\nTaggedProjectList.propTypes = {\n channelName: PropTypes.string.isRequired,\n currentFilters: PropTypes.objectOf(PropTypes.array),\n currentCurrency: PropTypes.string.isRequired,\n currentLanguage: PropTypes.string.isRequired,\n currentSorting: PropTypes.string,\n errorFetchingMore: PropTypes.bool,\n filters: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n options: PropTypes.arrayOf(PropTypes.shape({})),\n position: PropTypes.number,\n }),\n ).isRequired,\n isFetching: PropTypes.bool,\n isFetchingMore: PropTypes.bool,\n loadMoreProjects: PropTypes.func.isRequired,\n moreProjectsToFetch: PropTypes.bool,\n noProjectWithInitialParams: PropTypes.bool,\n projectCount: PropTypes.number,\n results: PropTypes.arrayOf(projectShape),\n sorting: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n }),\n ).isRequired,\n updateFilter: PropTypes.func.isRequired,\n updateSorting: PropTypes.func.isRequired,\n userIsAuthenticated: PropTypes.bool,\n}\n\nexport default withProjectResults(TaggedProjectList)\n","import React from 'react'\nimport { styled } from 'next-yak'\nimport { PropTypes } from 'prop-types'\n\nimport { t } from '@owl-nest/localize'\nimport * as plume from '@ulule/owl-kit-components/next'\n\n//! Button glyphs\nconst InactiveHeart = styled(plume.glyphs.stroke.Heart)`\n position: relative;\n top: 1px;\n`\nconst ActiveHeart = styled(plume.glyphs.fill.Heart)`\n position: relative;\n top: 1px;\n`\nconst Label = styled.span`\n margin-right: 2px;\n`\n\nconst ChannelSubButton = ({ isActive, onClick }) => {\n const subscribe = t('Subscribe')\n const unsubscribe = t('Unsubscribe')\n const subscribed = t('Subscribed')\n\n return (\n \n \n \n >\n ),\n inactiveHover: (\n <>\n \n \n >\n ),\n active: (\n <>\n \n \n >\n ),\n activeHover: <>{unsubscribe}>,\n }}\n />\n )\n}\nChannelSubButton.propTypes = {\n isActive: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired,\n}\nexport default ChannelSubButton\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\n\nimport { t, tc } from '@owl-nest/localize'\nimport { LoadMoreButton } from '@ulule/owl-kit-components'\n\nimport { listPartnerProjects } from '$redux/actions/partner'\nimport { projectShape, userShape } from '$utils/prop-types'\n\nimport { editorialContentShape } from '../../prop-types'\n\nimport BigProjectCard from '$components/BigProjectCard/BigProjectCard'\nimport EditorialContent from '../components/EditorialContent'\nimport ProjectList from '$components/ProjectsList/ProjectsList'\nimport SponsorshipTracker from '$components/SponsorshipTracker/SponsorshipTracker'\nimport TaggedProjectList from '../components/TaggedProjectList'\n\nimport ChannelSubButton from '$components/ChannelSubButton'\n\nimport * as S from '../../styles'\n\nconst CURRENCY_RATES = window.CURRENCIES && { ...window.CURRENCIES.RATES }\nconst { remindMe: REMIND_ME_IMAGE } = { ...window.CHANNEL_PAGE_TAGGED_PROJECTS_ASSETS }\nconst URLS = { ...window.UFE.urls }\nconst EMPTY_EDITORIAL_CONTENT = []\nconst EMPTY_SPONSORED_PROJECTS = []\nconst EMPTY_THEME = {}\nconst NOOP = () => {}\n\nconst Partner = ({\n channelDescription = null,\n channelName,\n channelOwnerProfileURL,\n channelSlug,\n ctaLabel = null,\n ctaUrl = null,\n currentCurrency,\n currentLanguage,\n currentUser,\n editorialContent = EMPTY_EDITORIAL_CONTENT,\n featuredProject = null,\n initialSearchSettings,\n isSelectionFirst,\n listProjects = NOOP,\n meta = null,\n partnerLogo,\n partnerName,\n partnerOwnerId,\n partnerSlug,\n sponsoredProjects = EMPTY_SPONSORED_PROJECTS,\n sponsoredProjectsAreLoading = true,\n taggedProjectsData,\n isSubscribed,\n handleSubscription,\n theme = EMPTY_THEME,\n}) => {\n React.useEffect(() => {\n listProjects()\n }, [])\n\n const taggedProjectsNode = (\n \n \n \n )\n\n const sponsorProjectNode = (\n \n \n {tc('[em: %(channelName)s] prizewinners', {\n em: ,\n channelName,\n })}\n \n\n \n \n \n\n {meta && meta.next && (\n \n listProjects(meta.next)}\n translations={{\n initialLabel: t('More projects'),\n errorLabel: t('Retry'),\n }}\n />\n \n )}\n \n )\n\n const hasSponsorProjects = sponsoredProjectsAreLoading || (sponsoredProjects && sponsoredProjects.length > 0)\n\n const taggedProjectsOnFeaturePosition =\n !featuredProject && taggedProjectsData && (!isSelectionFirst || (isSelectionFirst && !hasSponsorProjects))\n const taggedProjectsOnFirstPosition =\n taggedProjectsData &&\n ((!isSelectionFirst && featuredProject) ||\n (isSelectionFirst && ((!featuredProject && hasSponsorProjects) || (featuredProject && !hasSponsorProjects))))\n const taggedrojectsOnLastPosition = isSelectionFirst && featuredProject && hasSponsorProjects && taggedProjectsData\n\n const sponsorProjectsOnFeaturePosition = isSelectionFirst && !featuredProject && hasSponsorProjects\n const sponsorProjectsOnFirstPosition = isSelectionFirst && featuredProject && hasSponsorProjects\n const sponsorProjectsOnLastPosition = !isSelectionFirst && hasSponsorProjects\n\n const dataUTMPageContext = { isFeaturedProject: true, type: 'channel', value: channelName }\n\n return (\n <>\n \n \n handleSubscription()} />\n \n \n \n {featuredProject && (\n \n )}\n {taggedProjectsOnFeaturePosition && taggedProjectsNode}\n {sponsorProjectsOnFeaturePosition && sponsorProjectNode}\n \n\n \n \n \n {t('With the support of')}\n \n \n \n \n \n {channelDescription && (\n \n )}\n {ctaUrl && (\n \n \n {ctaLabel || t('Learn more')}\n \n \n )}\n \n \n \n \n\n {taggedProjectsOnFirstPosition && taggedProjectsNode}\n {sponsorProjectsOnFirstPosition && sponsorProjectNode}\n \n\n \n \n\n {taggedrojectsOnLastPosition && taggedProjectsNode}\n {sponsorProjectsOnLastPosition && sponsorProjectNode}\n \n >\n )\n}\n\nPartner.propTypes = {\n channelDescription: PropTypes.string,\n channelName: PropTypes.string.isRequired,\n channelOwnerProfileURL: PropTypes.string.isRequired,\n channelSlug: PropTypes.string.isRequired,\n ctaLabel: PropTypes.string,\n ctaUrl: PropTypes.string,\n currentCurrency: PropTypes.string.isRequired,\n currentLanguage: PropTypes.string.isRequired,\n currentUser: userShape.isRequired,\n editorialContent: PropTypes.arrayOf(editorialContentShape),\n featuredProject: projectShape,\n initialSearchSettings: PropTypes.shape({\n taggedProjects: PropTypes.shape({\n filters: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string]))),\n sorting: PropTypes.string,\n }),\n }).isRequired,\n listProjects: PropTypes.func,\n meta: PropTypes.shape({\n limit: PropTypes.number,\n next: PropTypes.string,\n offset: PropTypes.number,\n total_count: PropTypes.number,\n }),\n partnerLogo: PropTypes.string.isRequired,\n partnerName: PropTypes.string.isRequired,\n partnerOwnerId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n partnerSlug: PropTypes.string.isRequired,\n sponsoredProjects: PropTypes.arrayOf(projectShape),\n sponsoredProjectsAreLoading: PropTypes.bool,\n taggedProjectsData: PropTypes.shape({\n filters: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n options: PropTypes.arrayOf(PropTypes.shape({})),\n position: PropTypes.number,\n }),\n ).isRequired,\n projects: PropTypes.arrayOf(PropTypes.number),\n sorting: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string,\n }),\n ).isRequired,\n }).isRequired,\n isSubscribed: PropTypes.bool.isRequired,\n handleSubscription: PropTypes.func.isRequired,\n theme: PropTypes.shape({}),\n}\n\nconst mapStateToProps = (state) => ({\n meta: state.partners.meta,\n sponsoredProjects: state.partners.list,\n sponsoredProjectsAreLoading: state.partners.isLoading,\n})\n\nconst mapDispatchToProps = (dispatch, ownProps) => ({\n listProjects: (next = null) => {\n const { currentUser, partnerSlug } = ownProps\n const withAccessToken = currentUser && currentUser.is_authenticated\n const extraFields = withAccessToken ? 'user_role' : null\n const isWinner = true\n const status = 'online'\n\n dispatch(listPartnerProjects({ extraFields, next, partnerSlug, withAccessToken, isWinner, status }))\n },\n})\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Partner)\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nimport { t, tc } from '@owl-nest/localize'\nimport { LoadMoreButton } from '@ulule/owl-kit-components'\n\nimport { projectShape } from '$utils/prop-types'\n\nimport ProjectList from '$components/ProjectsList/ProjectsList'\nimport { withProjectResults } from '$hocs/ProjectSearchResults'\n\nimport * as S from '../../styles'\n\nconst CURRENCY_RATES = window.CURRENCIES && { ...window.CURRENCIES.RATES }\nconst { remindMe: REMIND_ME_IMAGE } = { ...window.CHANNEL_PAGE_TAGGED_PROJECTS_ASSETS }\nconst EMPTY_RESULTS = []\nconst NOOP = () => {}\n\nconst CuratedProjectList = ({\n channelName,\n currentCurrency,\n currentLanguage,\n isFetching = true,\n limit = 9,\n loadMoreProjects = NOOP,\n moreProjectsToFetch = false,\n results = EMPTY_RESULTS,\n userIsAuthenticated = false\n}) => {\n return !isFetching && !results.length ? null : (\n \n \n {tc('The [em: %(channelName)s] selection', {\n em: ,\n channelName\n })}\n \n\n \n \n \n\n {moreProjectsToFetch && (\n \n \n \n )}\n \n )\n}\n\nCuratedProjectList.propTypes = {\n channelName: PropTypes.string.isRequired,\n currentCurrency: PropTypes.string.isRequired,\n currentLanguage: PropTypes.string.isRequired,\n isFetching: PropTypes.bool,\n limit: PropTypes.number,\n loadMoreProjects: PropTypes.func,\n moreProjectsToFetch: PropTypes.bool,\n results: PropTypes.arrayOf(projectShape),\n userIsAuthenticated: PropTypes.bool\n}\n\nexport default withProjectResults(CuratedProjectList)\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nimport { t } from '@owl-nest/localize'\nimport { Avatar, Tag } from '@ulule/owl-kit-components'\n\nimport { getLabel } from '$models/profile'\nimport { getResourceUrl } from '$models/resources'\nimport { getFullName } from '$models/user'\nimport { projectShape, userShape } from '$utils/prop-types'\n\nimport { editorialContentShape } from '../../prop-types'\n\nimport BigProjectCard from '$components/BigProjectCard/BigProjectCard'\nimport CuratedProjectList from '../components/CuratedProjectList'\nimport EditorialContent from '../components/EditorialContent'\nimport TaggedProjectList from '../components/TaggedProjectList'\n\nimport ChannelSubButton from '$components/ChannelSubButton'\n\nimport * as S from '../../styles'\n\nconst CURRENCY_RATES = window.CURRENCIES && { ...window.CURRENCIES.RATES }\nconst { remindMe: REMIND_ME_IMAGE } = { ...window.CHANNEL_PAGE_TAGGED_PROJECTS_ASSETS }\nconst URLS = { ...window.UFE.urls }\nconst EMPTY_EDITORIAL_CONTENT = []\nconst EMPTY_THEME = {}\n\nconst UserChannel = ({\n channelDescription = null,\n channelName,\n channelOwner,\n ctaLabel = null,\n ctaUrl = null,\n currentCurrency,\n currentLanguage,\n currentUser,\n editorialContent = EMPTY_EDITORIAL_CONTENT,\n featuredProject,\n initialSearchSettings,\n taggedProjectsData = null,\n isSubscribed,\n handleSubscription,\n theme = EMPTY_THEME,\n}) => {\n const label = channelOwner && getLabel(channelOwner)\n const { absolute_url: channelOwnerProfileURL } = channelOwner\n const dataUTMPageContext = { isFeaturedProject: true, type: 'channel', value: channelName }\n\n return (\n <>\n \n \n handleSubscription()} />\n \n \n {featuredProject && (\n \n \n \n )}\n\n \n \n \n {t('Curated by')}\n \n \n \n \n {channelOwner && getFullName(channelOwner, true)}\n \n \n {label && {label.name}}\n \n {channelDescription && (\n \n )}\n {ctaUrl && (\n \n {ctaLabel || t('Learn more')}\n \n )}\n \n \n \n \n\n \n \n\n {/* TODO: Newsletter section */}\n\n \n \n \n\n \n {taggedProjectsData && (\n \n \n \n )}\n \n >\n )\n}\n\nUserChannel.propTypes = {\n channelDescription: PropTypes.string,\n channelName: PropTypes.string.isRequired,\n channelOwner: userShape.isRequired,\n ctaLabel: PropTypes.string,\n ctaUrl: PropTypes.string,\n currentCurrency: PropTypes.string.isRequired,\n currentLanguage: PropTypes.string.isRequired,\n currentUser: userShape.isRequired,\n editorialContent: PropTypes.arrayOf(editorialContentShape),\n featuredProject: projectShape.isRequired,\n initialSearchSettings: PropTypes.shape({\n curatedProjects: PropTypes.shape({\n filters: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string]))),\n sorting: PropTypes.string,\n }),\n taggedProjects: PropTypes.shape({\n filters: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string]))),\n sorting: PropTypes.string,\n }),\n }).isRequired,\n taggedProjectsData: PropTypes.shape({\n filters: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n options: PropTypes.arrayOf(PropTypes.shape({})),\n position: PropTypes.number,\n }),\n ).isRequired,\n projects: PropTypes.arrayOf(PropTypes.number),\n sorting: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string,\n }),\n ).isRequired,\n }),\n isSubscribed: PropTypes.bool.isRequired,\n handleSubscription: PropTypes.func.isRequired,\n theme: PropTypes.shape({}),\n}\n\nexport default UserChannel\n","import React from 'react'\n\nimport { getCurrentLanguage, getDefaultLanguage } from '$features/init/language'\n\nexport const UserSettingsContext = React.createContext({\n currentCountry: window.UFE.country,\n currentCurrency: window.CURRENCIES.CURRENT,\n currentLanguage: getCurrentLanguage() || getDefaultLanguage(),\n currentUser: window.UFE.user\n})\n","import React from 'react'\nimport { PropTypes } from 'prop-types'\nimport { styled } from 'next-yak'\n\nimport { t, tc } from '@owl-nest/localize'\nimport * as plume from '@ulule/owl-kit-components/next'\n\nconst ModalChannelNoAuth = ({ open, onClose }) => (\n }\n svgScale={0.8}\n >\n {t('Subscribe to this channel')}\n \n {tc(\n \"[login: Login] to your Ulule account to follow this channel.[br] You don't have an account yet ? [br][signup: Signup].\",\n {\n login: ,\n signup: ,\n br:
,\n },\n )}\n \n \n)\n\nModalChannelNoAuth.propTypes = {\n open: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n}\n\nconst ModalWithIcon = styled(plume.ModalWithIcon)`\n ${plume.ModalIconWrapper} {\n background-color: ${plume.COLORS.PRIMARY_BLUE_500};\n }\n`\n\nconst Title = styled(plume.styles.heading.XXS)`\n margin-bottom: 10px;\n margin-top: 10px;\n text-align: center;\n`\n\nconst Text = styled(plume.styles.copy.S.regular)`\n display: block;\n text-align: center;\n`\n\nexport default ModalChannelNoAuth\n","import React from 'react'\nimport { PropTypes } from 'prop-types'\nimport { styled } from 'next-yak'\n\nimport { t } from '@owl-nest/localize'\nimport * as plume from '@ulule/owl-kit-components/next'\n\nconst ModalChannelSuccess = ({ open, onClose }) => (\n }\n svgScale={0.825}\n buttons={{\n type: 'button',\n props: {\n onClick: onClose,\n children: t('Ok, thanks'),\n },\n }}\n >\n {t(\"You're subscribed!\")}\n {t('You will receive by e-mail once a week the new projects added to this channel.')}\n \n)\nModalChannelSuccess.propTypes = {\n open: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n}\n\nconst ModalWithIcon = styled(plume.ModalWithIcon)`\n ${plume.ModalIconWrapper} {\n background-color: ${plume.COLORS.PRIMARY_BLUE_500};\n }\n`\n\nconst Title = styled(plume.styles.heading.XXS)`\n margin-bottom: 10px;\n margin-top: 10px;\n text-align: center;\n`\nconst Text = styled(plume.styles.copy.S.regular)`\n display: block;\n text-align: center;\n`\n\nexport default ModalChannelSuccess\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { YakThemeProvider } from 'next-yak'\n\nimport { COLORS } from '@ulule/owl-kit-components'\n\nimport { getResourceUrl } from '$models/resources'\nimport { projectShape, userShape } from '$utils/prop-types'\n\nimport { editorialContentShape } from '../prop-types'\n\nimport PartnerChannelView from './views/Partner'\nimport UserChannelView from './views/User'\n\nimport * as S from '../styles'\n\nimport { UserSettingsContext } from '../context'\n\nimport { subscribeChannel, openNoAuth, closeModals } from '$redux/actions/channels'\n\nimport ModalChannelNoAuth from '../components/ModalChannelNoAuth'\nimport ModalChannelSuccess from '../components/ModalChannelSuccess'\n\nconst SEARCH_DATA = { ...window.CHANNEL_PAGE_SEARCH_DATA }\nconst EMPTY_CHANNEL = {}\n\nconst ChannelPage = ({\n channel = EMPTY_CHANNEL,\n showFirstTime,\n showNoAuth,\n subscribeChannel,\n openNoAuth,\n closeModals,\n}) => {\n const {\n accent_color: accentColor,\n background,\n bg_color: bgColor,\n cta_description: ctaLabel,\n cta_url: ctaUrl,\n description,\n featured_project: featuredProject,\n id,\n is_subscribed: isSubscribed,\n links,\n name,\n partner: channelPartner,\n selection_first: isSelectionFirst,\n slug,\n title,\n user: channelOwner,\n } = channel\n\n const initialSearchSettings = {\n partner: {\n taggedProjects: {\n filters: {\n channels: [id],\n statuses: ['all'],\n },\n ignoreQueryParams: false,\n sorting: 'new',\n },\n curatedProjects: {\n filters: {\n channels: [id],\n statuses: ['all'],\n },\n ignoreQueryParams: true,\n sorting: 'position',\n },\n },\n user: {\n taggedProjects: {\n filters: {\n channels: [id],\n statuses: ['all'],\n },\n ignoreQueryParams: false,\n sorting: 'popular',\n },\n curatedProjects: {\n filters: {\n channels: [id],\n statuses: ['all'],\n },\n ignoreQueryParams: true,\n sorting: 'position',\n },\n },\n }\n\n const theme = {\n colors: {\n accent: accentColor,\n primary: bgColor || COLORS.PRIMARY_BLUE_500,\n },\n layout: {\n isLarge: !featuredProject,\n },\n }\n\n const titleImage = getResourceUrl(title)\n\n const context = React.useContext(UserSettingsContext)\n\n const isAuth = context.currentUser && context.currentUser.is_authenticated\n\n const handleSubscription = isAuth ? () => subscribeChannel(id, isSubscribed) : () => openNoAuth()\n\n return (\n \n <>\n closeModals()} />\n closeModals()} />\n \n \n \n {titleImage ? (\n \n ) : (\n {name}\n )}\n \n \n {channelPartner ? (\n \n ) : (\n \n )}\n >\n \n )\n}\n\nChannelPage.propTypes = {\n channel: PropTypes.shape({\n accent_color: PropTypes.string,\n background: PropTypes.shape({\n versions: PropTypes.shape({\n full: PropTypes.shape({\n height: PropTypes.number,\n url: PropTypes.string,\n width: PropTypes.number,\n }),\n }),\n }),\n bg_color: PropTypes.string,\n cta_description: PropTypes.string,\n description: PropTypes.string,\n featured_project: projectShape,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n is_subscribed: PropTypes.boolean,\n links: PropTypes.arrayOf(editorialContentShape),\n name: PropTypes.string.isRequired,\n partner: PropTypes.shape({\n name: PropTypes.string,\n }),\n title: PropTypes.shape({\n value: PropTypes.string.isRequired,\n versions: PropTypes.shape({\n full: PropTypes.shape({\n height: PropTypes.string,\n url: PropTypes.string.isRequired,\n width: PropTypes.string,\n }).isRequired,\n }),\n }),\n user: userShape.isRequired,\n }),\n}\n\nconst mapStateToProps = (state) => ({\n channel: state.channels.detail.channel,\n error: state.channels.detail.error,\n isLoading: state.channels.detail.isLoading,\n showFirstTime: state.channels.detail.showFirstTime,\n showNoAuth: state.channels.detail.showNoAuth,\n})\n\nconst mapDispatchToProps = (dispatch) => ({\n subscribeChannel(id, isSubscribed) {\n dispatch(subscribeChannel(id, isSubscribed, true))\n },\n openNoAuth() {\n dispatch(openNoAuth())\n },\n closeModals() {\n dispatch(closeModals())\n },\n})\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ChannelPage)\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nimport { t } from '@owl-nest/localize'\n\nimport * as S from '../styles'\n\nexport const TvBox = ({ channelTvImages }) => (\n \n \n \n \n \n \n {t('A topic in mind?')}\n \n {t('Impactful and innovating projects selected for you, by you! Got a topic in mind?')}\n \n \n {t('Suggest a topic')}\n \n \n \n \n)\n\nTvBox.proptypes = {\n channelTvImages: PropTypes.shape({\n '1x': PropTypes.string.isRequired,\n '2x': PropTypes.string.isRequired,\n '3x': PropTypes.string.isRequired,\n }),\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nimport { t } from '@owl-nest/localize'\n\nimport { ChannelCard } from '@ulule/owl-kit-components/next'\nimport ChannelSubButton from '$components/ChannelSubButton'\n\nimport { getFullName } from '$models/user'\nimport { getResourceUrl, getResourceWithLanguage } from '$models/resources'\nimport { userShape } from '$utils/prop-types'\n\nimport { TvBox } from './TvBox'\nimport * as S from '../styles'\n\nconst EMPTY_CHANNELS = []\n\nexport const ChannelList = ({ channels = EMPTY_CHANNELS, lang, channelTvImages, subscribeChannel, openNoAuth }) => {\n const channelsLength = channels && channels.length\n const isAuthenticated = window.UFE.user.is_authenticated\n\n return (\n \n {channels &&\n channels.map((channel, index) => {\n const isPartner = channel && channel.partner && channel.partner.id\n const user = channel && channel.user\n const description = isPartner\n ? t('With the support of %(name)s', { name: getFullName(user, false) })\n : t('Curated by %(name)s', { name: getFullName(user, true) })\n\n const isActive = Boolean(channel?.user && channel?.is_subscribed)\n const onClick = () =>\n isAuthenticated\n ? subscribeChannel(channel && channel.id, channel && channel.user && channel.is_subscribed)\n : openNoAuth()\n\n if (channelsLength && channelsLength <= 9 && index + 1 === channelsLength) {\n return (\n \n \n }\n />\n \n\n toto\n \n )\n }\n\n if (channelsLength > 9 && index + 1 === 9) {\n return (\n \n \n }\n />\n \n\n toto\n \n )\n }\n\n return (\n \n }\n />\n \n )\n })}\n \n )\n}\n\nChannelList.propTypes = {\n openNoAuth: PropTypes.func.isRequired,\n subscribeChannel: PropTypes.func.isRequired,\n channels: PropTypes.arrayOf(\n PropTypes.shape({\n absolute_url: PropTypes.string,\n background: PropTypes.shape({\n value: PropTypes.string,\n versions: PropTypes.shape({\n full: PropTypes.shape({\n height: PropTypes.number,\n url: PropTypes.string,\n width: PropTypes.number,\n }),\n }),\n }),\n bg_color: PropTypes.string,\n created_at: PropTypes.string,\n cta_background: PropTypes.shape({\n value: PropTypes.string,\n versions: PropTypes.shape({\n full: PropTypes.shape({\n height: PropTypes.number,\n url: PropTypes.string,\n width: PropTypes.number,\n }),\n }),\n }),\n description: PropTypes.shape({\n en: PropTypes.string,\n es: PropTypes.string,\n fr: PropTypes.string,\n it: PropTypes.string,\n nl: PropTypes.string,\n }),\n id: PropTypes.number,\n is_subscribed: PropTypes.bool,\n name: PropTypes.shape({\n en: PropTypes.string,\n es: PropTypes.string,\n fr: PropTypes.string,\n it: PropTypes.string,\n nl: PropTypes.string,\n }),\n position: PropTypes.number,\n slug: PropTypes.string,\n updated_at: PropTypes.string,\n user: userShape,\n }),\n ),\n channelTvImages: PropTypes.shape({\n '1x': PropTypes.string.isRequired,\n '2x': PropTypes.string.isRequired,\n '3x': PropTypes.string.isRequired,\n }).isRequired,\n lang: PropTypes.string.isRequired,\n}\n","import React from 'react'\nimport { connect } from 'react-redux'\nimport PropTypes from 'prop-types'\n\nimport { t } from '@owl-nest/localize'\nimport { LoadMoreButton } from '@ulule/owl-kit-components'\n\nimport ModalChannelNoAuth from '../components/ModalChannelNoAuth'\nimport ModalChannelSuccess from '../components/ModalChannelSuccess'\n\nimport { getChannels, subscribeChannel, openNoAuth, closeModals } from '$redux/actions/channels'\n\nimport { userShape } from '$utils/prop-types'\n\nimport { ChannelList as Channels } from './List'\nimport * as S from '../styles'\n\nclass ChannelList extends React.Component {\n componentDidMount() {\n const { getChannels, channels, language, country } = this.props\n\n const isAuthenticated = window.UFE.user.is_authenticated\n\n if (!channels) {\n getChannels(language, country, 18, 'is_subscribed', isAuthenticated)\n }\n }\n\n handleLoadMore = () => {\n const { getChannels, meta, language, country } = this.props\n const next = meta && meta.next\n\n const isAuthenticated = window.UFE.user.is_authenticated\n\n getChannels(language, country, 18, 'is_subscribed', isAuthenticated, next)\n }\n\n render() {\n const {\n channels,\n channelTvImages,\n error,\n isLoadingChannels,\n language,\n meta,\n subscribeChannel,\n showFirstTime,\n showNoAuth,\n openNoAuth,\n closeModals,\n } = this.props\n\n return (\n <>\n closeModals()} />\n closeModals()} />\n \n \n {t('Thematic channels')}\n \n {t(\n 'From local to global, from niche edition to upcycled wonders, discover topics that shake, inspire and change our daily routines.',\n )}\n \n \n \n \n {channels && (\n \n )}\n {meta && meta.next && (\n \n \n \n )}\n \n >\n )\n }\n}\n\nChannelList.defaultProps = {\n channels: null,\n error: null,\n isLoadingChannels: false,\n meta: null,\n}\n\nChannelList.propTypes = {\n getChannels: PropTypes.func.isRequired,\n subscribeChannel: PropTypes.func.isRequired,\n showFirstTime: PropTypes.bool.isRequired,\n showNoAuth: PropTypes.bool.isRequired,\n closeModals: PropTypes.func.isRequired,\n openNoAuth: PropTypes.func.isRequired,\n channels: PropTypes.arrayOf(\n PropTypes.shape({\n absolute_url: PropTypes.string,\n background: PropTypes.shape({\n value: PropTypes.string,\n versions: PropTypes.shape({\n full: PropTypes.shape({\n height: PropTypes.number,\n url: PropTypes.string,\n width: PropTypes.number,\n }),\n }),\n }),\n bg_color: PropTypes.string,\n created_at: PropTypes.string,\n cta_background: PropTypes.shape({\n value: PropTypes.string,\n versions: PropTypes.shape({\n full: PropTypes.shape({\n height: PropTypes.number,\n url: PropTypes.string,\n width: PropTypes.number,\n }),\n }),\n }),\n description: PropTypes.shape({\n en: PropTypes.string,\n es: PropTypes.string,\n fr: PropTypes.string,\n it: PropTypes.string,\n nl: PropTypes.string,\n }),\n id: PropTypes.number,\n is_subscribed: PropTypes.bool,\n name: PropTypes.shape({\n en: PropTypes.string,\n es: PropTypes.string,\n fr: PropTypes.string,\n it: PropTypes.string,\n nl: PropTypes.string,\n }),\n position: PropTypes.number,\n slug: PropTypes.string,\n updated_at: PropTypes.string,\n user: userShape,\n }),\n ),\n channelTvImages: PropTypes.shape({\n '1x': PropTypes.string.isRequired,\n '2x': PropTypes.string.isRequired,\n '3x': PropTypes.string.isRequired,\n }).isRequired,\n country: PropTypes.string.isRequired,\n error: PropTypes.bool,\n isLoadingChannels: PropTypes.bool,\n language: PropTypes.string.isRequired,\n meta: PropTypes.shape({\n limit: PropTypes.number,\n next: PropTypes.string,\n offset: PropTypes.number,\n previous: PropTypes.string,\n total_count: PropTypes.number,\n }),\n}\n\nconst mapStateToProps = (state) => ({\n showFirstTime: state.channels.list.showFirstTime,\n showNoAuth: state.channels.list.showNoAuth,\n channels: state.channels.list.channels,\n error: state.channels.list.error,\n isLoadingChannels: state.channels.list.isLoadingChannels,\n meta: state.channels.list.meta,\n})\n\nconst mapDispatchToProps = (dispatch) => ({\n getChannels(language, country, limit, extraFields, isAuthenticated, next) {\n dispatch(getChannels(language, country, limit, extraFields, isAuthenticated, next))\n },\n subscribeChannel(id, isSubscribed) {\n dispatch(subscribeChannel(id, isSubscribed))\n },\n openNoAuth() {\n dispatch(openNoAuth())\n },\n closeModals() {\n dispatch(closeModals())\n },\n})\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ChannelList)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Route, Routes } from 'react-router'\n\nimport config from '$utils/config'\n\nimport ChannelDetail from './detail'\nimport ChannelList from './list'\n\nconfig.set({\n ...window.CHANNEL_LIST_DATA,\n channel: window.CHANNEL_DATA,\n})\n\nconst Router = ({ country, language }) => {\n const channelTvImages = config.get('channelImg')\n\n return (\n \n }\n />\n } />\n \n )\n}\n\nRouter.propTypes = {\n country: PropTypes.string.isRequired,\n language: PropTypes.string.isRequired,\n}\n\nexport default Router\n","import * as React from 'react'\nimport * as ReactDOM from 'react-dom/client'\nimport { Provider } from 'react-redux'\nimport { BrowserRouter as Router } from 'react-router'\n\nimport { getCurrentLanguage, getDefaultLanguage } from '$features/init/language'\n\nimport store from './store'\n\nimport ChannelRouter from './Router'\n\nconst Channel = (language, country) => {\n const container = document.querySelector('#js-channels-app')\n\n const root = ReactDOM.createRoot(container)\n root.render(\n \n \n \n \n ,\n )\n}\n\nwindow.addEventListener('js:location:loaded', (event) => {\n const currentLocation = event.detail\n const currentCountryCode =\n currentLocation && currentLocation.country_code ? currentLocation.country_code : window.UFE.defaultCountry\n\n const currentLanguage = getCurrentLanguage() || getDefaultLanguage()\n\n Channel(currentLanguage, currentCountryCode)\n})\n"],"mappings":"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"}