{"version":3,"sources":["utilities/api.ts","models/index.ts","models/authentication.ts","utilities/store.ts","utilities/alerts.ts","utilities/helpers.ts","utilities/theme.ts","components/common/Text.tsx","assets/icons/button-spinner.svg","components/common/Button.tsx","components/common/ValidationError.tsx","assets/icons/spinner.svg","components/common/Loader.tsx","components/common/Checkbox.tsx","components/common/WysiwygContent.tsx","components/common/index.tsx","assets/icons/logo-black.svg","assets/icons/close.svg","components/Layouts/MinimalLayout.tsx","pages/Auth/index.tsx","pages/Home/components/Navbar.tsx","assets/icons/tick.svg","components/ResponsiveImage.tsx","pages/Home/components/ContributorAvatar.tsx","hooks/useAuthGuard.ts","hooks/useFollow.ts","pages/Home/components/ContributorRow.tsx","pages/Home/components/Contributors.tsx","assets/icons/bookmark.svg","assets/icons/eye.svg","assets/icons/reaction.svg","hooks/useBookmarks.ts","assets/icons/play.svg","pages/Home/components/VideoCard.tsx","components/Video.tsx","hooks/useAnimatedThumbnail.ts","components/VideoThumbnail.tsx","assets/icons/arrow.svg","pages/Home/components/VideoSlider.tsx","hooks/useInfiniteLoader.ts","components/GoogleAd.tsx","pages/Home/index.tsx","hooks/useLikes.ts","assets/icons/respond.svg","assets/icons/share.svg","assets/icons/like.svg","assets/icons/link.svg","assets/icons/chat.svg","assets/icons/snapchat.svg","hooks/useDetectOutsideClick.ts","components/Dropdown/DropdownItem.tsx","components/Dropdown/index.tsx","pages/Video/components/ShareDialog.tsx","pages/Video/components/VideoCardFooter.tsx","assets/icons/arrow-bottom.svg","types/index.ts","components/Modal/index.tsx","components/Modal/Dialog.tsx","components/ContributorSupportDialog.tsx","pages/Video/components/VideoCardContent.tsx","pages/Video/components/CommentContent.tsx","pages/Video/components/VideoPlayer.tsx","pages/Video/components/VideoCard.tsx","components/ListableVideoCard.tsx","assets/icons/sort.svg","assets/icons/filter.svg","pages/Video/components/SidebarVideos.tsx","pages/Video/components/MobileReactions.tsx","pages/Video/components/MobileTabs.tsx","pages/Video/components/MobileTrendingVideos.tsx","assets/icons/video-comment.svg","pages/Video/components/UploadReactionCta.tsx","hooks/useResourceLoader.ts","pages/Video/components/Reactions.tsx","assets/icons/back-arrow.svg","components/CommentCard.tsx","pages/Video/components/Comments.tsx","pages/Video/index.tsx","pages/Text/components/TitledTextBlock.tsx","pages/Text/components/FlexibleContent.tsx","pages/Text/index.tsx","assets/icons/404.svg","pages/NotFound/index.tsx","assets/icons/process-spinner.svg","pages/VideoUpload/components/UploadProgress.tsx","assets/icons/upload.svg","utilities/echo.ts","pages/VideoUpload/components/UploadCard.tsx","assets/icons/image.svg","components/common/FormGroup.tsx","pages/VideoUpload/components/TagsInput.tsx","pages/VideoUpload/components/LocationInput.tsx","pages/VideoUpload/components/CategoryDropdown.tsx","pages/VideoUpload/components/ReactionDropdown.tsx","utilities/tracking.ts","pages/VideoUpload/components/UploadForm.tsx","pages/VideoUpload/components/SuccessCard.tsx","pages/VideoUpload/index.tsx","components/PrivateRoute.tsx","assets/icons/checkmark.svg","assets/icons/fb.svg","assets/icons/twitter.svg","assets/icons/instagram.svg","assets/icons/linkedin.svg","assets/icons/youtube.svg","pages/Contributor/components/Videos.tsx","components/SocialsIcon.tsx","assets/img/cover-placeholder.svg","pages/Contributor/components/ContributorCard.tsx","pages/Contributor/index.tsx","assets/img/about/about.png","assets/img/about/about-mobile.png","assets/img/about/1.svg","assets/img/about/2.svg","assets/img/about/3.svg","assets/img/about/4.svg","assets/img/about/5.svg","pages/About/index.tsx","assets/icons/google.svg","assets/icons/facebook.svg","pages/Auth/components/Socials.tsx","pages/Auth/components/Separator.tsx","pages/Auth/components/Navigation.tsx","pages/Auth/components/SignUpForm.tsx","pages/Auth/components/SignInForm.tsx","assets/icons/edit.svg","assets/icons/smile.svg","pages/Profile/index.tsx","pages/Bookmarks/index.tsx","pages/Auth/components/ForgotPassword.tsx","pages/Auth/components/ResetPassword.tsx","pages/Auth/components/CompleteSignUp.tsx","components/GuestRoute.tsx","assets/icons/video.svg","pages/Contributors/components/ContributorCard.tsx","assets/img/cover-placeholder-small.jpg","pages/Contributors/components/Section.tsx","pages/Contributors/index.tsx","assets/icons/search.svg","pages/Search/index.tsx","assets/icons/logo.svg","assets/icons/menu-dots.svg","hooks/useDebounce.ts","components/Searchbar.tsx","components/Header.tsx","components/SearchModal.tsx","components/MobileNav.tsx","components/Layouts/AppLayout.tsx","pages/NotAllowed/index.tsx","components/Tracker.tsx","App.tsx","reportWebVitals.ts","index.tsx"],"names":["config","headers","Accept","withCredentials","api","axios","create","baseURL","process","interceptors","response","use","data","error","status","url","window","location","reload","Promise","reject","request","ACTION_SOURCE_URL","protocol","host","pathname","basicAxiosInstance","csrfProtectedApi","callback","a","get","models","authentication","createModel","state","user","reducers","setUser","updateUserProperties","properties","effects","dispatch","login","credentials","post","fetchCurrentUser","catch","logout","register","userData","id","updateProfile","formData","FormData","Object","keys","forEach","key","length","append","type","completeSignup","followContributor","contributorId","followed_contributors_ids","unfollowContributor","delete","bookmarkVideo","videoId","bookmarked_videos_ids","unbookmarkVideo","likeVideo","liked_videos_ids","unlikeVideo","store","init","plugins","selectPlugin","loadingPlugin","persistPlugin","storage","whitelist","redux","middlewares","persistor","getPersistor","errorNotification","title","text","Swal","fire","icon","confirmButtonColor","iconColor","successNotification","numberWithCommas","number","toLocaleString","pxToRem","pixels","isValidExtension","fileName","validExtensions","fileNameParts","split","extension","includes","toLowerCase","handleFormErrors","setError","isAxiosError","err","errors","message","copyToClipboard","textToCopy","navigator","clipboard","writeText","timer","showConfirmButton","Breakpoints","tablet","smallDesktop","mediumDesktop","largeDesktop","phone","theme","typography","textOpenSans","fontFamily","fontWeight","fontSize","lineHeight","textPoppins","textPoppinsLight","textPoppinsSemiBold","textPoppinsBold","label","labelNormal","labelSemiBold","labelBold","heading1","heading2","colors","black","red","white","bg","gray","darkGray","lightGray","breakpoints","min","zIndex","onTop","dropdown","modal","GlobalStyles","createGlobalStyle","css","p","Text","styled","$color","$type","_extends","assign","target","i","arguments","source","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","transform","x","y","rx","ry","width","height","fill","attributeName","values","keyTimes","dur","begin","repeatCount","SvgButtonSpinner","_ref","svgRef","titleId","props","xmlns","xmlnsXlink","style","display","shapeRendering","viewBox","preserveAspectRatio","ref","ForwardRef","StyledSpinner","Spinner","StyledText","attrs","$background","$small","Button","as","children","small","color","loading","Error","ValidationError","className","strokeWidth","strokeLinecap","stroke","x1","y1","x2","y2","opacity","attributeType","calcMode","SvgSpinner","xmlSpace","StyledLoader","div","$withMargins","Loader","Checkmark","span","Label","LabelText","Checkbox","forwardRef","htmlFor","WysiwygContent","Container","Input","input","$hasError","Textarea","Row","$gutter","Column","$cols","Card","article","SrOnly","h1","d","SvgLogoBlack","strokeMiterlimit","SvgClose","CloseButton","Link","Wrap","Header","header","MinimalLayout","to","Inner","StyledCard","Auth","useSearchParams","hasException","useEffect","$active","Navbar","categories","activeCategory","setActiveCategory","map","category","onClick","name","strokeLinejoin","SvgTick","ResponsiveImage","src","srcSet","alt","useState","isLoaded","setIsLoaded","sizes","onLoad","e","requestAnimationFrame","size","getBoundingClientRect","Math","ceil","innerWidth","Initials","$size","Avatar","getInitialsFromName","word","join","ContributorAvatar","avatar","verified","useAuthGuard","protectedCallback","navigate","useNavigate","useLocation","isAuthenticated","useSelector","from","useFollow","useDispatch","isFollowLoading","setIsFollowLoading","isFollowed","toggleFollow","Plus","Categories","Content","button","Name","Flex","$followed","StyledContributorAvatar","ContributorRow","contributor","onFollowersChange","slug","avatar_thumbnail","undefined","followers_count","toString","disabled","topics","ArchiveLink","Heading","Contributors","memo","contributors","setContributors","useCallback","contributorSlug","params","include","updatedContributor","prevContributors","per_page","sort","clipPath","SvgBookmark","SvgEye","SvgReaction","useBookmarks","isBookmarkLoading","setIsBookmarkLoading","isBookmarked","toggleBookmark","SvgPlay","CardSizes","StyledPlayButton","PlayButton","StyledDuration","Duration","useAnimatedThumbnail","cloudflareVideoId","media","setState","Thumbnail","$large","VideoThumbnail","video","large","cloudflare_id","thumbnail","onMouseEnter","onMouseLeave","onTouchStart","onTouchEnd","meta","duration","Description","FooterInfo","Footer","BookmarkButton","$filled","ContributorInfo","Contributor","Ribbon","Small","Large","VideoCard","ribbon","isTabletOrMobile","useMediaQuery","maxWidth","ribbonText","is_sponsored","DateTime","fromISO","published_at","month","day","year","excerpt","views","reactions_count","SvgArrow","Arrow","$rotate","Dot","Dots","Line","SliderNav","Slide","StyledSlider","VideoSlider","videos","slider","useRef","activeSlide","setActiveSlide","isMobile","sliderSettings","dots","infinite","arrows","slidesToShow","slidesToScroll","autoplay","adaptiveHeight","autoplaySpeed","beforeChange","_","next","index","current","slickGoTo","slickPrev","slickNext","useInfiniteLoader","loader","root","isLoading","setIsLoading","observer","IntersectionObserver","entries","isIntersecting","rootMargin","threshold","observe","unobserve","Ins","ins","GoogleAd","adSlot","global","adsbygoogle","push","data-ad-client","data-ad-slot","data-ad-format","data-full-width-responsive","Main","main","Grid","Sidebar","SmallGrid","Home","setCategories","categoriesLoaded","setCategoriesLoaded","editorsChoice","other","videosState","setVideosState","fetchPaginatedVideos","link","prevState","genericParams","links","content","property","minWidth","useLikes","isLikeLoading","setIsLikeLoading","isLiked","toggleLike","increment","SvgRespond","SvgShare","SvgLike","SvgLink","SvgChat","SvgSnapchat","useDetectOutsideClick","handler","listener","event","el","contains","document","addEventListener","removeEventListener","$isSelect","DropdownItem","active","select","StyledDropdown","Dropdown","onClose","ShareDropdown","LinkShareButton","SnapchatShareButton","ShareDialog","permalink","EmailShareButton","subject","body","EmailIcon","round","href","FacebookShareButton","FacebookIcon","TwitterShareButton","related","TwitterIcon","LinkedinShareButton","summary","description","LinkedinIcon","rel","FacebookMessengerShareButton","appId","FacebookMessengerIcon","ViberShareButton","ViberIcon","WhatsappShareButton","WhatsappIcon","RedditShareButton","RedditIcon","VideoActions","VideoMetaItem","VideoButton","$fillIcon","VideoFooter","MobileButton","ShareButtonWrap","VideoCardFooter","showSharingDropdown","setShowSharingDropdown","prev","intended","SvgArrowBottom","FilterableReactionTypes","Overlay","BodyStyle","modalRoot","getElementById","Modal","createElement","appendChild","removeChild","createPortal","Dialog","Inputs","Option","$selected","StyledInput","SubmitButton","Cancel","options","ContributorSupportDialog","contributorName","useForm","setValue","control","handleSubmit","isSubmitting","formState","ammount","useWatch","onSubmit","value","preventDefault","valueAsNumber","step","placeholder","isNaN","Author","$hideBorderBottom","AuthorName","SupportButton","DescriptionToggle","VideoCardContent","isContentOpen","setIsContentOpen","showSupportDialog","setShowSupportDialog","hide_support_button","Badge","Title","Likes","StyledLikeIcon","LikeIcon","LikeButton","Date","CommentContent","reaction","parent","likes_count","toRelativeCalendar","StyledStream","Stream","VideoPlayer","secondsViewdRef","intervalRef","videoRef","setDuration","clearInterval","controls","streamRef","responsive","onPlay","setInterval","floor","console","onPause","poster","default","onDurationChange","Number","ThumbnailWrap","Bookmark","MobileContributorName","ListableVideoCard","imgState","SvgSort","SvgFilter","Tabs","Sort","StyledSortIcon","SortIcon","StyledFilterIcon","FilterIcon","ReactionsFilter","HeadingButton","$red","VideosList","INITIAL_STATE","activeTab","REACTIONS","reactionsType","ALL","LATEST","showFiltersDropdown","showSortDropdown","SidebarVideos","RELATED_STORIES","rootRef","c","onTabChange","setReactionsType","SortButton","SortWrap","ReactionsTypeDropdown","Filter","RespondIcon","Respond","RespondCta","StyledRespondIcon","reactionTypes","TabsEnum","MobileReactions","loaded","sortOpened","filterOpened","activeType","MobileTrendingVideos","TabsNav","nav","TabsButton","TabsButtonText","MobileTabs","COMMENTS","TRENDING","setActiveTab","renderTab","SvgVideoComment","StyledIcon","Icon","UploadReactionCta","videoSlug","resource","useResourceLoader","apiUrlResolver","requestParams","useParams","replace","Reactions","isInfiniteLoading","SvgBackArrow","CommentCard","onVideoLikesChange","increased","section","FilterButton","FiltersWrap","Comments","parentVideoId","showFilters","setShowFilters","onTypeChange","GlobalStyle","StyledRow","StyledBackArrow","BackArrow","BackArrowCircle","BackToParent","StyledGoogleAd","Video","isLargeDesktop","isNotDesktop","Block","StyledContent","Subtitle","TitledTextBlock","block","subtitle","dangerouslySetInnerHTML","__html","FlexibleContent","contentBlocks","layout","attributes","TextPage","page","Svg404","NotFound","SvgProcessSpinner","Circle","Progress","CircleSvg","svg","SpinnerIcon","Wrapper","UploadLabel","UploadProgress","percentage","onCancel","isProccessing","isUploadingToBucket","isUploading","circumference","PI","dash","cx","cy","r","strokeDasharray","SvgUpload","client","Pusher","cluster","authorizer","channel","authorize","socketId","socket_id","channel_name","then","authData","auth","echo","Echo","broadcaster","ALLOWED_EXTENSIONS","IconContainer","UploadIcon","$highlighted","Dropzone","Disclaimer","isHighlighted","uploadProgress","cloudflareId","originalVideoFilename","tusUpload","UploadCard","onUploadFinished","channelName","eventName","private","listen","stopListening","uploadFile","file","upload","tus","endpoint","chunkSize","retryDelays","parallelUploads","metadata","filename","filetype","watermark","uploadSize","onError","onProgress","bytesUploaded","bytesTotal","onSuccess","onBeforeRequest","req","xhr","getUnderlyingObject","getURL","onAfterResponse","res","mediaIdHeader","getHeader","start","uploadOriginal","pop","put","abort","onDrop","stopPropagation","dataTransfer","files","onDragEnter","onDragLeave","onDragOver","accept","onChange","SvgImage","FormGroup","rest","Tag","RemoveBtn","TagsInput","tags","setTags","inputRef","suggestions","setSuggestions","showSuggestions","setShowSuggestions","tagsCollection","tagResource","filteredSuggestions","filter","suggestion","tag","tagToRemove","onRemoveTag","onKeyDown","arr","tagToAdd","focus","onAddSuggestion","LocationInput","setLocation","hasError","apiKey","libraries","load","autocomplete","google","maps","places","Autocomplete","fields","strictBounds","types","addListener","place","getPlace","city","address_components","find","item","short_name","CategoryDropdown","setCategory","showDropdown","setShowDropdown","readOnly","onSelect","StyledDropdownItem","ReactionDropdown","setReaction","fbq","args","ThumbnailLabel","StyledImageIcon","ImageIcon","ThumbnailPreview","img","UploadForm","onSuccessfulSubmit","parentSlug","defaultValues","city_name","category_id","clearErrors","shouldDirty","categoryId","thumbnailPreviewUrl","URL","createObjectURL","content_name","eventID","required","StyledButton","SuccessCard","forwardedAs","VideoUpload","renderStep","PrivateRoute","forContributorsOnly","isContributor","SvgCheckmark","SvgFb","SvgTwitter","SvgInstagram","SvgLinkedin","SvgYoutube","SocialsIcon","Cover","CoverImg","Location","Headline","StyledCheckmark","Stats","TopicsLabel","Buttons","StatsBlock","$bordered","SocialMedias","SocialLink","EditProfileButton","ContributorCard","isMyProfile","cover","CoverPlaceholderSrc","videos_count","videos_views","social_medias","VideosContainer","Videos","isSmallerThanDesktop","isMediumDesktop","urlSearchParams","setSearchParams","has","newSearchParams","URLSearchParams","Image","TopButton","FooterButton","Strong","strong","AboutPage","DesktopImg","MobileImg","Icon1","Icon2","Icon3","Icon4","Icon5","SvgGoogle","SvgFacebook","Socials","intendedPathname","Separator","NavButton","Nav","Navigation","NavLink","isActive","Notices","NoticesText","SignUpForm","rootState","first_name","last_name","email","password","password_confirmation","userId","autoComplete","ForgotPasswordLink","SignInForm","SvgEdit","SvgSmile","form","CoverWrap","EditButton","CoverEditButton","AvatarEditButton","ContentInputs","StyledTextarea","StyledSmileIcon","SmileIcon","FormHeading","FormCard","BasicFields","SocialFieldsHeading","SocialFields","FormCardFooter","ProfileCard","mediaTypes","Profile","isSmallDesktop","useMemo","paypal_email","socials","facebook","twitter","instagram","linkedin","youtube","reset","isSubmitSuccessful","getCoverPreviewObj","renderSocialFields","StyledBookmarkIcon","BookmarkIcon","Empty","Boomarks","bookmarkedVideos","Form","StyledFormGroup","ForgotPassword","success","StyledValidationError","ResetPassword","token","successMessage","setSuccessMessage","CompleteSignUp","subscribe","GuestRoute","SvgVideo","AvatarCheckmark","Followers","FollowButton","ProfileLink","followersCount","setFollowersCount","prevCount","Border","Section","letter","StyledVideoIcon","VideoIcon","fetchPaginatedContributors","sections","reduce","acc","curr","firstLetter","toUpperCase","SvgSearch","StyledSearchIcon","SearchIcon","NoResultsHeadline","Search","s","captureException","SvgLogo","SvgMenuDots","useDebounce","timeout","setTimeout","clearTimeout","Searchbar","onBlur","mountRef","searchParams","debouncedValue","match","useMatch","path","end","set","search","StyledProfileIcon","ProfileIcon","$withoutText","ButtonText","AuthButtonWrap","AuthDropdown","AuthDropdownItem","UserAvatar","MenuDropdown","MenuDropdownItem","SearchWrap","$open","MenuSocials","RedSearchIcon","showAuthDropdown","setShowAuthDropdown","showMenuDropdown","setShowMenuDropdown","showSearch","setShowSearch","userAvatar","userName","onLogout","StyledModal","StyledDialog","InputWrap","InputContainer","Results","ResultLink","SearchModal","setVideos","Bar","MobileNav","AppLayout","NotAllowed","Tracker","gtag","page_title","page_location","page_path","App","userLoaded","setUserLoaded","element","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","Sentry","dsn","integrations","Integrations","BrowserTracing","tracesSampleRate","environment","ReactDOM","render","StrictMode"],"mappings":"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","file":"static/js/main.9e4ba179.chunk.js","sourcesContent":["import axios, { AxiosError } from \"axios\";\n\nconst config = {\n headers: {\n \"X-Requested-With\": \"XMLHttpRequest\",\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n withCredentials: true,\n};\n\nexport const api = axios.create({\n baseURL: `${process.env.REACT_APP_API_ENDPOINT}/api`,\n ...config,\n});\n\napi.interceptors.response.use(\n (response) => response.data,\n (error: AxiosError) => {\n if (error.response?.status === 401 || error.response?.status === 419) {\n if (error?.response?.config?.url !== \"/v1/auth\") {\n window.location.reload();\n }\n }\n return Promise.reject(error);\n }\n);\n\napi.interceptors.request.use((config) => {\n config!.headers!.ACTION_SOURCE_URL =\n window.location.protocol +\n \"//\" +\n window.location.host +\n window.location.pathname;\n return config;\n});\n\nconst basicAxiosInstance = axios.create({\n baseURL: `${process.env.REACT_APP_API_ENDPOINT}`,\n ...config,\n});\n\nbasicAxiosInstance.interceptors.response.use(\n (response) => response.data,\n (error) => Promise.reject(error)\n);\n\nexport const csrfProtectedApi = async (\n callback: (api: typeof basicAxiosInstance) => Promise\n) => {\n await basicAxiosInstance.get(\"/sanctum/csrf-cookie\");\n return callback(basicAxiosInstance);\n};\n","import { Models } from \"@rematch/core\";\nimport { authentication } from \"./authentication\";\n\nexport interface RootModel extends Models {\n authentication: typeof authentication;\n}\n\nexport const models: RootModel = {\n authentication,\n};\n","import { createModel } from \"@rematch/core\";\n\nimport {\n UserResource,\n LoginRequest,\n RegisterRequest,\n CompleteSignUpRequest,\n} from \"@/types/api\";\nimport { RootModel } from \".\";\nimport { api, csrfProtectedApi } from \"@/utilities/api\";\nimport { FormData as ProfileFormData } from \"@/pages/Profile\";\n\ninterface State {\n user: UserResource | null;\n}\n\nconst initialState: State = {\n user: null,\n};\n\nexport const authentication = createModel()({\n state: initialState,\n reducers: {\n setUser(state, user: UserResource | null) {\n return { ...state, user };\n },\n\n updateUserProperties(state: State, properties: Partial) {\n return {\n ...state,\n user: {\n ...state.user!,\n ...properties,\n },\n };\n },\n },\n effects: (dispatch) => ({\n async login(credentials: LoginRequest) {\n await csrfProtectedApi((api) =>\n api.post(\"/login\", credentials)\n );\n await this.fetchCurrentUser();\n },\n\n async fetchCurrentUser() {\n const user = await api\n .get(\"/v1/auth\")\n .catch(() => null);\n dispatch.authentication.setUser(user);\n },\n\n async logout() {\n await csrfProtectedApi((api) => api.post(\"/logout\"));\n dispatch.authentication.setUser(null);\n },\n\n async register(userData: RegisterRequest) {\n const user = await api.post(\n \"/v1/auth/register\",\n userData\n );\n await this.login(userData);\n\n return user.id;\n },\n\n async updateProfile(data: ProfileFormData) {\n const formData = new FormData();\n (Object.keys(data) as Array).forEach((key) => {\n if (key === \"cover\" || key === \"avatar\") {\n if (!data[key]!.length) return;\n return formData.append(key, data[key]![0]);\n }\n if (key === \"socials\") {\n return (\n Object.keys(data[key]) as Array\n ).forEach((type) => {\n formData.append(`socials[${type}]`, data[key][type]);\n });\n }\n formData.append(key, data[key] as string);\n });\n formData.append(\"_method\", \"PUT\");\n await api.post(\"/v1/auth/profile\", formData, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n });\n\n await this.fetchCurrentUser();\n },\n\n async completeSignup(data: CompleteSignUpRequest) {\n await api.post(\n \"/v1/auth/complete-signup\",\n data\n );\n await this.fetchCurrentUser();\n },\n\n async followContributor(contributorId: number) {\n const { followed_contributors_ids } = await api.post<\n never,\n { followed_contributors_ids: number[] }\n >(`/v1/contributors/${contributorId}/followers`);\n dispatch.authentication.updateUserProperties({\n followed_contributors_ids,\n });\n },\n\n async unfollowContributor(contributorId: number) {\n const { followed_contributors_ids } = await api.delete<\n never,\n { followed_contributors_ids: number[] }\n >(`/v1/contributors/${contributorId}/followers`);\n dispatch.authentication.updateUserProperties({\n followed_contributors_ids,\n });\n },\n\n async bookmarkVideo(videoId: number) {\n const { bookmarked_videos_ids } = await api.post<\n never,\n { bookmarked_videos_ids: number[] }\n >(`/v1/videos/${videoId}/bookmarks`);\n dispatch.authentication.updateUserProperties({ bookmarked_videos_ids });\n },\n\n async unbookmarkVideo(videoId: number) {\n const { bookmarked_videos_ids } = await api.delete<\n never,\n { bookmarked_videos_ids: number[] }\n >(`/v1/videos/${videoId}/bookmarks`);\n dispatch.authentication.updateUserProperties({ bookmarked_videos_ids });\n },\n\n async likeVideo(videoId: number) {\n const { liked_videos_ids } = await api.post<\n never,\n { liked_videos_ids: number[] }\n >(`/v1/videos/${videoId}/likes`);\n dispatch.authentication.updateUserProperties({ liked_videos_ids });\n },\n\n async unlikeVideo(videoId: number) {\n const { liked_videos_ids } = await api.delete<\n never,\n { liked_videos_ids: number[] }\n >(`/v1/videos/${videoId}/likes`);\n dispatch.authentication.updateUserProperties({ liked_videos_ids });\n },\n }),\n});\n","import {\n init,\n InitConfigRedux,\n RematchDispatch,\n RematchRootState,\n} from \"@rematch/core\";\nimport selectPlugin from \"@rematch/select\";\nimport loadingPlugin, { ExtraModelsFromLoading } from \"@rematch/loading\";\nimport storage from \"redux-persist/lib/storage\";\nimport persistPlugin, { getPersistor } from \"@rematch/persist\";\nimport logger from \"redux-logger\";\n\nimport { models, RootModel } from \"@/models\";\n\nconst redux: InitConfigRedux = {\n middlewares: [],\n};\n\nif (process.env.NODE_ENV === \"development\") {\n redux.middlewares!.push(logger);\n}\n\nconst store = init>({\n models,\n plugins: [\n selectPlugin(),\n loadingPlugin(),\n persistPlugin({\n key: \"persist-storage\",\n storage,\n whitelist: [\"authentication\"],\n }),\n ],\n redux,\n});\n\nconst persistor = getPersistor();\n\nexport default store;\nexport { persistor };\nexport type Store = typeof store;\nexport type Dispatch = RematchDispatch;\nexport type RootState = RematchRootState<\n RootModel,\n ExtraModelsFromLoading\n>;\n","import Swal from \"sweetalert2\";\n\nexport const errorNotification = (\n title = \"Ooops...\",\n text = \"Something went wrong!\"\n) => {\n Swal.fire({\n icon: \"error\",\n title,\n text,\n confirmButtonColor: \"#ff1919\",\n iconColor: \"#ff1919\",\n });\n};\n\nexport const successNotification = (title: string, text?: string) => {\n Swal.fire({\n icon: \"success\",\n title,\n text,\n confirmButtonColor: \"#ff1919\",\n });\n};\n","import axios, { AxiosError } from \"axios\";\nimport { Path, UseFormSetError } from \"react-hook-form\";\n\nimport { ValidationErrorResponse } from \"@/types\";\nimport { errorNotification } from \"@/utilities/alerts\";\nimport Swal from \"sweetalert2\";\n\nexport const numberWithCommas = (number: number) => {\n return number.toLocaleString(\"en-US\");\n};\n\nexport const pxToRem = (pixels: number) => {\n return pixels / 16;\n};\n\nexport const isValidExtension = (\n fileName: string,\n validExtensions: string[]\n) => {\n const fileNameParts = fileName.split(\".\");\n if (!fileNameParts.length) return false;\n const extension = fileNameParts[fileNameParts.length - 1];\n return validExtensions.includes(extension.toLowerCase());\n};\n\nexport const handleFormErrors = (\n error: unknown,\n setError: UseFormSetError\n) => {\n if (axios.isAxiosError(error)) {\n const err = error as AxiosError>;\n if (!err.response?.data?.errors) {\n return errorNotification();\n }\n (Object.keys(err.response.data.errors) as Array).forEach((key) => {\n setError(key as unknown as Path, {\n type: \"manual\",\n message: err.response!.data.errors[key][0],\n });\n });\n return errorNotification(\n \"Oops!\",\n \"We couldn't submit your form yet. Please fix the incorrect fields above.\"\n );\n }\n return errorNotification();\n};\n\nexport const copyToClipboard = async (textToCopy: string) => {\n await navigator.clipboard?.writeText(textToCopy);\n Swal.fire({\n icon: \"success\",\n title: \"Copied to clipboard!\",\n timer: 1800,\n showConfirmButton: false,\n });\n};\n","import { pxToRem } from \"@/utilities/helpers\";\nimport { createGlobalStyle, DefaultTheme, css } from \"styled-components\";\n\nexport const Breakpoints = {\n min: {\n tablet: 768,\n smallDesktop: 992,\n mediumDesktop: 1230,\n largeDesktop: 1440,\n },\n max: {\n phone: 767,\n tablet: 991,\n smallDesktop: 1229,\n mediumDesktop: 1439,\n },\n} as const;\n\nconst typography = {\n textOpenSans: {\n fontFamily: \"Open Sans, sans-serif\",\n fontWeight: 400,\n fontSize: `${pxToRem(15)}rem`,\n lineHeight: `${pxToRem(23)}rem`,\n },\n textPoppins: {\n fontFamily: \"Poppins, sans-serif\",\n fontWeight: 400,\n fontSize: `${pxToRem(15)}rem`,\n lineHeight: `${pxToRem(23)}rem`,\n },\n textPoppinsLight: {\n fontFamily: \"Poppins, sans-serif\",\n fontWeight: 300,\n fontSize: `${pxToRem(15)}rem`,\n lineHeight: `${pxToRem(23)}rem`,\n },\n textPoppinsSemiBold: {\n fontFamily: \"Poppins, sans-serif\",\n fontWeight: 600,\n fontSize: `${pxToRem(15)}rem`,\n lineHeight: `${pxToRem(23)}rem`,\n },\n textPoppinsBold: {\n fontFamily: \"Poppins, sans-serif\",\n fontWeight: 700,\n fontSize: `${pxToRem(15)}rem`,\n lineHeight: `${pxToRem(23)}rem`,\n },\n label: {\n fontFamily: \"Poppins, sans-serif\",\n lineHeight: \"1.2\",\n fontWeight: 300,\n fontSize: `${pxToRem(12)}rem`,\n },\n labelNormal: {\n fontFamily: \"Poppins, sans-serif\",\n lineHeight: \"1.6\",\n fontWeight: 400,\n fontSize: `${pxToRem(12)}rem`,\n },\n labelSemiBold: {\n fontFamily: \"Poppins, sans-serif\",\n lineHeight: \"1.2\",\n fontWeight: 600,\n fontSize: `${pxToRem(12)}rem`,\n },\n labelBold: {\n fontFamily: \"Poppins, sans-serif\",\n lineHeight: \"1.2\",\n fontWeight: 700,\n fontSize: `${pxToRem(12)}rem`,\n },\n heading1: {\n fontFamily: \"Poppins, sans-serif\",\n fontWeight: 700,\n fontSize: `${pxToRem(21)}rem`,\n lineHeight: `${pxToRem(25)}rem`,\n },\n heading2: {\n fontFamily: \"Poppins, sans-serif\",\n fontWeight: 700,\n fontSize: `${pxToRem(17)}rem`,\n lineHeight: `${pxToRem(20)}rem`,\n },\n};\n\nconst colors = {\n black: \"#20252c\",\n red: \"#ff1919\",\n white: \"#ffffff\",\n bg: \"#f8f8f8\",\n gray: \"#969698\",\n darkGray: \"#20252c\",\n lightGray: \"#f3f3f4\",\n};\n\nconst breakpoints = {\n phone: `@media(max-width: ${Breakpoints.max.phone}px)`,\n tablet: `@media(max-width: ${Breakpoints.max.tablet}px)`,\n smallDesktop: `@media(max-width: ${Breakpoints.max.smallDesktop}px)`,\n mediumDesktop: `@media(max-width: ${Breakpoints.max.mediumDesktop}px)`,\n min: {\n tablet: `@media(min-width: ${Breakpoints.min.tablet}px)`,\n smallDesktop: `@media(min-width: ${Breakpoints.min.smallDesktop}px)`,\n mediumDesktop: `@media(min-width: ${Breakpoints.min.mediumDesktop}px)`,\n largeDesktop: `@media(min-width: ${Breakpoints.min.largeDesktop}px)`,\n },\n};\n\nconst zIndex = {\n onTop: 2,\n dropdown: 5,\n modal: 10,\n};\n\nconst theme: DefaultTheme = {\n typography,\n colors,\n breakpoints,\n zIndex,\n};\n\nexport default theme;\n\nexport type Color = keyof DefaultTheme[\"colors\"];\nexport type Typography = keyof DefaultTheme[\"typography\"];\n\nexport const GlobalStyles = createGlobalStyle`\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n html {\n font-size: 0.9rem;\n }\n }\n `}\n body {\n background-color:${(p) => p.theme.colors.bg};\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n *, &::after, &::before {\n box-sizing: border-box;\n font: inherit;\n }\n a {\n color: inherit;\n text-decoration: none;\n }\n button {\n background-color: transparent;\n border: 0;\n padding: 0;\n cursor: pointer;\n }\n .swal2-popup {\n font-family: 'Poppins', sans-serif;\n border-radius: 10px;\n }\n .swal2-title {\n color: ${({ theme }) => theme.colors.black};\n }\n .swal2-styled {\n font-weight: 700;\n }\n .swal2-styled.swal2-confirm {\n padding-left: 30px;\n padding-right: 30px;\n border-radius: 20px;\n box-shadow: none !important;\n }\n`;\n","import { Color, Typography } from \"@/utilities/theme\";\nimport styled, { css } from \"styled-components\";\n\nexport interface TextProps {\n $color?: Color;\n $type?: Typography;\n}\n\nexport const Text = styled.p`\n ${({ theme, $color = \"black\", $type = \"textOpenSans\" }) => css`\n color: ${theme.colors[$color]};\n font-weight: ${theme.typography[$type].fontWeight};\n line-height: ${theme.typography[$type].lineHeight};\n font-size: ${theme.typography[$type].fontSize};\n font-family: ${theme.typography[$type].fontFamily};\n `}\n`;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(0 50 50)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 47,\n y: 9,\n rx: 0,\n ry: 0,\n width: 6,\n height: 20,\n fill: \"#ffffff\"\n}, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"opacity\",\n values: \"1;0\",\n keyTimes: \"0;1\",\n dur: \"1s\",\n begin: \"-0.875s\",\n repeatCount: \"indefinite\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(45 50 50)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 47,\n y: 9,\n rx: 0,\n ry: 0,\n width: 6,\n height: 20,\n fill: \"#ffffff\"\n}, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"opacity\",\n values: \"1;0\",\n keyTimes: \"0;1\",\n dur: \"1s\",\n begin: \"-0.75s\",\n repeatCount: \"indefinite\"\n})));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(90 50 50)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 47,\n y: 9,\n rx: 0,\n ry: 0,\n width: 6,\n height: 20,\n fill: \"#ffffff\"\n}, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"opacity\",\n values: \"1;0\",\n keyTimes: \"0;1\",\n dur: \"1s\",\n begin: \"-0.625s\",\n repeatCount: \"indefinite\"\n})));\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(135 50 50)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 47,\n y: 9,\n rx: 0,\n ry: 0,\n width: 6,\n height: 20,\n fill: \"#ffffff\"\n}, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"opacity\",\n values: \"1;0\",\n keyTimes: \"0;1\",\n dur: \"1s\",\n begin: \"-0.5s\",\n repeatCount: \"indefinite\"\n})));\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(180 50 50)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 47,\n y: 9,\n rx: 0,\n ry: 0,\n width: 6,\n height: 20,\n fill: \"#ffffff\"\n}, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"opacity\",\n values: \"1;0\",\n keyTimes: \"0;1\",\n dur: \"1s\",\n begin: \"-0.375s\",\n repeatCount: \"indefinite\"\n})));\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(225 50 50)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 47,\n y: 9,\n rx: 0,\n ry: 0,\n width: 6,\n height: 20,\n fill: \"#ffffff\"\n}, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"opacity\",\n values: \"1;0\",\n keyTimes: \"0;1\",\n dur: \"1s\",\n begin: \"-0.25s\",\n repeatCount: \"indefinite\"\n})));\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(270 50 50)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 47,\n y: 9,\n rx: 0,\n ry: 0,\n width: 6,\n height: 20,\n fill: \"#ffffff\"\n}, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"opacity\",\n values: \"1;0\",\n keyTimes: \"0;1\",\n dur: \"1s\",\n begin: \"-0.125s\",\n repeatCount: \"indefinite\"\n})));\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(315 50 50)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 47,\n y: 9,\n rx: 0,\n ry: 0,\n width: 6,\n height: 20,\n fill: \"#ffffff\"\n}, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"opacity\",\n values: \"1;0\",\n keyTimes: \"0;1\",\n dur: \"1s\",\n begin: \"0s\",\n repeatCount: \"indefinite\"\n})));\n\nfunction SvgButtonSpinner(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n style: {\n display: \"block\",\n shapeRendering: \"auto\"\n },\n width: \"30px\",\n height: \"30px\",\n viewBox: \"0 0 100 100\",\n preserveAspectRatio: \"xMidYMid\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgButtonSpinner);\nexport default __webpack_public_path__ + \"static/media/button-spinner.8c500ee3.svg\";\nexport { ForwardRef as ReactComponent };","import { FC, ComponentProps } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport styled, { css, DefaultTheme, StyledComponent } from \"styled-components\";\n\nimport { Text } from \"@/components/common\";\nimport { TextProps } from \"@/components/common/Text\";\nimport { ReactComponent as Spinner } from \"@/assets/icons/button-spinner.svg\";\n\nconst StyledSpinner = styled(Spinner)`\n position: absolute;\n right: 15px;\n margin: 0 !important;\n`;\n\ntype StyledButton = StyledComponent<\n \"button\" | \"a\" | typeof Link,\n DefaultTheme,\n TextProps & { $small: boolean; $background: \"red\" | \"gray\" },\n never\n>;\n\nconst StyledText = styled(Text).attrs({\n $color: \"white\",\n})<{ $small: boolean; $background: \"red\" | \"gray\" }>`\n position: relative;\n padding: 0 60px;\n line-height: 0;\n height: 48px;\n display: inline-flex;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n border-radius: 24px;\n text-transform: uppercase;\n transition: 0.2s ease-out all;\n border: 0;\n > svg {\n margin-right: 10px;\n }\n ${({ theme, $background }) =>\n $background === \"red\" &&\n css`\n background: ${theme.colors.red};\n &:hover {\n color: rgba(255, 255, 255, 0.75);\n }\n `}\n ${({ theme, $background }) =>\n $background === \"gray\" &&\n css`\n background: #828488;\n &:hover {\n background: ${theme.colors.red};\n }\n `}\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n height: 42px;\n padding: 0 25px;\n }\n `}\n ${({ $small, theme }) =>\n $small &&\n css`\n padding: 0 15px;\n height: 32px;\n ${theme.breakpoints.phone} {\n height: 26px;\n }\n ${StyledSpinner} {\n width: 15px;\n right: 8px;\n }\n `}\n` as StyledButton;\n\ntype X = ComponentProps;\n\ninterface ButtonProps extends X {\n as?: \"button\" | \"a\" | typeof Link | \"label\";\n small?: boolean;\n color?: \"gray\" | \"red\";\n loading?: boolean;\n}\n\nexport const Button: FC = ({\n as = \"button\",\n children,\n small = false,\n color = \"red\",\n loading,\n ...props\n}) => (\n \n {children}\n {loading && }\n \n);\n","import { Text } from \"@/components/common\";\nimport { FC } from \"react\";\nimport styled from \"styled-components\";\n\nconst Error = styled(Text)`\n display: block;\n margin-top: 4px;\n padding: 0 15px;\n`;\n\nexport const ValidationError: FC<{ className?: string }> = ({\n children,\n className,\n}) => {\n if (!children) return null;\n return (\n \n {children}\n \n );\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n strokeWidth: 200,\n strokeLinecap: \"round\",\n stroke: \"#969698\",\n fill: \"none\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 1200,\n y1: 600,\n x2: 1200,\n y2: 100\n}), /*#__PURE__*/React.createElement(\"line\", {\n opacity: 0.5,\n x1: 1200,\n y1: 2300,\n x2: 1200,\n y2: 1800\n}), /*#__PURE__*/React.createElement(\"line\", {\n opacity: 0.917,\n x1: 900,\n y1: 680.4,\n x2: 650,\n y2: 247.4\n}), /*#__PURE__*/React.createElement(\"line\", {\n opacity: 0.417,\n x1: 1750,\n y1: 2152.6,\n x2: 1500,\n y2: 1719.6\n}), /*#__PURE__*/React.createElement(\"line\", {\n opacity: 0.833,\n x1: 680.4,\n y1: 900,\n x2: 247.4,\n y2: 650\n}), /*#__PURE__*/React.createElement(\"line\", {\n opacity: 0.333,\n x1: 2152.6,\n y1: 1750,\n x2: 1719.6,\n y2: 1500\n}), /*#__PURE__*/React.createElement(\"line\", {\n opacity: 0.75,\n x1: 600,\n y1: 1200,\n x2: 100,\n y2: 1200\n}), /*#__PURE__*/React.createElement(\"line\", {\n opacity: 0.25,\n x1: 2300,\n y1: 1200,\n x2: 1800,\n y2: 1200\n}), /*#__PURE__*/React.createElement(\"line\", {\n opacity: 0.667,\n x1: 680.4,\n y1: 1500,\n x2: 247.4,\n y2: 1750\n}), /*#__PURE__*/React.createElement(\"line\", {\n opacity: 0.167,\n x1: 2152.6,\n y1: 650,\n x2: 1719.6,\n y2: 900\n}), /*#__PURE__*/React.createElement(\"line\", {\n opacity: 0.583,\n x1: 900,\n y1: 1719.6,\n x2: 650,\n y2: 2152.6\n}), /*#__PURE__*/React.createElement(\"line\", {\n opacity: 0.083,\n x1: 1750,\n y1: 247.4,\n x2: 1500,\n y2: 680.4\n}), /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n attributeType: \"XML\",\n type: \"rotate\",\n keyTimes: \"0;0.08333;0.16667;0.25;0.33333;0.41667;0.5;0.58333;0.66667;0.75;0.83333;0.91667\",\n values: \"0 1199 1199;30 1199 1199;60 1199 1199;90 1199 1199;120 1199 1199;150 1199 1199;180 1199 1199;210 1199 1199;240 1199 1199;270 1199 1199;300 1199 1199;330 1199 1199\",\n dur: \"0.83333s\",\n begin: \"0s\",\n repeatCount: \"indefinite\",\n calcMode: \"discrete\"\n}));\n\nfunction SvgSpinner(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 2400 2400\",\n xmlSpace: \"preserve\",\n width: 24,\n height: 24,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSpinner);\nexport default __webpack_public_path__ + \"static/media/spinner.8ffcfb37.svg\";\nexport { ForwardRef as ReactComponent };","import { FC } from \"react\";\nimport styled from \"styled-components\";\n\nimport { ReactComponent as Spinner } from \"@/assets/icons/spinner.svg\";\nimport { Text } from \"@/components/common\";\n\nconst StyledLoader = styled.div<{ $withMargins?: boolean }>`\n display: flex;\n align-items: center;\n justify-content: center;\n margin: ${({ $withMargins }) => ($withMargins ? \"15px 0\" : 0)};\n svg {\n margin-right: 15px;\n }\n`;\n\nexport const Loader: FC<{ className?: string }> = ({ children, className }) => {\n return (\n \n \n \n {children || \"Loading\"}\n \n \n );\n};\n","import { HTMLProps, forwardRef } from \"react\";\nimport styled, { css } from \"styled-components\";\n\nimport { Text } from \"@/components/common\";\n\nconst Checkmark = styled.span`\n position: absolute;\n top: 2px;\n left: 0;\n width: 15px;\n height: 15px;\n border-radius: 50%;\n background-color: transparent;\n border: 1px solid #c7c7c7;\n transition: 0.2s ease-out border-color;\n &::after {\n content: \"\";\n position: absolute;\n display: none;\n background: ${({ theme }) => theme.colors.red};\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n border-radius: 50%;\n border: 0;\n width: 7px;\n height: 7px;\n margin: auto;\n }\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n top: 0;\n }\n `}\n`;\n\nconst Label = styled.label`\n display: block;\n position: relative;\n padding-left: 30px;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n &:hover {\n ${Checkmark} {\n border-color: ${({ theme }) => theme.colors.red};\n }\n }\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n padding-left: 25px;\n }\n `}\n > input {\n position: absolute;\n opacity: 0;\n cursor: pointer;\n height: 1px;\n width: 1px;\n top: 4px;\n left: 4px;\n &:checked {\n ~ ${Checkmark} {\n border-color: ${({ theme }) => theme.colors.red};\n &::after {\n display: block;\n }\n }\n }\n }\n`;\n\nconst LabelText = styled(Text)`\n letter-spacing: 0.33px;\n`;\n\ninterface Props extends HTMLProps {\n id: string;\n}\n\nexport const Checkbox = forwardRef(\n ({ children, className, ...props }, ref) => {\n return (\n \n );\n }\n);\n","import styled, { css } from \"styled-components\";\n\nimport { Text } from \"@/components/common\";\nimport { pxToRem } from \"@/utilities/helpers\";\n\nexport const WysiwygContent = styled(Text).attrs({ as: \"div\" })`\n ${({ theme }) => css`\n p,\n ol,\n ul,\n h1,\n h2,\n h3 {\n margin: 0 0 ${pxToRem(30)}rem;\n }\n h1,\n h2,\n h3 {\n font-family: ${theme.typography.heading2.fontFamily};\n font-size: ${theme.typography.heading2.fontSize};\n line-height: ${theme.typography.heading2.lineHeight};\n font-weight: ${theme.typography.heading2.fontWeight};\n }\n h1 {\n font-size: ${theme.typography.heading1.fontSize};\n line-height: ${theme.typography.heading1.lineHeight};\n }\n a {\n text-decoration: underline;\n transition: 0.2s ease-out color;\n &:hover {\n color: ${theme.colors.red};\n }\n }\n ul {\n ul {\n margin: ${pxToRem(10)}rem;\n }\n li {\n padding-left: 15px;\n position: relative;\n margin-bottom: ${pxToRem(10)}rem;\n &::before {\n content: \"\";\n position: absolute;\n width: 4px;\n height: 4px;\n border-radius: 50%;\n background: ${theme.colors.red};\n margin: auto;\n top: 10px;\n left: 0;\n }\n }\n }\n figure.table {\n margin: 0 -30px ${pxToRem(30)}rem;\n ${theme.breakpoints.tablet} {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n ${theme.breakpoints.phone} {\n margin: 0 -15px ${pxToRem(30)}rem;\n }\n }\n table {\n width: 100%;\n th {\n white-space: nowrap;\n vertical-align: middle;\n text-align: left;\n padding: 10px 30px;\n background: ${theme.colors.red};\n color: #fff;\n text-transform: uppercase;\n font-family: ${theme.typography.labelBold.fontFamily};\n font-size: ${theme.typography.labelBold.fontSize};\n line-height: ${theme.typography.labelBold.lineHeight};\n font-weight: ${theme.typography.labelBold.fontWeight};\n &:first-child {\n border-top-left-radius: 10px;\n }\n &:last-child {\n border-top-right-radius: 10px;\n }\n ${theme.breakpoints.smallDesktop} {\n padding: 10px 20px;\n }\n ${theme.breakpoints.tablet} {\n &:first-child,\n &:last-child {\n border-radius: 0;\n }\n }\n }\n td {\n padding: 25px 30px;\n border: 2px solid #fff;\n background: ${theme.colors.bg};\n ${theme.breakpoints.smallDesktop} {\n padding: 20px;\n }\n ${theme.breakpoints.phone} {\n padding: 10px 20px;\n min-width: 200px;\n }\n }\n tbody {\n tr {\n &:first-child {\n border-top: 0;\n }\n &:last-child {\n td {\n border-bottom: 0;\n &:first-child {\n border-bottom-left-radius: 10px;\n }\n &:last-child {\n border-bottom-right-radius: 10px;\n }\n ${theme.breakpoints.tablet} {\n &:first-child,\n &:last-child {\n border-radius: 0;\n }\n }\n }\n }\n }\n }\n }\n `}\n`;\n","import styled, { css } from \"styled-components\";\nimport { Text } from \"./Text\";\nexport { Text } from \"./Text\";\nexport { Button } from \"./Button\";\nexport { ValidationError } from \"./ValidationError\";\nexport { Loader } from \"./Loader\";\nexport { Checkbox } from \"./Checkbox\";\nexport { WysiwygContent } from \"./WysiwygContent\";\n\nexport const Container = styled.div`\n width: 1440px;\n max-width: 100%;\n padding: 0 15px;\n margin: 0 auto;\n ${({ theme }) => css`\n ${theme.breakpoints.mediumDesktop} {\n width: 1140px;\n }\n ${theme.breakpoints.smallDesktop} {\n width: 960px;\n }\n ${theme.breakpoints.tablet} {\n width: 720px;\n }\n `}\n`;\n\nexport const Input = styled.input<{ $hasError?: boolean }>`\n height: 48px;\n width: 100%;\n display: flex;\n align-items: center;\n padding: 0 15px;\n border-radius: 10px;\n border: 1px solid transparent;\n transition: 0.2s ease-out all;\n ${({ theme }) => css`\n background: ${theme.colors.bg};\n color: ${theme.colors.black};\n font-weight: ${theme.typography.labelNormal.fontWeight};\n line-height: ${theme.typography.labelNormal.lineHeight};\n font-size: ${theme.typography.labelNormal.fontSize};\n font-family: ${theme.typography.labelNormal.fontFamily};\n &::placeholder {\n color: #828488;\n }\n &:focus {\n outline: none;\n border-color: #ebebeb;\n background: ${theme.colors.white};\n }\n &:disabled {\n background: ${theme.colors.bg};\n cursor: not-allowed;\n }\n ${theme.breakpoints.phone} {\n font-size: 16px;\n }\n `}\n ${({ theme, $hasError }) =>\n $hasError &&\n css`\n border-color: ${theme.colors.red};\n background: ${theme.colors.white};\n `}\n`;\n\nexport const Textarea = styled(Input).attrs({ as: \"textarea\" })`\n min-height: 105px;\n height: auto;\n padding: 10px 15px;\n`;\n\nexport const Label = styled(Text).attrs({ as: \"label\", $type: \"labelNormal\" })`\n padding: 0 15px;\n display: block;\n margin: 0 0 6px;\n`;\n\nexport const Row = styled.div<{ $gutter?: number }>`\n display: flex;\n flex-wrap: wrap;\n margin: 0 -${({ $gutter = 15 }) => $gutter}px;\n`;\n\ntype ColumnsRange = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n\nexport const Column = styled.div<{ $gutter?: number; $cols: ColumnsRange }>`\n min-height: 1px;\n width: 100%;\n max-width: ${({ $cols }) => ($cols / 12) * 100}%;\n flex: 0 0 ${({ $cols }) => ($cols / 12) * 100}%;\n padding: 0 ${({ $gutter = 15 }) => $gutter}px;\n`;\n\nexport const Card = styled.article`\n box-shadow: 0 0 15px rgba(32, 37, 44, 0.1);\n border-radius: 10px;\n background-color: #ffffff;\n`;\n\nexport const SrOnly = styled.h1`\n clip: rect(0, 0, 0, 0);\n border-width: 0;\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n`;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(-77.4 215.21 34.035)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ff1919\",\n d: \"M212.099 34.036a3.109 3.109 0 1 1 6.217 0 3.109 3.109 0 0 1-6.217 0z\"\n})), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#20252c\",\n d: \"M95.663 45.052c-.94 0-1.578-.077-2.75-.433-.28-.085-.504-.335-.504-.642v-3.863s1.221.207 1.722.207c3.333 0 4.315-2.863 3.438-5.167-2.078-5.46-6.518-17.186-6.726-17.733h4.684c.625 0 .884.192 1.094.782l4.206 11.858h.075c.424-1.098 3.022-8.435 4.242-11.858.21-.59.468-.782 1.094-.782h4.692c-2.462 6.5-5.175 13.66-7.64 20.152-1.047 2.763-2.878 7.478-7.627 7.479zm137.1-8.34c-1.247.377-1.885.432-2.937.432-6.503 0-6.136-5.813-6.136-7.853v-7.287h-3.312v-4.583h1.718c1.365 0 2.301-.962 2.301-2.303v-3.454h4.583v5.757h3.885v4.583h-3.885s-.029 6.298 0 8.236c.02 1.388 1.264 2.227 2.514 2.176.445-.018 1.772-.21 1.772-.21v3.863c0 .308-.224.558-.504.643zm-29.01.432c-6.503 0-6.136-5.813-6.136-7.853v-7.287h-3.311v-4.583h1.717c1.365 0 2.301-.962 2.301-2.303v-3.454h4.583v5.757h3.886v4.583h-3.886s-.028 6.298 0 8.236c.02 1.388 1.264 2.227 2.514 2.176.446-.018 1.772-.21 1.772-.21v3.863c0 .308-.224.558-.504.643-1.245.377-1.884.432-2.936.432zm-78.432-20.202c5.162 0 9.424 4.52 9.424 10.1 0 5.581-4.246 10.102-9.424 10.102-2.155 0-4.117-1.025-5.583-2.699v10.127h-5.29v-27.15h5.214l.118 1.98h.167c1.439-1.532 3.315-2.46 5.374-2.46zm3.853 10.1c0-2.85-2.136-5.163-4.759-5.163-2.622 0-4.759 2.312-4.759 5.164 0 2.851 2.137 5.163 4.76 5.163 2.622 0 4.758-2.312 4.758-5.163zm18.752-5.163c-2.628 0-4.758 2.312-4.758 5.164 0 2.851 2.13 5.163 4.758 5.163s4.759-2.312 4.759-5.163c0-2.852-2.13-5.164-4.759-5.164zm10.264 5.164c0 5.58-4.585 10.1-10.264 10.1-5.661 0-10.264-4.52-10.264-10.1 0-5.581 4.585-10.101 10.264-10.101 5.662 0 10.264 4.52 10.264 10.1zm77.991-9.622h4.684c.625 0 .884.192 1.094.782l4.206 11.858h.075c.424-1.098 3.022-8.435 4.242-11.858.21-.59.468-.782 1.094-.782h4.692s-5.287 13.992-7.072 18.646c-.132.344-.317.598-1.053.598h-3.857c-.736 0-.922-.254-1.053-.598-1.783-4.654-7.052-18.646-7.052-18.646zm-45.137 7.032v12.212h-5.29v-9.76c0-3.622-1.447-5.026-3.84-5.026-2.016 0-3.927 1.468-3.957 5.025l-.004 9.76h-5.286V17.422h5.215l.123 2.096h.065c2.005-2.008 4.053-2.575 5.526-2.575 5.475 0 7.448 4.228 7.448 7.511zM59.177 36.665V17.42h5.214l.124 2.096h.074c.794-.968 2.625-2.554 5.088-2.575 3.247-.029 4.905 2.183 5.534 3.315 2.28-2.713 4.69-3.315 6.356-3.315 5.475 0 6.953 4.228 6.953 7.51v12.213h-5.29v-9.76c0-3.622-1.27-5.026-3.37-5.026-1.769 0-3.343 1.468-3.37 5.025v9.76h-5.289v-9.76c0-3.62-1.27-5.025-3.37-5.025-1.769 0-3.356 1.467-3.369 5.025-.009 2.44 0 9.76 0 9.76zM164.763 7.889a3.109 3.109 0 1 1 0 6.217 3.109 3.109 0 0 1 0-6.217zm-2.645 9.532h5.29v19.244h-5.29z\"\n})), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ff1919\",\n d: \"M32.946 18.412a2.153 2.153 0 1 1 0-4.306 2.153 2.153 0 0 1 0 4.306zM23.19.402C10.434.401.09 10.742.09 23.5S10.435 46.6 23.192 46.6c6.587 0 12.528-2.76 16.739-7.182 1.011-1.062.22-2.754-1.18-2.752H28.192a3.254 3.254 0 0 1-3.264-3.252V30.03a3.265 3.265 0 0 1 3.264-3.265h14.834a3.265 3.265 0 0 0 3.264-3.265C46.29 10.743 35.948.401 23.191.401z\"\n}))));\n\nfunction SvgLogoBlack(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 257,\n height: 47,\n viewBox: \"0 0 257 47\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoBlack);\nexport default __webpack_public_path__ + \"static/media/logo-black.2f318b58.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(135 9 8.69)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n strokeLinecap: \"round\",\n strokeMiterlimit: 20,\n strokeWidth: 2,\n d: \"M9-1.213v19.798\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(45 9 8.69)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n strokeLinecap: \"round\",\n strokeMiterlimit: 20,\n strokeWidth: 2,\n d: \"M9 18.585V-1.213\"\n}))));\n\nfunction SvgClose(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 18,\n height: 17,\n viewBox: \"0 0 18 17\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgClose);\nexport default __webpack_public_path__ + \"static/media/close.ea1b60b8.svg\";\nexport { ForwardRef as ReactComponent };","import { FC } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { Link } from \"react-router-dom\";\n\nimport { ReactComponent as Logo } from \"@/assets/icons/logo-black.svg\";\nimport { ReactComponent as CloseIcon } from \"@/assets/icons/close.svg\";\n\nconst CloseButton = styled(Link)`\n position: absolute;\n right: 55px;\n top: 54px;\n display: inline-block;\n padding: 10px;\n svg {\n transition: 0.2s ease-out stroke;\n stroke: ${({ theme }) => theme.colors.gray};\n }\n &:hover {\n svg {\n stroke: ${({ theme }) => theme.colors.red};\n }\n }\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n top: 20px;\n right: 20px;\n }\n `}\n`;\n\nconst Wrap = styled.div`\n position: relative;\n padding: 74px 0;\n min-height: 100vh;\n display: flex;\n flex-direction: column;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n padding: 38px 0;\n }\n `}\n`;\n\nconst Header = styled.header`\n text-align: center;\n margin: 0 0 50px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin: 0 0 42px;\n svg {\n width: 176px;\n height: 33px;\n }\n }\n `}\n`;\n\nexport const MinimalLayout: FC = ({ children }) => {\n return (\n \n \n \n \n
\n \n \n \n
\n {children}\n
\n );\n};\n","import { FC, useEffect } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { Outlet, useSearchParams } from \"react-router-dom\";\n\nimport { Card } from \"@/components/common\";\nimport { MinimalLayout } from \"@/components/Layouts/MinimalLayout\";\nimport { errorNotification } from \"@/utilities/alerts\";\n\nconst Inner = styled.div`\n width: 720px;\n padding: 65px 15px 70px;\n max-width: 100%;\n margin: 0 auto;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n width: 100%;\n padding: 0 15px 68px;\n }\n `}\n`;\n\nconst StyledCard = styled(Card)`\n width: 930px;\n margin: 0 auto;\n max-width: 100%;\n`;\n\nexport const Auth: FC = () => {\n const [urlSearchParams] = useSearchParams();\n\n const hasException = !!urlSearchParams.get(\"exception\");\n\n useEffect(() => {\n if (hasException) {\n errorNotification();\n }\n }, [hasException]);\n\n return (\n \n \n \n \n \n \n \n );\n};\n","import { FC } from \"react\";\nimport styled, { css } from \"styled-components\";\n\nimport { Text } from \"@/components/common\";\nimport { CategoryResource } from \"@/types/api\";\n\nconst Wrap = styled.div`\n margin: 22px 0;\n display: flex;\n align-items: center;\n justify-content: center;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n overflow-x: auto;\n margin: 14px -15px;\n justify-content: flex-start;\n }\n `}\n`;\n\nconst Button = styled(Text)<{ $active?: boolean }>`\n display: inline-flex;\n align-items: center;\n height: 27px;\n border: 0;\n border-radius: 14px;\n letter-spacing: 0.75px;\n cursor: pointer;\n margin: 0 20px;\n padding: 0 20px;\n background-color: transparent;\n text-transform: uppercase;\n transition: 0.2s ease-out background-color, 0.2s ease-out color;\n font-weight: 700;\n ${({ theme }) => css`\n &:hover {\n background-color: ${theme.colors.red};\n color: ${theme.colors.white};\n }\n ${theme.breakpoints.phone} {\n &:first-of-type {\n margin-left: 15px;\n }\n margin: 0 10px;\n }\n `}\n ${({ theme, $active }) =>\n $active &&\n css`\n background-color: ${theme.colors.red};\n color: ${theme.colors.white};\n `}\n`;\n\ninterface Props {\n categories: CategoryResource[];\n activeCategory: number;\n setActiveCategory: (categoryID: number) => void;\n}\n\nexport const Navbar: FC = ({\n categories,\n activeCategory,\n setActiveCategory,\n}) => {\n return (\n \n {categories.map((category) => (\n setActiveCategory(category.id)}\n >\n {category.name}\n \n ))}\n \n );\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 20,\n strokeWidth: 2,\n d: \"M1.09 3.791v0L3.242 5.77v0L7.274.959v0\"\n})));\n\nfunction SvgTick(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 9,\n height: 7,\n viewBox: \"0 0 9 7\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTick);\nexport default __webpack_public_path__ + \"static/media/tick.a3d86724.svg\";\nexport { ForwardRef as ReactComponent };","import { FC, SyntheticEvent, useState, ComponentProps } from \"react\";\nimport { LazyLoadImage } from \"react-lazy-load-image-component\";\n\ntype Props = ComponentProps;\n\nexport const ResponsiveImage: FC = ({\n src,\n srcSet,\n alt = \"\",\n ...props\n}) => {\n const [isLoaded, setIsLoaded] = useState(false);\n\n const onLoad = (e: SyntheticEvent) => {\n if (isLoaded) return;\n const target = e.target as HTMLImageElement;\n window.requestAnimationFrame(() => {\n const size = target.getBoundingClientRect().width;\n if (!size) return;\n target.sizes = Math.ceil((size / window.innerWidth) * 100) + \"vw\";\n setIsLoaded(true);\n });\n };\n\n return (\n \n );\n};\n","import { FC } from \"react\";\nimport styled, { css } from \"styled-components\";\n\nimport { Text } from \"@/components/common\";\nimport { ReactComponent as TickIcon } from \"@/assets/icons/tick.svg\";\nimport { MediaResource } from \"@/types/api\";\nimport { ResponsiveImage } from \"@/components/ResponsiveImage\";\nimport { Link } from \"react-router-dom\";\n\nconst Initials = styled.div`\n width: 100%;\n height: 100%;\n box-shadow: 0 2px 4px rgba(32, 37, 44, 0.1);\n border: 2px solid ${({ theme }) => theme.colors.white};\n object-fit: cover;\n border-radius: 50%;\n background: ${({ theme }) => theme.colors.lightGray};\n text-transform: uppercase;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nconst Wrap = styled.div<{ $size: \"small\" | \"large\"; to?: string }>`\n position: relative;\n flex-shrink: 0;\n ${({ $size }) =>\n $size === \"small\" &&\n css`\n width: 42px;\n height: 42px;\n `}\n ${({ $size, theme }) =>\n $size === \"large\" &&\n css`\n width: 248px;\n height: 248px;\n ${Text} {\n font-size: 104px;\n line-height: 1;\n }\n ${theme.breakpoints.phone} {\n width: 180px;\n height: 180px;\n ${Text} {\n font-size: 76px;\n }\n }\n `}\n`;\n\nexport const Checkmark = styled.span`\n width: 12px;\n height: 12px;\n box-shadow: 0 2px 4px rgba(32, 37, 44, 0.1);\n position: absolute;\n right: 0;\n bottom: 0;\n border-radius: 50%;\n background: ${({ theme }) => theme.colors.red};\n > svg {\n position: relative;\n bottom: 3px;\n left: 2px;\n }\n`;\n\nconst Avatar = styled(ResponsiveImage)<{ $size: \"small\" | \"large\" }>`\n width: 100%;\n height: 100%;\n box-shadow: 0 2px 4px rgba(32, 37, 44, 0.1);\n object-fit: cover;\n border-radius: 50%;\n ${({ $size }) =>\n $size === \"small\" &&\n css`\n border: 2px solid ${({ theme }) => theme.colors.white};\n `}\n ${({ $size }) =>\n $size === \"large\" &&\n css`\n border: 8px solid ${({ theme }) => theme.colors.white};\n `}\n`;\n\nconst getInitialsFromName = (name: string) =>\n name\n .split(\" \")\n .map((word) => word[0])\n .join(\"\");\n\ninterface Props {\n name: string;\n avatar?: Pick;\n verified?: boolean;\n size?: \"small\" | \"large\";\n className?: string;\n to?: string;\n}\n\nexport const ContributorAvatar: FC = ({\n name,\n avatar,\n verified,\n size = \"small\",\n className,\n to,\n}) => {\n return (\n \n {avatar ? (\n \n ) : (\n \n \n {getInitialsFromName(name)}\n \n \n )}\n {verified && (\n \n \n \n )}\n \n );\n};\n","import { useSelector } from \"react-redux\";\nimport { useNavigate, useLocation } from \"react-router-dom\";\n\nimport { RootState } from \"@/utilities/store\";\n\ntype GenericFunction = (...args: any[]) => any;\n\nconst useAuthGuard = (protectedCallback: F) => {\n const navigate = useNavigate();\n const location = useLocation();\n\n const isAuthenticated = useSelector(\n (state: RootState) => !!state.authentication.user\n );\n\n const guardedFunction = (...args: Parameters): ReturnType | void => {\n if (!isAuthenticated)\n return navigate(\"/login\", { state: { from: location } });\n return protectedCallback(...args);\n };\n\n return guardedFunction;\n};\n\nexport default useAuthGuard;\n","import { useDispatch, useSelector } from \"react-redux\";\nimport { useState } from \"react\";\n\nimport { Dispatch, RootState } from \"@/utilities/store\";\nimport useAuthGuard from \"@/hooks/useAuthGuard\";\nimport { errorNotification } from \"@/utilities/alerts\";\n\nconst useFollow = (\n contributorId: number,\n callback?: (increment: boolean) => void\n) => {\n const dispatch = useDispatch();\n\n const [isFollowLoading, setIsFollowLoading] = useState(false);\n\n const isFollowed = useSelector(\n (state: RootState) =>\n !!state.authentication.user?.followed_contributors_ids?.includes(\n contributorId\n )\n );\n\n const toggleFollow = useAuthGuard(async (contributorId: number) => {\n try {\n setIsFollowLoading(true);\n if (isFollowed) {\n await dispatch.authentication.unfollowContributor(contributorId);\n callback?.(false);\n } else {\n await dispatch.authentication.followContributor(contributorId);\n callback?.(true);\n }\n setIsFollowLoading(false);\n } catch (err) {\n errorNotification();\n }\n });\n\n return {\n isFollowed,\n toggleFollow: () => toggleFollow(contributorId),\n isFollowLoading,\n };\n};\n\nexport default useFollow;\n","import { FC } from \"react\";\nimport styled from \"styled-components\";\nimport { Link } from \"react-router-dom\";\n\nimport { Text } from \"@/components/common\";\nimport { numberWithCommas } from \"@/utilities/helpers\";\nimport { ContributorAvatar } from \"@/pages/Home/components/ContributorAvatar\";\nimport { ContributorResource } from \"@/types/api\";\nimport useFollow from \"../../../hooks/useFollow\";\n\nconst Plus = styled.div`\n width: 8px;\n height: 8px;\n transition: 0.3s ease-out width;\n position: relative;\n &::before,\n &::after {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n content: \"\";\n background-color: ${({ theme }) => theme.colors.black};\n }\n &::before {\n width: 100%;\n height: 2px;\n }\n &::after {\n height: 100%;\n width: 2px;\n }\n`;\n\nconst Categories = styled.div`\n padding-left: 58px;\n padding-right: 10px;\n padding-top: 10px;\n display: none;\n`;\n\nconst Content = styled.div`\n flex: 1;\n`;\n\nconst Button = styled.button`\n box-shadow: 0 2px 4px rgba(32, 37, 44, 0.07);\n border-radius: 16px;\n background-color: #ffffff;\n transition: 0.3s ease-out all;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n padding: 0;\n border: 0;\n margin-left: 15px;\n cursor: pointer;\n ${Text} {\n overflow: hidden;\n width: 0;\n transition: 0.3s ease-out all;\n letter-spacing: 0.28px;\n text-transform: uppercase;\n display: inline-block;\n }\n &:hover {\n ${Text} {\n opacity: 0.7;\n }\n }\n`;\n\nconst Name = styled(Text)`\n text-decoration: none;\n margin: 0 0 2px;\n display: inline-block;\n &:hover {\n opacity: 0.8;\n transition: 0.3s ease-out opacity;\n }\n`;\n\nconst Flex = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst Inner = styled.div<{ $followed?: boolean }>`\n width: 100%;\n padding: 15px 10px;\n transition: 0.3s ease-out all;\n border-radius: 10px;\n background-color: transparent;\n &:hover {\n background-color: #ffffff;\n box-shadow: 0 0 15px rgba(32, 37, 44, 0.1);\n border-color: transparent;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 2;\n ${Categories} {\n display: block;\n }\n ${Plus} {\n display: none;\n width: 0;\n }\n ${Button} {\n box-shadow: ${({ $followed }) =>\n $followed\n ? \"0 -2px 4px rgba(32, 37, 44, 0.07)\"\n : \"0 -2px 4px rgba(255, 255, 255, 0.35)\"};\n background: ${({ theme, $followed }) =>\n $followed ? theme.colors.white : theme.colors.red};\n width: auto;\n ${Text} {\n width: ${({ $followed }) => ($followed ? \"84px\" : \"70px\")};\n }\n }\n }\n`;\n\nconst Card = styled.article`\n display: flex;\n align-items: center;\n position: relative;\n height: 72px;\n border-bottom: 1px solid #ffffff;\n`;\n\nconst StyledContributorAvatar = styled(ContributorAvatar)`\n margin-right: 15px;\n`;\n\ninterface Props {\n contributor: ContributorResource;\n onFollowersChange: (contributorSlug: string) => Promise;\n}\n\nexport const ContributorRow: FC = ({\n contributor,\n onFollowersChange,\n}) => {\n const { isFollowed, toggleFollow, isFollowLoading } = useFollow(\n contributor.id,\n () => onFollowersChange(contributor.slug)\n );\n\n return (\n \n \n \n \n \n \n {contributor.name}\n \n \n {numberWithCommas(contributor.followers_count || 0)}{\" \"}\n {contributor.followers_count!.toString()[0] === \"1\"\n ? \"Follower\"\n : \"Followers\"}\n \n \n \n \n {!!contributor.topics && (\n \n \n Reporting on:\n {\" \"}\n \n {contributor.topics}\n \n \n )}\n \n \n );\n};\n","import { FC, useEffect, useState, memo, useCallback } from \"react\";\nimport styled from \"styled-components\";\nimport { Link } from \"react-router-dom\";\n\nimport { Text } from \"@/components/common\";\nimport { ContributorRow } from \"@/pages/Home/components/ContributorRow\";\nimport { api } from \"@/utilities/api\";\nimport { ContributorResource } from \"@/types/api\";\nimport { PaginatedResponse } from \"@/types\";\nimport { errorNotification } from \"@/utilities/alerts\";\n\nconst ArchiveLink = styled(Text)`\n text-decoration: none;\n display: inline-block;\n margin-top: 14px;\n margin-left: 15px;\n transition: 0.2s ease-out color;\n &:hover,\n &:focus {\n color: ${({ theme }) => theme.colors.red};\n }\n`;\n\nconst Heading = styled(Text)`\n text-transform: uppercase;\n margin: 0 0 10px;\n padding: 0 10px;\n letter-spacing: 0.33px;\n`;\n\nexport const Contributors: FC = memo(() => {\n const [contributors, setContributors] = useState([]);\n\n const onFollowersChange = useCallback(\n async (contributorSlug: string) => {\n try {\n const updatedContributor = await api.get(\n `/v1/contributors/${contributorSlug}`,\n {\n params: {\n include: [\"media\", \"followers_count\", \"user\"].join(\",\"),\n },\n }\n );\n setContributors((prevContributors) =>\n prevContributors.map((contributor) =>\n contributor.id === updatedContributor.id\n ? updatedContributor\n : contributor\n )\n );\n } catch (err) {\n errorNotification();\n }\n },\n [setContributors]\n );\n\n useEffect(() => {\n (async () => {\n try {\n const response = await api.get<\n never,\n PaginatedResponse\n >(\"/v1/contributors\", {\n params: {\n per_page: 5,\n include: [\"user\", \"media\", \"followers_count\"].join(\",\"),\n sort: \"-followers_count\",\n },\n });\n setContributors(response.data);\n } catch (err) {\n errorNotification();\n }\n })();\n }, []);\n\n return (\n
\n \n Top 5 Contributors\n \n {contributors.map((contributor) => (\n \n ))}\n \n See More Contributors\n \n
\n );\n});\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"w0isa\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.5.75a3 3 0 0 0-3 3v12.5c0 .88 1.023 1.3 1.652.757C3.365 15.964 7 12.83 7 12.83s3.635 3.134 4.848 4.177c.63.543 1.65.123 1.652-.757V3.75a3 3 0 0 0-3-3z\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 20,\n strokeWidth: 4,\n d: \"M3.5.75a3 3 0 0 0-3 3v12.5c0 .88 1.023 1.3 1.652.757C3.365 15.964 7 12.83 7 12.83v0s3.635 3.134 4.848 4.177c.63.543 1.65.123 1.652-.757V3.75a3 3 0 0 0-3-3z\",\n clipPath: \"url(\\\"#w0isa\\\")\"\n})));\n\nfunction SvgBookmark(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 14,\n height: 18,\n viewBox: \"0 0 14 18\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBookmark);\nexport default __webpack_public_path__ + \"static/media/bookmark.999fd505.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 20,\n d: \"M10.958 6.075a2.614 2.614 0 1 1-5.227.003 2.614 2.614 0 0 1 5.227-.004zm-2.614 5.512c4.821 0 7.58-5.512 7.58-5.512S13.166.563 8.343.563.765 6.075.765 6.075s2.758 5.512 7.58 5.512z\"\n})));\n\nfunction SvgEye(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 17,\n height: 13,\n viewBox: \"0 0 17 13\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEye);\nexport default __webpack_public_path__ + \"static/media/eye.52d968f1.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"a31ga\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M4.361 5.205a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0z\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n strokeMiterlimit: 20,\n d: \"M1.968 7.994v0l4 .019a.823.823 0 0 1 .826.822v.98a.823.823 0 0 1-.825.824h-.001v0H3.082a.431.431 0 0 0-.431.429v0c0 .107.04.21.112.289a6.137 6.137 0 0 0 8.673.36A6.139 6.139 0 1 0 1.142 7.172a.824.824 0 0 0 .826.823z\"\n})), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n strokeMiterlimit: 20,\n strokeWidth: 2,\n d: \"M4.361 5.205a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0z\",\n clipPath: \"url(\\\"#a31ga\\\")\"\n}))));\n\nfunction SvgReaction(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 14,\n height: 14,\n viewBox: \"0 0 14 14\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgReaction);\nexport default __webpack_public_path__ + \"static/media/reaction.16fddd95.svg\";\nexport { ForwardRef as ReactComponent };","import { useDispatch, useSelector } from \"react-redux\";\nimport { useState } from \"react\";\n\nimport { Dispatch, RootState } from \"@/utilities/store\";\nimport useAuthGuard from \"@/hooks/useAuthGuard\";\n\nconst useBookmarks = (videoId: number) => {\n const dispatch = useDispatch();\n const [isBookmarkLoading, setIsBookmarkLoading] = useState(false);\n\n const isBookmarked = useSelector(\n (state: RootState) =>\n !!state.authentication.user?.bookmarked_videos_ids?.includes(videoId)\n );\n\n const toggleBookmark = useAuthGuard(async () => {\n setIsBookmarkLoading(true);\n await (isBookmarked\n ? dispatch.authentication.unbookmarkVideo(videoId)\n : dispatch.authentication.bookmarkVideo(videoId));\n setIsBookmarkLoading(false);\n });\n\n return { isBookmarked, toggleBookmark, isBookmarkLoading };\n};\n\nexport default useBookmarks;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(90 10 12)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M10 2l12 20H-2z\"\n})));\n\nfunction SvgPlay(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 20,\n height: 24,\n viewBox: \"0 0 20 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgPlay);\nexport default __webpack_public_path__ + \"static/media/play.a44596c2.svg\";\nexport { ForwardRef as ReactComponent };","import React, { memo } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { Link } from \"react-router-dom\";\nimport { useMediaQuery } from \"react-responsive\";\nimport { DateTime } from \"luxon\";\n\nimport { Text } from \"@/components/common\";\nimport { ReactComponent as BookmarkIcon } from \"@/assets/icons/bookmark.svg\";\nimport { ReactComponent as EyeIcon } from \"@/assets/icons/eye.svg\";\nimport { ReactComponent as ReactionIcon } from \"@/assets/icons/reaction.svg\";\nimport { Breakpoints } from \"@/utilities/theme\";\nimport { ContributorAvatar } from \"@/pages/Home/components/ContributorAvatar\";\nimport { VideoResource } from \"@/types/api\";\nimport useBookmarks from \"@/hooks/useBookmarks\";\nimport { VideoThumbnail } from \"@/components/VideoThumbnail\";\nimport { ReactComponent as Spinner } from \"@/assets/icons/spinner.svg\";\n\nexport enum CardSizes {\n Small,\n Medium,\n Large,\n}\n\nconst Description = styled(Text)`\n margin: 0 0 17px;\n ${({ theme }) => css`\n ${theme.breakpoints.mediumDesktop} {\n order: 2;\n }\n `}\n`;\n\nconst FooterInfo = styled.div`\n display: inline-flex;\n align-items: center;\n > svg {\n margin-right: 5px;\n stroke: ${({ theme }) => theme.colors.black};\n }\n &:last-of-type {\n margin-left: 30px;\n ${({ theme }) => css`\n ${theme.breakpoints.smallDesktop} {\n margin: 0;\n }\n ${theme.breakpoints.phone} {\n margin-left: 30px;\n }\n `}\n }\n ${Text} {\n &:first-of-type {\n margin-right: 3px;\n }\n }\n`;\n\nconst Footer = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n ${({ theme }) => css`\n ${theme.breakpoints.mediumDesktop} {\n order: 3;\n }\n ${theme.breakpoints.smallDesktop} {\n justify-content: space-between;\n }\n ${theme.breakpoints.phone} {\n justify-content: flex-end;\n }\n `}\n`;\n\nconst Heading = styled(Text)`\n margin: 11px 0;\n transition: 0.2s ease-out opacity;\n &:hover {\n opacity: 0.75;\n }\n ${({ theme }) => css`\n ${theme.breakpoints.tablet} {\n order: 1;\n }\n `}\n`;\n\nconst BookmarkButton = styled.button<{ $filled: boolean }>`\n margin-left: 15px;\n align-self: flex-start;\n margin-top: 7px;\n cursor: pointer;\n width: 14px;\n flex-shrink: 0;\n border: 0;\n padding: 0;\n background: transparent;\n cursor: pointer;\n > svg {\n width: 100%;\n height: auto;\n stroke: ${({ theme }) => theme.colors.gray};\n transition: 0.2s ease-out fill, 0.2s ease-out opacity;\n fill: transparent;\n }\n\n ${({ theme }) => css`\n ${theme.breakpoints.min.smallDesktop} {\n &:hover {\n > svg {\n opacity: 0.75;\n }\n }\n }\n `}\n\n ${(p) =>\n p.$filled &&\n css`\n > svg {\n fill: ${({ theme }) => theme.colors.gray};\n }\n `}\n`;\n\nconst Name = styled(Text)`\n transition: 0.2s ease-out opacity;\n text-decoration: none;\n margin: 0 0 2px;\n &:hover,\n &:focus {\n opacity: 0.8;\n }\n`;\n\nconst ContributorInfo = styled.div`\n flex: 1;\n`;\n\nconst Contributor = styled.div`\n display: flex;\n align-items: center;\n border-bottom: 1px solid ${({ theme }) => theme.colors.lightGray};\n padding: 11px 0;\n`;\n\nconst Content = styled.div`\n padding: 0 30px 22px;\n background: #ffffff;\n width: 100%;\n border-bottom-left-radius: 10px;\n border-bottom-right-radius: 10px;\n ${({ theme }) => css`\n ${theme.breakpoints.tablet} {\n display: flex;\n flex-direction: column;\n }\n ${theme.breakpoints.phone} {\n padding: 0 15px 21px;\n }\n `}\n`;\n\nconst Ribbon = styled(Text)`\n padding: 0 30px;\n text-transform: uppercase;\n height: 23px;\n display: inline-flex;\n align-items: center;\n background: ${({ theme }) => theme.colors.red};\n position: absolute;\n left: 0;\n top: 15px;\n border-top-right-radius: 14px;\n border-bottom-right-radius: 14px;\n ${({ theme }) => css`\n ${theme.breakpoints.mediumDesktop} {\n top: 0;\n left: auto;\n right: 15px;\n border-radius: 0;\n border-bottom-left-radius: 14px;\n border-bottom-right-radius: 14px;\n width: 89px;\n height: 63px;\n padding: 0;\n justify-content: center;\n text-align: center;\n }\n `}\n`;\n\nconst Card = styled.article<{ $size: CardSizes }>`\n box-shadow: 0 0 15px rgba(32, 37, 44, 0.1);\n background: #ffffff;\n border-radius: 10px;\n display: flex;\n flex-wrap: wrap;\n position: relative;\n ${({ $size }) =>\n $size === CardSizes.Small &&\n css`\n flex-direction: column;\n ${Content} {\n flex: 1;\n display: flex;\n flex-direction: column;\n }\n ${Footer} {\n margin-top: auto;\n }\n ${Ribbon} {\n top: 0;\n left: auto;\n right: 15px;\n border-radius: 0;\n border-bottom-left-radius: 14px;\n border-bottom-right-radius: 14px;\n width: 89px;\n height: 63px;\n padding: 0;\n justify-content: center;\n text-align: center;\n }\n `}\n ${({ $size, theme }) =>\n $size === CardSizes.Large &&\n css`\n border-radius: 10px;\n flex-wrap: nowrap;\n ${theme.breakpoints.mediumDesktop} {\n flex-direction: column;\n position: relative;\n }\n ${Content} {\n flex: 1;\n border-radius: 0;\n border-top-right-radius: 10px;\n padding: 50px 30px 22px;\n border-bottom-right-radius: 10px;\n display: flex;\n flex-direction: column;\n position: relative;\n ${theme.breakpoints.mediumDesktop} {\n padding: 0 30px 22px;\n position: static;\n border-top-right-radius: 0;\n border-bottom-left-radius: 10px;\n }\n }\n ${Contributor} {\n margin-top: auto;\n margin-bottom: 10px;\n border: 0;\n ${theme.breakpoints.mediumDesktop} {\n border-bottom: 1px solid ${({ theme }) => theme.colors.lightGray};\n }\n }\n ${Heading} {\n order: -1;\n margin: 0 0 20px;\n ${theme.breakpoints.mediumDesktop} {\n order: 0;\n margin: 11px 0;\n }\n }\n `}\n`;\n\nconst StyledContributorAvatar = styled(ContributorAvatar)`\n margin-right: 15px;\n`;\n\ninterface Props {\n size?: CardSizes;\n className?: string;\n ribbon?: string;\n video: VideoResource;\n}\n\nexport const VideoCard: React.FC = memo(\n ({ size = CardSizes.Small, className, ribbon, video }) => {\n const { isBookmarked, toggleBookmark, isBookmarkLoading } = useBookmarks(\n video.id\n );\n\n const isTabletOrMobile = useMediaQuery({\n maxWidth: Breakpoints.max.tablet,\n });\n\n const { contributor } = video;\n\n const ribbonText = ribbon\n ? ribbon\n : video.is_sponsored\n ? \"Sponsored content\"\n : null;\n\n return (\n \n \n \n {!!ribbonText && (\n \n {ribbonText}\n \n )}\n \n \n \n \n {contributor!.name}\n \n \n {DateTime.fromISO(video.published_at).toLocaleString({\n month: \"long\",\n day: \"numeric\",\n year: \"numeric\",\n })}\n \n \n \n {isBookmarkLoading ? : }\n \n \n {size === CardSizes.Large && (\n {video.excerpt}\n )}\n\n \n {video.name}\n \n\n
\n \n \n \n {video.views}\n \n \n views\n \n \n \n \n \n {video.reactions_count}\n \n \n comments\n \n \n
\n
\n \n );\n }\n);\n","import { Link } from \"react-router-dom\";\nimport styled, { css } from \"styled-components\";\nimport { ComponentProps, FC } from \"react\";\n\nimport { Text } from \"@/components/common\";\nimport { ReactComponent as PlayIcon } from \"@/assets/icons/play.svg\";\n\nconst StyledPlayButton = styled(Link)`\n opacity: var(--play-btn-opacity, 0);\n position: absolute;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n margin: auto;\n border: 0;\n width: 90px;\n height: 90px;\n transition: 0.2s ease-out all;\n background: rgba(32, 37, 44, 0.7);\n z-index: ${({ theme }) => theme.zIndex.onTop};\n > svg {\n margin-left: 5px;\n }\n &:hover {\n background: ${({ theme }) => theme.colors.red};\n }\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n opacity: 1;\n }\n `}\n`;\n\nexport const PlayButton: FC = (props) => {\n return (\n \n \n \n );\n};\n\nconst StyledDuration = styled(Text)`\n height: 24px;\n display: inline-flex;\n align-items: center;\n padding: 0 10px;\n background-color: rgba(32, 37, 44, 0.7);\n border-radius: 5px;\n position: absolute;\n bottom: 20px;\n right: 30px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n right: 15px;\n bottom: 15px;\n }\n `}\n`;\n\nexport const Duration: FC> = ({\n children,\n className,\n}) => {\n return (\n \n {children}\n \n );\n};\n","import { MediaResource } from \"@/types/api\";\nimport { useState } from \"react\";\n\ninterface State {\n src: string;\n srcSet?: string;\n}\n\nconst useAnimatedThumbnail = (\n cloudflareVideoId: string,\n media?: MediaResource\n): [State, () => void, () => void] => {\n const [state, setState] = useState({\n src:\n media?.url ||\n `https://videodelivery.net/${cloudflareVideoId}/thumbnails/thumbnail.jpg`,\n srcSet: media?.srcSet,\n });\n\n const onMouseEnter = () => {\n setState({\n src: `https://videodelivery.net/${cloudflareVideoId}/thumbnails/thumbnail.gif?duration=4s`,\n });\n };\n\n const onMouseLeave = () => {\n setState({\n src:\n media?.url ||\n `https://videodelivery.net/${cloudflareVideoId}/thumbnails/thumbnail.jpg`,\n srcSet: media?.srcSet,\n });\n };\n\n return [state, onMouseEnter, onMouseLeave];\n};\n\nexport default useAnimatedThumbnail;\n","import { FC } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { ResponsiveImage } from \"@/components/ResponsiveImage\";\nimport { Duration, PlayButton } from \"@/components/Video\";\nimport { VideoResource } from \"@/types/api\";\nimport useAnimatedThumbnail from \"@/hooks/useAnimatedThumbnail\";\n\nconst Thumbnail = styled.div<{ $large: boolean }>`\n width: 100%;\n height: 187px;\n position: relative;\n > img {\n border-top-left-radius: 10px;\n border-top-right-radius: 10px;\n width: 100%;\n height: 100%;\n object-fit: cover;\n top: 0;\n left: 0;\n position: absolute;\n }\n &:hover {\n --play-btn-opacity: 1;\n }\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n height: 195px;\n }\n `};\n ${({ theme, $large }) =>\n $large &&\n css`\n width: 690px;\n min-height: 388px;\n height: 100%;\n > img {\n border-radius: 0;\n border-top-left-radius: 10px;\n border-bottom-left-radius: 10px;\n }\n ${theme.breakpoints.mediumDesktop} {\n width: 100%;\n height: 300px;\n min-height: 0;\n > img {\n border-radius: 0;\n border-top-right-radius: 10px;\n border-top-left-radius: 10px;\n }\n }\n `};\n`;\n\ninterface Props {\n video: VideoResource;\n large: boolean;\n}\n\nexport const VideoThumbnail: FC = ({ video, large }) => {\n const [state, onMouseEnter, onMouseLeave] = useAnimatedThumbnail(\n video.cloudflare_id,\n video.thumbnail!.media\n );\n\n const navigate = useNavigate();\n\n return (\n \n navigate(`/videos/${video.slug}`)}\n src={state.src}\n srcSet={state.srcSet}\n alt={video.name}\n />\n \n {video.meta!.duration}\n \n );\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 20,\n strokeWidth: 2,\n d: \"M1.015 11.896v0L5.582 6.73v0L1.015 1.563v0\"\n})));\n\nfunction SvgArrow(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 7,\n height: 13,\n viewBox: \"0 0 7 13\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrow);\nexport default __webpack_public_path__ + \"static/media/arrow.37e18ca1.svg\";\nexport { ForwardRef as ReactComponent };","import { FC, useRef, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport Slider from \"react-slick\";\nimport \"slick-carousel/slick/slick.css\";\n\nimport { ReactComponent as ArrowIcon } from \"@/assets/icons/arrow.svg\";\nimport { CardSizes, VideoCard } from \"@/pages/Home/components/VideoCard\";\nimport { useMediaQuery } from \"react-responsive\";\nimport { Breakpoints } from \"@/utilities/theme\";\nimport { VideoResource } from \"@/types/api\";\n\nconst Arrow = styled.button<{ $rotate?: boolean }>`\n width: 24px;\n height: 24px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n transition: 0.2s ease-out background-color;\n border-top-right-radius: 5px;\n border-bottom-right-radius: 5px;\n cursor: pointer;\n border: 0;\n padding: 0;\n ${({ theme, $rotate }) => css`\n transform: ${$rotate ? \"rotate(-180deg)\" : \"none\"};\n background: ${theme.colors.white};\n svg {\n transition: 0.2s ease-out stroke;\n stroke: ${theme.colors.gray};\n }\n &:hover {\n background: ${theme.colors.red};\n svg {\n stroke: ${theme.colors.white};\n }\n }\n `}\n`;\n\nconst Dot = styled.button<{ $active: boolean }>`\n width: 8px;\n height: 8px;\n font-size: 0;\n padding: 0;\n margin: 0 5px;\n border-radius: 50%;\n border: 0;\n cursor: pointer;\n transition: 0.2s ease-out all;\n ${({ theme, $active }) => css`\n background-color: ${$active ? theme.colors.red : \"#dfdfe2\"};\n &:hover,\n &:focus {\n background-color: ${theme.colors.red};\n }\n ${theme.breakpoints.phone} {\n width: 6px;\n height: 6px;\n }\n `}\n`;\n\nconst Dots = styled.div`\n margin: 0 25px;\n display: flex;\n align-items: center;\n`;\n\nconst Line = styled.div`\n flex: 1;\n height: 2px;\n background: ${({ theme }) => theme.colors.white};\n`;\n\nconst SliderNav = styled.div`\n display: flex;\n align-items: center;\n padding: 0 15px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n justify-content: center;\n }\n `}\n`;\n\nconst Slide = styled.div`\n padding: 15px;\n margin-right: 30px;\n`;\n\nconst StyledSlider = styled.div`\n overflow-x: hidden;\n margin: -15px;\n .slick-list {\n transition: all 0.4s ease-in-out;\n }\n`;\n\ninterface Props {\n videos: VideoResource[];\n}\n\nexport const VideoSlider: FC = ({ videos }) => {\n const slider = useRef(null);\n\n const [activeSlide, setActiveSlide] = useState(0);\n\n const isMobile = useMediaQuery({ maxWidth: Breakpoints.max.phone });\n\n const sliderSettings = {\n dots: false,\n infinite: true,\n arrows: false,\n slidesToShow: 1,\n slidesToScroll: 1,\n autoplay: true,\n adaptiveHeight: true,\n autoplaySpeed: 4000,\n beforeChange: (_: number, next: number) => setActiveSlide(next),\n };\n\n if (!videos.length) return null;\n\n return (\n \n \n {videos.map((video) => (\n \n \n \n ))}\n \n \n {!isMobile && }\n \n {videos.map((video, index) => (\n slider.current?.slickGoTo(index)}\n >\n {index + 1}\n \n ))}\n \n {!isMobile && (\n <>\n slider.current?.slickPrev()}>\n \n \n slider.current?.slickNext()}>\n \n \n \n )}\n \n \n );\n};\n","import { useEffect, useState, useRef } from \"react\";\n\nconst useInfiniteLoader = (\n loader: () => Promise,\n root?: Document | Element | null\n) => {\n const [isLoading, setIsLoading] = useState(false);\n\n const ref = useRef(null);\n\n useEffect(() => {\n const { current } = ref;\n\n if (!current) return;\n\n const handleObserver = async (entries: IntersectionObserverEntry[]) => {\n const target = entries[0];\n if (target.isIntersecting && !isLoading) {\n setIsLoading(true);\n await loader();\n setIsLoading(false);\n }\n };\n\n const observer = new IntersectionObserver(handleObserver, {\n root,\n rootMargin: \"0px 0px 20px 0px\",\n threshold: 1.0,\n });\n\n observer.observe(current);\n\n return () => observer.unobserve(current);\n }, [loader, root, isLoading]);\n\n return { ref, isLoading };\n};\n\nexport default useInfiniteLoader;\n","import { FC, useEffect, memo } from \"react\";\nimport styled from \"styled-components\";\n\nconst Ins = styled.ins`\n display: block;\n`;\n\ninterface Props {\n adSlot: string;\n className?: string;\n}\n\nconst GoogleAd: FC = memo(({ adSlot, className = \"\" }) => {\n useEffect(() => {\n if (process.env.REACT_APP_ENVIRONMENT !== \"production\") return;\n const global = window as any;\n (global.adsbygoogle = global.adsbygoogle || []).push({});\n }, [adSlot]);\n\n if (process.env.REACT_APP_ENVIRONMENT !== \"production\") return null;\n\n return (\n \n );\n});\n\nexport default GoogleAd;\n","import { FC, useCallback, useEffect, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport MediaQuery from \"react-responsive\";\nimport { Helmet } from \"react-helmet-async\";\n\nimport { Breakpoints } from \"@/utilities/theme\";\nimport { Navbar } from \"@/pages/Home/components/Navbar\";\nimport { Contributors } from \"@/pages/Home/components/Contributors\";\nimport { VideoCard } from \"@/pages/Home/components/VideoCard\";\nimport { VideoSlider } from \"@/pages/Home/components/VideoSlider\";\nimport { CategoryResource, VideoResource, PaginationLinks } from \"@/types/api\";\nimport { api } from \"@/utilities/api\";\nimport { PaginatedResponse } from \"@/types\";\nimport { Loader } from \"@/components/common\";\nimport useInfiniteLoader from \"@/hooks/useInfiniteLoader\";\nimport { errorNotification } from \"@/utilities/alerts\";\nimport GoogleAd from \"@/components/GoogleAd\";\n\nconst Main = styled.main`\n margin-bottom: 85px;\n display: grid;\n grid-template-columns: 100%;\n grid-gap: 30px;\n`;\n\nconst Grid = styled.div`\n display: grid;\n grid-template-columns: minmax(0, 1fr) 330px;\n grid-gap: 30px;\n ${({ theme }) => css`\n ${theme.breakpoints.tablet} {\n grid-template-columns: 100%;\n }\n ${theme.breakpoints.phone} {\n grid-gap: 15px;\n }\n `}\n`;\n\nconst Sidebar = styled(Main)`\n margin: 0;\n display: block;\n > * {\n margin: 0 0 30px;\n &:last-child {\n margin: 0;\n }\n }\n`;\n\nconst SmallGrid = styled(Grid)`\n grid-template-columns: repeat(3, 1fr);\n ${({ theme }) => css`\n ${theme.breakpoints.mediumDesktop} {\n grid-template-columns: repeat(2, 1fr);\n }\n ${theme.breakpoints.phone} {\n grid-template-columns: 100%;\n }\n `}\n`;\n\nconst StyledLoader = styled(Loader)`\n margin-top: 40px;\n`;\n\ninterface GenericParams {\n include: string;\n \"filter[category_id]\"?: number;\n \"filter[visible]\": number;\n}\n\ninterface VideosState {\n isLoading: boolean;\n editorsChoice: VideoResource[];\n other: {\n videos: VideoResource[];\n links?: PaginationLinks;\n };\n}\n\nexport const Home: FC = () => {\n const [categories, setCategories] = useState([]);\n const [categoriesLoaded, setCategoriesLoaded] = useState(false);\n\n const [videosState, setVideosState] = useState({\n isLoading: true,\n editorsChoice: [],\n other: {\n videos: [],\n },\n });\n const [activeCategory, setActiveCategory] = useState(0);\n\n useEffect(() => {\n (async () => {\n try {\n const categories = await api.get(\n \"/v1/categories\"\n );\n setCategories([{ id: 0, name: \"All\" }, ...categories]);\n setCategoriesLoaded(true);\n } catch (err) {\n errorNotification();\n }\n })();\n }, []);\n\n const fetchPaginatedVideos = useCallback(\n async (link = \"/v1/videos\") => {\n return api.get>(link, {\n params: {\n include: [\n \"media\",\n \"reactions_count\",\n \"contributor\",\n \"contributor.user\",\n \"contributor.media\",\n \"meta\",\n \"views_count\",\n ].join(\",\"),\n per_page: 12,\n \"filter[category_id]\": activeCategory || \"\",\n \"filter[editors_choice]\": 0,\n \"filter[parent]\": 1,\n \"filter[visible]\": 1,\n },\n });\n },\n [activeCategory]\n );\n\n useEffect(() => {\n (async () => {\n try {\n setVideosState((prevState) => ({ ...prevState, isLoading: true }));\n const genericParams: GenericParams = {\n include: [\n \"media\",\n \"reactions_count\",\n \"contributor\",\n \"contributor.user\",\n \"contributor.media\",\n \"meta\",\n \"views_count\",\n ].join(\",\"),\n \"filter[visible]\": 1,\n };\n if (activeCategory) {\n genericParams[\"filter[category_id]\"] = activeCategory;\n }\n const { data: editorsChoice } = await api.get<\n never,\n PaginatedResponse\n >(\"/v1/videos\", {\n params: {\n ...genericParams,\n per_page: 10,\n \"filter[editors_choice]\": 1,\n },\n });\n const { data: videos, links } = await fetchPaginatedVideos();\n setVideosState({\n isLoading: false,\n editorsChoice,\n other: { videos, links },\n });\n } catch (err) {\n errorNotification();\n }\n })();\n }, [activeCategory, fetchPaginatedVideos]);\n\n const loader = useCallback(async () => {\n if (!videosState.other.links?.next) return;\n const { data: videos, links } = await fetchPaginatedVideos(\n videosState.other.links.next\n );\n setVideosState((prevState) => ({\n ...prevState,\n other: { videos: [...prevState.other.videos, ...videos], links },\n }));\n }, [videosState.other.links?.next, fetchPaginatedVideos]);\n\n const { isLoading, ref } = useInfiniteLoader(loader);\n\n return (\n <>\n \n \n MyPoint.tv | Eye-witness reports & stories by, and for, everyone\n \n \n \n \n \n {categoriesLoaded ? (\n <>\n \n \n {videosState.isLoading ? (\n \n ) : (\n
\n \n \n {!!videosState.other.videos?.length && (\n <>\n \n {videosState.other.videos.map((video) => (\n \n ))}\n \n {!!videosState.other.links?.next && (\n
\n {isLoading && Loading more stories}\n
\n )}\n \n )}\n
\n )}\n \n \n \n \n \n \n
\n \n ) : (\n \n )}\n \n );\n};\n","import { useDispatch, useSelector } from \"react-redux\";\nimport { useState } from \"react\";\n\nimport { Dispatch, RootState } from \"@/utilities/store\";\nimport useAuthGuard from \"@/hooks/useAuthGuard\";\n\nconst useLikes = (\n videoId: number,\n callback?: (countIncreased: boolean) => void\n) => {\n const dispatch = useDispatch();\n\n const [isLikeLoading, setIsLikeLoading] = useState(false);\n\n const isLiked = useSelector(\n (state: RootState) =>\n !!state.authentication.user?.liked_videos_ids?.includes(videoId)\n );\n\n const toggleLike = useAuthGuard(async () => {\n setIsLikeLoading(true);\n const increment = !isLiked;\n await (increment\n ? dispatch.authentication.likeVideo(videoId)\n : dispatch.authentication.unlikeVideo(videoId));\n setIsLikeLoading(false);\n callback?.(increment);\n });\n\n return { isLiked, toggleLike, isLikeLoading };\n};\n\nexport default useLikes;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.1899 6H7.46973C7.3052 5.99867 7.142 6.03006 6.98975 6.09241C6.83749 6.15475 6.69935 6.2467 6.58301 6.36304C6.46667 6.47938 6.37436 6.61776 6.31201 6.77002C6.24967 6.92228 6.21839 7.08548 6.21973 7.25V17.5C6.21839 17.6645 6.24967 17.8276 6.31201 17.9799C6.37436 18.1321 6.46667 18.2705 6.58301 18.3868C6.69935 18.5032 6.83749 18.5951 6.98975 18.6575C7.142 18.7198 7.3052 18.7513 7.46973 18.75H18.7197C19.0512 18.75 19.3691 18.6182 19.6035 18.3838C19.8379 18.1494 19.9697 17.8315 19.9697 17.5V10.75M19.9697 4.5V7.5M18.4697 6H21.4697M6.21973 15.5399L4.05957 16.4199C3.61254 16.6619 3.08798 16.7167 2.60059 16.5724C2.11319 16.428 1.70314 16.0963 1.45996 15.6499C1.32033 15.4019 1.24104 15.1244 1.22949 14.84V9.90991C1.26047 9.40764 1.48777 8.93759 1.86182 8.60095C2.23586 8.26431 2.72674 8.08806 3.22949 8.10999C3.50994 8.12625 3.78353 8.2048 4.02979 8.33997L6.18994 9.20996L6.21973 15.5399ZM19.9399 1.20996C18.6819 1.20996 17.475 1.70902 16.5845 2.59766C15.694 3.48629 15.1926 4.69191 15.1899 5.94995C15.1899 7.20973 15.6903 8.41792 16.5811 9.30872C17.4719 10.1995 18.6802 10.7 19.9399 10.7C21.198 10.6973 22.4034 10.1957 23.292 9.30518C24.1806 8.41466 24.6797 7.208 24.6797 5.94995C24.6797 4.69282 24.1804 3.48719 23.2915 2.59827C22.4026 1.70934 21.1971 1.20996 19.9399 1.20996Z\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n});\n\nfunction SvgRespond(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 26,\n height: 20,\n viewBox: \"0 0 26 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRespond);\nexport default __webpack_public_path__ + \"static/media/respond.0ddb4b5b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 20,\n strokeWidth: 1.5,\n d: \"M19.013 7.018v0l-6.342-5.91c-.076-.072-.148-.112-.252-.108-.197.01-.449.148-.449.358v2.964c0 .09-.072.17-.162.184-6.306.963-9.383 4.218-10.322 9.098-.036.192.225.371.346.22 2.301-2.889 5.522-3.327 9.95-3.363.098 0 .188.116.188.215v2.91c0 .313.418.452.652.237l6.387-6.013a.493.493 0 0 0 .157-.376c-.005-.143-.04-.309-.153-.416z\"\n})));\n\nfunction SvgShare(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 21,\n height: 15,\n viewBox: \"0 0 21 15\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgShare);\nexport default __webpack_public_path__ + \"static/media/share.b1593e24.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 20,\n strokeWidth: 1.5,\n d: \"M10.482 6.191v0-2.493c0-1.005-.62-1.894-1.618-2 0 0-.777-.02-1.165 0-.343.009-.663.244-.715.584-.125.816-.5 3.228-.5 3.228v0L4.716 8.196v0H1.488v6.995h9.493c3.735 0 4.499-2.174 4.5-4 0-.75.003-2.196 0-3-.004-1.005-.712-2-1.872-2z\"\n})));\n\nfunction SvgLike(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 17,\n height: 17,\n viewBox: \"0 0 17 17\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLike);\nexport default __webpack_public_path__ + \"static/media/like.eeb5f90a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1\"\n});\n\nfunction SvgLink(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLink);\nexport default __webpack_public_path__ + \"static/media/link.85214a3e.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M8 10h.01M12 10h.01M16 10h.01M9 16H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-5l-5 5v-5z\"\n});\n\nfunction SvgChat(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgChat);\nexport default __webpack_public_path__ + \"static/media/chat.5437cb80.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#fff;}\"));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"PRIMARY_-_GHOST\",\n \"data-name\": \"PRIMARY - GHOST\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-1\",\n d: \"M417.93,340.71c-60.61-29.34-70.27-74.64-70.7-78-.52-4.07-1.11-7.27,3.38-11.41,4.33-4,23.54-15.89,28.87-19.61,8.81-6.16,12.69-12.31,9.83-19.87-2-5.23-6.87-7.2-12-7.2a22.3,22.3,0,0,0-4.81.54c-9.68,2.1-19.08,6.95-24.52,8.26a8.56,8.56,0,0,1-2,.27c-2.9,0-4-1.29-3.72-4.78.68-10.58,2.12-31.23.45-50.52-2.29-26.54-10.85-39.69-21-51.32C316.8,101.43,294,77.2,250,77.2S183.23,101.43,178.35,107c-10.18,11.63-18.73,24.78-21,51.32-1.67,19.29-.17,39.93.45,50.52.2,3.32-.82,4.78-3.72,4.78a8.64,8.64,0,0,1-2-.27c-5.43-1.31-14.83-6.16-24.51-8.26a22.3,22.3,0,0,0-4.81-.54c-5.15,0-10,2-12,7.2-2.86,7.56,1,13.71,9.84,19.87,5.33,3.72,24.54,15.6,28.87,19.61,4.48,4.14,3.9,7.34,3.38,11.41-.43,3.41-10.1,48.71-70.7,78-3.55,1.72-9.59,5.36,1.06,11.24,16.72,9.24,27.85,8.25,36.5,13.82,7.34,4.73,3,14.93,8.34,18.61,6.56,4.53,25.95-.32,51,7.95,21,6.92,33.76,26.47,71,26.47s50.37-19.64,71-26.47c25-8.27,44.43-3.42,51-7.95,5.33-3.68,1-13.88,8.34-18.61,8.65-5.57,19.77-4.58,36.5-13.82C427.52,346.07,421.48,342.43,417.93,340.71Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M444.3,337.26c-2.72-7.4-7.9-11.36-13.8-14.64-1.11-.65-2.13-1.17-3-1.57-1.76-.91-3.56-1.79-5.35-2.72-18.39-9.75-32.75-22.05-42.71-36.63a83.06,83.06,0,0,1-7.33-13c-.85-2.43-.81-3.81-.2-5.07a8.25,8.25,0,0,1,2.35-2.45c3.16-2.09,6.42-4.21,8.63-5.64,3.94-2.55,7.06-4.57,9.07-6,7.55-5.28,12.83-10.89,16.13-17.16A34.17,34.17,0,0,0,409.78,204c-5-13.16-17.43-21.33-32.49-21.33a44.75,44.75,0,0,0-9.45,1c-.83.18-1.66.37-2.47.58.14-9-.06-18.5-.86-27.85-2.84-32.87-14.35-50.1-26.35-63.84A105,105,0,0,0,311.37,71C293.16,60.6,272.51,55.32,250,55.32S206.94,60.6,188.71,71a104.62,104.62,0,0,0-26.84,21.6c-12,13.74-23.51,31-26.35,63.84-.8,9.35-1,18.9-.87,27.85-.81-.21-1.63-.4-2.46-.58a44.75,44.75,0,0,0-9.45-1c-15.07,0-27.52,8.17-32.5,21.33a34.21,34.21,0,0,0,1.65,28.41c3.31,6.27,8.59,11.88,16.14,17.16,2,1.4,5.13,3.42,9.07,6,2.13,1.38,5.24,3.4,8.29,5.42a8.9,8.9,0,0,1,2.66,2.67c.64,1.31.66,2.72-.29,5.32a82.29,82.29,0,0,1-7.21,12.73c-9.74,14.25-23.68,26.33-41.48,36-9.43,5-19.23,8.34-23.37,19.59-3.12,8.49-1.08,18.15,6.85,26.29h0a39.63,39.63,0,0,0,10,7.57,108.35,108.35,0,0,0,24.47,9.79,16.16,16.16,0,0,1,4.94,2.21c2.89,2.53,2.48,6.34,6.33,11.92a27.8,27.8,0,0,0,7.24,7.36c8.08,5.58,17.16,5.93,26.78,6.3,8.69.33,18.54.71,29.79,4.42,4.66,1.54,9.5,4.52,15.11,8,13.47,8.28,31.91,19.61,62.77,19.61s49.43-11.39,63-19.7c5.57-3.42,10.38-6.37,14.91-7.87,11.25-3.72,21.1-4.09,29.79-4.42,9.62-.37,18.7-.72,26.78-6.3a27.89,27.89,0,0,0,8.24-9c2.77-4.71,2.7-8,5.3-10.3a15.32,15.32,0,0,1,4.64-2.12,108.76,108.76,0,0,0,24.8-9.88A39,39,0,0,0,437.94,363l.1-.12C445.48,354.92,447.35,345.54,444.3,337.26ZM416.87,352c-16.73,9.24-27.85,8.25-36.5,13.82-7.35,4.73-3,14.93-8.34,18.61-6.56,4.53-25.95-.32-51,7.95-20.66,6.83-33.84,26.47-71,26.47S200,399.25,179,392.33c-25-8.27-44.43-3.42-51-7.95-5.33-3.68-1-13.88-8.34-18.61C111,360.2,99.88,361.19,83.16,352c-10.65-5.88-4.61-9.52-1.06-11.24,60.6-29.34,70.27-74.64,70.7-78,.52-4.07,1.1-7.27-3.38-11.41-4.33-4-23.54-15.89-28.87-19.61-8.82-6.16-12.7-12.31-9.84-19.87,2-5.23,6.88-7.2,12-7.2a22.3,22.3,0,0,1,4.81.54c9.68,2.1,19.08,6.95,24.51,8.26a8.64,8.64,0,0,0,2,.27c2.9,0,3.92-1.46,3.72-4.78-.62-10.59-2.12-31.23-.45-50.52,2.29-26.54,10.84-39.69,21-51.32,4.88-5.59,27.81-29.82,71.66-29.82S316.8,101.43,321.68,107c10.17,11.63,18.73,24.78,21,51.32,1.67,19.29.23,39.94-.45,50.52-.23,3.49.82,4.78,3.72,4.78a8.56,8.56,0,0,0,2-.27c5.44-1.31,14.84-6.16,24.52-8.26a22.3,22.3,0,0,1,4.81-.54c5.15,0,10,2,12,7.2,2.86,7.56-1,13.71-9.83,19.87-5.33,3.72-24.54,15.6-28.87,19.61-4.49,4.14-3.9,7.34-3.38,11.41.43,3.41,10.09,48.71,70.7,78C421.48,342.43,427.52,346.07,416.87,352Z\"\n}));\n\nfunction SvgSnapchat(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 500 500\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), _ref2, title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"1Artboard 1 copy 2\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSnapchat);\nexport default __webpack_public_path__ + \"static/media/snapchat.0013f3ac.svg\";\nexport { ForwardRef as ReactComponent };","import { RefObject, useEffect } from \"react\";\n\ntype ClickableEvent = MouseEvent | TouchEvent;\n\nconst useDetectOutsideClick = (\n ref: RefObject,\n handler: () => void\n): void => {\n useEffect(() => {\n const listener = (event: ClickableEvent) => {\n const el = ref?.current;\n\n if (!el || el.contains(event.target as Node)) {\n return;\n }\n handler();\n };\n\n document.addEventListener(\"click\", listener);\n\n return () => {\n document.removeEventListener(\"click\", listener);\n };\n }, [ref, handler]);\n};\n\nexport default useDetectOutsideClick;\n","import { ComponentProps, FC } from \"react\";\nimport styled, { css } from \"styled-components\";\n\nimport { Text } from \"@/components/common\";\n\nconst Button = styled(Text)<{ $isSelect: boolean }>`\n text-transform: uppercase;\n margin-bottom: 26px;\n &:last-of-type {\n margin-bottom: 0;\n }\n transition: 0.2s ease-out color;\n &:hover {\n color: ${({ theme }) => theme.colors.red};\n }\n ${({ $isSelect, theme }) =>\n $isSelect &&\n css`\n width: 100%;\n padding: 7px 0;\n text-transform: none;\n text-align: left;\n margin: 0;\n &:focus {\n outline: none;\n color: ${theme.colors.red};\n }\n `}\n`;\n\ninterface Props extends ComponentProps {\n active?: boolean;\n select?: boolean;\n}\n\nexport const DropdownItem: FC = ({\n active,\n select,\n children,\n ...props\n}) => {\n return (\n \n {children}\n \n );\n};\n","import styled, { css } from \"styled-components\";\nimport { ComponentProps, FC, useRef } from \"react\";\n\nimport { Card } from \"@/components/common\";\nimport useDetectOutsideClick from \"@/hooks/useDetectOutsideClick\";\n\nexport * from \"./DropdownItem\";\n\nconst StyledDropdown = styled(Card)<{ $isSelect: boolean }>`\n width: 220px;\n position: absolute;\n right: 0;\n padding: 32px 15px;\n top: calc(100% + 12px);\n z-index: ${({ theme }) => theme.zIndex.dropdown};\n display: flex;\n flex-direction: column;\n align-items: center;\n ${({ $isSelect }) =>\n $isSelect &&\n css`\n width: 100%;\n top: 100%;\n right: 0;\n padding: 7px 43px;\n `}\n`;\n\ninterface Props extends Pick, \"className\"> {\n onClose: () => void;\n select?: boolean;\n}\n\nexport const Dropdown: FC = ({\n children,\n onClose,\n className,\n select,\n}) => {\n const ref = useRef(null);\n\n useDetectOutsideClick(ref, onClose);\n\n return (\n \n {children}\n \n );\n};\n","import { FC, MouseEvent } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport {\n EmailIcon,\n EmailShareButton,\n FacebookIcon,\n FacebookShareButton,\n RedditIcon,\n RedditShareButton,\n TwitterIcon,\n TwitterShareButton,\n WhatsappIcon,\n WhatsappShareButton,\n LinkedinShareButton,\n LinkedinIcon,\n FacebookMessengerShareButton,\n FacebookMessengerIcon,\n ViberShareButton,\n ViberIcon,\n} from \"react-share\";\n\nimport { VideoResource } from \"@/types/api\";\nimport { copyToClipboard } from \"@/utilities/helpers\";\nimport { ReactComponent as LinkIcon } from \"@/assets/icons/link.svg\";\nimport { ReactComponent as ChatIcon } from \"@/assets/icons/chat.svg\";\nimport { ReactComponent as SnapChatIcon } from \"@/assets/icons/snapchat.svg\";\n\nimport { Dropdown } from \"@/components/Dropdown\";\n\nconst ShareDropdown = styled(Dropdown)`\n width: 290px;\n padding: 16px;\n max-width: 100vw;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: center;\n margin: -5px;\n > div {\n margin: 5px;\n }\n button,\n a {\n margin: 0;\n padding: 0;\n &:hover {\n opacity: 0.75;\n }\n }\n svg {\n border-radius: 50%;\n }\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n top: auto;\n bottom: calc(100% + 10px);\n right: 10px;\n }\n `}\n`;\n\nconst LinkShareButton = styled.button`\n width: 31px;\n height: 31px;\n background: rgb(127, 127, 127);\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${({ theme }) => theme.colors.white};\n svg {\n height: 20px;\n }\n`;\n\nconst SnapchatShareButton = styled(LinkShareButton)`\n background: #fffc00;\n svg {\n height: 75%;\n }\n`;\n\ninterface Props {\n video: VideoResource;\n onClose: () => void;\n}\n\nexport const ShareDialog: FC = ({ video, onClose }) => {\n const onCopyToClipboard = (e: MouseEvent) => {\n copyToClipboard(video.permalink);\n onClose();\n };\n\n return (\n \n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n );\n};\n","import { FC, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport MediaQuery from \"react-responsive\";\nimport { Link, useLocation } from \"react-router-dom\";\n\nimport useBookmarks from \"@/hooks/useBookmarks\";\nimport useLikes from \"@/hooks/useLikes\";\nimport { Breakpoints } from \"@/utilities/theme\";\nimport { ReactComponent as BookmarkIcon } from \"@/assets/icons/bookmark.svg\";\nimport { ReactComponent as RespondIcon } from \"@/assets/icons/respond.svg\";\nimport { ReactComponent as ShareIcon } from \"@/assets/icons/share.svg\";\nimport { ReactComponent as LikeIcon } from \"@/assets/icons/like.svg\";\nimport { ReactComponent as EyeIcon } from \"@/assets/icons/eye.svg\";\nimport { ReactComponent as ReactionIcon } from \"@/assets/icons/reaction.svg\";\nimport { Text } from \"@/components/common\";\nimport { VideoResource } from \"@/types/api\";\nimport { ShareDialog } from \"@/pages/Video/components/ShareDialog\";\nimport { ReactComponent as Spinner } from \"@/assets/icons/spinner.svg\";\n\nconst VideoActions = styled.div`\n margin-left: auto;\n display: flex;\n align-items: center;\n`;\n\nconst VideoMetaItem = styled.div`\n display: inline-flex;\n align-items: center;\n margin-right: 28px;\n svg {\n margin-right: 6px;\n stroke: #ffffff;\n }\n ${({ theme }) => css`\n ${theme.breakpoints.smallDesktop} {\n margin-right: 20px;\n }\n `}\n`;\n\nconst VideoButton = styled(VideoMetaItem)<{ $fillIcon?: boolean }>`\n margin-left: 28px;\n margin-right: 0;\n text-transform: uppercase;\n cursor: pointer;\n svg {\n margin-right: 0;\n margin-left: 5px;\n fill: transparent;\n ${({ $fillIcon, theme }) =>\n $fillIcon &&\n css`\n fill: ${theme.colors.white};\n `}\n }\n &:hover {\n opacity: 0.75;\n }\n ${({ theme }) => css`\n ${theme.breakpoints.smallDesktop} {\n margin-left: 20px;\n }\n `}\n`;\n\nconst VideoFooter = styled.div`\n background: ${({ theme }) => theme.colors.black};\n height: 50px;\n display: flex;\n align-items: center;\n padding: 0 30px;\n margin-top: -1px;\n ${({ theme }) => css`\n ${theme.breakpoints.smallDesktop} {\n padding: 0 15px;\n }\n ${theme.breakpoints.phone} {\n padding: 0;\n align-items: stretch;\n position: relative;\n }\n `}\n`;\n\nconst MobileButton = styled.button<{ $fillIcon?: boolean }>`\n display: flex;\n flex-direction: column;\n width: 20%;\n align-items: center;\n justify-content: center;\n svg {\n height: 12px;\n stroke: #fff;\n fill: ${({ $fillIcon }) => ($fillIcon ? \"#fff\" : \"transparent\")};\n margin: 0 0 7px;\n }\n ${Text} {\n line-height: 1;\n font-size: 9px;\n }\n`;\n\nconst ShareButtonWrap = styled.div`\n position: relative;\n line-height: 0;\n`;\n\ninterface Props {\n video: VideoResource;\n}\n\nexport const VideoCardFooter: FC = ({ video }) => {\n const location = useLocation();\n\n const { isBookmarked, toggleBookmark, isBookmarkLoading } = useBookmarks(\n video.id\n );\n\n const { isLiked, toggleLike, isLikeLoading } = useLikes(video.id);\n\n const [showSharingDropdown, setShowSharingDropdown] = useState(false);\n\n return (\n \n \n \n \n \n {video.views} Views\n \n \n \n \n \n {video.reactions_count} Comments\n \n \n \n {isLikeLoading ? : }\n \n Like\n \n \n \n {isBookmarkLoading ? : }\n \n Bookmark\n \n \n setShowSharingDropdown((prev) => !prev)}>\n \n \n Share\n \n \n {showSharingDropdown && (\n setShowSharingDropdown(false)}\n video={video}\n />\n )}\n \n \n \n \n \n {video.views} Views\n \n \n \n \n \n {video.reactions_count} Comments\n \n \n \n \n \n \n Respond\n \n \n \n \n\n \n \n Bookmark\n \n {isBookmarkLoading ? : }\n \n \n \n Like\n \n {isLikeLoading ? : }\n \n \n setShowSharingDropdown((prev) => !prev)}\n >\n \n Share\n \n \n \n {showSharingDropdown && (\n setShowSharingDropdown(false)}\n video={video}\n />\n )}\n \n \n \n \n );\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 20,\n strokeWidth: 2,\n d: \"M1 1.5v0l7 7v0l7-7v0\"\n})));\n\nfunction SvgArrowBottom(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 10,\n viewBox: \"0 0 16 10\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowBottom);\nexport default __webpack_public_path__ + \"static/media/arrow-bottom.900e2316.svg\";\nexport { ForwardRef as ReactComponent };","import { PaginationLinks, PaginationMeta } from \"@/types/api\";\n\nexport interface ValidationErrorResponse {\n message: string;\n errors: {\n [Key in keyof T]: string[];\n };\n}\n\nexport interface PaginatedResponse {\n links: PaginationLinks;\n meta: PaginationMeta;\n data: T;\n}\n\nexport enum FilterableReactionTypes {\n ALL = \"all\",\n SUPPORTING = \"supporting\",\n NEUTRAL = \"neutral\",\n OPPOSING = \"opposing\",\n}\n","import { FC, useEffect, useRef } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport styled, { createGlobalStyle } from \"styled-components\";\n\nconst Overlay = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n z-index: ${({ theme }) => theme.zIndex.modal};\n width: 100%;\n height: 100vh;\n padding: 15px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n background: rgba(0, 0, 0, 0.55);\n`;\n\nconst BodyStyle = createGlobalStyle`\n body {\n overflow: hidden;\n }\n`;\n\nconst modalRoot = document.getElementById(\"modal-root\");\n\ninterface Props {\n className?: string;\n}\n\nexport const Modal: FC = ({ children, className }) => {\n const ref = useRef(document.createElement(\"div\"));\n\n useEffect(() => {\n const el = ref.current;\n\n modalRoot!.appendChild(el);\n\n return () => {\n modalRoot!.removeChild(el);\n };\n }, []);\n\n return createPortal(\n <>\n \n {children}\n ,\n ref.current\n );\n};\n","import { ComponentProps, FC, useRef } from \"react\";\nimport styled, { css } from \"styled-components\";\n\nimport { Card } from \"@/components/common\";\nimport useDetectOutsideClick from \"@/hooks/useDetectOutsideClick\";\nimport { ReactComponent as CloseIcon } from \"@/assets/icons/close.svg\";\n\nconst Wrap = styled(Card)`\n width: 600px;\n padding: 50px;\n max-width: 100%;\n margin: 0 auto;\n position: relative;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n padding: 30px 15px;\n }\n `}\n`;\n\nexport const CloseButton = styled.button`\n position: absolute;\n right: 15px;\n top: 15px;\n display: inline-block;\n padding: 10px;\n svg {\n transition: 0.2s ease-out stroke;\n stroke: ${({ theme }) => theme.colors.gray};\n }\n &:hover {\n svg {\n stroke: ${({ theme }) => theme.colors.red};\n }\n }\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n top: 0;\n right: 0;\n }\n `}\n`;\n\ninterface Props extends Pick, \"className\"> {\n onClose: () => void;\n}\n\nexport const Dialog: FC = ({ onClose, children, className }) => {\n const ref = useRef(null);\n\n useDetectOutsideClick(ref, onClose);\n\n return (\n \n \n \n \n {children}\n \n );\n};\n","import { FC, MouseEvent } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { useForm, useWatch } from \"react-hook-form\";\n\nimport { Modal } from \"@/components/Modal\";\nimport { Dialog } from \"@/components/Modal/Dialog\";\nimport { Button, Input, Text } from \"@/components/common\";\nimport { api } from \"@/utilities/api\";\nimport { errorNotification } from \"@/utilities/alerts\";\n\nconst Heading = styled(Text)`\n margin: 0 0 20px;\n text-transform: uppercase;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n text-align: center;\n line-height: 22px;\n > span {\n display: block;\n }\n }\n `}\n`;\n\nconst Inputs = styled.div`\n margin-top: 22px;\n display: grid;\n grid-template-columns: repeat(4, 60px) minmax(0, 1fr);\n grid-column-gap: 15px;\n align-items: center;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-row-gap: 30px;\n }\n `}\n`;\n\nconst Option = styled(Button)<{ $selected: boolean }>`\n border-radius: 20px;\n padding: 0;\n height: 32px;\n border: 0;\n transition: 0.2s ease-out all;\n ${({ theme }) => css`\n background: ${theme.colors.gray};\n color: ${theme.colors.white};\n &:hover {\n opacity: 0.75;\n }\n `}\n ${({ theme, $selected }) =>\n $selected &&\n css`\n background: ${theme.colors.red};\n color: ${theme.colors.white} !important;\n `}\n`;\n\nconst Footer = styled.div`\n display: flex;\n margin-top: 30px;\n align-items: center;\n justify-content: flex-end;\n`;\n\nconst StyledInput = styled(Input)`\n height: 40px;\n padding: 0 25px;\n ${({ theme }) => css`\n border-color: ${theme.colors.bg};\n background: ${theme.colors.bg};\n ${theme.breakpoints.phone} {\n grid-column: 1 / span 4;\n }\n `}\n`;\n\nconst SubmitButton = styled(Button)`\n ${({ loading, theme }) =>\n !loading &&\n css`\n &:disabled {\n cursor: not-allowed;\n background: ${theme.colors.gray};\n }\n `}\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n padding: 0px 50px;\n }\n `}\n`;\n\nconst Cancel = styled(Text)`\n margin-right: 30px;\n transition: 0.2s ease-out opacity;\n &:hover {\n opacity: 0.75;\n }\n`;\n\nconst Label = styled(Text)`\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n text-align: center;\n display: block;\n font-size: 13px;\n }\n `}\n`;\n\ntype FormData = {\n ammount: number;\n};\n\ninterface Props {\n onClose: () => void;\n contributorName: string;\n contributorId: number;\n}\n\nconst options = [5, 10, 15, 25];\n\nexport const ContributorSupportDialog: FC = ({\n onClose,\n contributorName,\n contributorId,\n}) => {\n const {\n register,\n setValue,\n control,\n handleSubmit,\n formState: { isSubmitting },\n } = useForm();\n\n const ammount = useWatch({ control, name: \"ammount\" });\n\n const onSubmit = handleSubmit(async (data) => {\n try {\n const { url } = await api.post(\n `/v1/contributors/${contributorId}/donate`,\n data\n );\n window.location.href = url;\n } catch (error) {\n errorNotification();\n }\n });\n\n return (\n \n \n \n Support contributor {contributorName}\n \n
\n \n \n {options.map((value, index) => (\n ) => {\n e.preventDefault();\n setValue(\"ammount\", value);\n }}\n >\n ${value}\n \n ))}\n \n \n
\n ) => {\n e.preventDefault();\n onClose();\n }}\n >\n Cancel\n \n \n Donate\n \n
\n
\n
\n
\n );\n};\n","import { FC, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { useMediaQuery } from \"react-responsive\";\nimport { DateTime } from \"luxon\";\nimport { Link } from \"react-router-dom\";\n\nimport { VideoResource } from \"@/types/api\";\nimport { Text } from \"@/components/common/Text\";\nimport { ContributorAvatar } from \"@/pages/Home/components/ContributorAvatar\";\nimport { VideoCardFooter } from \"@/pages/Video/components/VideoCardFooter\";\nimport { Breakpoints } from \"@/utilities/theme\";\nimport { ReactComponent as ArrowIcon } from \"@/assets/icons/arrow-bottom.svg\";\nimport { Button } from \"@/components/common\";\nimport { ContributorSupportDialog } from \"@/components/ContributorSupportDialog\";\n\nconst Content = styled.div`\n padding: 0 30px 32px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n padding: 15px 15px 0;\n display: flex;\n flex-direction: column;\n }\n `}\n`;\n\nconst Author = styled.div<{ $hideBorderBottom: boolean }>`\n display: flex;\n align-items: center;\n padding: 14px 0;\n border-bottom: 1px solid ${({ theme }) => theme.colors.lightGray};\n\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n padding: 10px 0;\n border-top: 1px solid ${({ theme }) => theme.colors.lightGray};\n margin: 0;\n }\n `}\n ${({ $hideBorderBottom }) =>\n $hideBorderBottom &&\n css`\n border-bottom: 0;\n `}\n`;\n\nconst AuthorName = styled(Text)`\n text-decoration: none;\n margin: 0 0 2px;\n display: inline-block;\n &:hover {\n opacity: 0.8;\n transition: 0.3s ease-out opacity;\n }\n`;\n\nconst Heading = styled(Text)`\n margin: 15px 0 10px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n order: -1;\n margin: 0 0 15px;\n padding: 5px 0;\n display: flex;\n align-items: flex-start;\n > span {\n flex: 1;\n }\n }\n `}\n`;\n\nconst SupportButton = styled(Button)`\n margin-left: auto;\n`;\n\nconst DescriptionToggle = styled.button<{ $rotate: boolean }>`\n margin-left: 22px;\n svg {\n stroke: ${({ theme }) => theme.colors.gray};\n fill: transparent;\n transition: 0.2s ease-out transform;\n ${({ $rotate }) =>\n $rotate &&\n css`\n transform: rotate(180deg);\n `}\n }\n`;\n\nconst Description = styled(Text)`\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n padding: 15px 0;\n }\n `}\n`;\n\nconst StyledContributorAvatar = styled(ContributorAvatar)`\n margin-right: 15px;\n`;\n\ninterface Props {\n video: VideoResource;\n}\n\nexport const VideoCardContent: FC = ({ video }) => {\n const [isContentOpen, setIsContentOpen] = useState(false);\n const [showSupportDialog, setShowSupportDialog] = useState(false);\n\n const isMobile = useMediaQuery({ maxWidth: Breakpoints.max.phone });\n\n return (\n <>\n \n \n \n \n
\n \n {video.contributor!.name}\n \n \n {DateTime.fromISO(video.published_at).toLocaleString({\n month: \"long\",\n day: \"numeric\",\n year: \"numeric\",\n })}\n \n
\n {!!!video.hide_support_button && (\n <>\n setShowSupportDialog(true)}>\n Support\n \n {showSupportDialog && (\n setShowSupportDialog(false)}\n />\n )}\n \n )}\n
\n \n {video.name}\n {isMobile && (\n setIsContentOpen((prev) => !prev)}\n >\n \n \n )}\n \n {video.description && (!isMobile || isContentOpen) && (\n {video.description}\n )}\n
\n \n );\n};\n","import { FC } from \"react\";\nimport styled, { css } from \"styled-components\";\n\nimport { Text } from \"@/components/common\";\nimport { VideoResource } from \"@/types/api\";\nimport { ReactComponent as LikeIcon } from \"@/assets/icons/like.svg\";\nimport useLikes from \"@/hooks/useLikes\";\nimport { DateTime } from \"luxon\";\n\nconst Content = styled.div`\n padding: 0 30px 46px;\n background: ${({ theme }) => theme.colors.white};\n border-radius: 0 0 10px 10px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n padding: 0 15px 30px;\n }\n `}\n`;\n\nconst Header = styled.div`\n border-bottom: 1px solid ${({ theme }) => theme.colors.lightGray};\n padding: 25px 0;\n display: flex;\n align-items: center;\n`;\n\nconst Badge = styled(Text).attrs({\n $type: \"labelBold\",\n as: \"div\",\n $color: \"white\",\n})`\n background: ${({ theme }) => theme.colors.red};\n height: 22px;\n line-height: 0;\n padding: 0 14px 0 30px;\n display: inline-flex;\n align-items: center;\n border-radius: 0px 11px 11px 0px;\n margin-left: -30px;\n margin-right: 30px;\n flex-shrink: 0;\n text-transform: uppercase;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin-right: 20px;\n }\n `}\n`;\n\nconst Title = styled.p`\n flex: 1;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n white-space: initial;\n }\n `}\n`;\n\nconst Likes = styled.div`\n margin-left: 30px;\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin-left: 20px;\n }\n `}\n`;\n\nconst StyledLikeIcon = styled(LikeIcon)<{ $filled: boolean }>`\n fill: transparent;\n stroke: ${({ theme }) => theme.colors.black};\n ${({ theme, $filled }) =>\n $filled &&\n css`\n fill: ${theme.colors.black};\n `}\n`;\n\nconst LikeButton = styled.button`\n margin-left: 14px;\n`;\n\nconst Heading = styled(Text).attrs({ as: \"h1\", $type: \"heading1\" })`\n margin: 21px 0 15px;\n`;\n\nconst Footer = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nconst Date = styled(Text)`\n margin-left: 15px;\n`;\n\ninterface Props {\n video: VideoResource;\n}\n\nexport const CommentContent: FC = ({ video }) => {\n const { isLiked, toggleLike, isLikeLoading } = useLikes(video.id);\n\n return (\n \n
\n {video.reaction}\n \n <Text as=\"span\" $type=\"labelNormal\">\n This video is a comment on:{\" \"}\n </Text>\n <Text as=\"strong\" $type=\"labelSemiBold\">\n {video.parent!.name}\n </Text>\n \n \n \n {video.likes_count}\n \n \n \n \n \n
\n {video.name}\n
\n {video.contributor!.name}\n \n {DateTime.fromISO(video.published_at).toRelativeCalendar()}\n \n
\n
\n );\n};\n","import { FC, useEffect, useRef, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { Stream } from \"@cloudflare/stream-react\";\n\nimport { VideoResource } from \"@/types/api\";\nimport { api } from \"@/utilities/api\";\n\nconst StyledStream = styled(Stream)`\n border-top-left-radius: 10px;\n border-top-right-radius: 10px;\n overflow: hidden;\n height: 524px;\n iframe {\n border-top-left-radius: 10px;\n border-top-right-radius: 10px;\n }\n ${({ theme }) => css`\n ${theme.breakpoints.mediumDesktop} {\n height: 360px;\n }\n ${theme.breakpoints.tablet} {\n height: 388px;\n }\n ${theme.breakpoints.phone} {\n border-radius: 0;\n height: 220px;\n iframe {\n border-radius: 0;\n }\n }\n `}\n`;\n\ninterface Props {\n video: VideoResource;\n}\n\nexport const VideoPlayer: FC = ({ video }) => {\n const secondsViewdRef = useRef(0);\n const intervalRef = useRef(null);\n // @cloudflare/stream-react has incorrect types definition, thats why we use any there\n const videoRef = useRef(null);\n const [duration, setDuration] = useState();\n\n useEffect(() => {\n return () => {\n if (intervalRef.current) {\n window.clearInterval(intervalRef.current);\n }\n secondsViewdRef.current = 0;\n intervalRef.current = null;\n };\n }, [video.id]);\n\n const getVideoViewedThreshold = () => {\n if (!duration || duration > 30) return 30;\n\n return Math.floor(duration / 2);\n };\n\n const trackVideoView = () => {\n api.post(`/v1/videos/${video.id}/views`).catch((err) => console.error(err));\n };\n\n const onPlay = () => {\n intervalRef.current = window.setInterval(() => {\n secondsViewdRef.current++;\n if (secondsViewdRef.current === getVideoViewedThreshold()) {\n trackVideoView();\n window.clearInterval(intervalRef.current!);\n }\n }, 1000);\n };\n\n const onPause = () => {\n if (intervalRef.current) {\n window.clearInterval(intervalRef.current);\n }\n };\n\n const onDurationChange = () => {\n const duration = videoRef.current!.duration;\n\n if (Number.isNaN(duration)) return;\n\n setDuration(duration);\n };\n\n return (\n \n );\n};\n","import { FC } from \"react\";\nimport styled, { css } from \"styled-components\";\n\nimport { VideoResource } from \"@/types/api\";\nimport { Card } from \"@/components/common\";\nimport { VideoCardContent } from \"@/pages/Video/components/VideoCardContent\";\nimport { CommentContent } from \"@/pages/Video/components/CommentContent\";\nimport { VideoPlayer } from \"@/pages/Video/components/VideoPlayer\";\n\nconst StyledCard = styled(Card)`\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n box-shadow: none;\n border-radius: 0;\n margin: 0 -15px;\n }\n `}\n`;\n\ninterface Props {\n video: VideoResource;\n}\n\nexport const VideoCard: FC = ({ video }) => {\n return (\n \n \n {!!video.parent ? (\n \n ) : (\n \n )}\n \n );\n};\n","import { FC, memo } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { Link } from \"react-router-dom\";\nimport MediaQuery from \"react-responsive\";\n\nimport { VideoResource } from \"@/types/api\";\nimport { Card, Text } from \"@/components/common\";\nimport useBookmarks from \"@/hooks/useBookmarks\";\nimport { ReactComponent as BookmarkIcon } from \"@/assets/icons/bookmark.svg\";\nimport { Duration, PlayButton } from \"@/components/Video\";\nimport { Breakpoints } from \"@/utilities/theme\";\nimport { ResponsiveImage } from \"@/components/ResponsiveImage\";\nimport useAnimatedThumbnail from \"@/hooks/useAnimatedThumbnail\";\nimport { ReactComponent as Spinner } from \"@/assets/icons/spinner.svg\";\n\nconst StyledCard = styled(Card)`\n display: flex;\n min-height: 94px;\n margin: 0 0 10px;\n ${({ theme }) => css`\n ${theme.breakpoints.tablet} {\n position: static;\n min-height: 110px;\n }\n `}\n`;\n\nconst ThumbnailWrap = styled.div`\n position: relative;\n width: 165px;\n flex-shrink: 0;\n border-top-left-radius: 10px;\n border-bottom-left-radius: 10px;\n &:hover {\n --play-btn-opacity: 1;\n }\n ${({ theme }) => css`\n ${theme.breakpoints.tablet} {\n --play-btn-opacity: 1;\n width: 200px;\n }\n ${theme.breakpoints.phone} {\n --play-btn-opacity: 1;\n width: 165px;\n }\n `}\n`;\n\nconst Thumbnail = styled(ResponsiveImage)`\n width: 100%;\n height: 100%;\n object-fit: cover;\n position: absolute;\n left: 0;\n top: 0;\n border-top-left-radius: 10px;\n border-bottom-left-radius: 10px;\n`;\n\nconst Content = styled.div`\n padding: 10px 40px 15px 20px;\n flex: 1;\n position: relative;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n padding: 12px 15px 14px;\n }\n `}\n`;\n\nconst Heading = styled(Text)`\n margin-top: 4px;\n display: inline-block;\n transition: 0.2s ease-out color;\n &:hover {\n color: ${({ theme }) => theme.colors.red};\n }\n`;\n\nconst Bookmark = styled.button<{ $fillIcon: boolean }>`\n position: absolute;\n top: 10px;\n right: 15px;\n cursor: pointer;\n > svg {\n width: 13px;\n height: 17px;\n stroke: ${({ theme }) => theme.colors.gray};\n transition: 0.2s ease-out fill, 0.2s ease-out opacity;\n fill: transparent;\n }\n ${({ theme }) => css`\n ${theme.breakpoints.min.smallDesktop} {\n &:hover {\n > svg {\n opacity: 0.75;\n }\n }\n }\n `}\n ${({ theme, $fillIcon }) =>\n $fillIcon &&\n css`\n > svg {\n fill: ${theme.colors.gray};\n }\n `}\n`;\n\nconst StyledDuration = styled(Duration)`\n && {\n bottom: 10px;\n right: 10px;\n }\n`;\n\nconst MobileContributorName = styled(Text)`\n padding-right: 20px;\n`;\n\nconst StyledPlayButton = styled(PlayButton)`\n width: 60px;\n height: 60px;\n`;\n\ninterface Props {\n video: VideoResource;\n className?: string;\n}\n\nexport const ListableVideoCard: FC = memo(({ video, className }) => {\n const { isBookmarked, toggleBookmark, isBookmarkLoading } = useBookmarks(\n video.id\n );\n\n const [imgState, onMouseEnter, onMouseLeave] = useAnimatedThumbnail(\n video.cloudflare_id,\n video.thumbnail!.media\n );\n\n return (\n \n \n \n \n {!!video.meta?.duration && (\n {video.meta.duration}\n )}\n \n \n \n \n {video.contributor!.name}\n \n \n {video.name}\n \n \n {isBookmarkLoading ? : }\n \n \n \n
\n \n {video.contributor!.name}\n \n \n {isBookmarkLoading ? : }\n \n
\n
\n \n {video.name}\n \n
\n
\n
\n
\n );\n});\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeMiterlimit: 20,\n strokeWidth: 2,\n d: \"M12 7H1m7 6H1M16 1H1\"\n})));\n\nfunction SvgSort(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 17,\n height: 14,\n viewBox: \"0 0 17 14\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSort);\nexport default __webpack_public_path__ + \"static/media/sort.58ce48ea.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 20,\n strokeWidth: 2,\n d: \"M20.057 1.744v0H1v0l7.623 9.014v5.232l3.811 1.906v0-7.138 0z\"\n})));\n\nfunction SvgFilter(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 21,\n height: 19,\n viewBox: \"0 0 21 19\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFilter);\nexport default __webpack_public_path__ + \"static/media/filter.12c65764.svg\";\nexport { ForwardRef as ReactComponent };","import {\n FC,\n useState,\n useEffect,\n useCallback,\n useRef,\n MouseEvent,\n} from \"react\";\nimport styled, { css } from \"styled-components\";\n\nimport { Loader, SrOnly, Text } from \"@/components/common\";\nimport { PaginationLinks, VideoResource } from \"@/types/api\";\nimport { ListableVideoCard } from \"@/components/ListableVideoCard\";\nimport useInfiniteLoader from \"@/hooks/useInfiniteLoader\";\nimport { FilterableReactionTypes, PaginatedResponse } from \"@/types\";\nimport { api } from \"@/utilities/api\";\nimport { errorNotification } from \"@/utilities/alerts\";\nimport { ReactComponent as SortIcon } from \"@/assets/icons/sort.svg\";\nimport { ReactComponent as FilterIcon } from \"@/assets/icons/filter.svg\";\nimport { Dropdown, DropdownItem } from \"@/components/Dropdown\";\n\nconst Heading = styled(Text)`\n display: inline-flex;\n align-items: center;\n text-transform: uppercase;\n\n ${({ theme }) =>\n css`\n ${theme.breakpoints.smallDesktop} {\n font-size: 12px;\n }\n `}\n`;\n\nconst Wrap = styled.div`\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow-y: hidden;\n margin: 0 -15px;\n`;\n\nconst StyledSortIcon = styled(SortIcon)`\n margin-left: 12px;\n stroke: currentColor;\n`;\n\nconst StyledFilterIcon = styled(FilterIcon)`\n stroke: currentColor;\n margin-left: 12px;\n fill: transparent;\n`;\n\nconst Header = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 0 0 29px;\n padding: 0 15px;\n ${({ theme }) =>\n css`\n ${theme.breakpoints.smallDesktop} {\n margin: 0 0 20px;\n }\n `}\n`;\n\nconst ReactionsFilter = styled.div`\n position: relative;\n line-height: 0;\n`;\n\nconst HeadingButton = styled.button<{ $red?: boolean }>`\n color: inherit;\n ${({ theme, $red }) =>\n $red &&\n css`\n color: ${theme.colors.red};\n `}\n`;\n\nconst VideosList = styled.div`\n flex: 1;\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n padding: 15px 15px 0;\n margin-top: -15px;\n`;\n\nenum Tabs {\n REACTIONS,\n RELATED_STORIES,\n}\n\nenum Sort {\n LATEST = \"-published_at\",\n OLDEST = \"published_at\",\n \"MOST LIKED\" = \"-likes_count\",\n}\n\ninterface State {\n videos: VideoResource[];\n links?: PaginationLinks;\n isLoading: boolean;\n activeTab: Tabs;\n reactionsType: FilterableReactionTypes;\n sort: Sort;\n showFiltersDropdown: boolean;\n showSortDropdown: boolean;\n}\n\nconst INITIAL_STATE = {\n videos: [],\n isLoading: true,\n activeTab: Tabs.REACTIONS,\n reactionsType: FilterableReactionTypes.ALL,\n sort: Sort.LATEST,\n showFiltersDropdown: false,\n showSortDropdown: false,\n};\n\ninterface Props {\n video: VideoResource;\n}\n\nexport const SidebarVideos: FC = ({ video }) => {\n const [state, setState] = useState({\n ...INITIAL_STATE,\n activeTab:\n video.parent || !!!video.reactions_count\n ? Tabs.RELATED_STORIES\n : Tabs.REACTIONS,\n });\n const rootRef = useRef(null);\n\n const fetchPaginatedVideos = useCallback(\n (link = \"/v1/videos\") => {\n const include = [\n \"media\",\n \"contributor\",\n \"contributor.user\",\n \"meta\",\n ...(state.sort === Sort[\"MOST LIKED\"] ? [\"likes_count\"] : []),\n ].join(\",\");\n return api.get>(link, {\n params:\n state.activeTab === Tabs.RELATED_STORIES\n ? {\n sort: [\"-related_tags_count\", \"-published_at\"].join(\",\"),\n include,\n \"filter[with_related_tags_count]\": video.id,\n per_page: 8,\n \"filter[category_id]\": video\n .categories!.map((c) => c.id)\n .join(\",\"),\n \"filter[parent]\": 1,\n \"filter[exclude]\": video.id,\n \"filter[visible]\": 1,\n }\n : {\n sort: state.sort,\n include,\n per_page: 8,\n \"filter[parent_id]\": video.id,\n \"filter[reaction]\": state.reactionsType,\n \"filter[visible]\": 1,\n },\n });\n },\n [video, state.activeTab, state.reactionsType, state.sort]\n );\n\n useEffect(() => {\n (async () => {\n try {\n setState((prevState) => ({\n ...prevState,\n isLoading: true,\n }));\n const { data, links } = await fetchPaginatedVideos();\n setState((prevState) => ({\n ...prevState,\n videos: data,\n isLoading: false,\n links,\n }));\n } catch (err) {\n errorNotification();\n }\n })();\n }, [fetchPaginatedVideos]);\n\n const loader = useCallback(async () => {\n if (!state.links?.next) return;\n const { data: videos, links } = await fetchPaginatedVideos(\n state.links.next\n );\n setState((prevState) => ({\n ...prevState,\n videos: [...prevState.videos, ...videos],\n isLoading: false,\n links,\n }));\n }, [state.links?.next, fetchPaginatedVideos]);\n\n const { isLoading, ref } = useInfiniteLoader(loader, rootRef.current);\n\n const onTabChange = (activeTab: Tabs) => {\n if (activeTab === state.activeTab) return;\n setState({\n ...INITIAL_STATE,\n activeTab,\n });\n };\n\n const toggleFiltersDropdown = (e: MouseEvent) => {\n setState((prevState) => ({\n ...prevState,\n showFiltersDropdown: !prevState.showFiltersDropdown,\n }));\n };\n\n const toggleSortDropdown = (e: MouseEvent) => {\n setState((prevState) => ({\n ...prevState,\n showSortDropdown: !prevState.showSortDropdown,\n }));\n };\n\n const setReactionsType = (reactionsType: FilterableReactionTypes) => {\n if (reactionsType === state.reactionsType) return;\n setState((prevState) => ({\n ...INITIAL_STATE,\n sort: prevState.sort,\n reactionsType,\n }));\n };\n\n const setSort = (sort: Sort) => {\n if (sort === state.sort) return;\n setState((prevState) => ({\n ...INITIAL_STATE,\n reactionsType: prevState.reactionsType,\n sort,\n }));\n };\n\n return (\n \n
\n {!!!video.parent && (\n \n onTabChange(Tabs.REACTIONS)}>\n COMMENTS ON THIS VIDEO\n \n \n \n Filter comments\n \n \n {state.showFiltersDropdown && (\n \n setState((prevState) => ({\n ...prevState,\n showFiltersDropdown: false,\n }))\n }\n >\n {Object.values(FilterableReactionTypes).map(\n (reactionsType) => (\n setReactionsType(reactionsType)}\n active={state.reactionsType === reactionsType}\n >\n {reactionsType}\n \n )\n )}\n \n )}\n \n \n \n Sort comments\n \n \n {state.showSortDropdown && (\n \n setState((prevState) => ({\n ...prevState,\n showSortDropdown: false,\n }))\n }\n >\n {(Object.keys(Sort) as Array).map(\n (key) => (\n setSort(Sort[key])}\n active={state.sort === Sort[key]}\n >\n {key}\n \n )\n )}\n \n )}\n \n \n )}\n onTabChange(Tabs.RELATED_STORIES)}\n >\n Trending Videos\n \n
\n \n {state.isLoading ? (\n \n ) : (\n state.videos.map((video) => (\n \n ))\n )}\n {!!state.links?.next &&
{isLoading && }
}\n
\n
\n );\n};\n","import { FC, useCallback, useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\n\nimport { Button, Loader, Text } from \"@/components/common\";\nimport { PaginationLinks, VideoResource } from \"@/types/api\";\nimport { ReactComponent as SortIcon } from \"@/assets/icons/sort.svg\";\nimport { ReactComponent as FilterIcon } from \"@/assets/icons/filter.svg\";\nimport { PaginatedResponse } from \"@/types\";\nimport { api } from \"@/utilities/api\";\nimport useInfiniteLoader from \"@/hooks/useInfiniteLoader\";\nimport { Dropdown, DropdownItem } from \"@/components/Dropdown\";\nimport { ReactComponent as Respond } from \"@/assets/icons/respond.svg\";\nimport { Link, useLocation } from \"react-router-dom\";\nimport { ListableVideoCard } from \"@/components/ListableVideoCard\";\n\nconst Header = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 0 0 20px;\n`;\n\nconst SortButton = styled(Text).attrs({ as: \"button\" })`\n display: inline-flex;\n align-items: center;\n cursor: pointer;\n transition: 0.2s ease-out color;\n text-transform: uppercase;\n > svg {\n fill: transparent;\n margin-right: 10px;\n }\n &:hover {\n color: ${({ theme }) => theme.colors.black};\n }\n`;\n\nconst SortWrap = styled.div`\n position: relative;\n`;\n\nconst Grid = styled.div`\n display: grid;\n grid-template-columns: 100%;\n grid-gap: 15px;\n`;\n\nconst ReactionsTypeDropdown = styled(Dropdown)`\n right: auto;\n left: 0;\n`;\n\nconst Filter = styled(SortWrap)`\n margin-top: 2px;\n`;\n\nconst RespondIcon = styled(Respond)`\n fill: transparent;\n stroke: #ffffff;\n`;\n\nconst RespondCta = styled.div`\n text-align: center;\n margin: 0 0 20px;\n`;\n\nconst VideoCard = styled(ListableVideoCard)`\n margin: 0;\n`;\n\nconst StyledSortIcon = styled(SortIcon)<{ $red: boolean }>`\n width: 14px;\n margin-top: -2px;\n stroke: ${({ theme, $red }) => ($red ? theme.colors.red : theme.colors.gray)};\n`;\n\nconst StyledFilterIcon = styled(FilterIcon)<{ $red: boolean }>`\n width: 18px;\n margin-top: -3px;\n stroke: ${({ theme, $red }) => ($red ? theme.colors.red : theme.colors.gray)};\n`;\n\nconst StyledRespondIcon = styled(RespondIcon)`\n position: relative;\n top: -2px;\n`;\n\ntype ReactionType = \"all\" | \"supporting\" | \"neutral\" | \"opposing\";\n\nconst reactionTypes: Array = [\n \"all\",\n \"supporting\",\n \"neutral\",\n \"opposing\",\n];\n\nenum Sort {\n LATEST = \"-published_at\",\n OLDEST = \"published_at\",\n \"MOST LIKED\" = \"-likes_count\",\n}\n\ninterface Props {\n video: VideoResource;\n}\n\ninterface State {\n loaded: boolean;\n sort: Sort;\n activeType: ReactionType;\n links?: PaginationLinks;\n videos: VideoResource[];\n sortOpened: boolean;\n filterOpened: boolean;\n}\n\nexport const MobileReactions: FC = ({ video }) => {\n const location = useLocation();\n\n const [state, setState] = useState({\n loaded: false,\n sortOpened: false,\n filterOpened: false,\n sort: Sort.LATEST,\n activeType: \"all\",\n videos: [],\n });\n\n const fetchPaginatedVideos = useCallback(\n async (link = \"/v1/videos\") => {\n return api.get>(link, {\n params: {\n sort: state.sort,\n include: [\n ...(state.sort === Sort[\"MOST LIKED\"] ? [\"likes_count\"] : []),\n \"media\",\n \"contributor\",\n \"contributor.user\",\n \"meta\",\n ].join(\",\"),\n per_page: 8,\n \"filter[parent_id]\": video.parent?.id || video.id,\n \"filter[reaction]\": state.activeType,\n \"filter[visible]\": 1,\n },\n });\n },\n [video, state.sort, state.activeType]\n );\n\n useEffect(() => {\n (async () => {\n const response = await fetchPaginatedVideos();\n setState((prevState) => ({\n ...prevState,\n loaded: true,\n videos: response.data,\n links: response.links,\n }));\n })();\n }, [fetchPaginatedVideos]);\n\n const loader = useCallback(async () => {\n if (!state.links?.next) return;\n const { data: videos, links } = await fetchPaginatedVideos(\n state.links.next\n );\n setState((prevState) => ({\n ...prevState,\n videos: [...prevState.videos, ...videos],\n links,\n }));\n }, [state.links?.next, fetchPaginatedVideos]);\n\n const { isLoading, ref } = useInfiniteLoader(loader);\n\n const onReactTypeChange = (activeType: ReactionType) => {\n setState((prevState) => ({\n ...prevState,\n activeType,\n filterOpened: false,\n }));\n };\n\n const onSortChange = (sort: Sort) => {\n setState((prevState) => ({\n ...prevState,\n sortOpened: false,\n sort,\n }));\n };\n\n return (\n
\n \n \n \n UPLOAD VIDEO COMMENT\n \n \n {state.loaded ? (\n !!state.videos.length && (\n <>\n
\n \n \n setState((prevState) => ({\n ...prevState,\n filterOpened: !prevState.filterOpened,\n }))\n }\n >\n \n {state.activeType} COMMENTS\n \n {state.filterOpened && (\n \n setState((prevState) => ({\n ...prevState,\n filterOpened: false,\n }))\n }\n >\n {reactionTypes.map((type) => (\n onReactTypeChange(type)}\n active={state.activeType === type}\n >\n {type}\n \n ))}\n \n )}\n \n \n \n setState((prevState) => ({\n ...prevState,\n sortOpened: !prevState.sortOpened,\n }))\n }\n >\n \n SORT BY\n \n {state.sortOpened && (\n \n setState((prevState) => ({\n ...prevState,\n sortOpened: false,\n }))\n }\n >\n {(Object.keys(Sort) as Array).map(\n (key) => (\n onSortChange(Sort[key])}\n active={state.sort === Sort[key]}\n >\n {key}\n \n )\n )}\n \n )}\n \n
\n \n {state.videos.map((video) => (\n \n ))}\n \n {!!state.links?.next && (\n
{isLoading && }
\n )}\n \n )\n ) : (\n \n )}\n
\n );\n};\n","import { FC, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\n\nimport { VideoResource } from \"@/types/api\";\nimport { Text } from \"@/components/common/Text\";\nimport { MobileReactions } from \"@/pages/Video/components/MobileReactions\";\nimport { MobileTrendingVideos } from \"@/pages/Video/components/MobileTrendingVideos\";\n\nconst TabsNav = styled.nav`\n border-top: 1px solid ${({ theme }) => theme.colors.lightGray};\n border-bottom: 1px solid ${({ theme }) => theme.colors.lightGray};\n display: flex;\n justify-content: center;\n margin: 30px 0;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin: 0 0 24px;\n }\n `}\n`;\n\nconst TabsButton = styled.button<{ $active: boolean }>`\n height: 52px;\n display: inline-flex;\n align-items: center;\n margin: 0 20px;\n text-transform: uppercase;\n margin-bottom: -1px;\n border-bottom: 1px solid\n ${({ theme, $active }) => ($active ? theme.colors.red : \"transparent\")};\n`;\n\nconst TabsButtonText = styled(Text)`\n line-height: 1.6;\n`;\n\nenum TabsEnum {\n COMMENTS = \"COMMENTS ON THIS VIDEO\",\n TRENDING = \"TRENDING\",\n}\n\ninterface Props {\n video: VideoResource;\n}\n\nexport const MobileTabs: FC = ({ video }) => {\n const [activeTab, setActiveTab] = useState(\n !!video.reactions_count ? TabsEnum.COMMENTS : TabsEnum.TRENDING\n );\n\n const renderTab = () => {\n switch (activeTab) {\n case TabsEnum.TRENDING:\n return ;\n case TabsEnum.COMMENTS:\n return ;\n default:\n return null;\n }\n };\n\n return (\n <>\n \n {(Object.keys(TabsEnum) as Array).map((key) => (\n setActiveTab(TabsEnum[key])}\n >\n \n {key === \"COMMENTS\" && !!video.parent\n ? \"COMMENTS ON THE ORIGINAL STORY\"\n : TabsEnum[key]}\n \n \n ))}\n \n {renderTab()}\n \n );\n};\n","import { FC, useCallback, useEffect, useState } from \"react\";\n\nimport { PaginatedResponse } from \"@/types\";\nimport { PaginationLinks, VideoResource } from \"@/types/api\";\nimport { api } from \"@/utilities/api\";\nimport { errorNotification } from \"@/utilities/alerts\";\nimport useInfiniteLoader from \"@/hooks/useInfiniteLoader\";\nimport { Loader } from \"@/components/common\";\nimport { ListableVideoCard } from \"@/components/ListableVideoCard\";\n\ninterface State {\n videos: VideoResource[];\n links?: PaginationLinks;\n isLoading: boolean;\n}\n\nconst INITIAL_STATE = {\n videos: [],\n isLoading: true,\n};\n\ninterface Props {\n video: VideoResource;\n}\n\nexport const MobileTrendingVideos: FC = ({ video }) => {\n const [state, setState] = useState(INITIAL_STATE);\n\n const fetchPaginatedVideos = useCallback(\n (link = \"/v1/videos\") => {\n const include = [\"media\", \"contributor\", \"contributor.user\", \"meta\"].join(\n \",\"\n );\n return api.get>(link, {\n params: {\n sort: [\"-related_tags_count\", \"-published_at\"].join(\",\"),\n include,\n \"filter[with_related_tags_count]\": video.id,\n per_page: 8,\n \"filter[category_id]\": video.categories!.map((c) => c.id).join(\",\"),\n \"filter[parent]\": 1,\n \"filter[exclude]\": video.id,\n \"filter[visible]\": 1,\n },\n });\n },\n [video]\n );\n\n useEffect(() => {\n (async () => {\n try {\n setState((prevState) => ({\n ...prevState,\n isLoading: true,\n }));\n const { data, links } = await fetchPaginatedVideos();\n setState({ videos: data, isLoading: false, links });\n } catch (err) {\n errorNotification();\n }\n })();\n }, [fetchPaginatedVideos]);\n\n const loader = useCallback(async () => {\n if (!state.links?.next) return;\n const { data: videos, links } = await fetchPaginatedVideos(\n state.links.next\n );\n setState((prevState) => ({\n videos: [...prevState.videos, ...videos],\n isLoading: false,\n links,\n }));\n }, [state.links?.next, fetchPaginatedVideos]);\n\n const { isLoading, ref } = useInfiniteLoader(loader, null);\n\n return (\n
\n {state.isLoading ? (\n \n ) : (\n state.videos.map((video) => (\n \n ))\n )}\n {!!state.links?.next &&
{isLoading && }
}\n
\n );\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M102.9 25.98C102.901 26.2566 102.848 26.5307 102.743 26.7866C102.638 27.0426 102.484 27.2751 102.289 27.4712C102.093 27.6673 101.861 27.823 101.606 27.9292C101.351 28.0354 101.077 28.0898 100.8 28.0898C100.523 28.0912 100.248 28.0372 99.9912 27.9316C99.7346 27.8261 99.5014 27.6708 99.3052 27.4746C99.109 27.2784 98.9537 27.0452 98.8481 26.7886C98.7426 26.532 98.6889 26.2574 98.6902 25.98C98.6902 25.7034 98.7447 25.4293 98.8508 25.1738C98.957 24.9184 99.1128 24.6863 99.3088 24.4912C99.5049 24.2961 99.7375 24.1416 99.9934 24.0366C100.249 23.9317 100.523 23.8786 100.8 23.8799C101.357 23.8799 101.891 24.1008 102.285 24.4946C102.679 24.8885 102.9 25.423 102.9 25.98ZM144.17 33.98C144.165 41.1057 141.854 48.0381 137.582 53.7412C133.31 59.4444 127.307 63.6115 120.47 65.6196V112.75C120.472 113.833 120.259 114.905 119.846 115.906C119.432 116.907 118.826 117.817 118.06 118.583C117.295 119.349 116.386 119.957 115.386 120.372C114.385 120.786 113.313 121 112.23 121H36.3401C34.1521 121 32.0538 120.131 30.5066 118.583C28.9594 117.036 28.0901 114.938 28.0901 112.75V102.75C28.0901 102.75 22.3302 105.2 20.7402 105.89C9.57023 110.89 0.04 103.05 0 93.6597V64.1699C0 54.7799 9.57022 46.9797 20.7302 51.9297L28.0801 55.0698V45.0698C28.0801 42.8818 28.9494 40.7835 30.4966 39.2363C32.0438 37.6892 34.142 36.8198 36.3301 36.8198H78.3301C78.2501 35.8698 78.1902 34.9097 78.1902 33.9297C78.1902 25.1775 81.667 16.7839 87.8557 10.5952C94.0444 4.40651 102.438 0.929688 111.19 0.929688C119.942 0.929688 128.336 4.40651 134.525 10.5952C140.713 16.7839 144.19 25.1775 144.19 33.9297L144.17 33.98ZM28.1201 66.5396L15.8301 61.2695C13.3201 60.1595 10.6001 61.5897 10.5801 64.1797V93.6797C10.5801 96.0597 13.1301 97.7898 15.8301 96.5898L28.1201 91.3198V66.5396ZM109.95 66.9199C103.8 66.6816 97.8398 64.7284 92.7417 61.2808C87.6436 57.8332 83.6113 53.0284 81.1001 47.4097H38.6602V110.41H109.95V66.9199ZM136.29 33.3599C136.311 30.1311 135.696 26.9299 134.479 23.939C133.263 20.9481 131.469 18.2262 129.2 15.9287C126.932 13.6312 124.233 11.8029 121.258 10.5488C118.282 9.29476 115.089 8.63926 111.86 8.61963C108.631 8.59855 105.43 9.21373 102.439 10.4302C99.4483 11.6466 96.7264 13.4408 94.429 15.7095C92.1315 17.9782 90.3034 20.677 89.0493 23.6523C87.7952 26.6277 87.1398 29.821 87.1201 33.0498V33.3599C87.1201 34.2908 87.4899 35.1835 88.1482 35.8418C88.8064 36.5 89.6992 36.8696 90.6301 36.8696H106.43C107.361 36.8696 108.254 37.2397 108.912 37.8979C109.57 38.5562 109.94 39.449 109.94 40.3799V43.8999C109.94 44.8317 109.571 45.7254 108.913 46.3853C108.255 47.0451 107.362 47.4173 106.43 47.4199H95.2302C94.7661 47.4199 94.3209 47.6039 93.9927 47.9321C93.6645 48.2603 93.4802 48.7058 93.4802 49.1699C93.4797 49.6198 93.6514 50.0527 93.9602 50.3799C96.195 52.71 98.867 54.5772 101.823 55.8745C104.78 57.1718 107.963 57.8736 111.191 57.9404C114.419 58.0073 117.628 57.4379 120.636 56.2642C123.644 55.0904 126.391 53.3352 128.72 51.0996C131.111 48.8046 133.012 46.0505 134.312 43.002C135.611 39.9534 136.28 36.6737 136.28 33.3599H136.29Z\"\n});\n\nfunction SvgVideoComment(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 145,\n height: 121,\n viewBox: \"0 0 145 121\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgVideoComment);\nexport default __webpack_public_path__ + \"static/media/video-comment.f0408133.svg\";\nexport { ForwardRef as ReactComponent };","import { FC } from \"react\";\nimport styled from \"styled-components\";\nimport { Link, useLocation } from \"react-router-dom\";\n\nimport { Card, Button } from \"@/components/common\";\nimport { ReactComponent as Icon } from \"@/assets/icons/video-comment.svg\";\n\nconst StyledCard = styled(Card)`\n background-color: ${({ theme }) => theme.colors.black};\n margin: 0 0 29px;\n padding: 30px 15px 42px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`;\n\nconst StyledIcon = styled(Icon)`\n margin: 0 0 29px;\n fill: ${({ theme }) => theme.colors.white};\n`;\n\ninterface Props {\n videoSlug: string;\n}\n\nexport const UploadReactionCta: FC = ({ videoSlug }) => {\n const location = useLocation();\n\n return (\n \n \n \n Upload video comment\n \n \n );\n};\n","import axios, { AxiosError } from \"axios\";\nimport { Dispatch, SetStateAction, useEffect, useState } from \"react\";\nimport { useParams, useNavigate } from \"react-router-dom\";\n\nimport { errorNotification } from \"@/utilities/alerts\";\nimport { api } from \"@/utilities/api\";\n\ntype ApiUrlResolver = (param: string) => string;\n\nconst INITIAL_STATE = {\n resource: null,\n isLoading: true,\n};\n\ninterface LoaderState {\n resource: T | null;\n isLoading: boolean;\n}\n\nconst useResourceLoader = (\n apiUrlResolver: ApiUrlResolver,\n requestParams?: {\n [key: string]: string;\n }\n): [T | null, boolean, Dispatch>>] => {\n const { slug } = useParams();\n const navigate = useNavigate();\n\n const [state, setState] = useState>(INITIAL_STATE);\n\n useEffect(() => {\n (async () => {\n try {\n setState({ ...INITIAL_STATE });\n const resource = await api.get(apiUrlResolver(slug!), {\n params: requestParams || {},\n });\n setState({ resource, isLoading: false });\n } catch (error) {\n if (axios.isAxiosError(error)) {\n const err = error as AxiosError;\n if (err.response?.status === 404) {\n return navigate(\"/404\", { replace: true });\n }\n }\n errorNotification();\n }\n })();\n // eslint-disable-next-line\n }, [slug, navigate]);\n\n return [state.resource, state.isLoading, setState];\n};\n\nexport default useResourceLoader;\n","import { FC, useCallback, useEffect, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\n\nimport { PaginationLinks, VideoResource } from \"@/types/api\";\nimport { Loader, Text } from \"@/components/common\";\nimport useInfiniteLoader from \"@/hooks/useInfiniteLoader\";\nimport { errorNotification } from \"@/utilities/alerts\";\nimport { PaginatedResponse } from \"@/types\";\nimport { api } from \"@/utilities/api\";\nimport { VideoCard } from \"@/pages/Home/components/VideoCard\";\n\nconst Heading = styled(Text).attrs({ $type: \"textPoppinsBold\", as: \"h3\" })`\n margin: 30px 0;\n text-transform: uppercase;\n`;\n\nconst Grid = styled.div`\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-gap: 30px;\n ${({ theme }) => css`\n ${theme.breakpoints.mediumDesktop} {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n `}\n`;\n\nconst StyledLoader = styled(Loader)`\n margin-top: 30px;\n`;\n\ninterface State {\n isLoading: boolean;\n videos: VideoResource[];\n links?: PaginationLinks;\n}\n\ninterface Props {\n contributorId: number;\n}\n\nexport const Reactions: FC = ({ contributorId }) => {\n const [state, setState] = useState({\n isLoading: true,\n videos: [],\n });\n\n const fetchPaginatedVideos = useCallback(\n (link = \"/v1/videos\") => {\n return api.get>(link, {\n params: {\n include: [\n \"media\",\n \"contributor\",\n \"contributor.user\",\n \"contributor.media\",\n \"meta\",\n \"reactions_count\",\n \"views_count\",\n ].join(\",\"),\n per_page: 12,\n \"filter[contributor_id]\": contributorId,\n \"filter[visible]\": 1,\n },\n });\n },\n [contributorId]\n );\n\n useEffect(() => {\n (async () => {\n try {\n const { data, links } = await fetchPaginatedVideos();\n setState((prevState) => ({\n videos: data,\n isLoading: false,\n links,\n }));\n } catch (err) {\n errorNotification();\n }\n })();\n }, [fetchPaginatedVideos]);\n\n const loader = useCallback(async () => {\n if (!state.links?.next) return;\n const { data: videos, links } = await fetchPaginatedVideos(\n state.links.next\n );\n setState((prevState) => ({\n videos: [...prevState.videos, ...videos],\n isLoading: false,\n links,\n }));\n }, [state.links?.next, fetchPaginatedVideos]);\n\n const { isLoading: isInfiniteLoading, ref } = useInfiniteLoader(loader);\n\n return (\n
\n {state.isLoading ? (\n \n ) : (\n <>\n More from this contributor\n \n {state.videos.map((video) => (\n \n ))}\n \n {!!state.links?.next && (\n
{isInfiniteLoading && }
\n )}\n \n )}\n
\n );\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2 6H14\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 1L2 6L7 11\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n});\n\nfunction SvgBackArrow(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 15,\n height: 12,\n viewBox: \"0 0 15 12\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBackArrow);\nexport default __webpack_public_path__ + \"static/media/back-arrow.c70ec4b1.svg\";\nexport { ForwardRef as ReactComponent };","import { FC, memo } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { DateTime } from \"luxon\";\nimport { Link } from \"react-router-dom\";\n\nimport { Card, Text } from \"@/components/common\";\nimport { VideoResource } from \"@/types/api\";\nimport { ResponsiveImage } from \"@/components/ResponsiveImage\";\nimport { Duration, PlayButton } from \"@/components/Video\";\nimport useLikes from \"@/hooks/useLikes\";\nimport { ReactComponent as LikeIcon } from \"@/assets/icons/like.svg\";\n\nconst Thumbnail = styled.div`\n width: 100%;\n height: 190px;\n position: relative;\n > img {\n border-top-left-radius: 10px;\n border-top-right-radius: 10px;\n width: 100%;\n height: 100%;\n object-fit: cover;\n top: 0;\n left: 0;\n position: absolute;\n }\n &:hover {\n --play-btn-opacity: 1;\n }\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n height: 195px;\n }\n `};\n`;\n\nconst Badge = styled(Text).attrs({\n $type: \"labelBold\",\n as: \"div\",\n $color: \"white\",\n})`\n background: ${({ theme }) => theme.colors.red};\n height: 22px;\n line-height: 0;\n left: 0;\n top: 10px;\n padding: 0 14px;\n display: inline-flex;\n align-items: center;\n border-radius: 0px 11px 11px 0px;\n text-transform: uppercase;\n position: absolute;\n z-index: 2;\n`;\n\nconst Content = styled.div`\n background: ${({ theme }) => theme.colors.white};\n padding: 20px 25px;\n display: flex;\n flex-direction: column;\n flex: 1;\n border-radius: 0 0 10px 10px;\n`;\n\nconst Header = styled.div`\n display: flex;\n margin-bottom: 13px;\n align-items: flex-start;\n`;\n\nconst Footer = styled.div`\n margin-top: auto;\n justify-content: space-between;\n align-items: center;\n display: flex;\n`;\n\nconst Likes = styled.div`\n margin-left: 30px;\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin-left: 20px;\n }\n `}\n`;\n\nconst StyledLikeIcon = styled(LikeIcon)<{ $filled: boolean }>`\n fill: transparent;\n stroke: ${({ theme }) => theme.colors.black};\n ${({ theme, $filled }) =>\n $filled &&\n css`\n fill: ${theme.colors.black};\n `}\n`;\n\nconst LikeButton = styled.button`\n margin-left: 14px;\n`;\n\nconst StyledCard = styled(Card)`\n display: flex;\n flex-direction: column;\n`;\n\nconst Heading = styled(Text).attrs({ $type: \"heading2\", as: \"h3\" })`\n flex: 1;\n transition: 0.2s ease-out opacity;\n &:hover {\n opacity: 0.75;\n }\n`;\n\nconst Date = styled(Text)`\n margin-left: 15px;\n`;\n\ninterface Props {\n video: VideoResource;\n onVideoLikesChange: (increased: boolean, videoId: number) => void;\n}\n\nexport const CommentCard: FC = memo(({ video, onVideoLikesChange }) => {\n const { isLiked, toggleLike, isLikeLoading } = useLikes(\n video.id,\n (increased) => onVideoLikesChange(increased, video.id)\n );\n\n return (\n \n \n {!!video.reaction && {video.reaction}}\n \n \n {video.meta!.duration}\n \n \n
\n \n {video.name}\n \n \n \n {video.likes_count}\n \n \n \n \n \n
\n
\n {video.contributor?.name}\n \n {DateTime.fromISO(video.published_at).toRelativeCalendar()}\n \n
\n
\n
\n );\n});\n","import { FC, useCallback, useEffect, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\n\nimport { ReactComponent as SortIcon } from \"@/assets/icons/sort.svg\";\nimport { Loader, Text } from \"@/components/common\";\nimport { Dropdown, DropdownItem } from \"@/components/Dropdown\";\nimport { FilterableReactionTypes, PaginatedResponse } from \"@/types\";\nimport useInfiniteLoader from \"@/hooks/useInfiniteLoader\";\nimport { errorNotification } from \"@/utilities/alerts\";\nimport { api } from \"@/utilities/api\";\nimport { VideoResource, PaginationLinks } from \"@/types/api\";\nimport { CommentCard } from \"@/components/CommentCard\";\n\nconst Wrap = styled.section`\n margin-top: 30px;\n`;\n\nconst Header = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 30px;\n`;\n\nconst Grid = styled.div`\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-gap: 30px;\n ${({ theme }) => css`\n ${theme.breakpoints.mediumDesktop} {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n `}\n`;\n\nconst Title = styled(Text).attrs({ $type: \"textPoppinsBold\", as: \"h3\" })`\n text-transform: uppercase;\n margin-right: 17px;\n`;\n\nconst StyledSortIcon = styled(SortIcon)<{ $filled: boolean }>`\n stroke: ${({ theme }) => theme.colors.black};\n transition: 0.2s ease-out stroke;\n ${({ theme, $filled }) =>\n $filled &&\n css`\n stroke: ${theme.colors.red};\n `}\n`;\n\nconst FilterButton = styled.button`\n &:hover {\n ${StyledSortIcon} {\n stroke: ${({ theme }) => theme.colors.red};\n }\n }\n`;\n\nconst FiltersWrap = styled.div`\n position: relative;\n`;\n\nconst StyledLoader = styled(Loader)`\n margin-top: 30px;\n`;\n\ninterface State {\n isLoading: boolean;\n videos: VideoResource[];\n links?: PaginationLinks;\n}\n\nexport const Comments: FC<{ parentVideoId: number }> = ({ parentVideoId }) => {\n const [showFilters, setShowFilters] = useState(false);\n\n const [reactionsType, setReactionsType] = useState(\n FilterableReactionTypes.ALL\n );\n\n const onTypeChange = (type: FilterableReactionTypes) => {\n setShowFilters(false);\n setReactionsType(type);\n };\n\n const [state, setState] = useState({\n isLoading: true,\n videos: [],\n });\n\n const onVideoLikesChange = useCallback(\n (increased: boolean, videoId: number) => {\n setState((prevState) => ({\n ...prevState,\n videos: prevState.videos.map((video) => {\n if (video.id === videoId) {\n return {\n ...video,\n likes_count: video.likes_count! + (increased ? 1 : -1),\n };\n }\n return video;\n }),\n }));\n },\n [setState]\n );\n\n const fetchPaginatedVideos = useCallback(\n (link = \"/v1/videos\") => {\n return api.get>(link, {\n params: {\n include: [\n \"media\",\n \"contributor\",\n \"contributor.user\",\n \"meta\",\n \"likes_count\",\n \"views_count\",\n ].join(\",\"),\n per_page: 12,\n \"filter[reaction]\": reactionsType,\n \"filter[parent_id]\": parentVideoId,\n \"filter[visible]\": 1,\n },\n });\n },\n [parentVideoId, reactionsType]\n );\n\n useEffect(() => {\n (async () => {\n try {\n setState({\n videos: [],\n isLoading: true,\n });\n const { data, links } = await fetchPaginatedVideos();\n setState({\n videos: data,\n isLoading: false,\n links,\n });\n } catch (err) {\n errorNotification();\n }\n })();\n }, [fetchPaginatedVideos]);\n\n const loader = useCallback(async () => {\n if (!state.links?.next) return;\n const { data: videos, links } = await fetchPaginatedVideos(\n state.links.next\n );\n setState((prevState) => ({\n videos: [...prevState.videos, ...videos],\n isLoading: false,\n links,\n }));\n }, [state.links?.next, fetchPaginatedVideos]);\n\n const { isLoading: isInfiniteLoading, ref } = useInfiniteLoader(loader);\n\n if (state.isLoading) return ;\n\n return (\n \n
\n {reactionsType} comments on the original story\n \n setShowFilters((prev) => !prev)}>\n \n \n {showFilters && (\n setShowFilters(false)}>\n {Object.values(FilterableReactionTypes).map((type) => (\n onTypeChange(type)}\n active={type === reactionsType}\n >\n {type}\n \n ))}\n \n )}\n \n
\n {!state.isLoading && !!!state.videos.length ? (\n \n There are no {reactionsType} comments on the original story.\n \n ) : (\n \n {state.videos.map((video) => (\n \n ))}\n \n )}\n {!!state.links?.next && (\n
{isInfiniteLoading && }
\n )}\n
\n );\n};\n","import { FC } from \"react\";\nimport styled, { createGlobalStyle, css } from \"styled-components\";\nimport MediaQuery, { useMediaQuery } from \"react-responsive\";\nimport { Link } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet-async\";\n\nimport { VideoResource } from \"@/types/api\";\nimport { Column, Loader, Row, Text } from \"@/components/common\";\nimport { VideoCard } from \"@/pages/Video/components/VideoCard\";\nimport { SidebarVideos } from \"@/pages/Video/components/SidebarVideos\";\nimport { Breakpoints } from \"@/utilities/theme\";\nimport { MobileTabs } from \"@/pages/Video/components/MobileTabs\";\nimport { UploadReactionCta } from \"@/pages/Video/components/UploadReactionCta\";\nimport useResourceLoader from \"@/hooks/useResourceLoader\";\nimport { Reactions } from \"@/pages/Video/components/Reactions\";\nimport { ReactComponent as BackArrow } from \"@/assets/icons/back-arrow.svg\";\nimport { Comments } from \"@/pages/Video/components/Comments\";\nimport GoogleAd from \"@/components/GoogleAd\";\n\nconst GlobalStyle = createGlobalStyle`\n body {\n background-color: ${({ theme }) => theme.colors.white};\n }\n`;\n\nconst Wrap = styled.div`\n padding: 32px 0 120px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n padding-top: 0;\n }\n `}\n`;\n\nconst Sidebar = styled(Column)`\n position: absolute;\n right: 0;\n height: 100%;\n display: flex;\n border-bottom: 1px solid ${({ theme }) => theme.colors.white};\n flex-direction: column;\n ${({ theme }) => css`\n ${theme.breakpoints.tablet} {\n border: 0;\n }\n `}\n`;\n\nconst StyledRow = styled(Row)`\n position: relative;\n`;\n\nconst StyledBackArrow = styled(BackArrow)`\n stroke: ${({ theme }) => theme.colors.red};\n transition: 0.2s ease-out stroke;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n stroke: ${theme.colors.white};\n }\n `}\n`;\n\nconst BackArrowCircle = styled.div`\n width: 32px;\n height: 32px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: ${({ theme }) => theme.colors.white};\n margin-right: 30px;\n transition: 0.2s ease-out background-color;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n background: ${theme.colors.red};\n margin-right: 15px;\n }\n `}\n`;\n\nconst BackToParent = styled(Link)`\n text-transform: uppercase;\n display: inline-flex;\n align-items: center;\n margin-bottom: 30px;\n &:hover {\n ${BackArrowCircle} {\n background: ${({ theme }) => theme.colors.red};\n }\n ${StyledBackArrow} {\n stroke: ${({ theme }) => theme.colors.white};\n }\n }\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin: 15px 0;\n }\n `}\n`;\n\nconst StyledGoogleAd = styled(GoogleAd)`\n margin-top: 30px;\n`;\n\nexport const Video: FC = () => {\n const isLargeDesktop = useMediaQuery({\n minWidth: Breakpoints.min.largeDesktop,\n });\n\n const isNotDesktop = useMediaQuery({\n maxWidth: Breakpoints.max.tablet,\n });\n\n const [video, isLoading] = useResourceLoader(\n (slug) => `/v1/videos/${slug}`,\n {\n include: [\n \"media\",\n \"parent\",\n \"contributor\",\n \"categories\",\n \"contributor.user\",\n \"contributor.media\",\n \"reactions_count\",\n \"reactions_count_by_type\",\n \"likes_count\",\n \"meta\",\n \"views_count\",\n ].join(\",\"),\n }\n );\n\n return (\n <>\n \n {isLoading ? (\n \n ) : (\n <>\n \n {video!.name} | MyPoint.tv\n \n \n \n \n \n {!!video!.parent && (\n \n \n \n \n \n Back to original story\n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {!!video!.parent ? (\n \n ) : (\n \n )}\n \n \n \n \n \n \n )}\n \n \n );\n};\n","import { FC } from \"react\";\nimport styled, { css } from \"styled-components\";\n\nimport { TextBlockWithLeftTitle } from \"@/types/api\";\nimport { WysiwygContent, Text } from \"@/components/common\";\nimport { pxToRem } from \"@/utilities/helpers\";\n\nconst Block = styled.div`\n display: flex;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n flex-wrap: wrap;\n }\n `}\n`;\n\nconst Header = styled.div`\n width: 105px;\n margin-right: 20px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n width: 100%;\n margin: 0 0 10px;\n }\n `}\n`;\n\nconst StyledContent = styled(WysiwygContent)`\n flex: 1;\n width: 100%;\n figure.table {\n margin: 0 0 ${pxToRem(30)}rem;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin: 0 -15px ${pxToRem(30)}rem;\n }\n `}\n }\n`;\n\nconst Subtitle = styled(Text)`\n margin-top: 4px;\n`;\n\ninterface Props {\n block: TextBlockWithLeftTitle;\n}\n\nexport const TitledTextBlock: FC = ({ block }) => {\n return (\n \n
\n \n {block.title}\n \n {block.subtitle && (\n \n {block.subtitle}\n \n )}\n
\n \n
\n );\n};\n","import { FC } from \"react\";\n\nimport {\n FlexibleContentBlock,\n TextBlock,\n TextBlockWithLeftTitle,\n} from \"@/types/api\";\nimport { WysiwygContent } from \"@/components/common\";\nimport { TitledTextBlock } from \"@/pages/Text/components/TitledTextBlock\";\n\ninterface Props {\n contentBlocks: FlexibleContentBlock[];\n}\n\nexport const FlexibleContent: FC = ({ contentBlocks }) => {\n const renderContentBlocks = () => {\n return contentBlocks.map((block) => {\n switch (block.layout) {\n case \"text_block\":\n return (\n \n );\n case \"text_block_with_left_title\":\n return (\n \n );\n default:\n return null;\n }\n });\n };\n\n return <>{renderContentBlocks()};\n};\n","import { FC } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { Helmet } from \"react-helmet-async\";\n\nimport { PageResource } from \"@/types/api\";\nimport { Card, Loader } from \"@/components/common\";\nimport { FlexibleContent } from \"@/pages/Text/components/FlexibleContent\";\nimport useResourceLoader from \"@/hooks/useResourceLoader\";\n\nconst Wrap = styled.div`\n padding: 32px 0 120px;\n`;\n\nconst StyledCard = styled(Card)`\n padding: 63px 120px 120px;\n ${({ theme }) => css`\n ${theme.breakpoints.mediumDesktop} {\n padding-left: 80px;\n padding-right: 80px;\n }\n ${theme.breakpoints.tablet} {\n padding: 45px 30px;\n }\n ${theme.breakpoints.phone} {\n padding: 30px 15px;\n }\n `}\n`;\n\nexport const TextPage: FC = () => {\n const [page, isLoading] = useResourceLoader(\n (slug) => `/v1/pages/${slug}`\n );\n\n return (\n \n {isLoading ? (\n \n ) : (\n <>\n \n {page!.title} | MyPoint.tv\n \n \n \n \n \n \n )}\n \n );\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M335 176.431V152.472L389.723 74H422.8V150.736H437V176.431H422.8V199H393.187V176.431H335ZM395.265 106.639L366.171 150.736H395.265V106.639Z\",\n fill: \"#DFDFE2\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M222.04 0C164.051 0 117 47.2972 117 105.59C117 163.883 164.051 211.18 222.04 211.18C251.799 211.18 278.823 198.81 297.804 178.678C302.389 173.827 298.85 165.904 292.335 165.904H244.48C236.196 165.904 229.44 159.112 229.44 150.785V135.666C229.44 127.339 236.196 120.547 244.48 120.547H311.96C320.244 120.547 327 113.756 327 105.428C327.08 47.2971 280.029 0 222.04 0ZM268.528 82.9519C263.541 82.9519 259.52 78.9094 259.52 73.8968C259.52 68.8841 263.541 64.8416 268.528 64.8416C273.515 64.8416 277.536 68.8841 277.536 73.8968C277.536 78.9094 273.515 82.9519 268.528 82.9519Z\",\n fill: \"#FF1919\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 176.431V152.472L54.7233 74H87.7997V150.736H102V176.431H87.7997V199H58.1868V176.431H0ZM60.2649 106.639L31.1715 150.736H60.2649V106.639Z\",\n fill: \"#DFDFE2\"\n});\n\nfunction Svg404(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 437,\n height: 212,\n viewBox: \"0 0 437 212\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(Svg404);\nexport default __webpack_public_path__ + \"static/media/404.e3d74e0d.svg\";\nexport { ForwardRef as ReactComponent };","import { FC } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { Link } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet-async\";\n\nimport { Text, Button, Card } from \"@/components/common\";\nimport { ReactComponent as Icon } from \"@/assets/icons/404.svg\";\nimport { useMediaQuery } from \"react-responsive\";\nimport { Breakpoints } from \"@/utilities/theme\";\n\nconst Wrap = styled(Card)`\n text-align: center;\n margin-top: 50px;\n padding: 100px 15px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n padding: 66px 15px;\n margin-top: 15px;\n }\n `}\n`;\n\nconst Heading = styled.h1`\n margin: 28px 0;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin: 50px 0;\n }\n `}\n`;\n\nconst StyledIcon = styled(Icon)`\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n width: 260px;\n height: auto;\n }\n `}\n`;\n\nexport const NotFound: FC = () => {\n const isMobile = useMediaQuery({\n maxWidth: Breakpoints.max.phone,\n });\n\n return (\n <>\n \n 404 | MyPoint.tv\n \n \n \n \n \n \n \n Oops!{\" \"}\n \n \n Page not found\n \n \n \n \n \n );\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(0 50 50)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 46,\n y: 4.5,\n rx: 3.5,\n ry: 3.5,\n width: 8,\n height: 25,\n fill: \"#ff1919\"\n}, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n values: \"#ff1919;#dfdfe2\",\n keyTimes: \"0;1\",\n dur: \"1s\",\n begin: \"-0.875s\",\n repeatCount: \"indefinite\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(45 50 50)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 46,\n y: 4.5,\n rx: 3.5,\n ry: 3.5,\n width: 8,\n height: 25,\n fill: \"#ff1919\"\n}, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n values: \"#ff1919;#dfdfe2\",\n keyTimes: \"0;1\",\n dur: \"1s\",\n begin: \"-0.75s\",\n repeatCount: \"indefinite\"\n})));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(90 50 50)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 46,\n y: 4.5,\n rx: 3.5,\n ry: 3.5,\n width: 8,\n height: 25,\n fill: \"#ff1919\"\n}, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n values: \"#ff1919;#dfdfe2\",\n keyTimes: \"0;1\",\n dur: \"1s\",\n begin: \"-0.625s\",\n repeatCount: \"indefinite\"\n})));\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(135 50 50)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 46,\n y: 4.5,\n rx: 3.5,\n ry: 3.5,\n width: 8,\n height: 25,\n fill: \"#ff1919\"\n}, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n values: \"#ff1919;#dfdfe2\",\n keyTimes: \"0;1\",\n dur: \"1s\",\n begin: \"-0.5s\",\n repeatCount: \"indefinite\"\n})));\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(180 50 50)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 46,\n y: 4.5,\n rx: 3.5,\n ry: 3.5,\n width: 8,\n height: 25,\n fill: \"#ff1919\"\n}, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n values: \"#ff1919;#dfdfe2\",\n keyTimes: \"0;1\",\n dur: \"1s\",\n begin: \"-0.375s\",\n repeatCount: \"indefinite\"\n})));\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(225 50 50)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 46,\n y: 4.5,\n rx: 3.5,\n ry: 3.5,\n width: 8,\n height: 25,\n fill: \"#ff1919\"\n}, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n values: \"#ff1919;#dfdfe2\",\n keyTimes: \"0;1\",\n dur: \"1s\",\n begin: \"-0.25s\",\n repeatCount: \"indefinite\"\n})));\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(270 50 50)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 46,\n y: 4.5,\n rx: 3.5,\n ry: 3.5,\n width: 8,\n height: 25,\n fill: \"#ff1919\"\n}, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n values: \"#ff1919;#dfdfe2\",\n keyTimes: \"0;1\",\n dur: \"1s\",\n begin: \"-0.125s\",\n repeatCount: \"indefinite\"\n})));\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(315 50 50)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 46,\n y: 4.5,\n rx: 3.5,\n ry: 3.5,\n width: 8,\n height: 25,\n fill: \"#ff1919\"\n}, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill\",\n values: \"#ff1919;#dfdfe2\",\n keyTimes: \"0;1\",\n dur: \"1s\",\n begin: \"0s\",\n repeatCount: \"indefinite\"\n})));\n\nfunction SvgProcessSpinner(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: \"88px\",\n height: \"88px\",\n viewBox: \"0 0 100 100\",\n preserveAspectRatio: \"xMidYMid\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgProcessSpinner);\nexport default __webpack_public_path__ + \"static/media/process-spinner.7ae958e8.svg\";\nexport { ForwardRef as ReactComponent };","import { FC } from \"react\";\nimport styled from \"styled-components\";\n\nimport { Button, Text } from \"@/components/common\";\nimport { ReactComponent as SpinnerIcon } from \"@/assets/icons/process-spinner.svg\";\n\nconst Circle = styled.div`\n position: relative;\n`;\n\nconst Progress = styled(Text)`\n font-family: ${({ theme }) => theme.typography.heading1.fontFamily};\n font-size: 38px;\n font-weight: 700;\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n margin: auto;\n width: 120px;\n height: 33px;\n text-align: center;\n color: ${({ theme }) => theme.colors.black};\n`;\n\nconst CircleSvg = styled.svg`\n transition: stroke-dasharray 0.15s linear;\n`;\n\nconst Spinner = styled(SpinnerIcon)`\n display: block;\n shape-rendering: auto;\n margin-bottom: 40px;\n`;\n\nconst Wrapper = styled.div`\n margin: 40px 0 52px;\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst UploadLabel = styled(Text)`\n margin: 20px 0;\n`;\n\ninterface Props {\n percentage: number;\n isProccessing: boolean;\n isUploadingToBucket: boolean;\n isUploading: boolean;\n onCancel: () => void;\n}\n\nexport const UploadProgress: FC = ({\n percentage,\n onCancel,\n isProccessing,\n isUploadingToBucket,\n isUploading,\n}) => {\n const circumference = 92 * Math.PI * 2;\n const dash = (percentage * circumference) / 100;\n\n return (\n <>\n {!isUploading ? (\n \n \n {isUploadingToBucket && (\n Uploading to our servers...\n )}\n {isProccessing && (\n \n Processing uploaded video...\n \n )}\n \n ) : (\n <>\n \n \n \n \n \n {`${percentage}%`}\n \n \n Uploading file to our video platform...\n \n \n )}\n \n \n );\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M4.707 6.067L7 3.775v7.086a1 1 0 1 0 2 0V3.775l2.293 2.292a.999.999 0 1 0 1.414-1.414l-4-4a1 1 0 0 0-1.414 0l-4 4a.999.999 0 0 0 0 1.414c.342.342.977.437 1.414 0zM15 11.639a1 1 0 0 0-1 1v2H2v-2a1 1 0 0 0-2 0v3c0 .552.448 1 1 1h14c.552 0 1-.448 1-1v-3a1 1 0 0 0-1-1z\"\n})));\n\nfunction SvgUpload(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 17,\n viewBox: \"0 0 16 17\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgUpload);\nexport default __webpack_public_path__ + \"static/media/upload.e2bbd879.svg\";\nexport { ForwardRef as ReactComponent };","import Pusher, { AuthorizerGenerator } from \"pusher-js\";\nimport { AuthData } from \"pusher-js/types/src/core/auth/options\";\nimport Echo from \"laravel-echo\";\n\nimport { api } from \"@/utilities/api\";\n\nconst authorizer: AuthorizerGenerator = (channel) => {\n return {\n authorize: (socketId, callback) => {\n api\n .post<{ socket_id: string; channel_name: string }, AuthData>(\n \"/broadcasting/auth\",\n {\n socket_id: socketId,\n channel_name: channel.name,\n }\n )\n .then((authData) => {\n callback(null, authData);\n })\n .catch((error) => {\n callback(error, { auth: \"\" });\n });\n },\n };\n};\n\nconst client = new Pusher(process.env.REACT_APP_PUSHER_APP_KEY!, {\n cluster: process.env.REACT_APP_PUSHER_APP_CLUSTER,\n authorizer,\n});\n\nconst echo = new Echo({\n broadcaster: \"pusher\",\n client,\n});\n\nexport default echo;\n","import { DragEvent, ChangeEvent, FC, useState, useEffect } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport * as tus from \"tus-js-client\";\nimport { useMediaQuery } from \"react-responsive\";\n\nimport { Button, Card, SrOnly, Text } from \"@/components/common\";\nimport { UploadProgress } from \"@/pages/VideoUpload/components/UploadProgress\";\nimport { isValidExtension } from \"@/utilities/helpers\";\nimport { errorNotification } from \"@/utilities/alerts\";\nimport { ReactComponent as UploadIcon } from \"@/assets/icons/upload.svg\";\nimport echo from \"@/utilities/echo\";\nimport { Breakpoints } from \"@/utilities/theme\";\nimport { api } from \"@/utilities/api\";\nimport axios from \"axios\";\n\nconst ALLOWED_EXTENSIONS = [\"m4v\", \"avi\", \"mpg\", \"mp4\", \"mov\"];\n\nconst IconContainer = styled.label<{ $red: boolean }>`\n width: 192px;\n height: 192px;\n background-color: #c7c7c7;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n ${({ theme, $red }) =>\n $red &&\n css`\n background-color: ${theme.colors.red};\n `}\n`;\n\nconst Icon = styled(UploadIcon)`\n width: 53px;\n height: 56px;\n`;\n\nconst StyledCard = styled(Card)<{ $highlighted: boolean }>`\n border: 1px dashed #707070;\n width: 570px;\n height: 438px;\n max-width: calc(100% - 30px);\n margin: 80px auto 50px;\n padding: 30px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n position: relative;\n ${({ theme, $highlighted }) =>\n $highlighted &&\n css`\n border-color: ${theme.colors.red};\n ${Icon} {\n opacity: 0.75;\n }\n `}\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin: 0 auto 40px;\n border: 0;\n }\n `}\n`;\n\nconst Dropzone = styled.div`\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n border-radius: 10px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`;\n\nconst Label = styled.div`\n margin: 20px 0;\n text-align: center;\n strong {\n font-weight: 600;\n }\n`;\n\nconst Disclaimer = styled(Text)`\n margin-top: 20px;\n`;\n\nconst INITIAL_STATE = {\n isHighlighted: false,\n isUploadingToBucket: false,\n isUploading: false,\n isProccessing: false,\n uploadProgress: 0,\n cloudflareId: \"\",\n originalVideoFilename: \"\",\n tusUpload: null,\n};\n\ninterface Props {\n onUploadFinished: (\n cloudflareId: string,\n originalVideoFilename: string\n ) => void;\n}\n\ninterface State {\n isHighlighted: boolean;\n isUploading: boolean;\n isUploadingToBucket: boolean;\n isProccessing: boolean;\n uploadProgress: number;\n cloudflareId: string;\n originalVideoFilename: string;\n tusUpload: null | tus.Upload;\n}\n\nexport const UploadCard: FC = ({ onUploadFinished }) => {\n const [state, setState] = useState({ ...INITIAL_STATE });\n\n const isMobile = useMediaQuery({\n maxWidth: Breakpoints.max.phone,\n });\n\n useEffect(() => {\n if (!state.cloudflareId) return;\n\n const channelName = `cloudflare_videos.${state.cloudflareId}`;\n\n const eventName = \"VideoProcessed\";\n\n const channel = echo.private(channelName);\n\n channel.listen(eventName, () => {\n onUploadFinished(state.cloudflareId, state.originalVideoFilename);\n });\n\n return () => {\n channel.stopListening(eventName);\n };\n }, [state.cloudflareId, onUploadFinished, state.originalVideoFilename]);\n\n const onCancel = () => {\n if (state.tusUpload) {\n state.tusUpload.abort(true);\n }\n setState({ ...INITIAL_STATE });\n };\n\n const uploadFile = (file: File) => {\n const upload = new tus.Upload(file, {\n endpoint: `${process.env.REACT_APP_API_ENDPOINT}/api/v1/videos/upload`,\n chunkSize: 15 * 1024 * 1024,\n retryDelays: [0, 1000, 3000, 5000],\n parallelUploads: 1,\n metadata: {\n filename: file.name,\n filetype: file.type,\n watermark: process.env.REACT_APP_CLOUDFLARE_WATERMARK_UID || \"\",\n },\n headers: {\n Accept: \"application/json\",\n },\n uploadSize: file.size,\n onError: (error) => {\n errorNotification(\"An Error occurred...\", \"Please try again.\");\n setState((prevState) => ({\n ...prevState,\n isUploading: false,\n uploadProgress: 0,\n }));\n },\n onProgress: (bytesUploaded, bytesTotal) => {\n setState((prevState) => ({\n ...prevState,\n uploadProgress: Math.floor((bytesUploaded / bytesTotal) * 100),\n }));\n },\n onSuccess: () => {\n setState((prevState) => ({\n ...prevState,\n isUploading: false,\n isProccessing: true,\n tusUpload: null,\n }));\n },\n onBeforeRequest: (req) => {\n const xhr = req.getUnderlyingObject();\n if (req.getURL().includes(\"videodelivery\")) {\n return (xhr.withCredentials = false);\n }\n xhr.withCredentials = true;\n },\n onAfterResponse: (_, res) => {\n const mediaIdHeader = res.getHeader(\"stream-media-id\");\n if (mediaIdHeader) {\n setState((prevState) => ({\n ...prevState,\n cloudflareId: mediaIdHeader,\n }));\n }\n },\n });\n setState((prevState) => ({\n ...prevState,\n tusUpload: upload,\n }));\n upload.start();\n };\n\n const uploadOriginal = async (file: File) => {\n try {\n setState((prevState) => ({ ...prevState, isUploadingToBucket: true }));\n\n const { filename, url } = await api.post<\n { extension: string },\n { filename: string; url: string }\n >(\"/v1/videos/original\", { extension: file.name.split(\".\").pop()! });\n\n await axios.put(url, file, {\n headers: {\n \"Content-Type\": file.type,\n },\n });\n\n setState((prevState) => ({\n ...prevState,\n isUploadingToBucket: false,\n isUploading: true,\n originalVideoFilename: filename,\n }));\n uploadFile(file);\n } catch (err) {\n errorNotification();\n }\n };\n\n const onDragOver = (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n };\n\n const onDragEnter = (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setState((prevState) => ({\n ...prevState,\n isHighlighted: true,\n }));\n };\n\n const onDrop = (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setState((prevState) => ({\n ...prevState,\n isHighlighted: false,\n }));\n const file = e.dataTransfer.files[0];\n if (!isValidExtension(file.name, ALLOWED_EXTENSIONS)) {\n return errorNotification(\n \"Invalid file format\",\n `Allowed extensions: ${ALLOWED_EXTENSIONS.join(\", \")}`\n );\n }\n uploadOriginal(file);\n };\n\n const onDragLeave = (e: DragEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setState((prevState) => ({\n ...prevState,\n isHighlighted: false,\n }));\n };\n\n const onFileChange = (e: ChangeEvent) => {\n const file = e.target?.files?.[0];\n if (!file) return;\n if (!isValidExtension(file.name, ALLOWED_EXTENSIONS)) {\n return errorNotification(\n \"Invalid file format\",\n `Allowed extensions: ${ALLOWED_EXTENSIONS.join(\", \")}`\n );\n }\n uploadOriginal(file);\n };\n\n return (\n \n {state.isUploading || state.isProccessing || state.isUploadingToBucket ? (\n \n ) : (\n \n \n \n \n {isMobile ? (\n \n ) : (\n <>\n \n \n \n Allowed formats:{\" \"}\n {ALLOWED_EXTENSIONS.join(\", \")}\n \n \n )}\n \n \n )}\n \n );\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 20,\n strokeWidth: 3,\n d: \"M6.14 1.637h28.986a4.14 4.14 0 0 1 4.14 4.141v28.985a4.14 4.14 0 0 1-4.14 4.141H6.141A4.14 4.14 0 0 1 2 34.764V5.777a4.14 4.14 0 0 1 4.14-4.14z\"\n})), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 20,\n strokeWidth: 3,\n d: \"M16.492 13.024a3.106 3.106 0 1 1-6.21 0 3.106 3.106 0 0 1 6.21 0z\"\n})), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 20,\n strokeWidth: 3,\n d: \"M39.267 26.482v0L28.915 16.13v0L6.14 38.904v0\"\n}))));\n\nfunction SvgImage(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 41,\n height: 41,\n viewBox: \"0 0 41 41\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgImage);\nexport default __webpack_public_path__ + \"static/media/image.6aa3c3cf.svg\";\nexport { ForwardRef as ReactComponent };","import { forwardRef, HTMLProps } from \"react\";\n\nimport { Input, ValidationError, Label } from \"@/components/common\";\nimport { FieldError } from \"react-hook-form\";\n\ninterface Props extends HTMLProps {\n error?: FieldError;\n label?: string;\n}\n\nexport const FormGroup = forwardRef(\n ({ className, error, label, ...rest }, ref) => {\n return (\n
\n {label && }\n \n {error?.message}\n
\n );\n }\n);\n","import {\n FC,\n useState,\n KeyboardEvent,\n MouseEvent,\n ChangeEvent,\n useRef,\n useEffect,\n} from \"react\";\nimport styled from \"styled-components\";\n\nimport { Input, Text, SrOnly } from \"@/components/common\";\nimport { ReactComponent as RemoveIcon } from \"@/assets/icons/close.svg\";\nimport { Dropdown, DropdownItem } from \"@/components/Dropdown\";\nimport { api } from \"@/utilities/api\";\nimport { TagResource } from \"@/types/api\";\n\nconst Wrap = styled(Input).attrs({ as: \"div\" })`\n height: auto;\n display: flex;\n flex-wrap: wrap;\n min-height: 48px;\n padding: 9px 12px;\n position: relative;\n`;\n\nconst StyledInput = styled(Input)`\n flex-grow: 1;\n background: transparent !important;\n border: 0 !important;\n padding: 0;\n width: auto;\n margin-left: 3px;\n height: 30px;\n`;\n\nconst Tag = styled.div`\n border: 1px solid #ebebeb;\n padding: 3px 5px;\n border-radius: 4px;\n background: #ffffff;\n height: 22px;\n display: inline-flex;\n align-items: center;\n margin: 3px;\n`;\n\nconst RemoveBtn = styled.button`\n margin-left: 5px;\n line-height: 0;\n > svg {\n width: 8px;\n stroke: ${({ theme }) => theme.colors.red};\n }\n`;\n\ninterface Props {\n tags: string[];\n setTags: (tags: string[]) => void;\n}\n\nexport const TagsInput: FC = ({ tags, setTags }) => {\n const inputRef = useRef(null);\n const [value, setValue] = useState(\"\");\n const [suggestions, setSuggestions] = useState([]);\n const [showSuggestions, setShowSuggestions] = useState(true);\n\n useEffect(() => {\n (async () => {\n const tagsCollection = await api.get(\"/v1/tags\");\n setSuggestions(tagsCollection.map((tagResource) => tagResource.name));\n })();\n }, [setSuggestions]);\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Enter\") {\n event.preventDefault();\n if (tags.indexOf(value) === -1) {\n setTags([...tags, value]);\n }\n setValue(\"\");\n }\n if ((event.key === \"Delete\" || event.key === \"Backspace\") && value === \"\") {\n setTags([...tags.filter((_, index, arr) => index < arr.length - 1)]);\n }\n };\n\n const onRemoveTag = (\n e: MouseEvent,\n tagToRemove: string\n ) => {\n e.preventDefault();\n setTags([...tags.filter((tag) => tag !== tagToRemove)]);\n };\n\n const onAddSuggestion = (\n e: MouseEvent,\n tagToAdd: string\n ) => {\n e.preventDefault();\n setValue(\"\");\n setTags([...tags, tagToAdd]);\n inputRef.current?.focus();\n };\n\n const onValueChange = (e: ChangeEvent) => {\n setValue(e.target.value);\n setShowSuggestions(true);\n };\n\n const filteredSuggestions = suggestions.filter(\n (suggestion) =>\n suggestion.toLowerCase().indexOf(value.toLowerCase()) > -1 &&\n tags.indexOf(suggestion) === -1\n );\n\n return (\n \n {tags.map((tag) => (\n \n {tag}\n onRemoveTag(e, tag)}>\n Remove tag\n \n \n \n ))}\n \n {showSuggestions && value.length > 1 && !!filteredSuggestions.length && (\n setShowSuggestions(false)} select>\n {filteredSuggestions.map((tag) => (\n ) =>\n onAddSuggestion(e, tag)\n }\n >\n {tag}\n \n ))}\n \n )}\n \n );\n};\n","import { FC, useEffect, useRef } from \"react\";\nimport styled from \"styled-components\";\nimport { Loader } from \"@googlemaps/js-api-loader\";\n\nimport { Input } from \"@/components/common\";\n\nconst Wrap = styled.div`\n position: relative;\n`;\n\ninterface Props {\n setLocation: (city: string, state: string) => void;\n hasError: boolean;\n}\n\nexport const LocationInput: FC = ({ setLocation, hasError }) => {\n const inputRef = useRef(null);\n\n useEffect(() => {\n (async () => {\n if (!inputRef.current) return;\n const loader = new Loader({\n apiKey: process.env.REACT_APP_GOOGLE_PLACES_KEY!,\n libraries: [\"places\"],\n });\n await loader.load();\n const autocomplete = new google.maps.places.Autocomplete(\n inputRef.current,\n {\n fields: [\"address_components\"],\n strictBounds: false,\n types: [\"(cities)\"],\n }\n );\n autocomplete.addListener(\"place_changed\", () => {\n const place = autocomplete.getPlace();\n const city = place.address_components?.find((item) =>\n item.types.includes(\"locality\")\n );\n const state = place.address_components?.find((item) =>\n item.types.includes(\"administrative_area_level_1\")\n );\n if (city && state) {\n setLocation(city.short_name, state.short_name);\n }\n });\n })();\n }, [setLocation]);\n\n return (\n \n \n \n );\n};\n","import { FC, useState, useEffect } from \"react\";\nimport styled from \"styled-components\";\n\nimport { Input } from \"@/components/common\";\nimport { CategoryResource } from \"@/types/api\";\nimport { api } from \"@/utilities/api\";\nimport { Dropdown, DropdownItem } from \"@/components/Dropdown\";\n\nconst Wrap = styled.div`\n position: relative;\n`;\n\nconst StyledInput = styled(Input)`\n cursor: pointer;\n`;\n\ninterface Props {\n setCategory: (categoryId: number) => void;\n hasError: boolean;\n}\n\nexport const CategoryDropdown: FC = ({ setCategory, hasError }) => {\n const [showDropdown, setShowDropdown] = useState(false);\n const [categories, setCategories] = useState([]);\n const [value, setValue] = useState(null);\n\n useEffect(() => {\n (async () => {\n const categories = await api.get(\n \"/v1/categories\"\n );\n setCategories(categories);\n })();\n }, []);\n\n const onSelect = (category: CategoryResource) => {\n setValue(category);\n setCategory(category.id);\n setShowDropdown(false);\n };\n\n return (\n \n setShowDropdown(true)}\n $hasError={hasError}\n />\n {showDropdown && (\n setShowDropdown(false)} select>\n {categories.map((category) => (\n onSelect(category)}\n >\n {category.name}\n \n ))}\n \n )}\n \n );\n};\n","import { FC, useState } from \"react\";\nimport { FieldError } from \"react-hook-form\";\nimport styled from \"styled-components\";\n\nimport { VideoResource } from \"@/types/api\";\nimport { Input, Label, ValidationError } from \"@/components/common\";\nimport { Dropdown, DropdownItem } from \"@/components/Dropdown\";\n\nconst Wrap = styled.div`\n position: relative;\n`;\n\nconst StyledInput = styled(Input)`\n cursor: pointer;\n text-transform: capitalize;\n`;\n\nconst StyledDropdownItem = styled(DropdownItem)`\n text-transform: capitalize;\n`;\n\ninterface Props {\n error?: FieldError;\n setReaction: (reaction: VideoResource[\"reaction\"]) => void;\n}\n\nexport const ReactionDropdown: FC = ({ error, setReaction }) => {\n const [value, setValue] = useState(\"\");\n const [showDropdown, setShowDropdown] = useState(false);\n\n const onSelect = (value: Exclude) => {\n setValue(value);\n setReaction(value);\n setShowDropdown(false);\n };\n\n return (\n <>\n \n \n setShowDropdown(true)}\n />\n {showDropdown && (\n setShowDropdown(false)} select>\n {[\"supporting\", \"neutral\", \"opposing\"].map((reaction) => (\n \n onSelect(\n reaction as Exclude\n )\n }\n >\n {reaction}\n \n ))}\n \n )}\n \n {!!error && {error.message}}\n \n );\n};\n","// TODO: add gtag types\nexport const gtag = (...args: any) => {\n if (process.env.REACT_APP_ENVIRONMENT === \"production\") {\n return (window as any).gtag(...args);\n }\n console.log(\"--GA: \", ...args);\n};\n\nexport const fbq = (...args: any) => {\n if (process.env.REACT_APP_ENVIRONMENT === \"production\") {\n return (window as any).fbq(...args);\n }\n console.log(\"--FBQ: \", ...args);\n};\n","import { FC, useEffect, useCallback, useState, FormEvent } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { useForm, useWatch } from \"react-hook-form\";\nimport { Link } from \"react-router-dom\";\nimport { useMediaQuery } from \"react-responsive\";\n\nimport {\n Card,\n Label,\n Textarea,\n ValidationError,\n Button,\n Text,\n Row,\n Column,\n SrOnly,\n} from \"@/components/common\";\nimport { ReactComponent as ImageIcon } from \"@/assets/icons/image.svg\";\nimport { FormGroup as InputFormGroup } from \"@/components/common/FormGroup\";\nimport { TagsInput } from \"@/pages/VideoUpload/components/TagsInput\";\nimport { LocationInput } from \"@/pages/VideoUpload/components/LocationInput\";\nimport { VideoResource } from \"@/types/api\";\nimport { api } from \"@/utilities/api\";\nimport { handleFormErrors } from \"@/utilities/helpers\";\nimport { Breakpoints } from \"@/utilities/theme\";\nimport { CategoryDropdown } from \"@/pages/VideoUpload/components/CategoryDropdown\";\nimport { ReactionDropdown } from \"@/pages/VideoUpload/components/ReactionDropdown\";\nimport { fbq } from \"@/utilities/tracking\";\n\nconst StyledCard = styled(Card)`\n padding: 24px 48px 47px;\n width: 570px;\n max-width: calc(100% - 30px);\n margin: 0 auto 50px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin: 0 auto 40px;\n padding: 25px 15px 40px;\n }\n `}\n`;\n\nconst FormGroup = styled.div`\n margin: 0 0 15px;\n`;\n\nconst Footer = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n margin-top: 40px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n justify-content: space-evenly;\n }\n `}\n`;\n\nconst Cancel = styled(Text)`\n margin-right: 30px;\n transition: opacity 0.2s ease-out;\n text-transform: uppercase;\n &:hover {\n opacity: 0.75;\n }\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin: 0;\n }\n `}\n`;\n\nconst ThumbnailLabel = styled.label`\n display: flex;\n height: 125px;\n flex-direction: column;\n text-align: center;\n align-items: center;\n justify-content: center;\n background: ${({ theme }) => theme.colors.bg};\n border: 4px dashed #ffffff;\n border-radius: 10px;\n cursor: pointer;\n\n &:hover {\n border-color: #c7c7c7;\n border-width: 2px;\n ${Text} {\n font-weight: 700;\n }\n }\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n height: 94px;\n }\n `}\n\n small {\n font-size: 0.8em;\n }\n`;\n\nconst StyledImageIcon = styled(ImageIcon)`\n margin-bottom: 12px;\n stroke: #c7c7c7;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n width: 28px;\n height: 28px;\n margin-bottom: 4px;\n }\n `}\n`;\n\nconst ThumbnailPreview = styled.div`\n position: relative;\n line-height: 0;\n &::before {\n position: absolute;\n content: \"\";\n border: 4px dashed #ffffff;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border-radius: 10px;\n }\n`;\n\nconst Thumbnail = styled.img`\n height: 125px;\n border-radius: 10px;\n width: 100%;\n object-fit: cover;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n height: 94px;\n }\n `}\n`;\n\ninterface FormData {\n name: string;\n description: string;\n city_name: string;\n state: string;\n tags: string[];\n category_id: number | null;\n thumbnail?: FileList;\n reaction?: VideoResource[\"reaction\"];\n}\n\ninterface Props {\n cloudflareId: string;\n originalVideoFilename: string;\n onSuccessfulSubmit: () => void;\n parentSlug?: string;\n}\n\nexport const UploadForm: FC = ({\n cloudflareId,\n originalVideoFilename,\n onSuccessfulSubmit,\n parentSlug,\n}) => {\n const [isLoading, setIsLoading] = useState(false);\n\n const isMobile = useMediaQuery({\n maxWidth: Breakpoints.max.phone,\n });\n\n const {\n register,\n control,\n handleSubmit,\n setError,\n clearErrors,\n setValue,\n formState: { errors },\n } = useForm({\n defaultValues: {\n name: \"\",\n description: \"\",\n city_name: \"\",\n state: \"\",\n category_id: null,\n tags: [],\n },\n });\n\n useEffect(() => {\n register(\"tags\");\n }, [register]);\n\n const onSubmit = (e: FormEvent) => {\n clearErrors();\n handleSubmit(async (data) => {\n try {\n setIsLoading(true);\n const formData = new FormData();\n formData.append(\"name\", data.name);\n formData.append(\"description\", data.description);\n formData.append(\"city_name\", data.city_name);\n formData.append(\"state\", data.state);\n data.tags.forEach((tag) => formData.append(\"tags[]\", tag));\n if (data.category_id) {\n formData.append(\"category_id\", data.category_id.toString());\n }\n if (data.reaction) {\n formData.append(\"reaction\", data.reaction);\n }\n formData.append(\"cloudflare_id\", cloudflareId);\n formData.append(\"original_video_filename\", originalVideoFilename);\n if (parentSlug) {\n formData.append(\"parent_slug\", parentSlug);\n }\n if (data.thumbnail?.[0]) {\n formData.append(\"thumbnail\", data.thumbnail[0]);\n }\n const video = await api.post(\n \"/v1/videos\",\n formData,\n {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n }\n );\n fbq(\n \"track\",\n \"Lead\",\n {\n content_name: parentSlug ? \"Video comment upload\" : \"Video upload\",\n },\n { eventID: `VIDEO_UPLOAD_${video.id}` }\n );\n onSuccessfulSubmit();\n } catch (error) {\n setIsLoading(false);\n handleFormErrors(error, setError);\n }\n })(e);\n };\n\n const thumbnail = useWatch({ control, name: \"thumbnail\" });\n\n const tags = useWatch({ control, name: \"tags\" });\n\n const setTags = useCallback(\n (tags: string[]) => setValue(\"tags\", tags, { shouldDirty: true }),\n [setValue]\n );\n\n const setCategory = useCallback(\n (categoryId: number) =>\n setValue(\"category_id\", categoryId, { shouldDirty: true }),\n [setValue]\n );\n\n const setReaction = useCallback(\n (reaction: VideoResource[\"reaction\"]) =>\n setValue(\"reaction\", reaction, { shouldDirty: true }),\n [setValue]\n );\n\n const setLocation = useCallback(\n (city: string, state: string) => {\n setValue(\"city_name\", city, { shouldDirty: true });\n setValue(\"state\", state, { shouldDirty: true });\n },\n [setValue]\n );\n\n const thumbnailPreviewUrl = thumbnail?.[0]\n ? URL.createObjectURL(thumbnail[0])\n : `https://videodelivery.net/${cloudflareId}/thumbnails/thumbnail.jpg`;\n\n return (\n \n \n \n \n \n \n \n \n Upload Thumbnail\n
\n JPG, PNG or GIF\n
\n
\n \n
\n \n \n \n \n \n
\n {errors.thumbnail && (\n {errors.thumbnail.message}\n )}\n
\n {!!parentSlug && (\n \n \n \n )}\n \n \n \n {!!!parentSlug && (\n \n \n \n {errors.description && (\n {errors.description.message}\n )}\n \n )}\n {!!!parentSlug && (\n \n \n \n {errors.category_id && (\n {errors.category_id.message}\n )}\n \n )}\n \n \n \n {(errors.state || errors.city_name) && (\n \n {errors.state?.message || errors.city_name?.message}\n \n )}\n \n {!!!parentSlug && (\n \n \n \n \n )}\n
\n \n Cancel\n \n \n
\n
\n );\n};\n","import { FC } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { Link } from \"react-router-dom\";\n\nimport { Button, Card, Text } from \"@/components/common\";\n\nconst StyledCard = styled(Card)`\n width: 570px;\n max-width: calc(100% - 30px);\n height: 438px;\n margin: auto;\n border: 1px dashed #707070;\n padding: 23px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n padding: 15px;\n margin: 0 auto 40px;\n }\n `}\n`;\n\nconst Inner = styled.div`\n height: 100%;\n border: 5px dashed #f8f8f8;\n border-radius: 5px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`;\n\nconst Heading = styled(Text)`\n margin: 0 0 17px;\n font-size: 38px;\n text-transform: uppercase;\n line-height: 1;\n`;\n\nconst Description = styled(Text)`\n width: 330px;\n max-width: 100%;\n letter-spacing: 0.38px;\n text-align: center;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n width: 270px;\n }\n `}\n`;\n\nconst StyledButton = styled(Button)`\n margin-top: 30px;\n`;\n\nexport const SuccessCard: FC = () => {\n return (\n \n \n \n Done!\n \n \n Your story is on its way to the world.\n
\n It will be published after a quick review by our team. While you wait,\n explore amazing videos on our platform!\n
\n \n Explore videos\n \n
\n
\n );\n};\n","import { FC, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { useParams } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet-async\";\n\nimport { MinimalLayout } from \"@/components/Layouts/MinimalLayout\";\nimport { UploadCard } from \"@/pages/VideoUpload/components/UploadCard\";\nimport { Container, Text } from \"@/components/common\";\nimport { UploadForm } from \"@/pages/VideoUpload/components/UploadForm\";\nimport { SuccessCard } from \"@/pages/VideoUpload/components/SuccessCard\";\n\nconst Footer = styled.div`\n margin-top: auto;\n text-align: center;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n text-align: left;\n }\n `}\n a {\n text-decoration: underline;\n }\n`;\n\ninterface State {\n step: 1 | 2 | 3;\n cloudflareId: string;\n originalVideoFilename: string;\n}\n\nexport const VideoUpload: FC = () => {\n const { slug } = useParams();\n\n const [state, setState] = useState({\n step: 1,\n cloudflareId: \"\",\n originalVideoFilename: \"\",\n });\n\n const onUploadFinished = (\n cloudflareId: string,\n originalVideoFilename: string\n ) => {\n setState({ step: 2, cloudflareId, originalVideoFilename });\n };\n\n const onSuccessfulSubmit = () => {\n setState((prevState) => ({ ...prevState, step: 3 }));\n };\n\n const renderStep = () => {\n switch (state.step) {\n case 1:\n return ;\n case 2:\n return (\n \n );\n case 3:\n return ;\n default:\n return null;\n }\n };\n\n return (\n \n \n Upload Video | MyPoint.tv\n \n {renderStep()}\n \n \n );\n};\n","import { FC } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Navigate, useLocation } from \"react-router-dom\";\n\nimport { RootState } from \"@/utilities/store\";\n\ninterface Props {\n forContributorsOnly?: boolean;\n}\n\nexport const PrivateRoute: FC = ({\n children,\n forContributorsOnly = false,\n}) => {\n const location = useLocation();\n\n const isAuthenticated = useSelector(\n (state: RootState) => !!state.authentication.user\n );\n\n const isContributor = useSelector(\n (state: RootState) => !!state.authentication.user?.contributor\n );\n\n if (!isAuthenticated) {\n return (\n \n );\n }\n\n if (forContributorsOnly && !isContributor) {\n return (\n \n );\n }\n\n return <>{children};\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 17C13.6944 17 17.5 13.1944 17.5 8.5C17.5 3.80558 13.6944 0 9 0C4.30558 0 0.5 3.80558 0.5 8.5C0.5 13.1944 4.30558 17 9 17Z\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.8916 9.61959L7.93747 12.4529L13.6041 5.63867\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n});\n\nfunction SvgCheckmark(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 17,\n viewBox: \"0 0 17 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCheckmark);\nexport default __webpack_public_path__ + \"static/media/checkmark.ef0ee3bb.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.5801 8.00953C15.5801 7.01458 15.384 6.02945 15.0029 5.11036C14.6219 4.19127 14.0634 3.35615 13.3594 2.65308C12.6554 1.95001 11.8195 1.39279 10.8999 1.01295C9.98031 0.633106 8.99495 0.438145 8 0.43946C5.98966 0.43946 4.06166 1.23815 2.64014 2.65967C1.21861 4.0812 0.419922 6.0092 0.419922 8.01954C0.421729 9.82406 1.06708 11.5688 2.24023 12.9399C3.41339 14.3111 5.0373 15.2186 6.81982 15.4995V10.1995H4.89014V8.00953H6.81982V6.33961C6.74688 5.63597 6.95545 4.93186 7.39941 4.38111C7.84338 3.83037 8.48685 3.47748 9.18994 3.39942C9.35293 3.3844 9.51719 3.3844 9.68018 3.39942C10.2497 3.4009 10.8178 3.44785 11.3799 3.53956V5.40943H10.3799C10.233 5.39142 10.0841 5.40339 9.94189 5.44434C9.79966 5.48529 9.66709 5.55459 9.55225 5.64796C9.4374 5.74132 9.34256 5.85668 9.27344 5.98756C9.20432 6.11843 9.16226 6.26194 9.1499 6.40943C9.13995 6.48577 9.13995 6.56307 9.1499 6.63941V8.05958H11.25L10.9102 10.2595H9.20996V15.5596C10.9972 15.2665 12.6212 14.3447 13.7891 12.9605C14.9569 11.5762 15.592 9.82057 15.5801 8.00953V8.00953Z\",\n fill: \"currentColor\"\n});\n\nfunction SvgFb(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFb);\nexport default __webpack_public_path__ + \"static/media/fb.2bb9a6b8.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17 2.01004C16.398 2.27256 15.7614 2.44769 15.1099 2.53006C15.7969 2.11819 16.3121 1.47172 16.5601 0.709988C15.9123 1.09008 15.2057 1.36045 14.4697 1.51004C14.1744 1.19589 13.8204 0.942977 13.4272 0.765896C13.0341 0.588816 12.6102 0.491057 12.1792 0.478054C11.7482 0.465051 11.3186 0.537155 10.9155 0.690213C10.5125 0.843271 10.1438 1.07437 9.83008 1.37014C9.41253 1.76372 9.10513 2.25956 8.93848 2.80862C8.77183 3.35769 8.75154 3.94077 8.87988 4.50003C7.57529 4.43566 6.29909 4.09691 5.13428 3.50589C3.96946 2.91486 2.94245 2.08492 2.12012 1.0701C1.69816 1.79034 1.56664 2.64423 1.75244 3.45803C1.93824 4.27184 2.42738 4.98423 3.12012 5.44998C2.60008 5.44047 2.09094 5.29951 1.64014 5.04007C1.63897 5.79801 1.89993 6.53288 2.37939 7.1199C2.85886 7.70692 3.52711 8.10984 4.27002 8.26004C3.78729 8.38988 3.28169 8.41044 2.79004 8.3201C3.00113 8.97026 3.40889 9.53887 3.95703 9.94729C4.50518 10.3557 5.16672 10.5838 5.8501 10.6001C4.68798 11.5085 3.25478 12.0013 1.77979 12C1.51666 12.0149 1.25287 12.0149 0.989746 12C3.07457 13.3359 5.60494 13.7893 8.02393 13.2605C10.4429 12.7317 12.5529 11.2639 13.8901 9.17996C14.8426 7.68561 15.352 5.95202 15.3599 4.17996C15.3599 4.03996 15.3599 3.90004 15.3599 3.76004C16.0017 3.29354 16.5569 2.71822 17 2.06009V2.01004Z\",\n fill: \"currentColor\"\n});\n\nfunction SvgTwitter(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 14,\n viewBox: \"0 0 17 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTwitter);\nexport default __webpack_public_path__ + \"static/media/twitter.c8806dc9.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.99977 4.1504C6.98655 4.16358 6.01975 4.57678 5.30982 5.29981C4.5999 6.02285 4.20436 6.99722 4.20973 8.01051C4.20973 8.51478 4.30923 9.0141 4.50221 9.47999C4.69518 9.94588 4.97766 10.3693 5.33424 10.7258C5.69081 11.0824 6.11444 11.3651 6.58033 11.5581C7.04622 11.7511 7.54529 11.8506 8.04957 11.8506C8.55469 11.8519 9.05518 11.7534 9.52223 11.561C9.98927 11.3687 10.4136 11.086 10.7712 10.7293C11.1289 10.3726 11.4131 9.94897 11.6067 9.48243C11.8003 9.01589 11.8997 8.51563 11.8997 8.01051C11.8997 6.99288 11.4968 6.01662 10.7791 5.29518C10.0614 4.57373 9.0872 4.1657 8.06959 4.16041L7.99977 4.1504ZM7.99977 10.5005C7.33672 10.5005 6.70103 10.2372 6.23219 9.76832C5.76335 9.29948 5.49977 8.66354 5.49977 8.0005C5.49977 7.33746 5.76335 6.70152 6.23219 6.23268C6.70103 5.76383 7.33672 5.5005 7.99977 5.5005C8.32844 5.49918 8.65386 5.56283 8.95777 5.688C9.26168 5.81317 9.53786 5.99734 9.77027 6.22975C10.0027 6.46216 10.1871 6.73833 10.3123 7.04225C10.4374 7.34616 10.5011 7.67182 10.4998 8.0005C10.4998 8.66354 10.2362 9.29948 9.76734 9.76832C9.2985 10.2372 8.66281 10.5005 7.99977 10.5005ZM12.8997 4.0005C12.8997 4.23919 12.8048 4.46819 12.636 4.63697C12.4672 4.80576 12.2385 4.9004 11.9998 4.9004C11.7611 4.9004 11.5323 4.80576 11.3635 4.63697C11.1948 4.46819 11.0999 4.23919 11.0999 4.0005C11.0999 3.7618 11.1948 3.53281 11.3635 3.36402C11.5323 3.19524 11.7611 3.1006 11.9998 3.1006C12.1175 3.09927 12.2344 3.12116 12.3435 3.16529C12.4527 3.20943 12.5518 3.2749 12.6355 3.35768C12.7192 3.44045 12.7855 3.53908 12.8308 3.64771C12.8762 3.75635 12.8997 3.87277 12.8997 3.99049V4.0005ZM15.45 4.91041C15.478 3.7419 15.0426 2.60976 14.2395 1.76051C13.3904 0.96356 12.2642 0.52947 11.0999 0.550547C9.85986 0.480547 6.09992 0.480547 4.90992 0.550547C3.74235 0.527913 2.6117 0.962038 1.75953 1.76051C0.962584 2.6096 0.528494 3.73608 0.54957 4.9004C0.47957 6.1404 0.47957 9.90059 0.54957 11.0906C0.525283 12.2555 0.959824 13.3831 1.75953 14.2305C2.60762 15.0302 3.73414 15.4678 4.89967 15.4504C6.13967 15.5204 9.89961 15.5204 11.0896 15.4504C12.2584 15.4693 13.3884 15.0317 14.2395 14.2305C15.0383 13.3825 15.4732 12.2553 15.45 11.0906C15.52 9.85059 15.52 6.1404 15.45 4.9004V4.91041ZM13.8499 12.4204C13.7238 12.7433 13.5326 13.037 13.2883 13.283C13.0441 13.529 12.752 13.7222 12.4299 13.8506C10.9736 14.1499 9.4832 14.2506 7.99977 14.1504C6.51964 14.2507 5.03284 14.1499 3.57984 13.8506C3.25781 13.7222 2.96523 13.529 2.72096 13.283C2.47669 13.037 2.28601 12.7433 2.15992 12.4204C1.86035 10.9675 1.75913 9.48062 1.85963 8.0005C1.75913 6.52038 1.86035 5.03354 2.15992 3.58058C2.28443 3.25673 2.47502 2.96227 2.71949 2.71607C2.96396 2.46988 3.25688 2.27718 3.57984 2.1504C5.03284 1.85107 6.51964 1.75035 7.99977 1.8506C9.4832 1.75042 10.9736 1.85114 12.4299 2.1504C12.752 2.27875 13.0441 2.47204 13.2883 2.71803C13.5326 2.96402 13.7238 3.25765 13.8499 3.58058C14.1494 5.03354 14.2502 6.52038 14.1497 8.0005C14.2502 9.48062 14.1494 10.9675 13.8499 12.4204Z\",\n fill: \"currentColor\"\n});\n\nfunction SvgInstagram(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgInstagram);\nexport default __webpack_public_path__ + \"static/media/instagram.35abbf82.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.35989 15.0099H1.20999V5.00988H4.31985L4.35989 15.0099ZM2.79983 3.62999C2.32058 3.63002 1.86079 3.44087 1.52005 3.10387C1.1793 2.76687 0.985275 2.30916 0.980008 1.82994C0.978691 1.59225 1.02405 1.35644 1.1138 1.13634C1.20354 0.916238 1.33581 0.715989 1.50296 0.546986C1.6701 0.377982 1.86882 0.243651 2.08792 0.151478C2.30702 0.0593051 2.54212 0.0111861 2.77981 0.00987649C3.01787 0.00723124 3.25443 0.0519507 3.47513 0.141224C3.69583 0.230498 3.89668 0.362487 4.06595 0.529896C4.23522 0.697306 4.36926 0.896622 4.46097 1.11632C4.55267 1.33602 4.60014 1.57185 4.60013 1.80993C4.59753 2.28744 4.40706 2.74477 4.07034 3.08336C3.73362 3.42196 3.27733 3.61474 2.79983 3.61998V3.62999ZM16 15.0099H12.8999V10.13C12.8999 8.96999 12.8998 7.47985 11.2798 7.47985C9.65981 7.47985 9.41995 8.73992 9.41995 10.0499V15.0499H6.31009V5.04992H9.31009V6.41979C9.61042 5.9092 10.0428 5.48935 10.562 5.20421C11.0813 4.91908 11.6678 4.77936 12.2598 4.79992C15.3998 4.79992 15.98 6.86994 15.98 9.56993L16 15.0099Z\",\n fill: \"currentColor\"\n});\n\nfunction SvgLinkedin(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLinkedin);\nexport default __webpack_public_path__ + \"static/media/linkedin.e7efa59a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.9001 2.51013C18.791 2.12528 18.5848 1.77502 18.301 1.49304C18.0173 1.21106 17.6655 1.00675 17.28 0.900021C14.8679 0.610092 12.4393 0.479916 10.01 0.510128C7.58073 0.479916 5.15209 0.610092 2.73999 0.900021C2.35447 1.00675 2.00321 1.21106 1.71948 1.49304C1.43575 1.77502 1.22947 2.12528 1.12036 2.51013C0.847519 3.99444 0.713216 5.50096 0.719969 7.01013C0.71777 8.50916 0.852043 10.0053 1.12036 11.4801C1.22709 11.8672 1.4321 12.2201 1.71606 12.504C2.00003 12.788 2.35284 12.9935 2.73999 13.1002C5.15209 13.3901 7.58073 13.5203 10.01 13.4901C12.4391 13.5103 14.8671 13.3802 17.28 13.1002C17.6655 12.9935 18.0173 12.7892 18.301 12.5072C18.5848 12.2252 18.791 11.875 18.9001 11.4901C19.1697 10.0122 19.3004 8.51236 19.2903 7.01013C19.3008 5.50457 19.1701 4.00134 18.9001 2.52014V2.51013ZM8.15015 9.79016V4.22009L13.0002 7.01013L8.15015 9.79016Z\",\n fill: \"currentColor\"\n});\n\nfunction SvgYoutube(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 14,\n viewBox: \"0 0 20 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgYoutube);\nexport default __webpack_public_path__ + \"static/media/youtube.8636511f.svg\";\nexport { ForwardRef as ReactComponent };","import {\n FC,\n MouseEvent,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport styled, { css } from \"styled-components\";\nimport MediaQuery, { useMediaQuery } from \"react-responsive\";\n\nimport { Breakpoints } from \"@/utilities/theme\";\nimport { Loader, Text } from \"@/components/common\";\nimport { ReactComponent as SortIcon } from \"@/assets/icons/sort.svg\";\nimport useInfiniteLoader from \"@/hooks/useInfiniteLoader\";\nimport { errorNotification } from \"@/utilities/alerts\";\nimport { PaginatedResponse } from \"@/types\";\nimport { PaginationLinks, VideoResource } from \"@/types/api\";\nimport { api } from \"@/utilities/api\";\nimport { ListableVideoCard } from \"@/components/ListableVideoCard\";\nimport { Dropdown, DropdownItem } from \"@/components/Dropdown\";\n\nconst Heading = styled(Text)`\n text-transform: uppercase;\n`;\n\nconst Header = styled.div`\n margin: 0 0 27px;\n display: flex;\n align-items: center;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n justify-content: center;\n }\n `}\n`;\n\nconst SortButton = styled.button`\n display: inline-flex;\n align-items: center;\n`;\n\nconst StyledSortIcon = styled(SortIcon)<{ $active: boolean }>`\n ${({ theme, $active }) => css`\n stroke: ${$active ? theme.colors.red : theme.colors.gray};\n &:hover {\n stroke: ${theme.colors.black};\n }\n ${theme.breakpoints.tablet} {\n margin-right: 10px;\n margin-top: -2px;\n }\n `}\n`;\n\nconst Wrap = styled.div`\n display: flex;\n flex-direction: column;\n height: 100%;\n`;\n\nconst VideosContainer = styled.div`\n flex: 1;\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n margin: -15px -15px 0;\n padding: 15px 15px 0;\n ${({ theme }) => css`\n ${theme.breakpoints.tablet} {\n overflow-y: visible;\n margin: 0;\n padding: 0;\n }\n `}\n`;\n\nconst SortWrap = styled.div`\n position: relative;\n margin-left: 17px;\n ${({ theme }) => css`\n ${theme.breakpoints.tablet} {\n margin-left: auto;\n }\n ${theme.breakpoints.phone} {\n margin-left: 17px;\n }\n `}\n`;\n\nenum Sort {\n \"MOST RECENT\",\n \"MOST VIEWED\",\n \"MOST LIKED\",\n \"MOST COMMENTED\",\n \"MOST BOOKMARKED\",\n}\n\ninterface State {\n showSortDropdown: boolean;\n sort: Sort;\n videos: VideoResource[];\n links?: PaginationLinks;\n isLoading: boolean;\n}\n\nconst INITIAL_STATE = {\n showSortDropdown: false,\n sort: Sort[\"MOST RECENT\"],\n videos: [],\n isLoading: true,\n};\n\ninterface Props {\n contributorId: number;\n}\n\nexport const Videos: FC = ({ contributorId }) => {\n const isSmallerThanDesktop = useMediaQuery({\n maxWidth: Breakpoints.max.tablet,\n });\n\n const [state, setState] = useState(INITIAL_STATE);\n const rootRef = useRef(null);\n\n const fetchPaginatedVideos = useCallback(\n (link = \"/v1/videos\") => {\n const include = [\n ...(state.sort === Sort[\"MOST BOOKMARKED\"] ? [\"bookmarks_count\"] : []),\n ...(state.sort === Sort[\"MOST COMMENTED\"] ? [\"reactions_count\"] : []),\n ...(state.sort === Sort[\"MOST LIKED\"] ? [\"likes_count\"] : []),\n \"media\",\n \"contributor\",\n \"contributor.user\",\n \"meta\",\n \"viewsCount\",\n ].join(\",\");\n\n const sort = [\n ...(state.sort === Sort[\"MOST BOOKMARKED\"] ? [\"-bookmarks_count\"] : []),\n ...(state.sort === Sort[\"MOST COMMENTED\"] ? [\"-reactions_count\"] : []),\n ...(state.sort === Sort[\"MOST LIKED\"] ? [\"-likes_count\"] : []),\n ...(state.sort === Sort[\"MOST VIEWED\"] ? [\"-views_count\"] : []),\n \"-published_at\",\n ].join(\",\");\n\n return api.get>(link, {\n params: {\n sort,\n include,\n per_page: 8,\n \"filter[contributor_id]\": contributorId,\n },\n });\n },\n [contributorId, state.sort]\n );\n\n useEffect(() => {\n (async () => {\n try {\n const { data, links } = await fetchPaginatedVideos();\n setState((prevState) => ({\n ...prevState,\n videos: data,\n isLoading: false,\n links,\n }));\n } catch (err) {\n errorNotification();\n }\n })();\n }, [fetchPaginatedVideos]);\n\n const loader = useCallback(async () => {\n if (!state.links?.next) return;\n const { data: videos, links } = await fetchPaginatedVideos(\n state.links.next\n );\n setState((prevState) => ({\n ...prevState,\n videos: [...prevState.videos, ...videos],\n isLoading: false,\n links,\n }));\n }, [state.links?.next, fetchPaginatedVideos]);\n\n const { isLoading, ref } = useInfiniteLoader(\n loader,\n isSmallerThanDesktop ? null : rootRef.current\n );\n\n const toggleSortDropdown = (e: MouseEvent) => {\n e.stopPropagation();\n setState((prevState) => ({\n ...prevState,\n showSortDropdown: !prevState.showSortDropdown,\n }));\n };\n\n const setSortValue = (sort: Sort) => {\n if (sort !== state.sort) {\n setState({\n ...INITIAL_STATE,\n sort,\n });\n }\n };\n\n return (\n \n
\n \n Videos from this contributor\n \n \n \n \n {isSmallerThanDesktop && (\n \n \n SORT BY\n \n \n )}\n \n {state.showSortDropdown && (\n \n setState((prevState) => ({\n ...prevState,\n showSortDropdown: false,\n }))\n }\n >\n {(Object.keys(Sort) as Array)\n .filter((key) => !isNaN(Number(Sort[key])))\n .map((key, index) => (\n setSortValue(Sort[key])}\n active={state.sort === Sort[key]}\n >\n {key}\n \n ))}\n \n )}\n \n
\n \n {state.isLoading ? (\n \n ) : !!state.videos.length ? (\n state.videos.map((video) => (\n \n ))\n ) : (\n Contributor has no videos.\n )}\n {!!state.links?.next &&
{isLoading && }
}\n
\n
\n );\n};\n","import { SocialMediaResource } from \"@/types/api\";\nimport { FC, SVGProps } from \"react\";\nimport { ReactComponent as Facebook } from \"@/assets/icons/fb.svg\";\nimport { ReactComponent as Twitter } from \"@/assets/icons/twitter.svg\";\nimport { ReactComponent as Instagram } from \"@/assets/icons/instagram.svg\";\nimport { ReactComponent as LinkedIn } from \"@/assets/icons/linkedin.svg\";\nimport { ReactComponent as Youtube } from \"@/assets/icons/youtube.svg\";\n\ninterface Props extends SVGProps {\n type: SocialMediaResource[\"type\"];\n}\n\nexport const SocialsIcon: FC = ({ type, ...props }) => {\n switch (type) {\n case \"facebook\":\n return ;\n case \"twitter\":\n return ;\n case \"instagram\":\n return ;\n case \"linkedin\":\n return ;\n case \"youtube\":\n return ;\n default:\n throw new Error(`There is no icon for social network of type \"${type}\"`);\n }\n};\n","export default __webpack_public_path__ + \"static/media/cover-placeholder.7d647938.svg\";","import { FC, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\n\nimport { ContributorResource } from \"@/types/api\";\nimport { Card, Text, Button } from \"@/components/common\";\nimport { ReactComponent as Checkmark } from \"@/assets/icons/checkmark.svg\";\nimport { SocialsIcon } from \"@/components/SocialsIcon\";\nimport { numberWithCommas } from \"@/utilities/helpers\";\nimport useFollow from \"@/hooks/useFollow\";\nimport CoverPlaceholderSrc from \"@/assets/img/cover-placeholder.svg\";\nimport { ContributorAvatar } from \"@/pages/Home/components/ContributorAvatar\";\nimport { ContributorSupportDialog } from \"@/components/ContributorSupportDialog\";\nimport { useSelector } from \"react-redux\";\nimport { RootState } from \"@/utilities/store\";\nimport { Link } from \"react-router-dom\";\n\nconst Cover = styled.div`\n border-radius: 10px 10px 0 0;\n line-height: 0;\n position: relative;\n`;\n\nconst CoverImg = styled.img`\n border-radius: 10px 10px 0 0;\n height: 290px;\n width: 100%;\n object-fit: cover;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n height: 190px;\n }\n `}\n`;\n\nconst Content = styled.article`\n background: ${({ theme }) => theme.colors.white};\n padding: 0 30px 42px;\n display: flex;\n flex-direction: column;\n align-items: center;\n border-radius: 0 0 10px 10px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n padding: 0 15px 37px;\n }\n `}\n`;\n\nconst Avatar = styled(ContributorAvatar)`\n margin: -148px 0 24px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin: -153px 0 19px;\n }\n `}\n`;\n\nconst Location = styled(Text).attrs({\n $type: \"labelBold\",\n $color: \"white\",\n as: \"div\",\n})`\n background: ${({ theme }) => theme.colors.red};\n padding: 0 12px;\n height: 26px;\n display: inline-flex;\n align-items: center;\n position: absolute;\n bottom: -12px;\n left: calc(50% + 118px);\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n left: auto;\n right: 0;\n bottom: auto;\n top: 0;\n }\n `}\n`;\n\nconst Headline = styled(Text).attrs({\n $type: \"heading1\",\n as: \"h1\",\n})`\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 0 0 20px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin: 0 0 10px;\n }\n `}\n`;\n\nconst StyledCheckmark = styled(Checkmark)`\n fill: ${({ theme }) => theme.colors.red};\n stroke: ${({ theme }) => theme.colors.white};\n margin-right: 12px;\n`;\n\nconst Stats = styled.div`\n display: flex;\n justify-content: center;\n margin: 0 0 20px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin: 0 -20px 10px;\n }\n `}\n`;\n\nconst TopicsLabel = styled(Text)`\n margin-right: 6px;\n`;\n\nconst Buttons = styled.div`\n display: grid;\n justify-content: center;\n grid-column-gap: 30px;\n grid-template-columns: 104px 104px;\n margin: 27px 0 44px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin: 15px 0 19px;\n }\n `}\n`;\n\nconst StatsBlock = styled.div<{ $bordered?: boolean }>`\n padding: 0 20px;\n text-align: center;\n ${({ theme, $bordered }) =>\n $bordered &&\n css`\n position: relative;\n &::before,\n &::after {\n position: absolute;\n top: 0;\n bottom: 0;\n width: 1px;\n height: 70%;\n margin: auto 0;\n background: ${theme.colors.gray};\n content: \"\";\n }\n &::before {\n left: 0;\n }\n &::after {\n right: 0;\n }\n `}\n`;\n\nconst Description = styled(Text)`\n width: 690px;\n max-width: 100%;\n margin: 0 0 32px;\n text-align: center;\n`;\n\nconst SocialMedias = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nconst SocialLink = styled(\"a\").attrs({\n target: \"_blank\",\n rel: \"noreferrer noopener\",\n})`\n margin: 0 15px;\n line-height: 0;\n padding: 5px;\n &:hover {\n transition: 0.2s ease-out color;\n color: ${({ theme }) => theme.colors.red};\n }\n`;\n\nconst EditProfileButton = styled(Button)`\n margin: 27px auto 44px;\n width: 120px;\n`;\n\ninterface Props {\n contributor: ContributorResource;\n}\n\nexport const ContributorCard: FC = ({ contributor }) => {\n const { isFollowed, toggleFollow, isFollowLoading } = useFollow(\n contributor.id\n );\n\n const isMyProfile = useSelector(\n (state: RootState) =>\n state.authentication.user?.contributor?.slug === contributor.slug\n );\n\n const [showSupportDialog, setShowSupportDialog] = useState(false);\n\n return (\n \n {showSupportDialog && (\n setShowSupportDialog(false)}\n />\n )}\n \n \n {!!contributor.location && {contributor.location}}\n \n \n \n \n {contributor.verified && }\n {contributor.name}\n \n \n \n \n {numberWithCommas(contributor.followers_count!)}\n {\" \"}\n \n Followers\n \n \n \n \n {contributor.videos_count}\n {\" \"}\n \n Uploads\n \n \n \n \n {numberWithCommas(contributor.videos_views || 0)}\n {\" \"}\n \n Views\n \n \n \n {!!contributor.topics && (\n \n \n Topics\n \n {contributor.topics}\n \n )}\n {isMyProfile ? (\n \n Edit Profile\n \n ) : (\n \n \n {isFollowed ? \"Unfollow\" : \"Follow\"}\n \n \n \n )}\n {contributor.description}\n {!!contributor.social_medias!.length && (\n \n {contributor.social_medias!.map((media, index) => (\n \n \n \n ))}\n \n )}\n \n \n );\n};\n","import { FC, useEffect } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { useMediaQuery } from \"react-responsive\";\nimport { Helmet } from \"react-helmet-async\";\nimport { useSearchParams } from \"react-router-dom\";\n\nimport useResourceLoader from \"@/hooks/useResourceLoader\";\nimport { ContributorResource } from \"@/types/api\";\nimport { Column, Loader, Row } from \"@/components/common\";\nimport { ContributorCard } from \"@/pages/Contributor/components/ContributorCard\";\nimport { Videos } from \"@/pages/Contributor/components/Videos\";\nimport { Breakpoints } from \"@/utilities/theme\";\nimport { successNotification } from \"@/utilities/alerts\";\n\nconst Wrap = styled.div`\n padding: 32px 0 120px;\n`;\n\nconst Sidebar = styled(Column)`\n position: absolute;\n right: 0;\n height: 100%;\n ${({ theme }) => css`\n ${theme.breakpoints.tablet} {\n position: static;\n margin-top: 30px;\n }\n `}\n`;\n\nconst StyledRow = styled(Row)`\n position: relative;\n`;\n\nexport const Contributor: FC = () => {\n const isMediumDesktop = useMediaQuery({\n maxWidth: Breakpoints.max.smallDesktop,\n minWidth: Breakpoints.min.smallDesktop,\n });\n\n const isSmallerThanDesktop = useMediaQuery({\n maxWidth: Breakpoints.max.tablet,\n });\n\n const [contributor, isLoading] = useResourceLoader(\n (slug) => `/v1/contributors/${slug}`,\n {\n include: [\n \"user\",\n \"media\",\n \"videos\",\n \"socialMedias\",\n \"videosCount\",\n \"followersCount\",\n \"viewsCount\",\n ].join(\",\"),\n }\n );\n\n const [urlSearchParams, setSearchParams] = useSearchParams();\n\n useEffect(() => {\n if (urlSearchParams.has(\"payment-success\")) {\n successNotification(\n \"Thank You!\",\n \"Your payment was successful. Thank you very much for supporting our contributors!\"\n );\n const newSearchParams = new URLSearchParams(urlSearchParams);\n newSearchParams.delete(\"payment-success\");\n setSearchParams(newSearchParams, { replace: true });\n }\n }, [urlSearchParams, setSearchParams]);\n\n return (\n \n {isLoading ? (\n \n ) : (\n <>\n \n {contributor!.name} | MyPoint.tv\n {!!contributor!.description && (\n \n )}\n \n {!!contributor!.description && (\n \n )}\n {!!contributor!.avatar && (\n \n )}\n \n \n \n \n \n \n \n \n \n \n )}\n \n );\n};\n","export default __webpack_public_path__ + \"static/media/about.58063da1.png\";","export default __webpack_public_path__ + \"static/media/about-mobile.9d6997c8.png\";","export default __webpack_public_path__ + \"static/media/1.56770bc5.svg\";","export default __webpack_public_path__ + \"static/media/2.9af32084.svg\";","export default __webpack_public_path__ + \"static/media/3.bec4fbef.svg\";","export default __webpack_public_path__ + \"static/media/4.9fee7f77.svg\";","export default __webpack_public_path__ + \"static/media/5.ad7b0034.svg\";","import { FC } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { Helmet } from \"react-helmet-async\";\nimport { useNavigate } from \"react-router-dom\";\nimport MediaQuery from \"react-responsive\";\n\nimport DesktopImg from \"@/assets/img/about/about.png\";\nimport MobileImg from \"@/assets/img/about/about-mobile.png\";\nimport Icon1 from \"@/assets/img/about/1.svg\";\nimport Icon2 from \"@/assets/img/about/2.svg\";\nimport Icon3 from \"@/assets/img/about/3.svg\";\nimport Icon4 from \"@/assets/img/about/4.svg\";\nimport Icon5 from \"@/assets/img/about/5.svg\";\nimport { Button, Card, Text } from \"@/components/common\";\nimport { Breakpoints } from \"@/utilities/theme\";\n\nconst Wrap = styled.div`\n padding: 32px 0 120px;\n`;\n\nconst StyledCard = styled(Card)`\n padding: 103px 120px 87px;\n position: relative;\n ${({ theme }) => css`\n ${theme.breakpoints.mediumDesktop} {\n padding-left: 70px;\n padding-right: 70px;\n }\n ${theme.breakpoints.tablet} {\n padding: 80px 30px 45px;\n }\n ${theme.breakpoints.phone} {\n padding: 30px 15px;\n }\n `}\n`;\n\nconst Image = styled.img`\n display: block;\n max-width: 100%;\n margin: 60px auto 90px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin: 0 auto 47px;\n }\n `}\n`;\n\nconst TopButton = styled(Button)`\n position: absolute;\n left: 0;\n right: 0;\n top: -24px;\n margin: 0 auto;\n width: 340px;\n max-width: 100%;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n position: static;\n display: flex;\n margin: 0 auto 43px;\n }\n `}\n`;\n\nconst Row = styled.div`\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n grid-column-gap: 110px;\n ${({ theme }) => css`\n ${theme.breakpoints.smallDesktop} {\n grid-template-columns: minmax(0, 1fr);\n grid-row-gap: 72px;\n }\n ${theme.breakpoints.phone} {\n grid-row-gap: 40px;\n }\n `}\n > div {\n display: grid;\n grid-row-gap: 72px;\n grid-template-columns: minmax(0, 1fr);\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n grid-row-gap: 40px;\n }\n `}\n &:last-of-type {\n grid-row-gap: 48px;\n ${({ theme }) => css`\n ${theme.breakpoints.mediumDesktop} {\n grid-row-gap: 80px;\n }\n ${theme.breakpoints.smallDesktop} {\n grid-row-gap: 72px;\n }\n ${theme.breakpoints.phone} {\n grid-row-gap: 40px;\n }\n `}\n }\n }\n`;\n\nconst Column = styled.article`\n display: flex;\n align-items: flex-start;\n img {\n width: 90px;\n margin-right: 30px;\n }\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n flex-direction: column;\n align-items: center;\n text-align: center;\n img {\n margin: 0 0 20px;\n }\n }\n `}\n`;\n\nconst Content = styled.div`\n flex: 1;\n p {\n margin: 0 0 20px;\n &:last-of-type {\n margin: 0;\n }\n }\n`;\n\nconst Heading = styled(Text)`\n margin: 0 0 15px;\n`;\n\nconst Footer = styled.div`\n text-align: center;\n margin-top: 80px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin-top: 60px;\n margin-bottom: 30px;\n }\n `}\n`;\n\nconst FooterButton = styled(Button)`\n width: 340px;\n max-width: 100%;\n`;\n\nconst Strong = styled.strong`\n font-weight: 700;\n &::before {\n content: \"•\";\n color: ${({ theme }) => theme.colors.red};\n margin-right: 10px;\n }\n`;\n\nexport const AboutPage: FC = () => {\n const navigate = useNavigate();\n\n return (\n <>\n \n About Us | MyPoint.tv\n \n \n \n \n \n \n \"Everyone\n \n\n \n \n \"Everyone\n \n navigate(\"/register\")}>\n Become a contributor\n \n \n
\n \n \"Eye\"\n \n \n Your Point Matters\n \n \n When you face important events that impact you, and those of\n imortance to you, whether it’s a positive or a negative\n event, share it with the world through MyPoint.tv. Our aim\n is to put the power of mass media in your hands.\n \n \n \n \n \"Chat\"\n \n \n Get a Helping Hand\n \n \n Our team of editors is dedicated to helping you in every\n step of contributing a story: finding a relevant topic,\n overcoming technical difficulties, making your videos more\n appealing to bigger audiences.\n \n \n \n \n \"Gas\n \n \n Find Inspiration\n \n \n Alongside your personal stories and experiences, each of our\n communities are full of interesting news and important\n events.\n \n \n Here is a list of topics to get you going: Changes that\n affect the public, Traffic, Acts of kindness and charity\n events, Places worth visiting, Crime, Demonstrations,\n Environmental concerns, Social injustice or prejudice, New\n construction, Unexpected encounters.\n \n \n \n
\n
\n \n \"Chat\"\n \n \n Receive Perks\n \n \n Becoming a MyPoint.TV community member means that you are\n eligible to receiving incentives such as event passes, media\n kits and other reporting essentials, etc. All you have to do\n is publish 5 videos on our website to be verified.\n \n \n \n \n \"Chat\"\n \n \n Earn Money\n \n \n 50% cut of advertising revenue. The more\n views and reactions that your videos generate, the more you\n can earn from our shared advertising income model. We’ll\n help. Each week we promote the best performing videos to a\n further +100K people. We want to ensure that important\n stories reach the largest audience possible.\n \n \n 90% of author’s support (taxes excluded).\n We incourage MyPoint.tv’s viewer community to support our\n video creators monetarily and thus be involved in spreading\n one’s message. The remaining cut goes to our team of\n editors, who make sure that content complies with our Terms\n & Conditions.\n \n \n 50% of content re-sell profit. Our content\n being unique, makes it appealing to other media outlets. In\n case of your video being re-purposed by another news\n channel, you are elligible to share our profit.\n \n \n \n
\n
\n
\n navigate(\"/register\")}>\n Become a Contributor\n \n
\n
\n
\n \n );\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip-path\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Google:_Icon_-_Yellow\",\n \"data-name\": \"Google: Icon - Yellow\",\n d: \"M22.284,10.591H12.5v4.057h5.632c-.525,2.577-2.72,4.057-5.632,4.057A6.2,6.2,0,0,1,12.5,6.3,6.07,6.07,0,0,1,16.366,7.68L19.42,4.625A10.493,10.493,0,1,0,12.5,23c5.25,0,10.023-3.818,10.023-10.5A8.711,8.711,0,0,0,22.284,10.591Z\",\n transform: \"translate(-2 -2)\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Google:_Icon\",\n \"data-name\": \"Google: Icon\",\n transform: \"translate(0)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Google:_Icon_-_Yellow-2\",\n \"data-name\": \"Google: Icon - Yellow\",\n transform: \"translate(0 0)\",\n clipPath: \"url(#clip-path)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Google:_Icon_-_Yellow-3\",\n \"data-name\": \"Google: Icon - Yellow\",\n d: \"M0,23.409V11l8.114,6.2Z\",\n transform: \"translate(-0.955 -6.705)\",\n fill: \"#fbbc05\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Google:_Icon_-_Red-2\",\n \"data-name\": \"Google: Icon - Red\",\n transform: \"translate(0 0)\",\n clipPath: \"url(#clip-path)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Google:_Icon_-_Red-3\",\n \"data-name\": \"Google: Icon - Red\",\n d: \"M0,5.25l8.114,6.2,3.341-2.911L22.909,6.682V0H0Z\",\n transform: \"translate(-0.955 -0.955)\",\n fill: \"#ea4335\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Google:_Icon_-_Green-2\",\n \"data-name\": \"Google: Icon - Green\",\n transform: \"translate(0 0)\",\n clipPath: \"url(#clip-path)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Google:_Icon_-_Green-3\",\n \"data-name\": \"Google: Icon - Green\",\n d: \"M0,17.659,14.318,6.682l3.77.477L22.909,0V22.909H0Z\",\n transform: \"translate(-0.955 -0.955)\",\n fill: \"#34a853\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Google:_Icon_-_Blue-2\",\n \"data-name\": \"Google: Icon - Blue\",\n transform: \"translate(0 0)\",\n clipPath: \"url(#clip-path)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Google:_Icon_-_Blue-3\",\n \"data-name\": \"Google: Icon - Blue\",\n d: \"M29.7,28.659,14.909,17.2,13,15.773,29.7,11Z\",\n transform: \"translate(-7.75 -6.705)\",\n fill: \"#4285f4\"\n})));\n\nfunction SvgGoogle(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 20.523,\n height: 21,\n viewBox: \"0 0 20.523 21\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGoogle);\nexport default __webpack_public_path__ + \"static/media/google.bbcad256.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1877f2\",\n d: \"M12.14 20.873v-.001l.002-7.334h2.446l.465-3.035h-2.911v-1.97c0-.612.222-1.64 1.71-1.64h1.325V4.31c-.009-.001-1.223-.206-2.351-.206-2.483 0-3.966 1.527-3.966 4.085v2.314H6.194v3.035H8.86v7.334A10.496 10.496 0 0 1 0 10.5C0 4.71 4.71 0 10.5 0S21 4.71 21 10.5a10.504 10.504 0 0 1-8.859 10.373z\"\n})));\n\nfunction SvgFacebook(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 21,\n height: 21,\n viewBox: \"0 0 21 21\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFacebook);\nexport default __webpack_public_path__ + \"static/media/facebook.bc00a77b.svg\";\nexport { ForwardRef as ReactComponent };","import { FC } from \"react\";\nimport styled, { css } from \"styled-components\";\n\nimport { ReactComponent as GoogleIcon } from \"@/assets/icons/google.svg\";\nimport { ReactComponent as FacebookIcon } from \"@/assets/icons/facebook.svg\";\nimport { Text } from \"@/components/common\";\n\nconst Button = styled.a`\n position: relative;\n box-shadow: 0 3px 6px rgba(32, 37, 44, 0.15);\n border-radius: 10px;\n background: ${({ theme }) => theme.colors.white};\n text-transform: uppercase;\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: 0.2s ease-out box-shadow;\n letter-spacing: 0.38px;\n > svg {\n position: absolute;\n left: 15px;\n top: 0;\n bottom: 0;\n margin: auto 0;\n }\n &:hover {\n box-shadow: 0 0 6px rgba(32, 37, 44, 0.15);\n }\n`;\n\nconst Grid = styled.div`\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n grid-gap: 30px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n grid-gap: 20px;\n grid-template-columns: 1fr;\n margin: 0 0 38px;\n }\n `}\n`;\n\ninterface Props {\n intendedPathname?: string;\n}\n\nexport const Socials: FC = ({ intendedPathname }) => {\n return (\n \n \n \n Facebook\n \n \n \n Google\n \n \n );\n};\n","import { FC } from \"react\";\nimport styled, { css } from \"styled-components\";\n\nimport { Text } from \"@/components/common\";\n\nconst Label = styled(Text)`\n text-align: center;\n letter-spacing: 0.65px;\n margin: 40px 0;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin: 0 0 35px;\n }\n `}\n`;\n\nexport const Separator: FC = ({ children }) => {\n return ;\n};\n","import { FC } from \"react\";\nimport styled, { css, DefaultTheme, StyledComponent } from \"styled-components\";\nimport { NavLink } from \"react-router-dom\";\n\nimport { Text } from \"@/components/common\";\nimport { TextProps } from \"@/components/common/Text\";\n\nconst NavButton = styled(Text)`\n height: 39px;\n display: flex;\n align-items: flex-start;\n justify-content: center;\n transition: 0.2s ease-out all;\n text-transform: uppercase;\n letter-spacing: 0.75px;\n padding: 0;\n border: 0;\n background: transparent;\n cursor: pointer;\n ${({ theme }) => css`\n border-bottom: 1px solid #e8e8e8;\n &.active {\n border-color: ${theme.colors.red};\n font-weight: ${theme.typography.textPoppinsBold.fontWeight};\n }\n ${theme.breakpoints.phone} {\n height: auto;\n padding: 18px 0 14px;\n align-items: center;\n }\n `}\n &:hover {\n border-color: ${({ theme }) => theme.colors.red};\n }\n` as StyledComponent;\n\nconst Nav = styled.div`\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-gap: 30px;\n margin: 0 0 48px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n grid-gap: 15px;\n margin: 0 0 32px;\n }\n `}\n`;\n\nexport const Navigation: FC = () => {\n return (\n \n );\n};\n","import { FC } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { useForm } from \"react-hook-form\";\nimport { Link } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Helmet } from \"react-helmet-async\";\n\nimport { Socials } from \"@/pages/Auth/components/Socials\";\nimport { Separator } from \"@/pages/Auth/components/Separator\";\nimport { Button, Checkbox, Text } from \"@/components/common\";\nimport { FormGroup } from \"@/components/common/FormGroup\";\nimport { Dispatch, RootState } from \"@/utilities/store\";\nimport { handleFormErrors } from \"@/utilities/helpers\";\nimport { Navigation } from \"@/pages/Auth/components/Navigation\";\nimport { fbq } from \"@/utilities/tracking\";\n\nconst Notices = styled.div`\n padding-left: 54px;\n margin: 41px 0 0;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n padding: 0;\n margin: 0;\n }\n `}\n`;\n\nconst NoticesText = styled(Text)`\n letter-spacing: 0.33px;\n margin-left: 30px;\n margin-top: 17px;\n a {\n transition: 0.2s ease-out font-weight;\n &:hover {\n font-weight: 700;\n }\n }\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin-top: 22px;\n margin-left: 25px;\n }\n `}\n`;\n\nconst Footer = styled.div`\n text-align: center;\n margin: 44px 0 0;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin: 39px 0 0;\n }\n `}\n`;\n\nconst Grid = styled.div`\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-column-gap: 30px;\n grid-row-gap: 20px;\n\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n grid-gap: 20px;\n grid-template-columns: 1fr;\n margin: 0 0 38px;\n }\n `}\n`;\n\ntype FormData = {\n first_name: string;\n last_name: string;\n email: string;\n password: string;\n password_confirmation: string;\n location: string;\n subscribe: string | undefined;\n};\n\nexport const SignUpForm: FC = () => {\n const dispatch = useDispatch();\n\n const isLoading = useSelector(\n (rootState: RootState) => rootState.loading.effects.authentication.register\n );\n\n const {\n register,\n handleSubmit,\n setError,\n formState: { errors },\n } = useForm({\n defaultValues: {\n first_name: \"\",\n last_name: \"\",\n email: \"\",\n password: \"\",\n password_confirmation: \"\",\n location: \"\",\n },\n });\n\n const onSubmit = handleSubmit(async (data) => {\n try {\n const userId = await dispatch.authentication.register(data);\n fbq(\n \"track\",\n \"Lead\",\n {\n content_name: \"Sign up\",\n },\n { eventID: `SIGN_UP_${userId}` }\n );\n } catch (error) {\n handleFormErrors(error, setError);\n }\n });\n\n return (\n <>\n \n Sign Up | MyPoint.tv\n \n \n \n Or sign up with email\n
\n \n \n \n \n \n \n \n \n \n \n Subscribe to our newsletter for news updates and storytelling\n training material.\n \n \n By creating your account, you agree to our{\" \"}\n Terms {\"&\"} Conditions and{\" \"}\n Privacy Policy.\n \n \n
\n \n
\n
\n \n );\n};\n","import { FC } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { useForm } from \"react-hook-form\";\nimport { useDispatch } from \"react-redux\";\nimport { AxiosError } from \"axios\";\nimport { useLocation } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet-async\";\n\nimport { Socials } from \"@/pages/Auth/components/Socials\";\nimport { Separator } from \"@/pages/Auth/components/Separator\";\nimport { Button, Text } from \"@/components/common\";\nimport { FormGroup } from \"@/components/common/FormGroup\";\nimport { Dispatch } from \"@/utilities/store\";\nimport { UnauthorizedResponse } from \"@/types/api\";\nimport { errorNotification } from \"@/utilities/alerts\";\nimport { Navigation } from \"@/pages/Auth/components/Navigation\";\nimport { Link } from \"react-router-dom\";\n\nconst Footer = styled.div`\n text-align: center;\n margin: 48px 0 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst Grid = styled.div`\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-gap: 30px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n grid-gap: 20px;\n grid-template-columns: 1fr;\n margin: 0 0 46px;\n }\n `}\n`;\n\nconst ForgotPasswordLink = styled(Text)`\n transition: 0.2s ease-out opacity;\n margin-top: 40px;\n &:hover {\n opacity: 0.75;\n }\n`;\n\ntype FormData = {\n email: string;\n password: string;\n};\n\nexport const SignInForm: FC = () => {\n const dispatch = useDispatch();\n\n const location = useLocation();\n\n const {\n register,\n handleSubmit,\n setError,\n formState: { errors, isSubmitting },\n } = useForm({\n defaultValues: {\n email: \"\",\n password: \"\",\n },\n });\n\n const onSubmit = handleSubmit(async (credentials) => {\n try {\n await dispatch.authentication.login(credentials);\n } catch (error) {\n const err = error as AxiosError;\n if (err.response?.status === 401) {\n return setError(\"email\", {\n type: \"manual\",\n message: err.response?.data?.message,\n });\n }\n errorNotification();\n }\n });\n\n return (\n <>\n \n Sign In | MyPoint.tv\n \n \n \n Or sign in with email\n
\n \n \n \n \n
\n \n \n Reset Password\n \n
\n
\n \n );\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.47246 11.3795H5.32368C5.41218 11.38 5.49991 11.363 5.58184 11.3295C5.66377 11.2961 5.73829 11.2468 5.80113 11.1844L10.4545 6.5243L12.3643 4.65486C12.4274 4.59235 12.4774 4.51798 12.5115 4.43603C12.5457 4.35408 12.5632 4.26619 12.5632 4.17742C12.5632 4.08865 12.5457 4.00075 12.5115 3.91881C12.4774 3.83686 12.4274 3.76249 12.3643 3.69997L9.5131 0.815123C9.45059 0.752095 9.37621 0.702068 9.29427 0.667928C9.21232 0.633788 9.12443 0.616211 9.03565 0.616211C8.94688 0.616211 8.85899 0.633788 8.77704 0.667928C8.6951 0.702068 8.62072 0.752095 8.55821 0.815123L6.66187 2.71818L1.99501 7.37832C1.93268 7.44116 1.88338 7.51568 1.84991 7.59761C1.81645 7.67954 1.79948 7.76727 1.8 7.85577V10.707C1.8 10.8853 1.87084 11.0564 1.99695 11.1825C2.12307 11.3086 2.29411 11.3795 2.47246 11.3795ZM9.03565 2.24074L10.9387 4.14379L9.98382 5.09869L8.08076 3.19563L9.03565 2.24074ZM3.14491 8.13148L7.1326 4.14379L9.03565 6.04685L5.04797 10.0345H3.14491V8.13148ZM13.2318 12.7244H1.12754C0.94919 12.7244 0.778147 12.7952 0.652037 12.9213C0.525926 13.0474 0.455078 13.2185 0.455078 13.3968C0.455078 13.5752 0.525926 13.7462 0.652037 13.8723C0.778147 13.9984 0.94919 14.0693 1.12754 14.0693H13.2318C13.4101 14.0693 13.5812 13.9984 13.7073 13.8723C13.8334 13.7462 13.9043 13.5752 13.9043 13.3968C13.9043 13.2185 13.8334 13.0474 13.7073 12.9213C13.5812 12.7952 13.4101 12.7244 13.2318 12.7244Z\",\n fill: \"currentColor\"\n});\n\nfunction SvgEdit(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 14,\n height: 15,\n viewBox: \"0 0 14 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEdit);\nexport default __webpack_public_path__ + \"static/media/edit.14323a57.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.361 12.167c-.718.997-2.384 1.998-4.357 1.998-1.974 0-3.643-1-4.361-1.998-.795-1.102-.493-2.215.395-2.215 1.057 0 2.126.594 3.964.594s2.907-.594 3.964-.594c.888 0 1.19 1.113.395 2.215zM8.001 0a8 8 0 1 0 0 16.001A8 8 0 0 0 8.002 0z\"\n})));\n\nfunction SvgSmile(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSmile);\nexport default __webpack_public_path__ + \"static/media/smile.1bf95f10.svg\";\nexport { ForwardRef as ReactComponent };","import { FC, Fragment, useEffect, useMemo } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { useForm, useWatch } from \"react-hook-form\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport MediaQuery, { useMediaQuery } from \"react-responsive\";\n\nimport { Dispatch, RootState } from \"@/utilities/store\";\nimport { handleFormErrors } from \"@/utilities/helpers\";\nimport {\n Button,\n Card,\n Column,\n Input,\n Row,\n SrOnly,\n Text,\n Textarea,\n ValidationError,\n} from \"@/components/common\";\nimport { ResponsiveImage } from \"@/components/ResponsiveImage\";\nimport CoverPlaceholderSrc from \"@/assets/img/cover-placeholder.svg\";\nimport { ReactComponent as EditIcon } from \"@/assets/icons/edit.svg\";\nimport { ReactComponent as SmileIcon } from \"@/assets/icons/smile.svg\";\nimport { ContributorAvatar } from \"@/pages/Home/components/ContributorAvatar\";\nimport { FormGroup } from \"@/components/common/FormGroup\";\nimport { SocialMediaResource } from \"@/types/api\";\nimport { SocialsIcon } from \"@/components/SocialsIcon\";\nimport { successNotification } from \"@/utilities/alerts\";\nimport { Breakpoints } from \"@/utilities/theme\";\nimport { fbq } from \"@/utilities/tracking\";\n\nconst Wrap = styled.form`\n padding: 32px 0 120px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n padding-top: 22px;\n }\n `}\n`;\n\nconst CoverWrap = styled.div`\n position: relative;\n border-radius: 10px 10px 0 0;\n`;\n\nconst Cover = styled(ResponsiveImage)`\n height: 290px;\n width: 100%;\n border-radius: 10px 10px 0 0;\n object-fit: cover;\n\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n height: 190px;\n }\n `}\n`;\n\nconst EditButton = styled(Text).attrs({ $type: \"labelBold\" })`\n display: inline-flex;\n align-items: center;\n background: ${({ theme }) => theme.colors.lightGray};\n border: 1px solid ${({ theme }) => theme.colors.white};\n box-shadow: 0px 2px 4px rgba(32, 37, 44, 0.1);\n border-radius: 5px;\n padding: 6px 14px;\n text-transform: uppercase;\n cursor: pointer;\n position: absolute;\n transition: 0.2s ease-out color;\n svg {\n margin-right: 8px;\n }\n &:hover {\n color: ${({ theme }) => theme.colors.red};\n }\n`;\n\nconst CoverEditButton = styled(EditButton)`\n right: 20px;\n bottom: 20px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n top: 20px;\n bottom: auto;\n }\n `}\n`;\n\nconst Content = styled.div`\n padding: 0 60px 68px;\n border-radius: 0 0 10px 10px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n padding: 0 15px 44px;\n }\n `}\n`;\n\nconst StyledContributorAvatar = styled(ContributorAvatar)`\n margin: 0 auto;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n width: 180px;\n height: 180px;\n }\n `}\n`;\n\nconst Avatar = styled.div`\n margin: -148px 0 28px;\n position: relative;\n`;\n\nconst AvatarEditButton = styled(EditButton)`\n left: 50%;\n transform: translateX(-50%);\n bottom: 0;\n`;\n\nconst Name = styled(Text).attrs({ as: \"h1\", $type: \"heading1\" })`\n text-align: center;\n margin: 0 0 22px;\n`;\n\nconst Label = styled(Text).attrs({ $type: \"labelBold\" })`\n padding: 0 15px;\n display: block;\n margin-bottom: 14px;\n`;\n\nconst ContentInputs = styled.div`\n display: grid;\n grid-template-columns: 100%;\n grid-gap: 26px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n grid-gap: 20px;\n }\n `}\n`;\n\nconst StyledTextarea = styled(Textarea)`\n min-height: 156px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n min-height: 228px;\n }\n `}\n`;\n\nconst StyledSmileIcon = styled(SmileIcon)`\n width: 16px;\n margin-right: 19px;\n fill: ${({ theme }) => theme.colors.red};\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin-right: 15px;\n }\n `}\n`;\n\nconst FormHeading = styled.div`\n display: flex;\n align-items: center;\n margin: 0 0 28px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin: 0 0 20px;\n justify-content: center;\n }\n `}\n`;\n\nconst FormCard = styled(Card)`\n min-height: 100%;\n padding: 50px 60px;\n ${({ theme }) => css`\n ${theme.breakpoints.mediumDesktop} {\n padding: 50px 30px;\n }\n ${theme.breakpoints.tablet} {\n margin-top: 30px;\n padding: 50px 60px;\n min-height: auto;\n }\n `}\n`;\n\nconst BasicFields = styled.div`\n display: grid;\n grid-template-columns: 100%;\n grid-gap: 10px;\n margin: 0 0 27px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n grid-gap: 15px;\n margin: 0 0 20px;\n }\n `}\n`;\n\nconst SocialFieldsHeading = styled(Text).attrs({\n $type: \"labelBold\",\n as: \"h2\",\n})`\n padding-left: 60px;\n margin: 0 0 14px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n padding-left: 15px;\n margin-top: 20px;\n }\n `}\n`;\n\nconst SocialFields = styled.div`\n display: grid;\n grid-template-columns: 34px minmax(0, 1fr);\n grid-gap: 10px;\n align-items: center;\n ${Input} {\n height: 40px;\n }\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n grid-template-columns: 35px minmax(0, 1fr);\n grid-column-gap: 0;\n grid-row-gap: 15px;\n }\n `}\n`;\n\nconst FormCardFooter = styled.div`\n text-align: right;\n margin-top: 44px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n text-align: center;\n margin-top: 25px;\n }\n `}\n`;\n\nconst SubmitButton = styled(Button)`\n width: 150px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n height: 32px;\n }\n `}\n`;\n\nconst ProfileCard = styled(Card)`\n min-height: 100%;\n ${({ theme }) => css`\n ${theme.breakpoints.tablet} {\n min-height: auto;\n }\n `}\n`;\n\nconst mediaTypes: Array = [\n \"facebook\",\n \"twitter\",\n \"instagram\",\n \"linkedin\",\n \"youtube\",\n];\n\ntype Previewable = { url: string; srcSet?: string };\n\nexport type FormData = {\n first_name: string;\n last_name: string;\n paypal_email: string;\n location: string;\n avatar?: FileList;\n cover?: FileList;\n topics: string;\n description: string;\n socials: { [key in SocialMediaResource[\"type\"]]: string };\n};\n\nexport const Profile: FC = () => {\n const isSmallDesktop = useMediaQuery({\n maxWidth: Breakpoints.max.smallDesktop,\n });\n\n const isTabletOrMobile = useMediaQuery({\n maxWidth: Breakpoints.max.tablet,\n });\n\n const dispatch = useDispatch();\n\n const user = useSelector(\n (rootState: RootState) => rootState.authentication.user!\n );\n\n const defaultValues = useMemo(\n () => ({\n first_name: user.first_name,\n last_name: user.last_name,\n location: user.contributor!.location || \"\",\n topics: user.contributor!.topics || \"\",\n description: user.contributor!.description || \"\",\n paypal_email: user.contributor!.paypal_email || \"\",\n socials: {\n facebook:\n user.contributor!.social_medias?.find(\n (media) => media.type === \"facebook\"\n )?.url || \"\",\n twitter:\n user.contributor!.social_medias?.find(\n (media) => media.type === \"twitter\"\n )?.url || \"\",\n instagram:\n user.contributor!.social_medias?.find(\n (media) => media.type === \"instagram\"\n )?.url || \"\",\n linkedin:\n user.contributor!.social_medias?.find(\n (media) => media.type === \"linkedin\"\n )?.url || \"\",\n youtube:\n user.contributor!.social_medias?.find(\n (media) => media.type === \"youtube\"\n )?.url || \"\",\n },\n }),\n [user]\n );\n\n const {\n register,\n reset,\n handleSubmit,\n control,\n setError,\n formState: { errors, isSubmitSuccessful, isSubmitting },\n } = useForm({\n defaultValues,\n });\n\n useEffect(() => {\n if (isSubmitSuccessful) {\n reset(defaultValues);\n }\n }, [defaultValues, reset, isSubmitSuccessful]);\n\n const cover = useWatch({ control, name: \"cover\" });\n\n const avatar = useWatch({ control, name: \"avatar\" });\n\n const onSubmit = handleSubmit(async (data) => {\n try {\n await dispatch.authentication.updateProfile(data);\n fbq(\n \"track\",\n \"Lead\",\n {\n content_name: \"Filled up profile form\",\n },\n { eventID: `FILLED_UP_PROFILE_${user.id}` }\n );\n return successNotification(\"Profile successfully updated!\");\n } catch (err) {\n handleFormErrors(err, setError);\n }\n });\n\n const getCoverPreviewObj = (): Previewable => {\n if (cover?.[0]) {\n return {\n url: URL.createObjectURL(cover[0]),\n };\n }\n return user.contributor!.cover || { url: CoverPlaceholderSrc };\n };\n\n const getAvatarPreviewObj = (): Previewable | undefined => {\n if (avatar?.[0]) {\n return {\n url: URL.createObjectURL(avatar[0]),\n };\n }\n return user.contributor!.avatar;\n };\n\n const renderSocialFields = () => {\n return mediaTypes.map((type: SocialMediaResource[\"type\"]) => (\n \n \n \n \n ));\n };\n\n return (\n <>\n \n \n \n \n \n \n \n Edit Profile\n \n \n \n \n \n \n \n \n Edit\n \n \n \n \n \n \n \n \n Edit\n \n \n \n {user.name}\n \n \n \n \n \n \n \n \n \n \n
\n \n \n
\n
\n \n \n {!!errors.description && (\n {errors.description}\n )}\n
\n
\n \n \n My Social Media Links:\n \n {renderSocialFields()}\n \n \n Submit\n \n \n \n
\n
\n
\n \n \n \n \n \n \n Edit Profile\n \n \n \n \n \n \n \n \n \n \n My Social Media Links:\n \n {renderSocialFields()}\n \n \n Submit\n \n \n \n \n \n
\n
\n \n );\n};\n","import { FC, useCallback, useEffect, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { useSelector } from \"react-redux\";\nimport { Helmet } from \"react-helmet-async\";\nimport { Link } from \"react-router-dom\";\n\nimport { ReactComponent as BookmarkIcon } from \"@/assets/icons/bookmark.svg\";\nimport { Text } from \"@/components/common/Text\";\nimport { VideoResource, PaginationLinks } from \"@/types/api\";\nimport { RootState } from \"@/utilities/store\";\nimport { VideoCard } from \"@/pages/Home/components/VideoCard\";\nimport { PaginatedResponse } from \"@/types\";\nimport { api } from \"@/utilities/api\";\nimport { errorNotification } from \"@/utilities/alerts\";\nimport useInfiniteLoader from \"@/hooks/useInfiniteLoader\";\nimport { Loader } from \"@/components/common/Loader\";\nimport { Button } from \"@/components/common\";\n\nconst Wrap = styled.form`\n padding: 0 0 120px;\n`;\n\nconst Heading = styled.h1`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 20px 0 25px;\n`;\n\nconst StyledBookmarkIcon = styled(BookmarkIcon)`\n stroke: ${({ theme }) => theme.colors.red};\n fill: ${({ theme }) => theme.colors.red};\n margin-right: 19px;\n`;\n\nconst Grid = styled.div`\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-gap: 30px;\n ${({ theme }) => css`\n ${theme.breakpoints.mediumDesktop} {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n ${theme.breakpoints.tablet} {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n ${theme.breakpoints.phone} {\n grid-template-columns: 100%;\n grid-gap: 15px;\n }\n `}\n`;\n\nconst Empty = styled.div`\n display: grid;\n grid-template-columns: 100%;\n grid-gap: 20px;\n text-align: center;\n margin-top: 10px;\n`;\n\ninterface State {\n videos: VideoResource[];\n links?: PaginationLinks;\n isLoading: boolean;\n}\n\nexport const Boomarks: FC = () => {\n const bookmarkedVideos = useSelector(\n (state: RootState) => state.authentication.user?.bookmarked_videos_ids || []\n );\n\n const [state, setState] = useState({\n videos: [],\n isLoading: false,\n });\n\n const fetchPaginatedVideos = useCallback(\n (link = \"/v1/videos\") => {\n return api.get>(link, {\n params: {\n include: [\n \"media\",\n \"contributor\",\n \"contributor.user\",\n \"meta\",\n \"reactions_count\",\n \"views_count\",\n ].join(\",\"),\n \"filter[id]\": bookmarkedVideos.join(\",\"),\n sort: \"-bookmark_creation_date\",\n per_page: 12,\n },\n });\n },\n [bookmarkedVideos]\n );\n\n useEffect(() => {\n if (bookmarkedVideos.length === 0) return;\n (async () => {\n try {\n setState((prevState) => ({ ...prevState, isLoading: true }));\n const { data, links } = await fetchPaginatedVideos();\n setState({\n videos: data,\n isLoading: false,\n links,\n });\n } catch (err) {\n errorNotification();\n }\n })();\n }, [fetchPaginatedVideos, bookmarkedVideos]);\n\n const loader = useCallback(async () => {\n if (!state.links?.next) return;\n const { data: videos, links } = await fetchPaginatedVideos(\n state.links.next\n );\n setState((prevState) => ({\n videos: [...prevState.videos, ...videos],\n isLoading: false,\n links,\n }));\n }, [state.links?.next, fetchPaginatedVideos]);\n\n const { isLoading: isInfiniteLoading, ref } = useInfiniteLoader(loader);\n\n return (\n <>\n \n Bookmarks | MyPoint.tv\n \n \n \n \n \n My Bookmarks\n \n \n {bookmarkedVideos.length === 0 ? (\n \n Your bookmarks list is empty.\n
\n \n
\n
\n ) : (\n <>\n {state.isLoading ? (\n \n ) : (\n <>\n \n {state.videos.map((video) => (\n \n ))}\n \n {!!state.links?.next && (\n
{isInfiniteLoading && }
\n )}\n \n )}\n \n )}\n
\n \n );\n};\n","import { FC } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { useForm } from \"react-hook-form\";\nimport { Helmet } from \"react-helmet-async\";\n\nimport { Button, Text } from \"@/components/common\";\nimport { FormGroup } from \"@/components/common/FormGroup\";\nimport { handleFormErrors } from \"@/utilities/helpers\";\nimport { api } from \"@/utilities/api\";\nimport { Link } from \"react-router-dom\";\n\nconst Footer = styled.div`\n text-align: center;\n margin: 50px 0 0;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin: 39px 0 0;\n }\n `}\n`;\n\nconst Form = styled.form`\n display: flex;\n align-items: center;\n flex-direction: column;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n padding-top: 68px;\n }\n `}\n`;\n\nconst Heading = styled(Text)`\n margin: 0 0 36px;\n text-transform: uppercase;\n`;\n\nconst Description = styled(Text)`\n list-style-type: decimal;\n list-style-position: inside;\n text-align: left;\n > li {\n margin: 0 0 10px;\n &:last-child {\n margin: 0;\n }\n }\n`;\n\nconst StyledFormGroup = styled(FormGroup)`\n width: 330px;\n margin-top: 45px;\n`;\n\ntype FormData = {\n email: string;\n};\n\nexport const ForgotPassword: FC = () => {\n const {\n register,\n handleSubmit,\n setError,\n formState: { errors, isSubmitting, isSubmitSuccessful },\n } = useForm({\n defaultValues: {\n email: \"\",\n },\n });\n\n const onSubmit = handleSubmit(async (data) => {\n try {\n const response = await api.post<\n FormData,\n { success: boolean; message: string }\n >(\"/v1/auth/forgot-password\", data);\n if (!response.success) {\n return setError(\"email\", response);\n }\n } catch (error) {\n handleFormErrors(error, setError);\n }\n });\n\n return (\n <>\n \n Forgot Password | MyPoint.tv\n \n \n
\n \n Forgot your password?\n \n {isSubmitSuccessful ? (\n \n
  • \n You will receive an email with a link to reset your password.\n
  • \n
  • \n Open the password reset link that we have sent to you via email.\n
  • \n
  • Create a new password.
  • \n
  • Sign in again with your new password.
  • \n
    \n ) : (\n <>\n \n Enter your email address to reset your password.\n \n \n \n )}\n
    \n {isSubmitSuccessful ? (\n \n ) : (\n \n Submit\n \n )}\n
    \n \n \n );\n};\n","import { FC, FormEvent, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { useForm } from \"react-hook-form\";\nimport { Helmet } from \"react-helmet-async\";\nimport { Link, useSearchParams } from \"react-router-dom\";\n\nimport { Button, Text, ValidationError } from \"@/components/common\";\nimport { FormGroup } from \"@/components/common/FormGroup\";\nimport { handleFormErrors } from \"@/utilities/helpers\";\nimport { api } from \"@/utilities/api\";\nimport { errorNotification } from \"../../../utilities/alerts\";\n\nconst Footer = styled.div`\n text-align: center;\n margin: 50px 0 0;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin: 39px 0 0;\n }\n `}\n`;\n\nconst Form = styled.form`\n display: flex;\n align-items: center;\n flex-direction: column;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n padding-top: 68px;\n }\n `}\n`;\n\nconst Heading = styled(Text)`\n margin: 0 0 36px;\n text-transform: uppercase;\n`;\n\nconst Description = styled(Text)`\n text-align: center;\n`;\n\nconst Grid = styled.div`\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n grid-gap: 30px;\n width: 690px;\n max-width: 100%;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n grid-gap: 20px;\n grid-template-columns: 100%;\n }\n `}\n`;\n\nconst StyledValidationError = styled(ValidationError)`\n margin-top: 20px;\n`;\n\ntype FormData = {\n email: string;\n token: string;\n password: string;\n password_confirmation: string;\n};\n\nexport const ResetPassword: FC = () => {\n const [urlSearchParams] = useSearchParams();\n\n const token = urlSearchParams.get(\"token\") || \"\";\n const email = urlSearchParams.get(\"email\") || \"\";\n\n const [successMessage, setSuccessMessage] = useState(\"\");\n\n const {\n register,\n handleSubmit,\n setError,\n clearErrors,\n formState: { errors, isSubmitting },\n } = useForm({\n defaultValues: {\n token,\n email,\n password: \"\",\n password_confirmation: \"\",\n },\n });\n\n const onSubmit = (e: FormEvent) => {\n clearErrors();\n handleSubmit(async (data) => {\n try {\n const response = await api.post<\n FormData,\n { success: boolean; message: string }\n >(\"/v1/auth/reset-password\", data);\n if (!response.success) {\n return errorNotification(undefined, response.message);\n }\n setSuccessMessage(response.message);\n } catch (error) {\n handleFormErrors(error, setError);\n }\n })(e);\n };\n\n return (\n <>\n \n Reset Password | MyPoint.tv\n \n \n
    \n \n Reset Password\n \n {!!successMessage ? (\n {successMessage}\n ) : (\n \n \n \n \n )}\n
    \n {!!successMessage ? (\n \n ) : (\n <>\n \n Reset\n \n {!!(errors.token || errors.email) && (\n \n This password reset link is expired!\n \n )}\n \n )}\n
    \n
    \n \n );\n};\n","import { FC } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { useForm } from \"react-hook-form\";\nimport { Helmet } from \"react-helmet-async\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport { Button, Checkbox, Text } from \"@/components/common\";\nimport { FormGroup } from \"@/components/common/FormGroup\";\nimport { handleFormErrors } from \"@/utilities/helpers\";\nimport { CompleteSignUpRequest } from \"@/types/api\";\nimport { Dispatch, RootState } from \"@/utilities/store\";\nimport { successNotification } from \"@/utilities/alerts\";\nimport { fbq } from \"@/utilities/tracking\";\n\nconst Footer = styled.div`\n text-align: center;\n margin: 50px 0 0;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin: 39px 0 0;\n }\n `}\n`;\n\nconst Form = styled.form`\n display: flex;\n align-items: center;\n flex-direction: column;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n padding-top: 68px;\n }\n `}\n`;\n\nconst Heading = styled(Text)`\n margin: 0 0 36px;\n text-transform: uppercase;\n`;\n\nconst Grid = styled.div`\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n grid-column-gap: 30px;\n grid-row-gap: 20px;\n width: 690px;\n max-width: 100%;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n grid-template-columns: 100%;\n }\n `}\n`;\n\nconst Notices = styled.div`\n padding-left: 54px;\n margin: 41px 0 0;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n padding: 0;\n }\n `}\n`;\n\nconst NoticesText = styled(Text)`\n letter-spacing: 0.33px;\n margin-left: 30px;\n margin-top: 17px;\n a {\n transition: 0.2s ease-out font-weight;\n &:hover {\n font-weight: 700;\n }\n }\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n margin-top: 22px;\n margin-left: 25px;\n }\n `}\n`;\n\nexport const CompleteSignUp: FC = () => {\n const user = useSelector((state: RootState) => state.authentication.user);\n\n const dispatch = useDispatch();\n\n const navigate = useNavigate();\n\n const {\n register,\n handleSubmit,\n setError,\n formState: { errors, isSubmitting },\n } = useForm({\n defaultValues: {\n first_name: user!.first_name || \"\",\n last_name: user!.last_name || \"\",\n location: user!.contributor!.location || \"\",\n subscribe: false,\n },\n });\n\n const onSubmit = handleSubmit(async (data) => {\n try {\n await dispatch.authentication.completeSignup(data);\n fbq(\n \"track\",\n \"Lead\",\n {\n content_name: \"Sign up\",\n },\n { eventID: `SIGN_UP_${user!.id}` }\n );\n navigate(\"/\", { replace: true });\n successNotification(\n \"Welcome!\",\n \"Your profile has been created successfully\"\n );\n } catch (error) {\n handleFormErrors(error, setError);\n }\n });\n\n return (\n <>\n \n Complete Sign Up | MyPoint.tv\n \n
    \n \n Complete Your Sign Up\n \n \n \n \n \n \n \n \n Subscribe to our newsletter for news updates and storytelling\n training material.\n \n \n By creating your account, you agree to our{\" \"}\n Terms {\"&\"} Conditions and{\" \"}\n Privacy Policy.\n \n \n
    \n \n
    \n
    \n \n );\n};\n","import { FC } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Navigate, useLocation } from \"react-router-dom\";\n\nimport { RootState } from \"@/utilities/store\";\n\nexport const GuestRoute: FC = ({ children }) => {\n const location = useLocation();\n\n const { from } = location.state || { from: { pathname: \"/\" } };\n\n const isGuest = useSelector(\n (state: RootState) => !!!state.authentication.user\n );\n\n if (!isGuest) {\n return ;\n }\n\n return <>{children};\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.22738 5.24784L6.5 5.60844V4.28571V1.36364C6.5 1.17061 6.66005 1 6.875 1H20.625C20.8399 1 21 1.17061 21 1.36364V13.6364C21 13.8294 20.8399 14 20.625 14H6.875C6.66005 14 6.5 13.8294 6.5 13.6364V10.7143V9.39156L5.22738 9.75216L1.48012 10.814C1.22927 10.885 1 10.6962 1 10.4649V4.53509C1 4.30379 1.22927 4.11496 1.48012 4.18604L1.75274 3.22392L1.48012 4.18604L5.22738 5.24784Z\",\n fill: \"currentColor\",\n stroke: \"currentColor\",\n strokeWidth: 2\n});\n\nfunction SvgVideo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 15,\n viewBox: \"0 0 22 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgVideo);\nexport default __webpack_public_path__ + \"static/media/video.8127ad92.svg\";\nexport { ForwardRef as ReactComponent };","import { FC, memo, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { Link } from \"react-router-dom\";\n\nimport { Button, Card, Text } from \"@/components/common\";\nimport { ContributorResource } from \"@/types/api\";\nimport {\n Checkmark as AvatarCheckmark,\n ContributorAvatar,\n} from \"@/pages/Home/components/ContributorAvatar\";\nimport { numberWithCommas } from \"@/utilities/helpers\";\nimport useFollow from \"@/hooks/useFollow\";\nimport { ResponsiveImage } from \"@/components/ResponsiveImage\";\nimport CoverPlaceholderSrc from \"@/assets/img/cover-placeholder-small.jpg\";\n\nconst StyledCard = styled(Card)`\n display: flex;\n flex-direction: column;\n text-align: center;\n`;\n\nconst Avatar = styled(ContributorAvatar)`\n width: 94px;\n height: 94px;\n margin: -84px auto 6px;\n ${AvatarCheckmark} {\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n > svg {\n position: static;\n height: 9px;\n width: auto;\n }\n }\n ${Text} {\n font-size: 18px;\n }\n`;\n\nconst Name = styled(Text)`\n text-transform: capitalize;\n margin-bottom: 4px;\n`;\n\nconst Followers = styled(Text)`\n margin: 0 0 13px;\n`;\n\nconst Description = styled.p`\n margin: 0 0 19px;\n`;\n\nconst Buttons = styled.div`\n margin-top: auto;\n display: flex;\n justify-content: center;\n`;\n\nconst FollowButton = styled(Button)<{ $followed: boolean }>`\n padding: 0 22px;\n margin-right: 20px;\n ${({ $followed, theme }) =>\n $followed &&\n css`\n background: ${theme.colors.white};\n color: ${theme.colors.gray};\n box-shadow: 0px 0px 15px rgba(32, 37, 44, 0.1);\n &:hover {\n color: ${theme.colors.gray};\n opacity: 0.75;\n }\n `}\n`;\n\nconst ProfileLink = styled(Button)`\n padding: 0 22px;\n ${({ theme }) => css`\n background: ${theme.colors.lightGray};\n color: ${theme.colors.black};\n &:hover {\n background: ${theme.colors.gray};\n color: ${theme.colors.white};\n }\n `}\n`;\n\nconst Cover = styled(ResponsiveImage)`\n width: 100%;\n height: 106px;\n object-fit: cover;\n border-radius: 10px 10px 0 0;\n`;\n\nconst Content = styled.div`\n padding: 0 30px 24px;\n display: flex;\n flex: 1;\n flex-direction: column;\n`;\n\ninterface Props {\n contributor: ContributorResource;\n}\n\nexport const ContributorCard: FC = memo(({ contributor }) => {\n const [followersCount, setFollowersCount] = useState(\n contributor.followers_count!\n );\n\n const { isFollowed, toggleFollow, isFollowLoading } = useFollow(\n contributor.id,\n (increment) => {\n setFollowersCount((prevCount) =>\n increment ? prevCount + 1 : prevCount - 1\n );\n }\n );\n\n return (\n \n \n \n \n {contributor.name}\n \n {numberWithCommas(followersCount)} followers\n \n {!!contributor.topics && (\n \n \n Reporting on:{\" \"}\n \n \n {contributor.topics}\n \n \n )}\n \n \n {isFollowed ? \"Followed\" : \"Follow\"}\n \n \n See Profile\n \n \n \n \n );\n});\n","export default \"data:image/jpeg;base64,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\"","import { FC } from \"react\";\nimport styled, { css } from \"styled-components\";\n\nimport { ContributorResource } from \"@/types/api\";\nimport { Text } from \"@/components/common\";\nimport { ContributorCard } from \"@/pages/Contributors/components/ContributorCard\";\n\nconst Wrap = styled.section`\n margin: 0 0 36px;\n`;\n\nconst Headline = styled(Text)`\n margin: 0 0 36px;\n display: flex;\n align-items: baseline;\n`;\n\nconst Border = styled.div`\n flex: 1;\n margin-left: 30px;\n height: 2px;\n background: ${({ theme }) => theme.colors.white};\n`;\n\nconst Grid = styled.div`\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-column-gap: 30px;\n grid-row-gap: 30px;\n ${({ theme }) => css`\n ${theme.breakpoints.mediumDesktop} {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n ${theme.breakpoints.tablet} {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n ${theme.breakpoints.phone} {\n grid-template-columns: 100%;\n }\n `}\n`;\n\ninterface Props {\n letter: string;\n contributors: ContributorResource[];\n}\n\nexport const Section: FC = ({ letter, contributors }) => {\n return (\n \n \n {letter}\n \n \n \n {contributors.map((contributor) => (\n \n ))}\n \n \n );\n};\n","import { FC, useCallback, useEffect, useMemo, useState } from \"react\";\nimport { Helmet } from \"react-helmet-async\";\nimport styled from \"styled-components\";\n\nimport { Text } from \"@/components/common\";\nimport { ReactComponent as VideoIcon } from \"@/assets/icons/video.svg\";\nimport { ContributorResource, PaginationLinks } from \"@/types/api\";\nimport { PaginatedResponse } from \"@/types\";\nimport { api } from \"@/utilities/api\";\nimport { errorNotification } from \"@/utilities/alerts\";\nimport useInfiniteLoader from \"@/hooks/useInfiniteLoader\";\nimport { Loader } from \"@/components/common/Loader\";\nimport { Section } from \"@/pages/Contributors/components/Section\";\n\nconst Wrap = styled.form`\n padding: 0 0 120px;\n`;\n\nconst Heading = styled.h1`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 20px 0 25px;\n`;\n\nconst StyledVideoIcon = styled(VideoIcon)`\n color: ${({ theme }) => theme.colors.red};\n margin-right: 19px;\n`;\n\ninterface State {\n contributors: ContributorResource[];\n links?: PaginationLinks;\n isLoading: boolean;\n}\n\nexport const Contributors: FC = () => {\n const [state, setState] = useState({\n contributors: [],\n isLoading: false,\n });\n\n const fetchPaginatedContributors = useCallback(\n (link = \"/v1/contributors\") => {\n return api.get>(link, {\n params: {\n include: [\"media\", \"user\", \"followers_count\"].join(\",\"),\n sort: \"first_name,-followers_count\",\n per_page: 12,\n },\n });\n },\n []\n );\n\n useEffect(() => {\n (async () => {\n try {\n setState((prevState) => ({ ...prevState, isLoading: true }));\n const { data, links } = await fetchPaginatedContributors();\n setState({\n contributors: data,\n isLoading: false,\n links,\n });\n } catch (err) {\n errorNotification();\n }\n })();\n }, [fetchPaginatedContributors]);\n\n const loader = useCallback(async () => {\n if (!state.links?.next) return;\n const { data: contributors, links } = await fetchPaginatedContributors(\n state.links.next\n );\n setState((prevState) => ({\n contributors: [...prevState.contributors, ...contributors],\n isLoading: false,\n links,\n }));\n }, [state.links?.next, fetchPaginatedContributors]);\n\n const { isLoading: isInfiniteLoading, ref } = useInfiniteLoader(loader);\n\n const sections = useMemo(() => {\n return state.contributors.reduce<{ [k: string]: ContributorResource[] }>(\n (acc, curr) => {\n const firstLetter = (curr.name?.[0] || \"Z\").toUpperCase();\n if (acc[firstLetter]) {\n acc[firstLetter].push(curr);\n } else {\n acc[firstLetter] = [curr];\n }\n return acc;\n },\n {}\n );\n }, [state.contributors]);\n\n return (\n <>\n \n Contributors | MyPoint.tv\n \n \n \n \n \n Contributors\n \n \n {state.isLoading ? (\n \n ) : (\n <>\n {Object.keys(sections).map((letter) => (\n \n ))}\n {!!state.links?.next && (\n
    {isInfiniteLoading && }
    \n )}\n \n )}\n
    \n \n );\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M2 6.5C2 4.019 4.018 2 6.5 2 8.981 2 11 4.019 11 6.5 11 8.982 8.981 11 6.5 11A4.504 4.504 0 0 1 2 6.5zm13.174 7.261l-3.432-3.433A6.459 6.459 0 0 0 13 6.5C13 2.916 10.084 0 6.5 0A6.507 6.507 0 0 0 0 6.5C0 10.084 2.916 13 6.5 13a6.463 6.463 0 0 0 3.828-1.258l3.432 3.433a.999.999 0 1 0 1.414-1.414z\"\n})));\n\nfunction SvgSearch(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSearch);\nexport default __webpack_public_path__ + \"static/media/search.2d518a79.svg\";\nexport { ForwardRef as ReactComponent };","import { FC, useCallback, useEffect, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { Helmet } from \"react-helmet-async\";\nimport { useSearchParams } from \"react-router-dom\";\n\nimport { Text } from \"@/components/common/Text\";\nimport { VideoResource, PaginationLinks } from \"@/types/api\";\nimport { VideoCard } from \"@/pages/Home/components/VideoCard\";\nimport { PaginatedResponse } from \"@/types\";\nimport { api } from \"@/utilities/api\";\nimport { captureException } from \"@sentry/browser\";\nimport { errorNotification } from \"@/utilities/alerts\";\nimport useInfiniteLoader from \"@/hooks/useInfiniteLoader\";\nimport { Loader } from \"@/components/common/Loader\";\nimport { ReactComponent as SearchIcon } from \"@/assets/icons/search.svg\";\nimport { pxToRem } from \"@/utilities/helpers\";\n\nconst Wrap = styled.form`\n padding: 0 0 120px;\n min-height: calc(100vh - 70px);\n display: flex;\n flex-direction: column;\n`;\n\nconst Heading = styled.h1`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 20px 0 25px;\n`;\n\nconst Grid = styled.div`\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n grid-gap: 30px;\n ${({ theme }) => css`\n ${theme.breakpoints.mediumDesktop} {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n ${theme.breakpoints.tablet} {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n ${theme.breakpoints.phone} {\n grid-template-columns: 100%;\n grid-gap: 15px;\n }\n `}\n`;\n\nconst Empty = styled.div`\n border-top: 2px solid ${({ theme }) => theme.colors.white};\n display: flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n`;\n\nconst StyledSearchIcon = styled(SearchIcon)`\n color: ${({ theme }) => theme.colors.red};\n margin-right: 18px;\n`;\n\nconst NoResultsHeadline = styled(Text)`\n font-size: ${pxToRem(27)}rem;\n line-height: 1;\n`;\n\ninterface State {\n videos: VideoResource[];\n links?: PaginationLinks;\n isLoading: boolean;\n}\n\nexport const Search: FC = () => {\n const [urlSearchParams] = useSearchParams();\n\n const s = urlSearchParams.get(\"s\") || \"\";\n\n const [state, setState] = useState({\n videos: [],\n isLoading: true,\n });\n\n const fetchPaginatedVideos = useCallback(\n (link = \"/v1/search\") => {\n return api.get>(link, {\n params: {\n s,\n per_page: 12,\n },\n });\n },\n [s]\n );\n\n useEffect(() => {\n (async () => {\n try {\n setState((prevState) => ({ ...prevState, isLoading: true }));\n const { data, links } = await fetchPaginatedVideos();\n setState({\n videos: data,\n isLoading: false,\n links,\n });\n } catch (err) {\n captureException(err);\n errorNotification();\n }\n })();\n }, [fetchPaginatedVideos]);\n\n const loader = useCallback(async () => {\n if (!state.links?.next) return;\n const { data: videos, links } = await fetchPaginatedVideos(\n state.links.next\n );\n setState((prevState) => ({\n videos: [...prevState.videos, ...videos],\n isLoading: false,\n links,\n }));\n }, [state.links?.next, fetchPaginatedVideos]);\n\n const { isLoading: isInfiniteLoading, ref } = useInfiniteLoader(loader);\n\n return (\n <>\n \n Search | MyPoint.tv\n \n \n \n {!!state.videos.length && }\n \n Your Search Results\n \n \n {!!s && (\n <>\n {state.isLoading ? (\n \n ) : !!state.videos.length ? (\n <>\n \n {state.videos.map((video) => (\n \n ))}\n \n {!!state.links?.next && (\n
    {isInfiniteLoading && }
    \n )}\n \n ) : (\n \n \n No results found.\n \n \n )}\n \n )}\n
    \n \n );\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M57.892 23.575c-.539 0-.906-.044-1.578-.248a.395.395 0 0 1-.288-.368v-2.215s.7.119.987.119c1.912 0 2.475-1.643 1.972-2.964a9984.83 9984.83 0 0 1-3.857-10.17h2.686c.358 0 .507.11.627.448l2.412 6.8h.043c.244-.629 1.734-4.836 2.433-6.8.12-.338.269-.448.627-.448h2.691l-4.38 11.558c-.602 1.584-1.652 4.288-4.375 4.288zm78.627-4.783c-.714.217-1.08.249-1.684.249-3.73 0-3.519-3.335-3.519-4.504v-4.18h-1.899V7.73h.985c.783 0 1.32-.552 1.32-1.321v-1.98h2.628v3.301h2.229v2.628h-2.229s-.016 3.612 0 4.724c.012.796.725 1.277 1.442 1.248.255-.01 1.016-.12 1.016-.12v2.215c0 .176-.129.32-.289.368zm-14.953 0c-.714.217-1.08.249-1.684.249-3.73 0-3.519-3.335-3.519-4.504v-4.18h-1.899V7.73h.985c.783 0 1.32-.552 1.32-1.321v-1.98h2.628v3.301h2.229v2.628h-2.229s-.016 3.612 0 4.724c.012.796.725 1.277 1.442 1.248.255-.01 1.016-.12 1.016-.12v2.215c0 .176-.129.32-.289.368zm-41.26-5.545c0 3.2-2.435 5.793-5.405 5.793-1.236 0-2.361-.587-3.202-1.547V23.3h-3.034V7.73h2.99l.068 1.135h.096c.825-.879 1.901-1.41 3.082-1.41 2.96 0 5.404 2.591 5.404 5.792zm-3.196 0c0-1.635-1.225-2.961-2.729-2.961s-2.729 1.326-2.729 2.961c0 1.635 1.225 2.961 2.73 2.961 1.503 0 2.728-1.326 2.728-2.96zm10.755-2.961c-1.507 0-2.729 1.326-2.729 2.961 0 1.636 1.222 2.962 2.73 2.962 1.506 0 2.728-1.326 2.728-2.962 0-1.635-1.222-2.961-2.729-2.961zm5.887 2.961c0 3.2-2.63 5.793-5.887 5.793-3.247 0-5.887-2.592-5.887-5.793 0-3.2 2.63-5.793 5.887-5.793 3.247 0 5.887 2.592 5.887 5.793zM138.48 7.73h2.686c.359 0 .507.11.628.448l2.412 6.8h.043c.243-.629 1.733-4.836 2.432-6.8.121-.338.27-.448.628-.448H150s-3.032 8.024-4.056 10.694c-.075.197-.182.342-.604.342h-2.212c-.422 0-.528-.145-.604-.342a3510.01 3510.01 0 0 1-4.044-10.694zm-25.887 4.033v7.003h-3.034v-5.597c0-2.077-.83-2.882-2.202-2.882-1.156 0-2.252.841-2.269 2.882l-.002 5.597h-3.032V7.73h2.99l.072 1.202h.037c1.15-1.151 2.324-1.477 3.17-1.477 3.139 0 4.27 2.425 4.27 4.308zm-75.626 7.003V7.73h2.99l.07 1.202h.043c.456-.555 1.506-1.464 2.919-1.477 1.862-.016 2.813 1.252 3.173 1.901 1.308-1.556 2.69-1.9 3.646-1.9 3.14 0 3.987 2.424 3.987 4.307v7.003H50.76v-5.597c0-2.077-.728-2.882-1.932-2.882-1.015 0-1.918.841-1.933 2.882v5.597h-3.033v-5.597c0-2.077-.729-2.882-1.933-2.882-1.014 0-1.925.841-1.932 2.882-.005 1.399 0 5.597 0 5.597zM97.52 2.645a1.783 1.783 0 1 1 0 3.565 1.783 1.783 0 0 1 0-3.566zm-1.517 5.084h3.034v11.036h-3.034z\"\n})), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ff1919\",\n d: \"M19.844 8.897c0-.646-.522-1.168-1.168-1.168a1.167 1.167 0 1 0 0 2.336c.646 0 1.168-.521 1.168-1.168zm-5.601 10.035c0 1.034.838 1.873 1.872 1.873l6.056-.008c.803 0 1.257.97.676 1.579a13.217 13.217 0 0 1-9.6 4.119C5.931 26.495 0 20.564 0 13.247 0 5.931 5.931 0 13.247 0c7.317 0 13.248 5.931 13.248 13.247a1.872 1.872 0 0 1-1.873 1.873h-8.507a1.872 1.872 0 0 0-1.872 1.872zm112.209-3.457a1.783 1.783 0 1 1 0 3.566 1.783 1.783 0 0 1 0-3.566z\"\n}))));\n\nfunction SvgLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 150,\n height: 27,\n viewBox: \"0 0 150 27\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogo);\nexport default __webpack_public_path__ + \"static/media/logo.069d857b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 2C4 3.10457 3.10457 4 2 4C0.89543 4 0 3.10457 0 2C0 0.89543 0.89543 0 2 0C3.10457 0 4 0.89543 4 2Z\",\n fill: \"white\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 9C4 10.1046 3.10457 11 2 11C0.89543 11 0 10.1046 0 9C0 7.89543 0.89543 7 2 7C3.10457 7 4 7.89543 4 9Z\",\n fill: \"white\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 16C4 17.1046 3.10457 18 2 18C0.89543 18 0 17.1046 0 16C0 14.8954 0.89543 14 2 14C3.10457 14 4 14.8954 4 16Z\",\n fill: \"white\"\n});\n\nfunction SvgMenuDots(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 4,\n height: 18,\n viewBox: \"0 0 4 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMenuDots);\nexport default __webpack_public_path__ + \"static/media/menu-dots.45c320a6.svg\";\nexport { ForwardRef as ReactComponent };","import { useState, useEffect } from \"react\";\n\nconst useDebounce = (value: T, timeout: number) => {\n const [state, setState] = useState(value);\n\n useEffect(() => {\n const handler = setTimeout(() => setState(value), timeout);\n\n return () => clearTimeout(handler);\n }, [value, timeout]);\n\n return state;\n};\n\nexport default useDebounce;\n","import { ChangeEvent, FC, useEffect, useRef, useState } from \"react\";\nimport { useMatch, useSearchParams, useNavigate } from \"react-router-dom\";\nimport styled, { css } from \"styled-components\";\nimport useDebounce from \"@/hooks/useDebounce\";\n\nconst Input = styled.input`\n border-radius: 16px;\n width: 100%;\n position: absolute;\n height: 32px;\n border: 0;\n padding: 0 30px 0 23px;\n ${({ theme }) => css`\n background: ${theme.colors.white};\n font-size: ${theme.typography.textPoppins.fontSize};\n font-family: ${theme.typography.textPoppins.fontFamily};\n outline: none !important;\n &::placeholder {\n color: ${theme.colors.black};\n }\n `}\n`;\n\ninterface Props {\n className?: string;\n onBlur: () => void;\n}\n\nexport const Searchbar: FC = ({ className, onBlur }) => {\n const mountRef = useRef(false);\n const inputRef = useRef(null);\n\n const [searchParams, setSearchParams] = useSearchParams();\n\n const [value, setValue] = useState(\"\");\n\n const debouncedValue = useDebounce(value, 300);\n\n const match = useMatch({ path: \"/search\", end: true });\n\n const navigate = useNavigate();\n\n useEffect(() => {\n if (!mountRef.current) {\n setValue(searchParams.get(\"s\") || \"\");\n inputRef.current?.focus();\n mountRef.current = true;\n return;\n }\n const newSearchParams = new URLSearchParams(searchParams);\n if (debouncedValue) {\n newSearchParams.set(\"s\", debouncedValue);\n } else {\n newSearchParams.delete(\"s\");\n }\n setSearchParams(newSearchParams, { replace: true });\n\n // eslint-disable-next-line\n }, [debouncedValue, setSearchParams]);\n\n useEffect(() => {\n if (debouncedValue && !match) {\n navigate(`/search${window.location.search}`);\n }\n }, [match, navigate, debouncedValue]);\n\n const onChange = (e: ChangeEvent) =>\n setValue(e.target.value);\n\n return (\n \n );\n};\n","import { FC, memo, useState } from \"react\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport styled, { css } from \"styled-components\";\nimport { useMediaQuery } from \"react-responsive\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { ReactComponent as Logo } from \"@/assets/icons/logo.svg\";\nimport { ReactComponent as UploadIcon } from \"@/assets/icons/upload.svg\";\nimport { ReactComponent as ProfileIcon } from \"@/assets/icons/smile.svg\";\nimport { ReactComponent as SearchIcon } from \"@/assets/icons/search.svg\";\nimport { ReactComponent as BookmarkIcon } from \"@/assets/icons/bookmark.svg\";\nimport { ReactComponent as MenuIcon } from \"@/assets/icons/menu-dots.svg\";\nimport { Container, Text } from \"@/components/common\";\nimport { Breakpoints } from \"@/utilities/theme\";\nimport { Dispatch, RootState } from \"@/utilities/store\";\nimport { Dropdown, DropdownItem } from \"@/components/Dropdown\";\nimport { SocialsIcon } from \"@/components/SocialsIcon\";\nimport { ContributorAvatar } from \"../pages/Home/components/ContributorAvatar\";\nimport { errorNotification } from \"@/utilities/alerts\";\nimport { Searchbar } from \"@/components/Searchbar\";\n\nconst StyledProfileIcon = styled(ProfileIcon)``;\n\nconst Button = styled.button<{ $withoutText?: boolean }>`\n height: 32px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 -2px 4px rgba(255, 255, 255, 0.15);\n border-radius: 16px;\n padding: 0 18px;\n text-decoration: none;\n letter-spacing: 0.38px;\n margin-left: 30px;\n &:hover,\n &:focus {\n box-shadow: 0 2px 4px rgba(255, 255, 255, 0.15);\n }\n ${({ $withoutText }) =>\n $withoutText &&\n css`\n width: 32px;\n padding: 0;\n border-radius: 50%;\n `}\n ${({ theme }) => css`\n color: ${theme.colors.white};\n ${theme.breakpoints.phone} {\n margin-left: 17px;\n }\n `}\n > svg {\n fill: transparent;\n }\n > ${StyledProfileIcon} {\n fill: ${({ theme }) => theme.colors.white};\n }\n`;\n\nconst ButtonText = styled(Text)`\n margin-left: 10px;\n`;\n\nconst Inner = styled.div`\n height: 70px;\n display: flex;\n align-items: center;\n > a {\n line-height: 0;\n }\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n height: 60px;\n }\n `}\n`;\n\nconst Wrap = styled.header`\n background: ${(p) => p.theme.colors.black};\n box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);\n`;\n\nconst Nav = styled.nav`\n margin-left: auto;\n display: flex;\n align-items: center;\n`;\n\nconst StyledBookmarkIcon = styled(BookmarkIcon)`\n stroke: #ffffff;\n`;\n\nconst AuthButtonWrap = styled.div`\n position: relative;\n line-height: 0;\n`;\n\nconst AuthDropdown = styled(Dropdown)`\n background: ${({ theme }) => theme.colors.red};\n width: 220px;\n padding: 18px 0;\n`;\n\nconst AuthDropdownItem = styled(DropdownItem)`\n color: ${({ theme }) => theme.colors.white};\n transition: font-weight 0.2s ease-out;\n width: 100%;\n text-align: center;\n margin: 0;\n padding: 9px;\n &:hover {\n color: ${({ theme }) => theme.colors.white};\n font-weight: 700;\n }\n`;\n\nconst UserAvatar = styled(ContributorAvatar)`\n height: 32px;\n width: 32px;\n`;\n\nconst MenuDropdown = styled(Dropdown)`\n top: calc(100% + 25px);\n ${({ theme }) => css`\n background: ${theme.colors.black};\n `}\n`;\n\nconst MenuDropdownItem = styled(DropdownItem)`\n ${({ theme }) => css`\n color: ${theme.colors.white};\n &:hover {\n color: ${theme.colors.red};\n font-weight: 700;\n }\n `}\n`;\n\nconst SearchWrap = styled(AuthButtonWrap)<{ $open: boolean }>`\n transition: 0.3s ease-out width;\n width: 32px;\n margin-left: 30px;\n ${Button} {\n margin: 0;\n }\n ${({ $open, theme }) =>\n $open &&\n css`\n width: 330px;\n ${theme.breakpoints.tablet} {\n width: 120px;\n }\n ${Button} {\n width: 0;\n }\n `}\n`;\n\nconst MenuSocials = styled(DropdownItem)`\n display: flex;\n align-items: center;\n justify-content: space-evenly;\n width: 100%;\n line-height: 0;\n margin-top: 25px;\n > a {\n color: ${({ theme }) => theme.colors.white};\n &:hover {\n color: ${({ theme }) => theme.colors.red};\n }\n }\n`;\n\nconst RedSearchIcon = styled(SearchIcon)`\n color: ${({ theme }) => theme.colors.black};\n position: absolute;\n right: 8px;\n top: 0;\n bottom: 0;\n margin: auto 0;\n`;\n\nexport const Header: FC = memo(() => {\n const isMobile = useMediaQuery({ maxWidth: Breakpoints.max.phone });\n\n const navigate = useNavigate();\n\n const [showAuthDropdown, setShowAuthDropdown] = useState(false);\n const [showMenuDropdown, setShowMenuDropdown] = useState(false);\n const [showSearch, setShowSearch] = useState(false);\n\n const isAuthenticated = useSelector(\n (state: RootState) => !!state.authentication.user\n );\n\n const contributorSlug = useSelector(\n (state: RootState) => state.authentication.user?.contributor?.slug\n );\n\n const userAvatar = useSelector(\n (state: RootState) =>\n state.authentication.user?.contributor?.avatar_thumbnail\n );\n\n const userName = useSelector(\n (state: RootState) => state.authentication.user?.name\n );\n\n const dispatch = useDispatch();\n\n const onLogout = async () => {\n try {\n setShowAuthDropdown(false);\n await dispatch.authentication.logout();\n navigate(\"/login\");\n } catch (err) {\n errorNotification();\n }\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n );\n});\n","import { ChangeEvent, FC, useEffect, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { Link } from \"react-router-dom\";\n\nimport { ReactComponent as SearchIcon } from \"@/assets/icons/search.svg\";\nimport { Modal } from \"@/components/Modal\";\nimport { CloseButton, Dialog } from \"@/components/Modal/Dialog\";\nimport useDebounce from \"@/hooks/useDebounce\";\nimport { VideoResource } from \"@/types/api\";\nimport { errorNotification } from \"@/utilities/alerts\";\nimport { api } from \"@/utilities/api\";\nimport { PaginatedResponse } from \"@/types\";\nimport { Loader, Text } from \"@/components/common\";\nimport { pxToRem } from \"@/utilities/helpers\";\n\nconst StyledModal = styled(Modal)`\n z-index: ${({ theme }) => theme.zIndex.onTop};\n justify-content: flex-start;\n`;\n\nconst StyledDialog = styled(Dialog)`\n height: calc(100vh - 90px);\n padding: 0;\n display: flex;\n flex-direction: column;\n ${CloseButton} {\n width: 44px;\n height: 44px;\n top: 11px;\n right: 7px;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: ${({ theme }) => theme.zIndex.onTop};\n svg {\n width: 12px;\n path {\n stroke-width: 4px !important;\n }\n }\n }\n`;\n\nconst InputWrap = styled.div`\n position: relative;\n height: 70px;\n display: flex;\n align-items: center;\n border-bottom: 1px solid ${({ theme }) => theme.colors.lightGray};\n`;\n\nconst InputContainer = styled.div`\n padding: 0 20px;\n`;\n\nconst StyledSearchIcon = styled(SearchIcon)`\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n margin: auto 0;\n color: ${({ theme }) => theme.colors.red};\n`;\n\nconst Input = styled.input`\n padding: 0 30px;\n border: 0;\n height: 23px;\n outline: none !important;\n width: 100%;\n ${({ theme }) => css`\n color: ${theme.colors.black};\n font-family: ${theme.typography.textPoppins.fontFamily};\n font-size: 16px;\n &::placeholder {\n color: ${theme.colors.black};\n }\n `}\n`;\n\nconst Results = styled.div`\n padding: 0 20px;\n flex: 1;\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n justify-content: center;\n display: flex;\n flex-wrap: wrap;\n`;\n\nconst ResultLink = styled(Link)`\n padding: 22px 30px;\n width: 100%;\n`;\n\nconst NoResultsHeadline = styled(Text)`\n font-size: ${pxToRem(27)}rem;\n line-height: 1;\n align-self: center;\n`;\n\nconst StyledLoader = styled(Loader)`\n align-self: center;\n`;\n\ninterface Props {\n onClose: () => void;\n}\n\nexport const SearchModal: FC = ({ onClose }) => {\n const [value, setValue] = useState(\"\");\n\n const [videos, setVideos] = useState([]);\n\n const [isLoading, setIsLoading] = useState(false);\n\n const debouncedValue = useDebounce(value, 500);\n\n const onChange = (e: ChangeEvent) =>\n setValue(e.target.value);\n\n useEffect(() => {\n (async () => {\n try {\n setIsLoading(true);\n const res = await api.get>(\n \"/v1/search\",\n {\n params: {\n s: debouncedValue,\n per_page: 20,\n },\n }\n );\n setVideos(res.data);\n setIsLoading(false);\n } catch (err) {\n errorNotification();\n }\n })();\n }, [debouncedValue]);\n\n return (\n \n \n \n \n \n \n \n \n \n {!!debouncedValue &&\n (isLoading ? (\n \n ) : (\n <>\n {!!!videos.length ? (\n \n No results found.\n \n ) : (\n videos.map((video) => (\n \n \n {video.name}\n \n \n ))\n )}\n \n ))}\n \n \n \n );\n};\n","import { FC, useState } from \"react\";\nimport styled from \"styled-components\";\nimport MediaQuery from \"react-responsive\";\nimport { Link } from \"react-router-dom\";\n\nimport { Breakpoints } from \"@/utilities/theme\";\nimport { ReactComponent as UploadIcon } from \"@/assets/icons/upload.svg\";\nimport { ReactComponent as SearchIcon } from \"@/assets/icons/search.svg\";\nimport { ReactComponent as BookmarkIcon } from \"@/assets/icons/bookmark.svg\";\nimport { SearchModal } from \"@/components/SearchModal\";\n\nconst Bar = styled.nav`\n position: fixed;\n z-index: 5;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 60px;\n box-shadow: 0 0 15px rgba(32, 37, 44, 0.1);\n background-color: #20252c;\n background: ${({ theme }) => theme.colors.black};\n display: flex;\n align-items: center;\n justify-content: space-evenly;\n a {\n line-height: 0;\n padding: 5px;\n }\n > a:first-of-type {\n svg {\n fill: transparent;\n stroke: ${({ theme }) => theme.colors.white};\n }\n }\n`;\n\nconst Button = styled.button`\n color: ${({ theme }) => theme.colors.white};\n line-height: 0;\n padding: 5px;\n`;\n\nexport const MobileNav: FC = () => {\n const [showSearch, setShowSearch] = useState(false);\n\n return (\n \n \n \n \n \n \n \n \n \n {showSearch && setShowSearch(false)} />}\n \n \n );\n};\n","import { FC } from \"react\";\nimport { Outlet } from \"react-router-dom\";\n\nimport { Container } from \"@/components/common\";\nimport { Header } from \"@/components/Header\";\nimport { MobileNav } from \"@/components/MobileNav\";\n\nexport const AppLayout: FC = () => {\n return (\n <>\n
    \n \n \n \n \n \n );\n};\n","import { FC } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { Link } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet-async\";\n\nimport { Text, Button, Card } from \"@/components/common\";\nimport { useMediaQuery } from \"react-responsive\";\nimport { Breakpoints } from \"@/utilities/theme\";\n\nconst Wrap = styled(Card)`\n text-align: center;\n margin-top: 50px;\n padding: 100px 15px;\n ${({ theme }) => css`\n ${theme.breakpoints.phone} {\n padding: 66px 15px;\n margin-top: 15px;\n }\n `}\n`;\n\nconst Content = styled.div`\n display: grid;\n grid-template-columns: 100%;\n grid-gap: 15px;\n margin-bottom: 50px;\n`;\n\nexport const NotAllowed: FC = () => {\n const isMobile = useMediaQuery({\n maxWidth: Breakpoints.max.phone,\n });\n\n return (\n <>\n \n Not Allowed | MyPoint.tv\n \n \n \n Oops!\n \n The page you're trying to reach is for contributors only.\n \n Please log in as contributor.\n \n \n \n \n );\n};\n","import { FC, useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\n\nimport { gtag } from \"@/utilities/tracking\";\n\nexport const Tracker: FC = ({ children }) => {\n const location = useLocation();\n\n // TODO: think of better solution\n useEffect(() => {\n setTimeout(() => {\n gtag(\"event\", \"page_view\", {\n page_title: document.title,\n page_location: location.pathname + location.search,\n page_path: location.pathname,\n });\n }, 800);\n }, [location]);\n\n return <>{children};\n};\n","import { FC, useEffect, useState } from \"react\";\nimport { BrowserRouter, Route, Routes, Navigate } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\nimport { HelmetProvider } from \"react-helmet-async\";\n\nimport { Auth } from \"@/pages/Auth\";\nimport { Home } from \"@/pages/Home\";\nimport { GlobalStyles } from \"@/utilities/theme\";\nimport { Dispatch } from \"@/utilities/store\";\nimport { Video } from \"@/pages/Video\";\nimport { TextPage } from \"@/pages/Text\";\nimport { NotFound } from \"@/pages/NotFound\";\nimport { VideoUpload } from \"@/pages/VideoUpload\";\nimport { PrivateRoute } from \"@/components/PrivateRoute\";\nimport { Contributor } from \"@/pages/Contributor/index\";\nimport { AboutPage } from \"@/pages/About\";\nimport { SignUpForm } from \"@/pages/Auth/components/SignUpForm\";\nimport { SignInForm } from \"@/pages/Auth/components/SignInForm\";\nimport { Profile } from \"@/pages/Profile\";\nimport { Boomarks } from \"@/pages/Bookmarks\";\nimport { ForgotPassword } from \"@/pages/Auth/components/ForgotPassword\";\nimport { ResetPassword } from \"@/pages/Auth/components/ResetPassword\";\nimport { CompleteSignUp } from \"@/pages/Auth/components/CompleteSignUp\";\nimport { GuestRoute } from \"@/components/GuestRoute\";\nimport { Contributors } from \"@/pages/Contributors\";\nimport { Search } from \"@/pages/Search\";\nimport { AppLayout } from \"./components/Layouts/AppLayout\";\nimport { NotAllowed } from \"@/pages/NotAllowed\";\nimport { Tracker } from \"@/components/Tracker\";\n\nconst App: FC = () => {\n const dispatch = useDispatch();\n const [userLoaded, setUserLoaded] = useState(false);\n\n useEffect(() => {\n dispatch.authentication.fetchCurrentUser().then(() => setUserLoaded(true));\n }, [dispatch.authentication]);\n\n if (!userLoaded) return null;\n\n return (\n \n \n \n \n \n }>\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n \n \n \n }\n />\n \n \n \n }\n />\n } />\n } />\n \n }>\n \n \n \n }\n />\n \n \n \n }\n />\n \n \n \n }\n />\n \n \n \n }\n />\n \n \n \n }\n />\n \n \n \n \n }\n />\n \n \n \n }\n />\n } />\n \n \n \n \n );\n};\n\nexport default App;\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Provider as ReduxProvider } from \"react-redux\";\nimport { PersistGate } from \"redux-persist/lib/integration/react\";\nimport { ThemeProvider } from \"styled-components\";\nimport * as Sentry from \"@sentry/react\";\nimport { Integrations } from \"@sentry/tracing\";\n\nimport store, { persistor } from \"@/utilities/store\";\nimport theme from \"@/utilities/theme\";\nimport App from \"./App\";\nimport reportWebVitals from \"./reportWebVitals\";\nimport \"reset-css\";\n\nif (process.env.NODE_ENV === \"production\") {\n Sentry.init({\n dsn: process.env.REACT_APP_SENTRY_DNS,\n integrations: [new Integrations.BrowserTracing()],\n tracesSampleRate: 0.2,\n environment: process.env.REACT_APP_ENVIRONMENT || \"development\",\n });\n}\n\nReactDOM.render(\n \n \n \n \n \n \n \n \n ,\n document.getElementById(\"root\")\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}