{
"version": 3,
"sources": ["../../../../../../internal/esbuild/entrypoints/modern/classic/channels.ts", "sentry-debug-id-stub:_sentry-debug-id-injection-stub?sentry-module-id=55d43067-149f-484a-9fd0-c5d086d7fdff", "../../../../../../internal/esbuild/entrypoints/modern/classic/channels.ts", "../../src/modern/features/channel/index.js", "../../src/modern/features/channel/store.js", "../../src/modern/redux/reducers/channels.js", "../../src/modern/redux/actions/channels.js", "../../src/modern/features/channel/Router.js", "../../src/modern/features/channel/detail/index.js", "../../src/modern/features/channel/prop-types.js", "../../src/modern/features/channel/detail/views/Partner.js", "../../src/modern/components/BigProjectCard/BigProjectCard.js", "../../src/modern/features/channel/detail/components/EditorialContent.js", "../../src/modern/features/channel/detail/components/ThemedCard/index.js", "../../src/modern/features/channel/detail/components/ThemedCard/styles.js", "../../src/modern/features/channel/styles.js", "../../src/modern/features/channel/detail/components/TaggedProjectList.js", "../../src/modern/components/ChannelSubButton.js", "../../src/modern/features/channel/detail/views/User.js", "../../src/modern/features/channel/detail/components/CuratedProjectList.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/list/index.js", "../../src/modern/features/channel/list/List.js", "../../src/modern/features/channel/list/TvBox.js"],
"sourcesContent": ["\n import \"_sentry-debug-id-injection-stub\";\n import * as OriginalModule from \"./internal/esbuild/entrypoints/modern/classic/channels.ts\";\n export default OriginalModule.default;\n export * from \"./internal/esbuild/entrypoints/modern/classic/channels.ts\";", "!function(){try{var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:{};var n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]=\"35f8d17d-bf1d-47f8-ada0-42d8e31b92c7\",e._sentryDebugIdIdentifier=\"sentry-dbid-35f8d17d-bf1d-47f8-ada0-42d8e31b92c7\");}catch(e){}}();", "import '../../../../../src/ulule/static/site/src/modern/features/init/index.js'\nimport '../../../../../src/ulule/static/site/src/modern/features/channel/index.js'\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-dom'\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", "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 { 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 { 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 React from 'react'\nimport PropTypes from 'prop-types'\nimport { Route, Routes } from 'react-router-dom'\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 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 }\n\nconst ChannelPage = ({ channel, showFirstTime, showNoAuth, subscribeChannel, openNoAuth, closeModals }) => {\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.defaultProps = {\n channel: {},\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 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'\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 }\n\nconst Partner = ({\n channelDescription,\n channelName,\n channelOwnerProfileURL,\n channelSlug,\n ctaLabel,\n ctaUrl,\n currentCurrency,\n currentLanguage,\n currentUser,\n editorialContent,\n featuredProject,\n initialSearchSettings,\n isSelectionFirst,\n listProjects,\n meta,\n partnerLogo,\n partnerName,\n partnerOwnerId,\n partnerSlug,\n sponsoredProjects,\n sponsoredProjectsAreLoading,\n taggedProjectsData,\n isSubscribed,\n handleSubscription,\n 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.defaultProps = {\n channelDescription: null,\n ctaLabel: null,\n ctaUrl: null,\n editorialContent: [],\n featuredProject: null,\n listProjects: () => {},\n meta: null,\n sponsoredProjects: [],\n sponsoredProjectsAreLoading: true,\n theme: {},\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 { 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 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 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 = ({ channelSlug, editorialContent, partnerOwnerId, partnerSlug, theme }) => {\n if (!editorialContent || editorialContent.length < 1) return null\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.defaultProps = {\n channelSlug: 'channel',\n editorialContent: [],\n partnerOwnerId: undefined,\n partnerSlug: undefined,\n theme: {},\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'\nimport { YakThemeProvider } from 'next-yak'\n\nimport { Title1, VideoLoader } from '@ulule/owl-kit-components'\n\nimport * as S from './styles'\n\nconst ThemedCard = ({ ctaLabel, ctaLink, image, isVertical, text, theme, title, tracker, videoHtml }) => {\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.defaultProps = {\n ctaLabel: null,\n ctaLink: null,\n image: null,\n isVertical: false,\n text: null,\n theme: {},\n title: null,\n tracker: {\n element: React.Fragment,\n props: {},\n },\n videoHtml: null,\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 * 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 { 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 { 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 }\n\nconst TaggedProjectList = ({\n channelName,\n currentFilters,\n currentCurrency,\n currentLanguage,\n currentSorting,\n errorFetchingMore,\n filters = [],\n isFetching,\n isFetchingMore,\n loadMoreProjects,\n moreProjectsToFetch,\n noProjectWithInitialParams,\n projectCount,\n results,\n sorting,\n updateFilter,\n updateSorting,\n userIsAuthenticated,\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.defaultProps = {\n currentFilters: {},\n currentSorting: null,\n errorFetchingMore: false,\n isFetching: true,\n isFetchingMore: false,\n moreProjectsToFetch: false,\n noProjectWithInitialParams: false,\n projectCount: 0,\n results: [],\n userIsAuthenticated: false,\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'\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 }\n\nconst UserChannel = ({\n channelDescription,\n channelName,\n channelOwner,\n ctaLabel,\n ctaUrl,\n currentCurrency,\n currentLanguage,\n currentUser,\n editorialContent,\n featuredProject,\n initialSearchSettings,\n taggedProjectsData,\n isSubscribed,\n handleSubscription,\n 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.defaultProps = {\n channelDescription: null,\n ctaLabel: null,\n ctaUrl: null,\n editorialContent: [],\n taggedProjectsData: null,\n theme: {},\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'\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 }\n\nconst CuratedProjectList = ({\n channelName,\n currentCurrency,\n currentLanguage,\n isFetching,\n limit,\n loadMoreProjects,\n moreProjectsToFetch,\n results,\n userIsAuthenticated\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.defaultProps = {\n isFetching: true,\n limit: 9,\n loadMoreProjects: () => {},\n moreProjectsToFetch: false,\n results: [],\n userIsAuthenticated: false\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'\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 { 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'\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\nexport const ChannelList = ({ 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.defaultProps = {\n channels: [],\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 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"],
"mappings": "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",
"names": ["init_define_process_env", "init_sentry_injection_stub", "init_define_process_env", "init_sentry_injection_stub", "n", "init_define_process_env", "init_sentry_injection_stub", "init_define_process_env", "init_sentry_injection_stub", "React", "ReactDOM", "init_define_process_env", "init_sentry_injection_stub", "init_define_process_env", "init_sentry_injection_stub", "init_define_process_env", "init_sentry_injection_stub", "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", "lang", "country", "limit", "extraFields", "isAuthenticated", "next", "GET_CHANNELS_REQUEST", "GET_CHANNELS_SUCCESS", "GET_CHANNELS_FAILURE", "api", "openNoAuth", "OPEN_NO_AUTH", "closeModals", "CLOSE_MODALS", "subscribeChannel", "id", "isSubscribed", "detailPage", "SUBSCRIBE_DETAIL_CHANNEL_REQUEST", "SUBSCRIBE_DETAIL_CHANNEL_SUCCESS", "SUBSCRIBE_DETAIL_CHANNEL_FAILURE", "SUBSCRIBE_CHANNEL_REQUEST", "SUBSCRIBE_CHANNEL_SUCCESS", "SUBSCRIBE_CHANNEL_FAILURE", "postRes", "initialState", "channelDetail", "state", "action", "GET_CHANNEL_REQUEST", "GET_CHANNEL_SUCCESS", "channel", "GET_CHANNEL_FAILURE", "error", "SUBSCRIBE_DETAIL_CHANNEL_REQUEST", "SUBSCRIBE_DETAIL_CHANNEL_SUCCESS", "isSubscribed", "response", "SUBSCRIBE_DETAIL_CHANNEL_FAILURE", "CLOSE_MODALS", "OPEN_NO_AUTH", "channelList", "GET_CHANNELS_SUCCESS", "channels", "meta", "GET_CHANNELS_REQUEST", "GET_CHANNELS_FAILURE", "SUBSCRIBE_CHANNEL_REQUEST", "SUBSCRIBE_CHANNEL_SUCCESS", "SUBSCRIBE_CHANNEL_FAILURE", "combineReducers", "config_default", "reducers", "combineReducers", "channels", "partner_default", "store_default", "createStore", "applyMiddleware", "thunk", "callAPIMiddleware", "init_define_process_env", "init_sentry_injection_stub", "import_react", "import_prop_types", "init_define_process_env", "init_sentry_injection_stub", "import_react", "import_prop_types", "init_define_process_env", "init_sentry_injection_stub", "import_prop_types", "editorialContentShape", "PropTypes", "init_define_process_env", "init_sentry_injection_stub", "import_react", "import_prop_types", "init_define_process_env", "init_sentry_injection_stub", "import_react", "import_prop_types", "USER_ROLE_STATUS", "LOCALSTORAGE_NAMESPACE", "COOKIE_MODAL_NAMESPACE", "getRelatedUserRole", "userRole", "t", "BigProjectCard", "React", "props", "project", "prevProps", "prevState", "status", "prevStatus", "isOpen", "isAuthenticated", "hasCookie", "get", "set", "event", "apiAction", "postAction", "newStatus", "updateUserRole", "saveAction", "endDate", "extraTime", "isFinished", "projectStatus", "isOnline", "countdownText", "getShortCountdown", "dataUTMPageContext", "progress", "getProgress", "isProjectFinished", "textFinishProject", "getFinishTrad", "action", "CardTypeSelector", "tn", "text_exports", "getComingSoonLabel", "ModalProjectRemindMe", "ModalProjectNoAuth", "dataUTMPageContextShape", "PropTypes", "projectShape", "BigProjectCard_default", "init_define_process_env", "init_sentry_injection_stub", "import_react", "import_prop_types", "init_define_process_env", "init_sentry_injection_stub", "import_react", "import_prop_types", "init_define_process_env", "init_sentry_injection_stub", "CardWrapper", "styled", "props", "theme", "isVertical", "css", "rem", "colors", "primary", "MediaWrapper", "OutlineButton", "ButtonAsLink", "attrs", "kind", "OutlineButtonVertical", "Text", "TextWrapper", "ThemedCard", "ctaLabel", "ctaLink", "image", "isVertical", "text", "theme", "title", "tracker", "videoHtml", "customizedTheme", "CtaComponent", "OutlineButtonVertical", "OutlineButton", "element", "Tracker", "props", "trackerProps", "React", "YakThemeProvider", "CardWrapper", "MediaWrapper", "VideoLoader", "placeholder", "img", "alt", "src", "TextWrapper", "Title1", "Text", "href", "target", "rel", "defaultProps", "Fragment", "propTypes", "PropTypes", "string", "bool", "shape", "elementType", "ThemedCard_default", "init_define_process_env", "init_sentry_injection_stub", "DEFAULT_GRID_BASIS", "LARGE_GRID_BASIS", "HEIGHT_SHIFT", "SPACING", "ChannelPageCover", "styled", "props", "theme", "colors", "accent", "primary", "rem", "background", "ChannelPageHeader", "ChannelPageTitleContainer", "layout", "isLarge", "ChannelPageLogo", "ChannelPageTitle", "ChannelPageCuratedProjects", "ChannelPageCuratedProjectsFooter", "ChannelPageEditorialContent", "listMode", "css", "ChannelPageFullWidthSection", "ChannelSubButton", "ChannelPageGutteredSection", "raised", "ChannelPageRightAside", "ChannelPageFeaturedContent", "ChannelPageFeaturedSection", "ChannelPageCuratedProjectList", "ChannelPageCuratedProjectsTitle", "Title1", "ChannelPageEditorialContentItem", "ChannelPageEditorialContentList", "itemCount", "ChannelPageOwnerCardTitle", "Title2", "ChannelPageOwnerCard", "ChannelPageOwnerCardDescription", "ChannelPageOwnerCardImage", "ChannelPagePartnerCard", "ChannelPagePartnerCardCTA", "CallToAction", "COLORS", "PRIMARY_BLUE_500", "ChannelPageTaggedProjects", "ChannelPageTaggedProjectsFooter", "ChannelPageTaggedProjectsHeader", "ChannelPageTaggedProjectList", "ChannelPageTaggedProjectsNoResults", "ChannelPageTaggedProjectsNoResultsText", "ChannelPageTaggedProjectsResetFilters", "SecondaryLink", "ChannelPageUserCard", "ChannelPageUserCardLabel", "ChannelPageUserCardName", "ChannelPageUserCardProfileLink", "ChannelHeader", "ChannelContainer", "ChannelTitle", "ChannelSubtitle", "RegularText", "ChannelWrapper", "ChannelList", "ChannelItem", "ChannelCTAWrapper", "ChannelTvBoxWrapper", "ChannelTvBoxContainer", "ChannelTvBoxImgWrapper", "ChannelTvBoxImg", "ChannelTvBoxContent", "ChannelTvBoxTitle", "Title5", "ChannelTvBoxText", "ChannelTvBoxCTAWrapper", "ChannelTvBoxCTA", "getProperties", "content", "ctaLabel", "getResourceWithLanguage", "image", "getResourceUrl", "text", "title", "videoHtml", "EditorialContent", "channelSlug", "editorialContent", "partnerOwnerId", "partnerSlug", "theme", "ctaLink", "React", "ChannelPageEditorialContent", "ThemedCard_default", "SponsorshipTracker_default", "nodes", "index", "id", "ChannelPageEditorialContentItem", "ChannelPageEditorialContentList", "PropTypes", "editorialContentShape", "EditorialContent_default", "init_define_process_env", "init_sentry_injection_stub", "import_react", "import_prop_types", "CURRENCY_RATES", "NO_RESULTS_IMAGE", "REMIND_ME_IMAGE", "TaggedProjectList", "channelName", "currentFilters", "currentCurrency", "currentLanguage", "currentSorting", "errorFetchingMore", "filters", "isFetching", "isFetchingMore", "loadMoreProjects", "moreProjectsToFetch", "noProjectWithInitialParams", "projectCount", "results", "sorting", "updateFilter", "updateSorting", "userIsAuthenticated", "React", "ChannelPageTaggedProjectsHeader", "sortingbar_default", "value", "DropdownFilter_default", "event", "ChannelPageTaggedProjectsNoResults", "t", "ChannelPageTaggedProjectsNoResultsText", "tc", "ChannelPageTaggedProjectsResetFilters", "Icon_default", "ChannelPageTaggedProjectList", "ProjectsList_default", "DEFAULT_LIMIT", "ChannelPageTaggedProjectsFooter", "LoadMoreButton_default", "PropTypes", "projectShape", "TaggedProjectList_default", "withProjectResults", "init_define_process_env", "init_sentry_injection_stub", "import_react", "import_prop_types", "InactiveHeart", "styled", "glyphs", "stroke", "Heart", "ActiveHeart", "fill", "Label", "ChannelSubButton", "isActive", "onClick", "subscribe", "t", "unsubscribe", "subscribed", "React", "ActionButton", "active", "contents", "inactive", "inactiveHover", "activeHover", "propTypes", "PropTypes", "bool", "isRequired", "func", "ChannelSubButton_default", "CURRENCY_RATES", "REMIND_ME_IMAGE", "URLS", "Partner", "channelDescription", "channelName", "channelOwnerProfileURL", "channelSlug", "ctaLabel", "ctaUrl", "currentCurrency", "currentLanguage", "currentUser", "editorialContent", "featuredProject", "initialSearchSettings", "isSelectionFirst", "listProjects", "meta", "partnerLogo", "partnerName", "partnerOwnerId", "partnerSlug", "sponsoredProjects", "sponsoredProjectsAreLoading", "taggedProjectsData", "isSubscribed", "handleSubscription", "theme", "React", "taggedProjectsNode", "ChannelPageTaggedProjects", "TaggedProjectList_default", "sponsorProjectNode", "ChannelPageCuratedProjects", "ChannelPageCuratedProjectsTitle", "tc", "ChannelPageCuratedProjectList", "ProjectsList_default", "ChannelPageCuratedProjectsFooter", "LoadMoreButton_default", "t", "hasSponsorProjects", "taggedProjectsOnFeaturePosition", "taggedProjectsOnFirstPosition", "taggedrojectsOnLastPosition", "sponsorProjectsOnFeaturePosition", "sponsorProjectsOnFirstPosition", "sponsorProjectsOnLastPosition", "ChannelPageGutteredSection", "ChannelSubButton", "ChannelSubButton_default", "ChannelPageFeaturedSection", "ChannelPageFeaturedContent", "BigProjectCard_default", "ChannelPageRightAside", "ChannelPageOwnerCard", "ChannelPagePartnerCard", "ChannelPageOwnerCardTitle", "SponsorshipTracker_default", "ChannelPageOwnerCardImage", "ChannelPageOwnerCardDescription", "ChannelPagePartnerCardCTA", "ChannelPageFullWidthSection", "EditorialContent_default", "PropTypes", "userShape", "editorialContentShape", "projectShape", "mapStateToProps", "state", "mapDispatchToProps", "dispatch", "ownProps", "next", "withAccessToken", "listPartnerProjects", "Partner_default", "connect_default", "init_define_process_env", "init_sentry_injection_stub", "import_react", "import_prop_types", "init_define_process_env", "init_sentry_injection_stub", "import_react", "import_prop_types", "CURRENCY_RATES", "REMIND_ME_IMAGE", "CuratedProjectList", "channelName", "currentCurrency", "currentLanguage", "isFetching", "limit", "loadMoreProjects", "moreProjectsToFetch", "results", "userIsAuthenticated", "React", "ChannelPageCuratedProjects", "ChannelPageCuratedProjectsTitle", "tc", "ChannelPageCuratedProjectList", "ProjectsList_default", "ChannelPageCuratedProjectsFooter", "LoadMoreButton_default", "t", "PropTypes", "projectShape", "CuratedProjectList_default", "withProjectResults", "CURRENCY_RATES", "REMIND_ME_IMAGE", "URLS", "UserChannel", "channelDescription", "channelName", "channelOwner", "ctaLabel", "ctaUrl", "currentCurrency", "currentLanguage", "currentUser", "editorialContent", "featuredProject", "initialSearchSettings", "taggedProjectsData", "isSubscribed", "handleSubscription", "theme", "label", "getLabel", "channelOwnerProfileURL", "React", "ChannelPageGutteredSection", "ChannelSubButton", "ChannelSubButton_default", "ChannelPageFeaturedSection", "ChannelPageFeaturedContent", "BigProjectCard_default", "t", "ChannelPageRightAside", "ChannelPageOwnerCard", "ChannelPageUserCard", "ChannelPageOwnerCardTitle", "ChannelPageUserCardLabel", "ChannelPageUserCardProfileLink", "Avatar_default", "getResourceUrl", "ChannelPageUserCardName", "getFullName", "Tag_default", "ChannelPageOwnerCardDescription", "ChannelPagePartnerCardCTA", "CuratedProjectList_default", "ChannelPageFullWidthSection", "EditorialContent_default", "ChannelPageTaggedProjects", "TaggedProjectList_default", "PropTypes", "userShape", "editorialContentShape", "projectShape", "User_default", "init_define_process_env", "init_sentry_injection_stub", "import_react", "UserSettingsContext", "React", "getCurrentLanguage", "getDefaultLanguage", "init_define_process_env", "init_sentry_injection_stub", "import_react", "import_prop_types", "ModalChannelNoAuth", "open", "onClose", "React", "ModalWithIcon", "closable", "icon", "illustrations", "twoToned", "EnvelopeWithHeart", "size", "noBackground", "svgScale", "Title", "t", "Text", "tc", "login", "Link", "href", "window", "UFE", "urls", "signin", "location", "tinted", "signup", "br", "propTypes", "PropTypes", "bool", "isRequired", "func", "styled", "styles", "heading", "XXS", "copy", "S", "regular", "ModalChannelNoAuth_default", "init_define_process_env", "init_sentry_injection_stub", "import_react", "import_prop_types", "ModalChannelSuccess", "open", "onClose", "React", "ModalWithIcon", "closable", "icon", "illustrations", "twoToned", "EnvelopeWithHeart", "size", "noBackground", "svgScale", "buttons", "type", "props", "onClick", "children", "t", "Title", "Text", "propTypes", "PropTypes", "bool", "isRequired", "func", "styled", "styles", "heading", "XXS", "copy", "S", "regular", "ModalChannelSuccess_default", "SEARCH_DATA", "window", "CHANNEL_PAGE_SEARCH_DATA", "ChannelPage", "channel", "showFirstTime", "showNoAuth", "subscribeChannel", "openNoAuth", "closeModals", "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", "COLORS", "PRIMARY_BLUE_500", "layout", "isLarge", "titleImage", "getResourceUrl", "context", "React", "useContext", "UserSettingsContext", "handleSubscription", "currentUser", "is_authenticated", "YakThemeProvider", "ModalChannelNoAuth", "open", "onClose", "ModalChannelSuccess", "ChannelPageHeader", "ChannelPageCover", "ChannelPageTitleContainer", "ChannelPageLogo", "alt", "src", "ChannelPageTitle", "PartnerChannelView", "channelDescription", "channelName", "channelSlug", "channelOwnerProfileURL", "absolute_url", "editorialContent", "partnerLogo", "logo", "partnerName", "partnerOwnerId", "user_id", "partnerSlug", "taggedProjectsData", "tagged_projects", "Boolean", "UserChannelView", "defaultProps", "propTypes", "PropTypes", "shape", "string", "versions", "full", "height", "number", "url", "width", "projectShape", "oneOfType", "boolean", "arrayOf", "editorialContentShape", "isRequired", "value", "userShape", "mapStateToProps", "state", "detail", "error", "isLoading", "mapDispatchToProps", "dispatch", "detail_default", "connect", "init_define_process_env", "init_sentry_injection_stub", "import_react", "import_prop_types", "init_define_process_env", "init_sentry_injection_stub", "import_react", "import_prop_types", "init_define_process_env", "init_sentry_injection_stub", "import_react", "import_prop_types", "TvBox", "channelTvImages", "React", "ChannelTvBoxWrapper", "ChannelTvBoxContainer", "ChannelTvBoxImgWrapper", "ChannelTvBoxImg", "ChannelTvBoxContent", "ChannelTvBoxTitle", "t", "ChannelTvBoxText", "ChannelTvBoxCTAWrapper", "ChannelTvBoxCTA", "PropTypes", "ChannelList", "channels", "lang", "channelTvImages", "subscribeChannel", "openNoAuth", "channelsLength", "isAuthenticated", "React", "channel", "index", "isPartner", "user", "description", "t", "getFullName", "isActive", "onClick", "ChannelItem", "ChannelCard", "getResourceUrl", "getResourceWithLanguage", "ChannelSubButton_default", "TvBox", "PropTypes", "userShape", "ChannelList", "React", "getChannels", "channels", "language", "country", "isAuthenticated", "meta", "next", "channelTvImages", "error", "isLoadingChannels", "subscribeChannel", "showFirstTime", "showNoAuth", "openNoAuth", "closeModals", "ModalChannelNoAuth_default", "ModalChannelSuccess_default", "ChannelHeader", "ChannelContainer", "ChannelTitle", "t", "ChannelSubtitle", "ChannelWrapper", "ChannelCTAWrapper", "LoadMoreButton_default", "PropTypes", "userShape", "mapStateToProps", "state", "mapDispatchToProps", "dispatch", "limit", "extraFields", "id", "isSubscribed", "list_default", "connect_default", "config_default", "Router", "country", "language", "channelTvImages", "React", "Routes", "Route", "list_default", "detail_default", "PropTypes", "Router_default", "Channel", "language", "country", "container", "Provider_default", "store_default", "BrowserRouter", "Router_default", "event", "currentLocation", "currentCountryCode", "currentLanguage", "getCurrentLanguage", "getDefaultLanguage", "channels_default"]
}