-
Notifications
You must be signed in to change notification settings - Fork 0
/
.eslintcache
1 lines (1 loc) · 148 KB
/
.eslintcache
1
[{"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/index.js":"1","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/reportWebVitals.js":"2","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/App.js":"3","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/store.js":"4","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/NotFound.js":"5","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/utils/localStorage.js":"6","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/layout/BasicLayout.js":"7","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/ModalBody/UserModal.js":"8","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/actions/user.js":"9","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/auth/RegisterActivate.js":"10","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/auth/ForgotPassword.js":"11","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/auth/Login.js":"12","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/auth/ResetPassword.js":"13","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/auth/Register.js":"14","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/SuperTheme.js":"15","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/layout/Navbar.js":"16","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/layout/PushableSidebar.js":"17","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/reducers/index.js":"18","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/config.js":"19","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/actions/types.js":"20","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/LightTheme.js":"21","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/DarkTheme.js":"22","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/helpers/alerts.js":"23","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/layout/utils/SidebarMenuItem.js":"24","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/layout/utils/NavItem.js":"25","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/layout/utils/SideChannelItem.js":"26","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/VideoSide.js":"27","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Notification.js":"28","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Uploads.js":"29","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Settings.js":"30","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/HomeSvg.js":"31","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/PlaylistIcon.js":"32","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/SavedPosts.js":"33","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Trending.js":"34","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Hamburger.js":"35","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/layout/utils/NavProfPic.js":"36","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Following.js":"37","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/videohome/VideoHome.js":"38","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/reducers/user.js":"39","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/reducers/alert.js":"40","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/videohome/HomeVideoEle.js":"41","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/ModalBody/NotificationModal.js":"42","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/hooks/usePathHook.js":"43","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/layout/HOBL.js":"44","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/VideoRoutes.js":"45","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/play/Single.js":"46","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/playlist/Playlist.js":"47","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/auth/AuthRoutes.js":"48","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/player/Player.js":"49","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/hooks/useTagColorGen.js":"50","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Liked.js":"51","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Dislike.js":"52","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Hellipsis.js":"53","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Like.js":"54","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Disliked.js":"55","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Share.js":"56","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/AddPlaylist.js":"57","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Support.js":"58","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Report.js":"59","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/play/Description.js":"60","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/DownArrow.js":"61","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/play/Comments.js":"62","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/play/Recms.js":"63","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/play/RecmVideoEle.js":"64","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/user/UserRoutes.js":"65","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/user/view/videoChannel/VideoChannels.js":"66","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/user/view/videoChannel/FollowingChnls.js":"67","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/user/view/videoChannel/YourChannels.js":"68","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/user/view/videoChannel/FrequentChnls.js":"69","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/user/view/singleVidChnl/Channel.js":"70","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/user/view/singleVidChnl/ChannelHome.js":"71","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/user/view/singleVidChnl/ChannelPlaylists.js":"72","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/user/view/singleVidChnl/ChannelFeatured.js":"73","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/user/view/singleVidChnl/ChannelAbout.js":"74","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/upload/ChooseVideo.js":"75","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/upload/VidDetails.js":"76","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/upload/VideoUpload.js":"77","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/hooks/useUnload.js":"78","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/upload/MoreInfo.js":"79","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/upload/Dropzone.js":"80","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/AddAny.js":"81","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/upload/VidState.js":"82","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/actions/currentVideo.js":"83","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/reducers/currentVideo.js":"84","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/actions/recmVideo.js":"85","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/reducers/recmVideo.js":"86","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/utils/humanize.js":"87","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/actions/likes.js":"88","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/reducers/likes.js":"89","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/actions/alert.js":"90","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/utils/Alert.js":"91","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/reducers/channel.js":"92","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/actions/channel.js":"93"},{"size":478,"mtime":1612281763486,"results":"94","hashOfConfig":"95"},{"size":362,"mtime":1612280255217,"results":"96","hashOfConfig":"95"},{"size":2979,"mtime":1622219485688,"results":"97","hashOfConfig":"95"},{"size":520,"mtime":1616050104951,"results":"98","hashOfConfig":"95"},{"size":185,"mtime":1612929022714,"results":"99","hashOfConfig":"95"},{"size":781,"mtime":1616231223130,"results":"100","hashOfConfig":"95"},{"size":877,"mtime":1622214328805,"results":"101","hashOfConfig":"95"},{"size":14622,"mtime":1622300412950,"results":"102","hashOfConfig":"95"},{"size":2328,"mtime":1621314431196,"results":"103","hashOfConfig":"95"},{"size":3578,"mtime":1612934771683,"results":"104","hashOfConfig":"95"},{"size":3604,"mtime":1612931218670,"results":"105","hashOfConfig":"95"},{"size":4908,"mtime":1612975753826,"results":"106","hashOfConfig":"95"},{"size":5166,"mtime":1613055700054,"results":"107","hashOfConfig":"95"},{"size":6952,"mtime":1616056927900,"results":"108","hashOfConfig":"95"},{"size":757,"mtime":1616235708202,"results":"109","hashOfConfig":"95"},{"size":2550,"mtime":1622216517330,"results":"110","hashOfConfig":"95"},{"size":3458,"mtime":1621317080812,"results":"111","hashOfConfig":"95"},{"size":363,"mtime":1621255379041,"results":"112","hashOfConfig":"95"},{"size":49,"mtime":1612678092768,"results":"113","hashOfConfig":"95"},{"size":1329,"mtime":1621313524791,"results":"114","hashOfConfig":"95"},{"size":284,"mtime":1618462141794,"results":"115","hashOfConfig":"95"},{"size":288,"mtime":1618474149076,"results":"116","hashOfConfig":"95"},{"size":241,"mtime":1612678395572,"results":"117","hashOfConfig":"95"},{"size":1616,"mtime":1617434384395,"results":"118","hashOfConfig":"95"},{"size":289,"mtime":1616130798570,"results":"119","hashOfConfig":"95"},{"size":1017,"mtime":1612803482778,"results":"120","hashOfConfig":"95"},{"size":304,"mtime":1616129264773,"results":"121","hashOfConfig":"95"},{"size":324,"mtime":1616130304535,"results":"122","hashOfConfig":"95"},{"size":300,"mtime":1616129753940,"results":"123","hashOfConfig":"95"},{"size":308,"mtime":1616129023956,"results":"124","hashOfConfig":"95"},{"size":326,"mtime":1616128362487,"results":"125","hashOfConfig":"95"},{"size":316,"mtime":1616129399683,"results":"126","hashOfConfig":"95"},{"size":316,"mtime":1616129639141,"results":"127","hashOfConfig":"95"},{"size":306,"mtime":1616129978008,"results":"128","hashOfConfig":"95"},{"size":300,"mtime":1616131226209,"results":"129","hashOfConfig":"95"},{"size":174,"mtime":1612544622811,"results":"130","hashOfConfig":"95"},{"size":306,"mtime":1616129138174,"results":"131","hashOfConfig":"95"},{"size":1830,"mtime":1621234814425,"results":"132","hashOfConfig":"95"},{"size":1070,"mtime":1621313578142,"results":"133","hashOfConfig":"95"},{"size":553,"mtime":1616310566346,"results":"134","hashOfConfig":"95"},{"size":1383,"mtime":1621082021502,"results":"135","hashOfConfig":"95"},{"size":7477,"mtime":1617349745245,"results":"136","hashOfConfig":"95"},{"size":317,"mtime":1617002407853,"results":"137","hashOfConfig":"95"},{"size":319,"mtime":1617007711731,"results":"138","hashOfConfig":"95"},{"size":713,"mtime":1618492945337,"results":"139","hashOfConfig":"95"},{"size":18549,"mtime":1622296482842,"results":"140","hashOfConfig":"95"},{"size":176,"mtime":1617014519717,"results":"141","hashOfConfig":"95"},{"size":2414,"mtime":1617013068209,"results":"142","hashOfConfig":"95"},{"size":1969,"mtime":1622300633260,"results":"143","hashOfConfig":"95"},{"size":1686,"mtime":1618385803743,"results":"144","hashOfConfig":"95"},{"size":163,"mtime":1617443060356,"results":"145","hashOfConfig":"95"},{"size":334,"mtime":1617443031900,"results":"146","hashOfConfig":"95"},{"size":334,"mtime":1617443048354,"results":"147","hashOfConfig":"95"},{"size":322,"mtime":1617443055926,"results":"148","hashOfConfig":"95"},{"size":178,"mtime":1617443039510,"results":"149","hashOfConfig":"95"},{"size":326,"mtime":1617443068763,"results":"150","hashOfConfig":"95"},{"size":344,"mtime":1617467994044,"results":"151","hashOfConfig":"95"},{"size":324,"mtime":1617467715355,"results":"152","hashOfConfig":"95"},{"size":320,"mtime":1617467780688,"results":"153","hashOfConfig":"95"},{"size":2162,"mtime":1621259845343,"results":"154","hashOfConfig":"95"},{"size":336,"mtime":1617529982748,"results":"155","hashOfConfig":"95"},{"size":5933,"mtime":1621165020632,"results":"156","hashOfConfig":"95"},{"size":1123,"mtime":1621149283037,"results":"157","hashOfConfig":"95"},{"size":1328,"mtime":1621146737609,"results":"158","hashOfConfig":"95"},{"size":577,"mtime":1618469367113,"results":"159","hashOfConfig":"95"},{"size":2637,"mtime":1621314188924,"results":"160","hashOfConfig":"95"},{"size":5495,"mtime":1621314503528,"results":"161","hashOfConfig":"95"},{"size":5400,"mtime":1621314595638,"results":"162","hashOfConfig":"95"},{"size":4088,"mtime":1618131587563,"results":"163","hashOfConfig":"95"},{"size":6234,"mtime":1621262305292,"results":"164","hashOfConfig":"95"},{"size":2353,"mtime":1621281964133,"results":"165","hashOfConfig":"95"},{"size":1881,"mtime":1618301584896,"results":"166","hashOfConfig":"95"},{"size":2824,"mtime":1621280923190,"results":"167","hashOfConfig":"95"},{"size":4843,"mtime":1621281251365,"results":"168","hashOfConfig":"95"},{"size":551,"mtime":1618656704395,"results":"169","hashOfConfig":"95"},{"size":6511,"mtime":1620386130470,"results":"170","hashOfConfig":"95"},{"size":4561,"mtime":1619284354809,"results":"171","hashOfConfig":"95"},{"size":500,"mtime":1618494597398,"results":"172","hashOfConfig":"95"},{"size":215,"mtime":1618493545118,"results":"173","hashOfConfig":"95"},{"size":9402,"mtime":1619248770376,"results":"174","hashOfConfig":"95"},{"size":324,"mtime":1619276579134,"results":"175","hashOfConfig":"95"},{"size":5935,"mtime":1619341209823,"results":"176","hashOfConfig":"95"},{"size":1592,"mtime":1621243724297,"results":"177","hashOfConfig":"95"},{"size":2888,"mtime":1621249682502,"results":"178","hashOfConfig":"95"},{"size":703,"mtime":1621145053701,"results":"179","hashOfConfig":"95"},{"size":589,"mtime":1621142051887,"results":"180","hashOfConfig":"95"},{"size":300,"mtime":1621188424689,"results":"181","hashOfConfig":"95"},{"size":2493,"mtime":1621243705497,"results":"182","hashOfConfig":"95"},{"size":533,"mtime":1621240524421,"results":"183","hashOfConfig":"95"},{"size":454,"mtime":1622215992226,"results":"184","hashOfConfig":"95"},{"size":1457,"mtime":1622220491169,"results":"185","hashOfConfig":"95"},{"size":1547,"mtime":1621274900492,"results":"186","hashOfConfig":"95"},{"size":1810,"mtime":1622220064142,"results":"187","hashOfConfig":"95"},{"filePath":"188","messages":"189","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},"facxst",{"filePath":"191","messages":"192","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"193","messages":"194","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"195","usedDeprecatedRules":"190"},{"filePath":"196","messages":"197","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"198","messages":"199","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"200","messages":"201","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"202","messages":"203","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"204","usedDeprecatedRules":"190"},{"filePath":"205","messages":"206","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"207","messages":"208","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"209","messages":"210","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"211","messages":"212","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"213","messages":"214","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"215","messages":"216","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"217","messages":"218","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"219","usedDeprecatedRules":"190"},{"filePath":"220","messages":"221","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"222","messages":"223","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"224","messages":"225","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"226","usedDeprecatedRules":"190"},{"filePath":"227","messages":"228","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"229","messages":"230","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"231","messages":"232","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"233","messages":"234","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"235","messages":"236","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"237","messages":"238","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"239","messages":"240","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"241","messages":"242","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"243","messages":"244","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"245","messages":"246","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"247","messages":"248","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"249","messages":"250","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"251","messages":"252","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"253","messages":"254","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"255","messages":"256","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"257","messages":"258","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"259","messages":"260","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"261","messages":"262","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"263","messages":"264","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"265","messages":"266","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"267","messages":"268","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"269","usedDeprecatedRules":"190"},{"filePath":"270","messages":"271","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"272","messages":"273","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"274","messages":"275","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"276","messages":"277","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"278","messages":"279","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"280","usedDeprecatedRules":"281"},{"filePath":"282","messages":"283","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"284","messages":"285","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"286","usedDeprecatedRules":"190"},{"filePath":"287","messages":"288","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"289","messages":"290","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"291","messages":"292","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"293","messages":"294","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"295","messages":"296","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"297","usedDeprecatedRules":"190"},{"filePath":"298","messages":"299","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"300","messages":"301","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"302","messages":"303","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"304","messages":"305","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"306","messages":"307","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"308","messages":"309","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"310","messages":"311","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"312","messages":"313","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"314","messages":"315","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"316","messages":"317","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"318","usedDeprecatedRules":"190"},{"filePath":"319","messages":"320","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"321","messages":"322","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"323","usedDeprecatedRules":"190"},{"filePath":"324","messages":"325","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"326","usedDeprecatedRules":"190"},{"filePath":"327","messages":"328","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"329","messages":"330","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"331","messages":"332","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"333","usedDeprecatedRules":"190"},{"filePath":"334","messages":"335","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"336","usedDeprecatedRules":"190"},{"filePath":"337","messages":"338","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"339","usedDeprecatedRules":"190"},{"filePath":"340","messages":"341","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"342","usedDeprecatedRules":"190"},{"filePath":"343","messages":"344","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"345","usedDeprecatedRules":"190"},{"filePath":"346","messages":"347","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"348","usedDeprecatedRules":"190"},{"filePath":"349","messages":"350","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"351","usedDeprecatedRules":"190"},{"filePath":"352","messages":"353","errorCount":0,"warningCount":7,"fixableErrorCount":0,"fixableWarningCount":0,"source":"354","usedDeprecatedRules":"190"},{"filePath":"355","messages":"356","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":3,"source":"357","usedDeprecatedRules":"190"},{"filePath":"358","messages":"359","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"360","usedDeprecatedRules":"190"},{"filePath":"361","messages":"362","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"363","usedDeprecatedRules":"190"},{"filePath":"364","messages":"365","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"366","messages":"367","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"368","messages":"369","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"370","messages":"371","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"372","usedDeprecatedRules":"190"},{"filePath":"373","messages":"374","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"375","messages":"376","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"377","messages":"378","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"379","usedDeprecatedRules":"190"},{"filePath":"380","messages":"381","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"382","usedDeprecatedRules":"190"},{"filePath":"383","messages":"384","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"385","messages":"386","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"387","messages":"388","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"389","usedDeprecatedRules":"190"},{"filePath":"390","messages":"391","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"392","messages":"393","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"394","usedDeprecatedRules":"190"},{"filePath":"395","messages":"396","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},{"filePath":"397","messages":"398","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"399","usedDeprecatedRules":"190"},{"filePath":"400","messages":"401","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"402","usedDeprecatedRules":"190"},{"filePath":"403","messages":"404","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"190"},"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/index.js",[],["405","406"],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/reportWebVitals.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/App.js",["407"],"import React from \"react\";\nimport \"./App.css\";\nimport {\n BrowserRouter as Router,\n Route,\n Switch,\n Redirect,\n} from \"react-router-dom\";\n// Routes\nimport AuthRoutes from \"./components/auth/AuthRoutes\";\nimport videoRoutes from \"./components/video/VideoRoutes\";\nimport userRoutes from \"./components/user/UserRoutes\";\n// -- Redux --\nimport { Provider } from \"react-redux\";\nimport store from \"./store\";\n\n// localstorage\nimport { initUserTheme } from \"./utils/localStorage\";\n\nimport NotFound from \"./NotFound\";\nimport \"./components/css/bootstrap.css\";\n\nimport UserModal from \"./components/ModalBody/UserModal\";\nimport NotificationModal from \"./components/ModalBody/NotificationModal\";\nimport Alert from \"./utils/Alert\";\n\nfunction App() {\n React.useEffect(() => {\n initUserTheme();\n }, []);\n\n // React-H1 #7 => Don't include routes through components, Switch needs the Routes direcly as its Child\n\n // However when i use this same route **/user/:userId/videos/edit/:section** from the **UserRoutes** component the routes in **VideoRoutes** don't work & i can't see anything on the screen\n\n const routeRenderer = (route, i) => {\n return route[\"exact\"] ? (\n <Route key={i} exact path={route.path} component={route.component}>\n {/* <route.component /> */}\n </Route>\n ) : (\n <Route key={i} path={route.path} component={route.component}>\n {/* <route.component /> */}\n </Route>\n );\n };\n\n return (\n <Provider store={store}>\n <div className=\"App loader\">\n <Router>\n <React.Suspense fallback={<></>}>\n <Switch>\n {/* Keep the order of routes same */}\n {/* <Route exact path=\"/\" component={VideoHome}></Route> */}\n {/* Temporary */}\n <Redirect exact from=\"/\" to=\"/videos\" />\n\n {/* <Route\n exact\n path=\"/user/:userId/videos/edit/:section\"\n render={(props) => <VideoChannels {...props} />}\n /> */}\n {/* <UserRoutes /> */}\n\n {videoRoutes.map(routeRenderer)}\n {userRoutes.map(routeRenderer)}\n\n {/* <Route\n exact\n path=\"/video/upload\"\n component={(props) => <Upload {...props} />}\n />\n <Route\n exact\n path=\"/video/:videoId\"\n component={(props) => <Single {...props} />}\n />\n <Route\n exact\n path=\"/video/playlist/:playlistId\"\n render={(props) => <Playlist {...props} />}\n /> */}\n <AuthRoutes />\n\n <Route component={NotFound} />\n </Switch>\n </React.Suspense>\n <UserModal />\n <NotificationModal />\n </Router>\n {/* Don't lazy-load this modal as a function chks for a particular element in the modal */}\n </div>\n </Provider>\n );\n}\n\nexport default App;\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/store.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/NotFound.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/utils/localStorage.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/layout/BasicLayout.js",["408","409"],"import React from \"react\";\r\nimport Navbar from \"./Navbar\";\r\nimport PushableSidebar from \"./PushableSidebar\";\r\n// import \"../css/dlayout.scss\"; --pro\r\nimport NProgress from \"nprogress\";\r\nimport \"nprogress/nprogress.css\";\r\nimport SuperTheme from \"../SuperTheme\";\r\n\r\n// contains basic layout like Navbar, Sidebar, Body etc\r\n\r\nconst BasicLayout = ({ WComp, WCompProps }) => {\r\n // toggled=sidebar hidden otherwise visible\r\n const [toggle, setToggle] = React.useState(\"toggled\");\r\n const loadingRef = React.useRef(null);\r\n\r\n return (\r\n <React.Fragment>\r\n <SuperTheme>\r\n <Navbar toggle={toggle} setToggle={setToggle} />\r\n <PushableSidebar\r\n toggle={toggle}\r\n setToggle={setToggle}\r\n WComp={WComp}\r\n WCompProps={WCompProps}\r\n />\r\n </SuperTheme>\r\n </React.Fragment>\r\n );\r\n};\r\n\r\nexport default BasicLayout;\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/ModalBody/UserModal.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/actions/user.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/auth/RegisterActivate.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/auth/ForgotPassword.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/auth/Login.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/auth/ResetPassword.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/auth/Register.js",["410"],"import React from \"react\";\r\nimport \"../css/login.scss\";\r\nimport Icon from \"../../img/slack.png\";\r\nimport axios from \"axios\";\r\nimport { showSuccessMsg, showErrorMsg } from \"../../helpers/alerts\";\r\nimport { API } from \"../../config\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst Register = ({ se, setSE, errorMsgsRef, scrollToError }) => {\r\n const [formData, setFormData] = React.useState({\r\n firstname: \"\",\r\n midname: \"\",\r\n lastname: \"\",\r\n email: \"\",\r\n password: \"\",\r\n ip: \"\",\r\n buttonText: \"Register\",\r\n });\r\n\r\n const { success, error } = se;\r\n\r\n const {\r\n firstname,\r\n midname,\r\n lastname,\r\n email,\r\n password,\r\n ip,\r\n buttonText,\r\n } = formData;\r\n\r\n React.useEffect(() => {\r\n const setIp = () => {\r\n axios.get(\"https://api.ipify.org/?format=json\").then((result) => {\r\n let userIp = result.data.ip;\r\n // console.log(\"ip -> \", userIp);\r\n setFormData({ ...formData, ip: userIp });\r\n });\r\n };\r\n setIp();\r\n }, []);\r\n\r\n const handleInput = (e) => {\r\n e.preventDefault();\r\n setFormData({ ...formData, [e.target.name]: e.target.value });\r\n };\r\n\r\n const handleSubmit = async (e) => {\r\n e.preventDefault();\r\n setFormData({ ...formData, buttonText: \"Registering ...\" });\r\n\r\n try {\r\n const response = await axios.post(`${API}/register`, {\r\n firstname,\r\n midname,\r\n lastname,\r\n email,\r\n password,\r\n ip,\r\n });\r\n\r\n if (response) {\r\n setFormData({\r\n ...formData,\r\n firstname: \"\",\r\n midname: \"\",\r\n lastname: \"\",\r\n email: \"\",\r\n password: \"\",\r\n confirmPassword: \"\",\r\n buttonText: \"Submitted\",\r\n ip: \"\",\r\n });\r\n setSE({ success: response.data.message }); // not using spread operator here as we don't want the *error* to be displayed during *success*\r\n }\r\n } catch (err) {\r\n setFormData({ ...formData, buttonText: \"Register\" });\r\n setSE({ error: err.response.data.error }); // not using spread operator here as we don't want the *success* to be displayed during *error*\r\n }\r\n };\r\n\r\n return (\r\n <div className=\"my-login-page\">\r\n <section className=\"h-100\">\r\n <div className=\"container h-100\">\r\n <div className=\"row justify-content-md-center h-100\">\r\n <div className=\"card-wrapper\">\r\n {/* auto-scroll div */}\r\n <div className=\"p-0 m-0 auto-scroll\" ref={errorMsgsRef}>\r\n {(error || success) && scrollToError()}\r\n <div className=\"brand\">\r\n <img src={Icon} alt=\"logo\" />\r\n </div>\r\n {success && showSuccessMsg(success)}\r\n {error && showErrorMsg(error)}\r\n </div>\r\n\r\n {/* <div className=\"text-white\">{JSON.stringify(formData)}</div> */}\r\n <div className=\"card fat\">\r\n <div className=\"card-body\">\r\n <h4 className=\"card-title\">Register</h4>\r\n <form method=\"POST\" className=\"my-login-validation\">\r\n {/* each input in each form-group for nice design */}\r\n <div className=\"form-group\">\r\n <label htmlFor=\"name\">First Name</label>\r\n <input\r\n type=\"text\"\r\n className=\"form-control\"\r\n name=\"firstname\"\r\n value={firstname}\r\n required\r\n onChange={(e) => handleInput(e)}\r\n autoFocus\r\n autoComplete=\"off\"\r\n />\r\n </div>\r\n <div className=\"form-group\">\r\n <label htmlFor=\"name\">Middle Name</label>\r\n <input\r\n type=\"text\"\r\n className=\"form-control\"\r\n name=\"midname\"\r\n value={midname}\r\n required\r\n onChange={(e) => handleInput(e)}\r\n autoComplete=\"off\"\r\n />\r\n </div>\r\n <div className=\"form-group\">\r\n <label htmlFor=\"name\">Last Name</label>\r\n <input\r\n type=\"text\"\r\n className=\"form-control\"\r\n name=\"lastname\"\r\n value={lastname}\r\n required\r\n onChange={(e) => handleInput(e)}\r\n autoComplete=\"off\"\r\n />\r\n </div>\r\n\r\n <div className=\"form-group\">\r\n <label htmlFor=\"email\">E-Mail Address</label>\r\n <input\r\n id=\"email\"\r\n type=\"email\"\r\n className=\"form-control\"\r\n name=\"email\"\r\n value={email}\r\n required\r\n onChange={(e) => handleInput(e)}\r\n autoComplete=\"off\"\r\n />\r\n <div className=\"invalid-feedback\">Email is invalid</div>\r\n </div>\r\n\r\n <div className=\"form-group mb-5\">\r\n <label htmlFor=\"password\">Password</label>\r\n <input\r\n id=\"password\"\r\n type=\"password\"\r\n className=\"form-control\"\r\n name=\"password\"\r\n value={password}\r\n required\r\n onChange={(e) => handleInput(e)}\r\n autoComplete=\"off\"\r\n />\r\n <div className=\"invalid-feedback\">\r\n Password is required\r\n </div>\r\n </div>\r\n\r\n <div className=\"form-group m-0\">\r\n <button\r\n type=\"submit\"\r\n className=\"btn btn-primary btn-block\"\r\n onClick={(e) => handleSubmit(e)}\r\n >\r\n {buttonText}\r\n </button>\r\n </div>\r\n <div className=\"mt-4 text-center\">\r\n Already have an account?{\" \"}\r\n <Link to=\"/login\" className=\"login-links\">\r\n Login\r\n </Link>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n <div className=\"footer\">Copyright © 2021 — Unifiq</div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Register;\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/SuperTheme.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/layout/Navbar.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/layout/PushableSidebar.js",["411","412","413","414"],"import React from \"react\";\r\nimport SidebarMenuItem from \"./utils/SidebarMenuItem\";\r\nimport SideChannelItem from \"./utils/SideChannelItem\";\r\n\r\n// For css written in one file after that will be split into files\r\n// import \"../css/dlayout.scss\";\r\n\r\n// Icons ---\r\nimport HomeSvg from \"../icons/HomeSvg\";\r\nimport VideoSide from \"../icons/VideoSide\";\r\nimport PlaylistIcon from \"../icons/PlaylistIcon\";\r\nimport SavedPosts from \"../icons/SavedPosts\";\r\nimport Uploads from \"../icons/Uploads\";\r\nimport Following from \"../icons/Following\";\r\nimport Settings from \"../icons/Settings\";\r\n// import \"../css/layout.scss\";\r\n\r\n// Channel images\r\nimport ChannelI from \"../../img/slack.png\";\r\nimport Apple from \"../../img/app-store.png\";\r\n\r\n// Use this Dim Sidebar so that when user clicks anywhere outside sidebar it will collapse\r\nconst PushableDimSidebar = ({ toggle, WComp, WCompProps }) => {\r\n const stopScroll = (e) => {\r\n if (toggle === \"\") {\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n return (\r\n <div className={`d-flex ${toggle}`} id=\"wrapper\">\r\n {/* Sidebar */}\r\n <div id=\"sidebar-wrapper\" onScroll={(e) => stopScroll(e)}>\r\n <div className=\"list-group\">\r\n <SidebarMenuItem IconImg={HomeSvg} name=\"Home\" route=\"/\" />\r\n {/* <SidebarMenuItem IconImg={Settings} name=\"Settings\" route=\"/user/4c948705-6036-4135-ba9f-0f5843ba3f92/videos/view/yours\" /> */}\r\n <SidebarMenuItem\r\n IconImg={Following}\r\n name=\"Your Channels\"\r\n route=\"/user/4c948705-6036-4135-ba9f-0f5843ba3f92/videos/view/yours\"\r\n />\r\n <SidebarMenuItem\r\n IconImg={Following}\r\n name=\"Following\"\r\n route=\"/user/4c948705-6036-4135-ba9f-0f5843ba3f92/videos/view/following\"\r\n />\r\n <SidebarMenuItem name=\"Collection - \" route=\"/\" />\r\n <SidebarMenuItem IconImg={VideoSide} name=\"Videos\" route=\"/\" />\r\n {/* <SidebarMenuItem IconImg={PlaylistIcon} name=\"Playlists\" route=\"/\" /> */}\r\n {/* <SidebarMenuItem IconImg={SavedPosts} name=\"Saved Posts\" route=\"/\" /> */}\r\n {/* <SidebarMenuItem IconImg={Uploads} name=\"Uploads\" route=\"/\" /> */}\r\n <SidebarMenuItem name=\"Channels - \" route=\"/\" />\r\n <SideChannelItem ChannelImg={ChannelI} name=\"Pro Gamers\" route=\"/\" />\r\n <SideChannelItem ChannelImg={Apple} name=\"Nginx Builders\" route=\"/\" />\r\n <SideChannelItem\r\n ChannelImg={ChannelI}\r\n name=\"Who is jack & who is ziggler\"\r\n route=\"/\"\r\n />\r\n <SideChannelItem\r\n ChannelImg={Apple}\r\n name=\"MMMMMMMMM_MMMMMMMM msariana\"\r\n route=\"/\"\r\n />\r\n <SideChannelItem ChannelImg={ChannelI} name=\"Pro Gamers\" route=\"/\" />\r\n <SideChannelItem ChannelImg={Apple} name=\"Nginx Builders\" route=\"/\" />\r\n <SideChannelItem\r\n ChannelImg={ChannelI}\r\n name=\"Who is jack & who is ziggler\"\r\n route=\"/\"\r\n />\r\n <SideChannelItem\r\n ChannelImg={Apple}\r\n name=\"MMMMMMMMM_MMMMMMMM msariana\"\r\n route=\"/\"\r\n />\r\n </div>\r\n </div>\r\n\r\n {/* Page Content */}\r\n <div id=\"page-content-wrapper\">\r\n <div className=\"container-fluid body-text-color\">\r\n <WComp {...WCompProps} />\r\n </div>\r\n </div>\r\n {/* Page Content Wrapper */}\r\n </div>\r\n );\r\n};\r\n\r\nexport default PushableDimSidebar;\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/reducers/index.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/config.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/actions/types.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/LightTheme.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/DarkTheme.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/helpers/alerts.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/layout/utils/SidebarMenuItem.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/layout/utils/NavItem.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/layout/utils/SideChannelItem.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/VideoSide.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Notification.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Uploads.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Settings.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/HomeSvg.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/PlaylistIcon.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/SavedPosts.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Trending.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Hamburger.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/layout/utils/NavProfPic.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Following.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/videohome/VideoHome.js",["415","416","417"],"import React from \"react\";\r\nimport HOBL from \"../layout/HOBL\";\r\nimport HomeVideoEle from \"./HomeVideoEle\";\r\nimport { connect } from \"react-redux\";\r\nimport iceland from \"../../img/iceland.PNG\";\r\n// import thumb from \"../../img/ration169.jpg\";\r\n// import thumb from \"../../img/wide-test.jpg\";\r\n// import thumb from \"../../img/ratio169_2.jpg\";\r\nimport thumb from \"../../img/ratio916.jpg\";\r\nimport { Link } from \"react-router-dom\";\r\nimport axios from \"axios\";\r\n\r\n// actions\r\nimport { setUserData } from \"../../actions/user\";\r\nimport { setUserVidLikes } from \"../../actions/likes\";\r\n\r\nconst VideoHome = ({ setUserData, setUserVidLikes }) => {\r\n const [videoli, setVideoli] = React.useState([]);\r\n\r\n React.useEffect(() => {\r\n setUserData(\"4c948705-6036-4135-ba9f-0f5843ba3f92\");\r\n loadvideos();\r\n setUserVidLikes(\"4c948705-6036-4135-ba9f-0f5843ba3f92\");\r\n }, []);\r\n\r\n const loadvideos = async () => {\r\n const data = {\r\n userid: \"4c948705-6036-4135-ba9f-0f5843ba3f92\",\r\n };\r\n const videolist = await axios.post(\"/api/video/get-user-videos\", data);\r\n setVideoli(videolist.data);\r\n };\r\n\r\n return (\r\n videoli && (\r\n <div className=\"row home-video-grid\">\r\n {videoli.map((video, i) => (\r\n <div className=\"col-xl-3 col-lg-4 col-md-6 col-12\" key={i}>\r\n <Link to={`/video/${video._id}`}>\r\n <HomeVideoEle\r\n thumbnail={video.thumb_url}\r\n channelPic={video.channel_pic_url}\r\n channelName={video.channel_title}\r\n title={video.title}\r\n views={video.views}\r\n postTime={video.created_at}\r\n />\r\n </Link>\r\n </div>\r\n ))}\r\n </div>\r\n )\r\n );\r\n};\r\n\r\nexport default HOBL()(\r\n connect(null, { setUserData, setUserVidLikes })(VideoHome)\r\n);\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/reducers/user.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/reducers/alert.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/videohome/HomeVideoEle.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/ModalBody/NotificationModal.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/hooks/usePathHook.js",["418"],"import React from \"react\";\r\n\r\nconst usePathHook = () => {\r\n const [path, setPath] = React.useState(null);\r\n\r\n React.useEffect(() => {\r\n setPath(window.location.pathname);\r\n console.log(window.location.pathname);\r\n }, [window.location.pathname]);\r\n\r\n return path && path;\r\n};\r\n\r\nexport default usePathHook;\r\n",["419","420"],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/layout/HOBL.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/VideoRoutes.js",["421"],"import React from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\nimport VideoHome from \"../videohome/VideoHome\";\r\n\r\nconst Single = React.lazy(() => import(\"./play/Single\"));\r\nconst Playlist = React.lazy(() => import(\"./playlist/Playlist\"));\r\nconst VideoUpload = React.lazy(() => import(\"./upload/VideoUpload\"));\r\n\r\nconst videoRoutes = [\r\n { path: \"/videos\", component: (props) => <VideoHome {...props} /> },\r\n { path: \"/video-upload\", component: (props) => <VideoUpload {...props} /> },\r\n { path: \"/video/:videoId\", component: (props) => <Single {...props} /> },\r\n {\r\n path: \"/video/playlist/:playlistId\",\r\n component: (props) => <Playlist {...props} />,\r\n },\r\n];\r\n\r\nexport default videoRoutes;\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/play/Single.js",["422","423","424","425","426"],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/playlist/Playlist.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/auth/AuthRoutes.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/player/Player.js",["427","428"],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/hooks/useTagColorGen.js",["429"],"import React from \"react\";\r\n\r\nconst useTagColorGen = () => {\r\n const colorsArr = [\r\n {\r\n backgroundColor: \"#00e5ff\",\r\n color: \"#000000\",\r\n },\r\n {\r\n backgroundColor: \"#0077ff\",\r\n color: \"#ffffff\",\r\n },\r\n {\r\n backgroundColor: \"#ff0000\",\r\n color: \"#ffffff\",\r\n },\r\n {\r\n backgroundColor: \"#ff7b00\",\r\n color: \"#ffffff\",\r\n },\r\n {\r\n backgroundColor: \"#ffd900\",\r\n color: \"#000000\",\r\n },\r\n {\r\n backgroundColor: \"#bbff00\",\r\n color: \"#000000\",\r\n },\r\n {\r\n backgroundColor: \"#34ba13\",\r\n color: \"#ffffff\",\r\n },\r\n {\r\n backgroundColor: \"#00fad0\",\r\n color: \"#000000\",\r\n },\r\n {\r\n backgroundColor: \"#685ba6\",\r\n color: \"#ffffff\",\r\n },\r\n {\r\n backgroundColor: \"#b575d9\",\r\n color: \"#ffffff\",\r\n },\r\n {\r\n backgroundColor: \"#d422cb\",\r\n color: \"#ffffff\",\r\n },\r\n {\r\n backgroundColor: \"#db1891\",\r\n color: \"#ffffff\",\r\n },\r\n {\r\n backgroundColor: \"#f26b86\",\r\n color: \"#ffffff\",\r\n },\r\n ];\r\n\r\n const shuffle = (array) => {\r\n var currentIndex = array.length,\r\n temporaryValue,\r\n randomIndex;\r\n\r\n // While there remain elements to shuffle...\r\n while (0 !== currentIndex) {\r\n // Pick a remaining element...\r\n randomIndex = Math.floor(Math.random() * currentIndex);\r\n currentIndex -= 1;\r\n\r\n // And swap it with the current element.\r\n temporaryValue = array[currentIndex];\r\n array[currentIndex] = array[randomIndex];\r\n array[randomIndex] = temporaryValue;\r\n }\r\n\r\n return array;\r\n };\r\n\r\n return shuffle(colorsArr);\r\n};\r\n\r\nexport default useTagColorGen;\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Liked.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Dislike.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Hellipsis.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Like.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Disliked.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Share.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/AddPlaylist.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Support.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/Report.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/play/Description.js",["430"],"import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { follUnfollChannel } from \"../../../actions/channel\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst Description = ({\r\n channelName,\r\n channelIcon,\r\n description,\r\n follUnfollChannel,\r\n userid,\r\n channelid,\r\n channel: { followers },\r\n}) => {\r\n return (\r\n followers && (\r\n <div className=\"d-block\">\r\n <div className=\"px-3 px-md-3\">\r\n <div className=\"row justify-content-between align-items-center\">\r\n <div className=\"col-xs-7 col-9 text-left overflow-dots\">\r\n <Link to={`/user/${userid}/videos/view/chnl/${channelid}/home`}>\r\n <img\r\n src={channelIcon}\r\n className=\"single-vid-channel-pic pointer\"\r\n />\r\n </Link>\r\n <span className=\"single-vid-channel-name ml-2 ml-md-3\">\r\n {channelName}\r\n </span>\r\n </div>\r\n <div className=\"col-xs-3 col-3 text-right\">\r\n {followers.includes(userid) ? (\r\n <button\r\n className=\"btn btn-custom-blue-1 follow-channel-btn px-2\"\r\n onClick={() => follUnfollChannel(userid, channelid)}\r\n >\r\n Following\r\n </button>\r\n ) : (\r\n <button\r\n className=\"btn btn-custom-blue-1 follow-channel-btn px-2\"\r\n onClick={() => follUnfollChannel(userid, channelid)}\r\n >\r\n Follow\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n <div className=\"row px-3 px-md-3\">\r\n <div className=\"wrap-video-desc-cont\">\r\n <input id=\"ch\" type=\"checkbox\" />\r\n <label className=\"py-1\" htmlFor=\"ch\"></label>\r\n <div className=\"single-video-desc\">{description}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n channel: state.channel,\r\n});\r\n\r\nexport default connect(mapStateToProps, { follUnfollChannel })(Description);\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/DownArrow.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/play/Comments.js",["431","432"],"import React, { useState } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Hamburger from \"../../icons/Hamburger\";\r\nimport moment from \"moment\";\r\n\r\nconst Comments = ({ thm, comsVis, setComsVis, comms }) => {\r\n const [comments, setComments] = React.useState([]);\r\n const showMoreComs = (e) => {\r\n e.preventDefault();\r\n setComsVis((vis) => !vis);\r\n };\r\n\r\n React.useEffect(() => {\r\n setComments([...comms]);\r\n }, [comms]);\r\n\r\n const sortComments = (type) => {\r\n type = type.toLowerCase();\r\n switch (type) {\r\n case \"latest\":\r\n let newComments = [...comms].sort((a, b) => {\r\n return moment(b.created_at).diff(a.created_at);\r\n });\r\n setComments(newComments);\r\n break;\r\n case \"oldest\":\r\n let oldComments = [...comms].sort((a, b) => {\r\n return moment(a.created_at).diff(b.created_at);\r\n });\r\n setComments(oldComments);\r\n break;\r\n default:\r\n setComments(comms);\r\n }\r\n };\r\n\r\n return (\r\n comments.length > 0 && (\r\n <div className=\"d-block\">\r\n <div className=\"\">\r\n <div className=\"switch-comments-recs\">\r\n <div className=\"row justify-content-between px-3 pl-4 px-sm-4\">\r\n <div className=\"d-inline comments-len\">\r\n {comments.length === 1\r\n ? `${comments.length} Comment`\r\n : `${comments.length} Comments`}\r\n </div>\r\n <div className=\"d-inline sort-comments\">\r\n <div className=\"btn-group dropup\">\r\n <div\r\n className=\"dropdown-toggle\"\r\n type=\"button\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n aria-expanded=\"false\"\r\n >\r\n <button className=\"btn sort-comments-btn py-1 mx-1\">\r\n <Hamburger thm={thm} /> <span className=\"ml-2\">Sort</span>\r\n </button>\r\n </div>\r\n <div\r\n className=\"dropdown-menu single-video-optns-dropdn\"\r\n style={{ zIndex: \"1030\" }}\r\n >\r\n <div\r\n className=\"dropdown-item pointer\"\r\n onClick={() => sortComments(\"latest\")}\r\n >\r\n <div className=\"d-inline pl-3 single-video-more-opt-name\">\r\n Latest\r\n </div>\r\n </div>\r\n <hr className=\"v-optns-hr p-0 m-0\" />\r\n <div\r\n className=\"dropdown-item pointer\"\r\n onClick={() => sortComments(\"oldest\")}\r\n >\r\n <div className=\"d-inline pl-3 single-video-more-opt-name\">\r\n Oldest\r\n </div>\r\n </div>\r\n {/* <hr className=\"v-optns-hr p-0 m-0\" />\r\n <Link className=\"dropdown-item\" to=\"/videos\">\r\n <div className=\"d-inline pl-3 single-video-more-opt-name\">\r\n Popular\r\n </div>\r\n </Link> */}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <br />\r\n <div className=\"row p-0 m-0 px-3\">\r\n {/* Automatically sorted according to top comments */}\r\n <div className=\"comment-row d-block\">\r\n {comments.length > 0 && comsVis === false ? (\r\n <>\r\n <div className=\"d-block p-0 m-0\" key={comments[0]._id}>\r\n <img\r\n src={comments[0].comment_owner.profile_img_url}\r\n alt=\"..\"\r\n className=\"comment-user-pic\"\r\n />\r\n <span className=\"ml-2 comment-user-name\">\r\n {`${comments[0].comment_owner.first_name} ${comments[0].comment_owner.last_name}`}{\" \"}\r\n - {moment(comments[0].created_at).fromNow()}\r\n </span>\r\n </div>\r\n <div className=\"d-block p-0 m-0 comment-user-comment\">\r\n {comments[0].comment_description}\r\n </div>\r\n <hr className=\"m-2\" />\r\n </>\r\n ) : (\r\n comments.map((comm, i) => (\r\n <div key={`${comm._id}${i}`}>\r\n <div className=\"d-block p-0 m-0\">\r\n <img\r\n src={comm.comment_owner.profile_img_url}\r\n alt=\"..\"\r\n className=\"comment-user-pic\"\r\n />\r\n <span className=\"ml-2 comment-user-name\">\r\n {`${comm.comment_owner.first_name} ${comm.comment_owner.last_name}`}{\" \"}\r\n - {moment(comm.created_at).fromNow()}\r\n </span>\r\n </div>\r\n <div className=\"d-block p-0 m-0 comment-user-comment\">\r\n {comm.comment_description}\r\n </div>\r\n <hr className=\"m-2\" />\r\n </div>\r\n ))\r\n )}\r\n </div>\r\n <button\r\n className=\"btn btn-block sort-comments-btn\"\r\n onClick={(e) => showMoreComs(e)}\r\n >\r\n {comsVis ? \"Show Less Comments\" : \"Show More Comments\"}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n comms: state.currentVideo.comments,\r\n});\r\nexport default connect(mapStateToProps, {})(Comments);\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/play/Recms.js",["433","434"],"import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport RecmVideoEle from \"./RecmVideoEle\";\r\nimport { setRecmVideos } from \"../../../actions/recmVideo\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst Recms = ({ userid, current_video_id, recms, setRecmVideos }) => {\r\n React.useEffect(() => {\r\n setRecmVideos(userid, current_video_id);\r\n }, [current_video_id]);\r\n\r\n return (\r\n <>\r\n <div className=\"row mt-1\">\r\n {recms.videos.map((video, i) => (\r\n <div key={i} className=\"mx-auto\">\r\n <a href={`/video/${video._id}`}>\r\n <RecmVideoEle\r\n thumbnail={video.thumb_url}\r\n channelPic={video.owner.channel_pic_url}\r\n channelName={video.owner.title}\r\n title={video.title}\r\n views={video.views}\r\n postTime={video.created_at}\r\n />\r\n </a>\r\n </div>\r\n ))}\r\n </div>\r\n </>\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n recms: state.recmVideo,\r\n});\r\n\r\nexport default connect(mapStateToProps, { setRecmVideos })(Recms);\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/play/RecmVideoEle.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/user/UserRoutes.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/user/view/videoChannel/VideoChannels.js",["435"],"import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Link, useParams } from \"react-router-dom\";\r\nimport HOBL from \"../../../layout/HOBL\";\r\n\r\nconst YourChannels = React.lazy(() => import(\"./YourChannels\"));\r\nconst FollowingChnls = React.lazy(() => import(\"./FollowingChnls\"));\r\nconst FrequentChnls = React.lazy(() => import(\"./FrequentChnls\"));\r\n\r\nconst VideoChannels = ({ user: { userTheme, _id } }) => {\r\n let { section } = useParams();\r\n const [sec, setSec] = React.useState(section);\r\n const [thm, setThm] = React.useState(null);\r\n\r\n React.useEffect(() => {\r\n console.log(section);\r\n setSec(section);\r\n setThm(userTheme);\r\n }, [section, userTheme]);\r\n\r\n return (\r\n _id && (\r\n <>\r\n <div className=\"container-fluid p-0 m-0\">\r\n <div className=\"horizontal-menu pt-2\">\r\n <Link to={`/user/${_id}/videos/view/yours`}>\r\n <div className=\"horizontal-menu-item my-2 pointer\">\r\n <div\r\n className={`v-vid-section-name border-right-grey ${\r\n sec === \"yours\" ? \"blue-highlight\" : \"\"\r\n }`}\r\n >\r\n Your Channels\r\n </div>\r\n </div>\r\n </Link>\r\n <Link to={`/user/${_id}/videos/view/following`}>\r\n <div className=\"horizontal-menu-item my-2 pointer\">\r\n <div\r\n className={`v-vid-section-name border-right-grey ${\r\n sec === \"following\" ? \"blue-highlight\" : \"\"\r\n }`}\r\n >\r\n Following\r\n </div>\r\n </div>\r\n </Link>\r\n {/* <Link to={`/user/${_id}/videos/view/frequent`}>\r\n <div className=\"horizontal-menu-item my-2 pointer\">\r\n <div\r\n className={`v-vid-section-name ${\r\n sec === \"frequent\" ? \"blue-highlight\" : \"\"\r\n }`}\r\n >\r\n Frequently watched\r\n </div>\r\n </div>\r\n </Link> */}\r\n </div>\r\n </div>\r\n <div\r\n className=\"container-fluid p-0 m-0 mt-2\"\r\n style={{ overflow: \"wrap\" }}\r\n >\r\n {sec === \"yours\" && <YourChannels sec={sec} thm={thm} />}\r\n {sec === \"following\" && <FollowingChnls sec={sec} thm={thm} />}\r\n {/* {sec === \"frequent\" && <FrequentChnls sec={sec} thm={thm} />} */}\r\n </div>\r\n </>\r\n )\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n user: state.user,\r\n});\r\n\r\nexport default HOBL()(connect(mapStateToProps, {})(VideoChannels));\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/user/view/videoChannel/FollowingChnls.js",["436","437","438","439"],"import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Hamburger from \"../../../icons/Hamburger\";\r\nimport pubgi from \"../../../../samplesimgs/pubg-img.jpg\";\r\nimport pubgp from \"../../../../samplesimgs/pubg-pic.png\";\r\n// VideoChannel belongs to categories, Video contains Tags\r\n// Nested HOC's not used as name conflicts of props occur\r\n\r\nimport { setFollowingChannels } from \"../../../../actions/user\";\r\n\r\nconst FollowingChnls = ({\r\n user: { _id, following_channels },\r\n sec,\r\n thm,\r\n setFollowingChannels,\r\n}) => {\r\n const [cats, setCats] = React.useState([\"All\"]);\r\n const [categ, setCateg] = React.useState([\"All\"]);\r\n const [togCats, setTogCats] = React.useState(true);\r\n const [channels, setChannels] = React.useState(null);\r\n\r\n React.useEffect(() => {\r\n if (_id) {\r\n setFollowingChannels(_id);\r\n }\r\n }, [_id]);\r\n\r\n React.useEffect(() => {\r\n if (following_channels.length > 0) {\r\n setChannels(following_channels);\r\n }\r\n }, [following_channels, sec]);\r\n\r\n React.useEffect(() => {\r\n if (following_channels.length > 0) {\r\n let arr = following_channels.map((chnl) => [...chnl.categories]);\r\n console.log(arr);\r\n let arr1d = [];\r\n for (let row of arr) for (let cat of row) arr1d.push(cat);\r\n setCats([\"All\", ...arr1d]);\r\n }\r\n }, [following_channels]);\r\n\r\n const addRmvCateg = (cat) => {\r\n if (categ.includes(cat)) {\r\n let li = [...categ];\r\n li = li.filter((ct) => ct != cat);\r\n setCateg(li);\r\n } else {\r\n setCateg([...categ, cat]);\r\n }\r\n };\r\n\r\n return (\r\n _id &&\r\n following_channels.length > 0 && (\r\n <div className=\"display-channels \">\r\n <div className=\"row\">\r\n <div className=\"col-12 col-md-4 text-center px-2 btn pt-0 my-3\">\r\n <div\r\n className=\"v-channels-LHS-cats-head pointer py-1\"\r\n onClick={(e) => setTogCats((st) => !st)}\r\n >\r\n <span>\r\n <Hamburger className=\"v-vid-chnls-cats-ham\" thm={thm} />\r\n </span>\r\n <span className=\"cats-head \">Categories</span>\r\n </div>\r\n <div\r\n className={`v-vid-channels-cats ${\r\n togCats === true ? \"\" : \"d-none\"\r\n }`}\r\n >\r\n {cats.map((cat, i) => (\r\n <div\r\n key={i}\r\n className={`d-block v-vid-channels-cat text-ovfl-ellipsis ${\r\n categ.includes(cat) ? \"blue-cat-highlight\" : \"\"\r\n } py-2 my-1 pointer`}\r\n onClick={(e) => addRmvCateg(cat)}\r\n >\r\n {cat}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n <div className=\"col-12 col-md-8 d-block mt-md-3 mb-3\">\r\n <div className=\"v-channels-RHS-content-head px-2 text-left text-break d-none d-md-block\">\r\n Channels\r\n </div>\r\n <div className=\"v-vid-channels py-1\">\r\n {channels &&\r\n channels.length > 0 &&\r\n channels.map((channel, i) => (\r\n <Link\r\n to={`/user/${_id}/videos/view/chnl/${channel._id}/home`}\r\n key={i}\r\n >\r\n <div className=\"v-vid-channel\">\r\n <div className=\"row\">\r\n <div className=\"col-12 col-lg-5\">\r\n <div className=\"v-vid-channel-img-box\">\r\n <img\r\n src={channel.channel_banner_url}\r\n className=\"v-vid-channel-img\"\r\n alt=\"..\"\r\n />\r\n </div>\r\n </div>\r\n <div className=\"col-12 col-lg-7 text-center text-lg-left\">\r\n <div className=\"v-vid-channel-pic mt-2 mt-md-0\">\r\n <img\r\n className=\"logo\"\r\n src={channel.channel_pic_url}\r\n alt=\"..\"\r\n />\r\n </div>\r\n <div className=\"v-vid-channel-name text-ovfl-ellipsis mt-lg-2\">\r\n {channel.title}\r\n </div>\r\n <div className=\"v-vid-channel-desc text-ovfl-ellipsis mt-lg-2\">\r\n {channel.description}\r\n </div>\r\n <div className=\"v-vid-channel-subs text-ovfl-ellipsis mt-lg-2\">\r\n •{\" \"}\r\n {channel.followers.length === 1\r\n ? `${channel.followers.length} follower`\r\n : `${channel.followers.length} followers`}\r\n </div>\r\n </div>\r\n </div>\r\n <hr />\r\n </div>\r\n </Link>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n );\r\n};\r\n\r\n// Product reviews, How to, Vlogs, Gaming, Comedy, Haul, Memes, Best Of, Educational, Unboxing, Q & A, Collection, Pranks\r\nconst mapStateToProps = (state) => ({\r\n user: state.user,\r\n});\r\n\r\nexport default connect(mapStateToProps, { setFollowingChannels })(\r\n FollowingChnls\r\n);\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/user/view/videoChannel/YourChannels.js",["440","441","442","443"],"import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nimport Hamburger from \"../../../icons/Hamburger\";\r\nimport pubgi from \"../../../../samplesimgs/pubg-img.jpg\";\r\nimport pubgp from \"../../../../samplesimgs/pubg-pic.png\";\r\n// VideoChannel belongs to categories, Video contains Tags\r\n// Nested HOC's not used as name conflicts of props occur\r\n\r\nimport { setUserChannels } from \"../../../../actions/user\";\r\n\r\nconst YourChannels = ({\r\n user: { _id, user_channels },\r\n sec,\r\n thm,\r\n setUserChannels,\r\n}) => {\r\n const [cats, setCats] = React.useState([\"All\"]);\r\n const [categ, setCateg] = React.useState([\"All\"]);\r\n const [togCats, setTogCats] = React.useState(true);\r\n const [channels, setChannels] = React.useState(null);\r\n\r\n React.useEffect(() => {\r\n if (_id) {\r\n setUserChannels(_id);\r\n }\r\n }, [_id, sec]);\r\n\r\n React.useEffect(() => {\r\n if (user_channels.length > 0) {\r\n setChannels(user_channels);\r\n }\r\n }, [user_channels]);\r\n\r\n React.useEffect(() => {\r\n if (user_channels.length > 0) {\r\n let arr = user_channels.map((chnl) => [...chnl.categories]);\r\n let arr1d = [];\r\n for (let row of arr) for (let cat of row) arr1d.push(cat);\r\n setCats([\"All\", ...arr1d]);\r\n }\r\n }, [user_channels]);\r\n\r\n const addRmvCateg = (cat) => {\r\n if (categ.includes(cat)) {\r\n let li = [...categ];\r\n li = li.filter((ct) => ct != cat);\r\n setCateg(li);\r\n } else {\r\n setCateg([...categ, cat]);\r\n }\r\n };\r\n\r\n return (\r\n _id &&\r\n user_channels.length > 0 && (\r\n <div className=\"display-channels \">\r\n <div className=\"row\">\r\n <div className=\"col-12 col-md-4 text-center px-2 btn pt-0 my-3\">\r\n <div\r\n className=\"v-channels-LHS-cats-head pointer py-1\"\r\n onClick={(e) => setTogCats((st) => !st)}\r\n >\r\n <span>\r\n <Hamburger className=\"v-vid-chnls-cats-ham\" thm={thm} />\r\n </span>\r\n <span className=\"cats-head \">Categories</span>\r\n </div>\r\n <div\r\n className={`v-vid-channels-cats ${\r\n togCats === true ? \"\" : \"d-none\"\r\n }`}\r\n >\r\n {cats.map((cat, i) => (\r\n <div\r\n key={i}\r\n className={`d-block v-vid-channels-cat text-ovfl-ellipsis ${\r\n categ.includes(cat) ? \"blue-cat-highlight\" : \"\"\r\n } py-2 my-1 pointer`}\r\n onClick={(e) => addRmvCateg(cat)}\r\n >\r\n {cat}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n <div className=\"col-12 col-md-8 d-block mt-md-3 mb-3\">\r\n <div className=\"v-channels-RHS-content-head px-2 text-left text-break d-none d-md-block\">\r\n Channels\r\n </div>\r\n <div className=\"v-vid-channels py-1\">\r\n {channels &&\r\n channels.length > 0 &&\r\n channels.map((channel, i) => (\r\n <Link\r\n to={`/user/${_id}/videos/view/chnl/${channel._id}/home`}\r\n key={i}\r\n >\r\n <div className=\"v-vid-channel\">\r\n <div className=\"row\">\r\n <div className=\"col-12 col-lg-5\">\r\n <div className=\"v-vid-channel-img-box\">\r\n <img\r\n src={channel.channel_banner_url}\r\n className=\"v-vid-channel-img\"\r\n alt=\"..\"\r\n />\r\n </div>\r\n </div>\r\n <div className=\"col-12 col-lg-7 text-center text-lg-left\">\r\n <div className=\"v-vid-channel-pic mt-2 mt-md-0\">\r\n <img\r\n className=\"logo\"\r\n src={channel.channel_pic_url}\r\n alt=\"..\"\r\n />\r\n </div>\r\n <div className=\"v-vid-channel-name text-ovfl-ellipsis mt-lg-2\">\r\n {channel.title}\r\n </div>\r\n <div className=\"v-vid-channel-desc text-ovfl-ellipsis mt-lg-2\">\r\n {channel.description}\r\n </div>\r\n <div className=\"v-vid-channel-subs text-ovfl-ellipsis mt-lg-2\">\r\n •{\" \"}\r\n {channel.followers.length === 1\r\n ? `${channel.followers.length} follower`\r\n : `${channel.followers.length} followers`}\r\n </div>\r\n </div>\r\n </div>\r\n <hr />\r\n </div>\r\n </Link>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n );\r\n};\r\n\r\n// Product reviews, How to, Vlogs, Gaming, Comedy, Haul, Memes, Best Of, Educational, Unboxing, Q & A, Collection, Pranks\r\nconst mapStateToProps = (state) => ({\r\n user: state.user,\r\n});\r\n\r\nexport default connect(mapStateToProps, { setUserChannels })(YourChannels);\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/user/view/videoChannel/FrequentChnls.js",["444","445"],"import React from \"react\";\r\nimport Hamburger from \"../../../icons/Hamburger\";\r\nimport { Link } from \"react-router-dom\";\r\nimport pubgi from \"../../../../samplesimgs/pubg-img.jpg\";\r\nimport pubgp from \"../../../../samplesimgs/pubg-pic.png\";\r\n// VideoChannel belongs to categories, Video contains Tags\r\n// Nested HOC's not used as name conflicts of props occur\r\n\r\nconst cats = [\r\n \"All\",\r\n \"Product reviews\",\r\n \"How to\",\r\n \"Vlogs\",\r\n \"Gaming\",\r\n \"Comedy\",\r\n \"Unboxing\",\r\n];\r\nconst FrequentChnls = ({ sec, thm }) => {\r\n const [categ, setCateg] = React.useState(\"All\");\r\n const [togCats, setTogCats] = React.useState(true);\r\n\r\n React.useEffect(() => {\r\n setCateg(\"All\");\r\n }, [sec]);\r\n\r\n return (\r\n <div className=\"display-channels \">\r\n <div className=\"row\">\r\n <div className=\"col-12 col-md-4 text-center px-2 btn pt-0 my-3\">\r\n <div\r\n className=\"v-channels-LHS-cats-head pointer py-1\"\r\n onClick={(e) => setTogCats((st) => !st)}\r\n >\r\n <span>\r\n <Hamburger className=\"v-vid-chnls-cats-ham\" thm={thm} />\r\n </span>\r\n <span className=\"cats-head \">Categories</span>\r\n </div>\r\n <div\r\n className={`v-vid-channels-cats ${\r\n togCats === true ? \"\" : \"d-none\"\r\n }`}\r\n >\r\n {cats.map((cat, i) => (\r\n <div\r\n key={i}\r\n className={`d-block v-vid-channels-cat ${\r\n categ === cat ? \"blue-cat-highlight\" : \"\"\r\n } py-2 my-1 pointer`}\r\n onClick={(e) => setCateg(cat)}\r\n >\r\n {cat}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n <div className=\"col-12 col-md-8 d-block mt-md-3 mb-3\">\r\n <div className=\"v-channels-RHS-content-head px-2 text-left text-break d-none d-md-block\">\r\n Channels\r\n </div>\r\n <div className=\"v-vid-channels py-1\">\r\n {[...Array(6)].map((chnl, i) => (\r\n <Link to=\"/user/12545322/videos/view/chnl/9679897/home\" key={i}>\r\n <div className=\"v-vid-channel\">\r\n <div className=\"row\">\r\n <div className=\"col-12 col-lg-5\">\r\n <div className=\"v-vid-channel-img-box\">\r\n <img\r\n src=\"https://cdn.discordapp.com/discovery-splashes/679875946597056683/75d0a14a28750f28a086b3376de66927.jpg?size=512\"\r\n className=\"v-vid-channel-img\"\r\n alt=\"..\"\r\n />\r\n </div>\r\n </div>\r\n <div className=\"col-12 col-lg-7 text-center text-lg-left\">\r\n <div className=\"v-vid-channel-pic mt-2 mt-md-0\">\r\n <img\r\n className=\"logo\"\r\n src=\"https://cdn.discordapp.com/icons/679875946597056683/a_517c3571f4e19a4200e1b58ab9316afa.png?size=128\"\r\n alt=\"..\"\r\n />\r\n </div>\r\n <div className=\"v-vid-channel-name text-ovfl-ellipsis mt-lg-2\">\r\n Valorant Official (PC/Console/Stadia)\r\n </div>\r\n <div className=\"v-vid-channel-desc text-ovfl-ellipsis mt-lg-2\">\r\n Official Valorant PC, Xbox, PS4 and Stadia Gameplay\r\n channel - Best of all\r\n </div>\r\n <div className=\"v-vid-channel-subs text-ovfl-ellipsis mt-lg-2\">\r\n • 10,240,5789 Followers\r\n </div>\r\n </div>\r\n </div>\r\n <hr />\r\n </div>\r\n </Link>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\n// Product reviews, How to, Vlogs, Gaming, Comedy, Haul, Memes, Best Of, Educational, Unboxing, Q & A, Collection, Pranks\r\n\r\nexport default FrequentChnls;\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/user/view/singleVidChnl/Channel.js",["446","447","448","449"],"import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { useParams, Link } from \"react-router-dom\";\r\nimport HOBL from \"../../../layout/HOBL\";\r\nimport fourtothree from \"../../../../samplesimgs/4-3.jpg\";\r\n\r\n// sections\r\nimport ChannelHome from \"./ChannelHome\";\r\nimport ChannelPlaylists from \"./ChannelPlaylists\";\r\nimport ChannelFeatured from \"./ChannelFeatured\";\r\nimport ChannelAbout from \"./ChannelAbout\";\r\n\r\n// actions\r\nimport { setVideoChannel } from \"../../../../actions/channel\";\r\n\r\nconst Channel = ({ user: { userTheme }, channel, setVideoChannel }) => {\r\n const { userId, channelId, section } = useParams();\r\n const [sec, setSec] = React.useState(\"home\");\r\n const [thm, setThm] = React.useState(null);\r\n\r\n React.useEffect(() => {\r\n setThm(userTheme);\r\n }, [channelId, userId, userTheme]);\r\n\r\n React.useEffect(() => {\r\n setSec(section);\r\n }, [section]);\r\n\r\n React.useEffect(() => {\r\n if (channelId) {\r\n setVideoChannel(channelId);\r\n }\r\n }, [channelId]);\r\n\r\n // home, playlists, posts, featured, network\r\n return (\r\n channel._id && (\r\n <div className=\"container-fluid p-0 m-0\">\r\n <div className=\"row mt-2\">\r\n <div className=\"col-12 col-md-6 col-lg-4\">\r\n <div className=\"vid-channel-cover-prof\">\r\n <div className=\"vid-channel-cover-prof-wrapper\">\r\n <div className=\"vid-ch-cover-img\">\r\n <img src={channel.channel_banner_url} />\r\n </div>\r\n <div className=\"vid-ch-img d-flex mx-auto\">\r\n <img src={channel.channel_pic_url} />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-12 col-md-6 col-lg-8\">\r\n <div className=\"vid-chnl-pg-chnl-info\">\r\n <div className=\"vid-chnl-pg-chnl-name text-ovfl-ellipsis\">\r\n {channel.title}\r\n </div>\r\n <div className=\"vid-chnl-pg-chnl-followers text-ovfl-ellipsis\">\r\n {channel.followers.length === 1\r\n ? `${channel.followers.length} follower`\r\n : `${channel.followers.length} followers`}\r\n </div>\r\n <div className=\"vid-chnl-pg-chnl-desc text-ovfl-ellipsis\">\r\n {channel.description}\r\n </div>\r\n <div className=\"vid-chnl-pg-chnl-categories text-ovfl-ellipsis\">\r\n {channel.categories.length > 0 &&\r\n channel.categories.map((cat) => (\r\n <span>{`#${cat.title}`} </span>\r\n ))}\r\n </div>\r\n <div className=\"vid-chnl-pg-chnl-categories-link\">\r\n <Link\r\n to={`/user/${userId}/videos/view/chnl/${channelId}/about`}\r\n >\r\n More Info\r\n </Link>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n <div className=\"horizontal-menu pt-2\">\r\n <Link to={`/user/${userId}/videos/view/chnl/${channelId}/home`}>\r\n <div className=\"horizontal-menu-item my-2 pointer\">\r\n <div\r\n className={` v-vid-section-name border-right-grey ${\r\n sec === \"home\" ? \"blue-highlight\" : \"\"\r\n }`}\r\n >\r\n Home\r\n </div>\r\n </div>\r\n </Link>\r\n <Link\r\n to={`/user/${userId}/videos/view/chnl/${channelId}/playlists`}\r\n >\r\n <div className=\"horizontal-menu-item my-2 pointer\">\r\n <div\r\n className={` v-vid-section-name border-right-grey ${\r\n sec === \"playlists\" ? \"blue-highlight\" : \"\"\r\n }`}\r\n >\r\n Playlists\r\n </div>\r\n </div>\r\n </Link>\r\n <Link to={`/user/${userId}/videos/view/chnl/${channelId}/posts`}>\r\n <div className=\"horizontal-menu-item my-2 pointer\">\r\n <div\r\n className={` v-vid-section-name border-right-grey ${\r\n sec === \"posts\" ? \"blue-highlight\" : \"\"\r\n }`}\r\n >\r\n Posts(*)\r\n </div>\r\n </div>\r\n </Link>\r\n <Link to={`/user/${userId}/videos/view/chnl/${channelId}/featured`}>\r\n <div className=\"horizontal-menu-item my-2 pointer\">\r\n <div\r\n className={`v-vid-section-name border-right-grey ${\r\n sec === \"featured\" ? \"blue-highlight\" : \"\"\r\n }`}\r\n >\r\n Featured\r\n </div>\r\n </div>\r\n </Link>\r\n <Link to={`/user/${userId}/videos/view/chnl/${channelId}/network`}>\r\n <div className=\"horizontal-menu-item my-2 pointer\">\r\n <div\r\n className={`v-vid-section-name border-right-grey ${\r\n sec === \"network\" ? \"blue-highlight\" : \"\"\r\n }`}\r\n >\r\n Network(*)\r\n </div>\r\n </div>\r\n </Link>\r\n <Link to={`/user/${userId}/videos/view/chnl/${channelId}/about`}>\r\n <div className=\"horizontal-menu-item my-2 pointer\">\r\n <div\r\n className={`v-vid-section-name ${\r\n sec === \"about\" ? \"blue-highlight\" : \"\"\r\n }`}\r\n >\r\n About\r\n </div>\r\n </div>\r\n </Link>\r\n </div>\r\n </div>\r\n <div>\r\n <div className=\"vid-channel-section\">\r\n {sec === \"home\" && <ChannelHome thm={thm} />}\r\n {sec === \"playlists\" && <ChannelPlaylists thm={thm} />}\r\n {sec === \"featured\" && <ChannelFeatured thm={thm} />}\r\n {sec === \"about\" && <ChannelAbout thm={thm} />}\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n user: state.user,\r\n channel: state.channel,\r\n});\r\n\r\nexport default HOBL()(connect(mapStateToProps, { setVideoChannel })(Channel));\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/user/view/singleVidChnl/ChannelHome.js",["450","451","452"],"import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Link, useParams } from \"react-router-dom\";\r\nimport moment from \"moment\";\r\nimport astro from \"../../../../img/astro.gif\";\r\n\r\n// actions\r\nimport { setChannelHomeVideos } from \"../../../../actions/channel\";\r\n\r\nconst ChannelHome = ({ channel_videos, setChannelHomeVideos }) => {\r\n const { channelId } = useParams();\r\n\r\n React.useEffect(() => {\r\n if (channelId) {\r\n setChannelHomeVideos(channelId);\r\n }\r\n }, [channelId]);\r\n\r\n return channel_videos && channel_videos.length > 0 ? (\r\n <div className=\"row home-video-grid\">\r\n {channel_videos.map((channel, i) => (\r\n <div className=\"col-xl-3 col-lg-4 col-md-6 col-12\" key={channel._id}>\r\n {/* anchors required for movies */}\r\n <a href={`/video/${channel._id}`}>\r\n <div className=\"home-video-element mt-4\">\r\n <div className=\"h-video-thumbnail\">\r\n <img src={channel.thumb_url} alt=\"..\" />\r\n </div>\r\n <div className=\"row h-video-details mt-2\">\r\n <div className=\"col-12\">\r\n <div className=\"h-video-title pt-1 text-break\">\r\n {channel.title}\r\n </div>\r\n\r\n <div>\r\n <span className=\"h-video-views\">\r\n {`${channel.views} views`}\r\n {\" - \"}\r\n </span>\r\n <span className=\"h-video-posttime\">\r\n {moment(channel.created_at).fromNow()}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n ))}\r\n </div>\r\n ) : (\r\n <div className=\"d-block text-center\">\r\n <img\r\n src={astro}\r\n style={{ height: \"300px\", width: \"auto\", borderRadius: \"40%\" }}\r\n />\r\n <h3>Uh-oh ! No Videos uploaded yet</h3>\r\n </div>\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n channel_videos: state.channel.channel_videos,\r\n});\r\n\r\nexport default connect(mapStateToProps, { setChannelHomeVideos })(ChannelHome);\r\n\r\n// import thumb from \"../../img/ration169.jpg\";\r\n// import thumb from \"../../img/wide-test.jpg\";\r\n// import thumb from \"../../img/ratio169_2.jpg\";\r\n// import thumb from \"../../../../samplesimgs/4-3.jpg\";\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/user/view/singleVidChnl/ChannelPlaylists.js",["453","454"],"import React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport thumb from \"../../../../samplesimgs/schweiz2.jpg\";\r\nimport vidPlaylist from \"../../../../img/vid_playlist_white.svg\";\r\n\r\nconst ChannelPlaylists = () => {\r\n const [data, setData] = React.useState({\r\n title: \"Switzerland 4K - The land of unending beauty\",\r\n thumbnail: thumb,\r\n });\r\n\r\n const { title, thumbnail } = data;\r\n\r\n return (\r\n <div className=\"row home-video-grid chnl-pg-chnl-playlists\">\r\n {[...Array(10)].map((e, i) => (\r\n <div className=\"col-xl-3 col-lg-4 col-md-6 col-12\" key={i}>\r\n <div className=\"playlist-video-element mt-4 \">\r\n <Link to={`/video/1242342344${i}`}>\r\n <div className=\"play-img-wrapper \">\r\n <div className=\"playlist-video-thumbnail\">\r\n <img src={thumbnail} alt=\"..\" />\r\n </div>\r\n <div className=\"playlist-video-count text-center\">\r\n <span>\r\n <img src={vidPlaylist} className=\"playlist-vid-cnt-icon\" />\r\n </span>{\" \"}\r\n 27\r\n </div>\r\n </div>\r\n </Link>\r\n {/* title entering thumbnail fix - mt-2 mt-sm-4 mt-md-0 */}\r\n <div className=\"container p-0 m-0 mt-2 mt-sm-2 mt-md-0 \">\r\n <div className=\"row h-video-details mt-2\">\r\n <div className=\"col-12\">\r\n <div className=\"h-video-title pt-1 text-break\">{title}</div>\r\n\r\n <div className=\"my-1\">\r\n <span className=\"chnl-pg-v-playlist pointer\">\r\n View Playlist\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n};\r\n\r\nexport default ChannelPlaylists;\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/user/view/singleVidChnl/ChannelFeatured.js",["455","456","457","458","459","460","461"],"import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Link, useParams } from \"react-router-dom\";\r\nimport valo from \"../../../../samplesimgs/valo.jpg\";\r\nimport astro from \"../../../../img/astro.gif\";\r\n// actions\r\nimport { setFeaturedChannels } from \"../../../../actions/channel\";\r\nimport humanize from \"../../../../utils/humanize\";\r\n\r\nconst ChannelFeatured = ({ featured_channels, setFeaturedChannels }) => {\r\n const { channelId } = useParams();\r\n const [followers, setFollowers] = React.useState(null);\r\n\r\n React.useEffect(() => {\r\n if (\r\n featured_channels.length > 0 &&\r\n featured_channels.followers &&\r\n featured_channels.followers.length > 0\r\n ) {\r\n setFollowers(featured_channels.followers);\r\n }\r\n }, [featured_channels]);\r\n\r\n React.useEffect(() => {\r\n if (channelId) {\r\n setFeaturedChannels(channelId);\r\n }\r\n }, [channelId]);\r\n\r\n return featured_channels && featured_channels.length > 0 ? (\r\n <div className=\" p-0 m-0 mt-2 featured-channel-container\">\r\n <div className=\"row\">\r\n {featured_channels.map((channel, i) => (\r\n <div className=\"col-xl-3 col-lg-4 col-md-6 col-12\" key={channel._id}>\r\n <div className=\"featured-channel-cover-prof\">\r\n <div className=\"featured-channel-cover-prof-wrapper\">\r\n <div className=\"featured-ch-cover-img\">\r\n <img src={channel.channel_banner_url} />\r\n </div>\r\n <div className=\"featured-ch-img d-flex mx-auto\">\r\n <img src={channel.channel_pic_url} />\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"text-center\">\r\n <div className=\"feat-channel-name text-ovfl-ellipsis\">\r\n {channel.title}\r\n </div>\r\n <div className=\"feat-channel-followers text-ovfl-ellipsis\">\r\n {/* {followers && followers.length === 1\r\n ? `${followers.length} follower`\r\n : `${followers.length} followers`} */}\r\n </div>\r\n <Link\r\n to={`/user/${channel.owned_by}/videos/view/chnl/${channel._id}/home`}\r\n >\r\n <div className=\"btn view-feat-chnl-btn\">View Channel</div>\r\n </Link>\r\n </div>\r\n <hr />\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n ) : (\r\n <div className=\"d-block text-center\">\r\n <img\r\n src={astro}\r\n style={{ height: \"300px\", width: \"auto\", borderRadius: \"40%\" }}\r\n />\r\n <h3>No Featured Channels</h3>\r\n </div>\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n featured_channels: state.channel.featured_channels,\r\n});\r\n\r\nexport default connect(mapStateToProps, { setFeaturedChannels })(\r\n ChannelFeatured\r\n);\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/user/view/singleVidChnl/ChannelAbout.js",["462","463","464","465"],"import React from \"react\";\r\nimport DownArrow from \"../../../icons/DownArrow\";\r\nimport { Link } from \"react-router-dom\";\r\n// hook\r\nimport useTagColorGen from \"../../../../hooks/useTagColorGen\";\r\nimport { connect } from \"react-redux\";\r\n\r\nconst ChannelAbout = ({ channel, thm }) => {\r\n const colors = useTagColorGen();\r\n const [togData, setTogData] = React.useState({\r\n desc: true,\r\n categories: true,\r\n otherLinks: true,\r\n });\r\n\r\n const links = [\r\n { linkname: \"facebook\", link: \"https://facebook.com\" },\r\n { linkname: \"instagram\", link: \"https://instagram.com\" },\r\n { linkname: \"youtube\", link: \"https://youtube.com\" },\r\n { linkname: \"twitter\", link: \"https://twitter.com\" },\r\n { linkname: \"linkedin\", link: \"https://linkedin.com\" },\r\n { linkname: \"tumblr\", link: \"https://tumblr.com\" },\r\n ];\r\n\r\n const cats = [\r\n \"Real-time strategy\",\r\n \"Shooters (FPS and TPS)\",\r\n \"Multiplayer online battle arena (MOBA)\",\r\n \"Role-playing (RPG, ARPG, and More)\",\r\n \"Simulation and sports\",\r\n \"Action-adventure\",\r\n ];\r\n\r\n const { desc, categories, otherLinks } = togData;\r\n\r\n return (\r\n channel._id && (\r\n <div className=\"about-channel-container px-1\">\r\n <div className=\"row my-3\">\r\n <div className=\"col-12 col-md-10 col-lg-8 text-left px-md-4 btn pt-0\">\r\n <div\r\n className=\"btn pointer vid-chnl-abt-LHS-title py-1\"\r\n name=\"desc\"\r\n onClick={(e) => setTogData({ ...togData, [\"desc\"]: !desc })}\r\n >\r\n <DownArrow className=\"vid-chnl-abt-down-arr\" thm={thm} />\r\n <span> Description</span>\r\n </div>\r\n <div\r\n className={`vid-chnl-pg-about-desc mt-2 ${\r\n desc === true ? \"\" : \"d-none\"\r\n }`}\r\n >\r\n {channel.description}\r\n </div>\r\n </div>\r\n <div className=\"col-12 col-md-10 col-lg-8 text-left px-md-4 btn pt-0\">\r\n <div\r\n className=\"btn pointer vid-chnl-abt-LHS-title py-1\"\r\n name=\"desc\"\r\n onClick={(e) =>\r\n setTogData({ ...togData, [\"categories\"]: !categories })\r\n }\r\n >\r\n <DownArrow className=\"vid-chnl-abt-down-arr\" thm={thm} />\r\n <span> Categories</span>\r\n </div>\r\n <div\r\n className={`vid-chnl-pg-about-cats mt-2 ${\r\n categories === true ? \"\" : \"d-none\"\r\n }`}\r\n >\r\n <div className=\"row px-2\">\r\n {channel.categories.length > 0 &&\r\n channel.categories.map((cat, i) => (\r\n <Link to=\"/\" key={cat.id}>\r\n <div\r\n key={i}\r\n className={`d-inline-block px-2 m-2 rounded-lg vid-chnl-cat`}\r\n style={{\r\n ...colors[i % colors.length],\r\n whiteSpace: \"nowrap\",\r\n color: `${colors[i % colors.length].color}`,\r\n }}\r\n title={cat.title}\r\n >\r\n {cat.title}\r\n </div>\r\n </Link>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-12 col-md-10 col-lg-8 text-left px-md-4 btn pt-0\">\r\n <div\r\n className=\"btn pointer vid-chnl-abt-LHS-title \"\r\n name=\"desc\"\r\n onClick={(e) =>\r\n setTogData({ ...togData, [\"otherLinks\"]: !otherLinks })\r\n }\r\n >\r\n <DownArrow className=\"vid-chnl-abt-down-arr\" thm={thm} />\r\n <span> Other Links</span>\r\n </div>\r\n <div\r\n className={`vid-chnl-pg-about-links mt-2 ${\r\n otherLinks === true ? \"\" : \"d-none\"\r\n }`}\r\n >\r\n <div className=\"row\">\r\n {links.map((item, i) => (\r\n <div className=\"col-12 col-md-6\" key={i}>\r\n <a\r\n className=\"chnl-abt-links\"\r\n href={item.link}\r\n target=\"_blank\"\r\n rel=\"noreferrer noopener\"\r\n >\r\n <span className=\"chnl-abt-linkname\">{`${item.linkname} - `}</span>\r\n <span className=\"chnl-abt-link\">{item.link}</span>\r\n <br />\r\n </a>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n channel: state.channel,\r\n});\r\n\r\nexport default connect(mapStateToProps, {})(ChannelAbout);\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/upload/ChooseVideo.js",["466"],"import React from \"react\";\r\n\r\nimport upImg from \"../../../img/upload_vid_pg_white.svg\";\r\nimport Dropzone from \"./Dropzone\";\r\n\r\nconst ChooseVideo = ({ states }) => {\r\n return (\r\n <div>\r\n <div className=\"upload-video-content\">\r\n <p className=\"video-upload-head p-2 m-2\">Upload Video</p>\r\n <div className=\"row\">\r\n <div className=\"col-12 col-md-10 offset-md-1 col-lg-8 offset-lg-2\">\r\n <Dropzone {...states} />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default ChooseVideo;\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/upload/VidDetails.js",["467"],"import React from \"react\";\r\nimport AddAny from \"../../icons/AddAny\";\r\nimport thumbnail from \"../../../samplesimgs/channelpic.jpg\";\r\n\r\nconst VidDetails = () => {\r\n const [formState, setFormState] = React.useState({\r\n rawVideoTags: \"\",\r\n videoTags: [],\r\n vidThumbnail: null,\r\n });\r\n const [ts, setTS] = React.useState(0);\r\n const videoNameRef = React.useRef(null);\r\n const videoDescRef = React.useRef(null);\r\n\r\n const { videoTags, rawVideoTags, vidThumbnail } = formState;\r\n const setVideoTags = (e) => {\r\n e.preventDefault();\r\n console.log(e);\r\n let vTags = e.target.innerText.split(\",\");\r\n setFormState({\r\n ...formState,\r\n rawVideoTags: e.target.value,\r\n videoTags: vTags.map((tag) => tag.trim()),\r\n });\r\n };\r\n\r\n const submitVideoDetails = (e) => {\r\n console.log(videoNameRef.current);\r\n console.log(videoNameRef.current?.innerText);\r\n };\r\n\r\n const setthestate = (i) => {\r\n console.log(i);\r\n setTS(i);\r\n };\r\n\r\n // React.useEffect(() => {\r\n // console.log(formState);\r\n // }, [formState]);\r\n\r\n return (\r\n <div>\r\n <div className=\"upload-video-content upload-video-details\">\r\n <p className=\"video-upload-head p-2 m-2\">Video Details</p>\r\n <div className=\"row m-2 p-md-0 m-md-0\">\r\n <div className=\"col-12 col-md-10 offset-md-1 col-xl-8 offset-xl-2\">\r\n <div className=\"row\">\r\n <div className=\"col-md-10 offset-md-1 col-lg-8 offset-lg-2 mt-4\">\r\n <div className=\"form-float-vid-upload\">\r\n <div\r\n className=\"form-control-div\"\r\n contentEditable=\"true\"\r\n suppressContentEditableWarning={true}\r\n aria-multiline=\"true\"\r\n id=\"video-upload-name\"\r\n style={{ border: \"1px solid black\" }}\r\n ref={videoNameRef}\r\n >\r\n {/* video name */}\r\n Video Title\r\n </div>\r\n <label\r\n htmlFor=\"video-upload-name\"\r\n className=\"form-control-placeholder-div\"\r\n >\r\n Title <span className=\"word-count\">(0/100)</span>\r\n </label>\r\n </div>\r\n </div>\r\n {/* <pre>{videoNameRef.current?.innerText}</pre> */}\r\n <div className=\"col-md-10 offset-md-1 col-lg-8 offset-lg-2 mt-4\">\r\n <div className=\"form-float-vid-upload\">\r\n <div\r\n className=\"form-control-div\"\r\n role=\"textbox\"\r\n contentEditable=\"true\"\r\n suppressContentEditableWarning={true}\r\n aria-multiline=\"true\"\r\n id=\"video-upload-desc\"\r\n style={{ border: \"1px solid black\" }}\r\n ref={videoDescRef}\r\n >\r\n {/* video description */}\r\n </div>\r\n <label\r\n htmlFor=\"video-upload-desc\"\r\n className=\"form-control-placeholder-div\"\r\n >\r\n Description <span className=\"word-count\">(0/1000)</span>\r\n </label>\r\n </div>\r\n </div>\r\n <div className=\"col-md-10 offset-md-1 col-lg-8 offset-lg-2 mt-4\">\r\n <div className=\"form-float-vid-upload\">\r\n <div\r\n className=\"form-control-div\"\r\n contentEditable=\"true\"\r\n suppressContentEditableWarning={true}\r\n aria-multiline=\"true\"\r\n style={{ border: \"1px solid black\" }}\r\n onInput={(e) => setVideoTags(e)}\r\n >\r\n {rawVideoTags}\r\n </div>\r\n <label className=\"form-control-placeholder-div\">\r\n Video Tags{\" \"}\r\n <span className=\"word-count\">(comma-seperated)</span>\r\n </label>\r\n </div>\r\n <div\r\n style={{ overflowWrap: \"break-word\", wordBreak: \"normal\" }}\r\n >\r\n {videoTags.length > 0 &&\r\n videoTags.map(\r\n (tag, i) =>\r\n tag.trim().length > 0 && (\r\n <span\r\n key={i}\r\n className=\"d-inline mr-2 rounded-lg upload-video-tags-t\"\r\n title={tag}\r\n >\r\n {tag}\r\n </span>\r\n )\r\n )}\r\n </div>\r\n </div>\r\n <div className=\"col-md-10 offset-md-1 col-lg-8 offset-lg-2\">\r\n <div className=\"suggested-video-thumbnail-head\">Thumbnail</div>\r\n <div className=\"row\">\r\n {[...Array(4)].map((thumb, i) => (\r\n <div\r\n key={i}\r\n className={`col-6 col-md-3 pointer suggested-vid-thumb-box ${\r\n ts !== null && ts === i ? \"selected\" : \"\"\r\n }`}\r\n onClick={(e) => setthestate(i)}\r\n >\r\n <div className=\"suggested-up-video-thumbnail \" key={i}>\r\n <div>\r\n <img src={thumbnail} alt=\"...\" />\r\n </div>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n <div className=\"d-block mt-4\">\r\n <button className=\"btn btn-choose-custom-thumb btn-block\">\r\n <AddAny thm={\"light\"} className=\"custom-vid-thumb-icon\" />{\" \"}\r\n <span>Custom Thumbnail</span>\r\n </button>\r\n </div>\r\n </div>\r\n <div className=\"col-md-10 offset-md-1 col-lg-8 offset-lg-2 mt-4\">\r\n <div className=\"text-center\">\r\n <button\r\n className=\"btn btn-lg upload-video-btn\"\r\n onClick={(e) => submitVideoDetails()}\r\n >\r\n Next Step\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default VidDetails;\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/upload/VideoUpload.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/hooks/useUnload.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/upload/MoreInfo.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/upload/Dropzone.js",["468","469","470","471"],"import React, { useRef, useState, useEffect } from \"react\";\r\nimport axios from \"axios\";\r\n\r\nconst Dropzone = ({\r\n fileInputRef,\r\n modalImageRef,\r\n modalRef,\r\n progressRef,\r\n uploadRef,\r\n uploadModalRef,\r\n selectedFiles,\r\n setSelectedFiles,\r\n validFiles,\r\n setValidFiles,\r\n unsupportedFiles,\r\n setUnsupportedFiles,\r\n errorMessage,\r\n setErrorMessage,\r\n}) => {\r\n /* const fileInputRef = useRef();\r\n const modalImageRef = useRef();\r\n const modalRef = useRef();\r\n const progressRef = useRef();\r\n const uploadRef = useRef();\r\n const uploadModalRef = useRef();\r\n const [selectedFiles, setSelectedFiles] = useState([]);\r\n const [validFiles, setValidFiles] = useState([]);\r\n const [unsupportedFiles, setUnsupportedFiles] = useState([]);\r\n const [errorMessage, setErrorMessage] = useState(\"\");\r\n*/\r\n useEffect(() => {\r\n // simply setting the validFiles state\r\n let filteredArr = selectedFiles.reduce((acc, current) => {\r\n const x = acc.find((item) => item.name === current.name);\r\n if (!x) {\r\n return acc.concat([current]);\r\n } else {\r\n return acc;\r\n }\r\n }, []);\r\n // valid files also contain everything - used to map around & display data\r\n setValidFiles([...filteredArr]);\r\n }, [selectedFiles]);\r\n\r\n React.useEffect(() => {\r\n console.log(\"validfiles\", validFiles);\r\n }, [validFiles]);\r\n\r\n const preventDefault = (e) => {\r\n e.preventDefault();\r\n // e.stopPropagation();\r\n };\r\n\r\n const dragOver = (e) => {\r\n preventDefault(e);\r\n };\r\n\r\n const dragEnter = (e) => {\r\n preventDefault(e);\r\n };\r\n\r\n const dragLeave = (e) => {\r\n preventDefault(e);\r\n };\r\n\r\n const fileDrop = (e) => {\r\n preventDefault(e);\r\n const files = e.dataTransfer.files;\r\n if (files.length) {\r\n handleFiles(files);\r\n }\r\n };\r\n\r\n const filesSelected = () => {\r\n if (fileInputRef.current.files.length) {\r\n handleFiles(fileInputRef.current.files);\r\n }\r\n };\r\n\r\n const fileInputClicked = () => {\r\n fileInputRef.current.click();\r\n };\r\n\r\n const handleFiles = (files) => {\r\n for (let i = 0; i < files.length; i++) {\r\n if (validateFile(files[i])) {\r\n setSelectedFiles((prevArray) => [...prevArray, files[i]]);\r\n } else {\r\n // adding invalid property inside the file obj\r\n files[i][\"invalid\"] = true;\r\n setSelectedFiles((prevArray) => [...prevArray, files[i]]);\r\n setErrorMessage(\"File type not permitted\");\r\n setUnsupportedFiles((prevArray) => [...prevArray, files[i]]);\r\n }\r\n }\r\n };\r\n\r\n const validateFile = (file) => {\r\n console.log(file);\r\n // const validTypes = [\r\n // \"image/jpeg\",\r\n // \"image/jpg\",\r\n // \"image/png\",\r\n // \"image/gif\",\r\n // \"image/x-icon\",\r\n // ];\r\n const validTypes = [\"video/mp4\", \"video/webm\", \"video/ogg\"];\r\n if (validTypes.indexOf(file.type) === -1) {\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const fileSize = (bytes) => {\r\n // new\r\n if (bytes === 0) return \"0 Bytes\";\r\n\r\n const k = 1024;\r\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\r\n\r\n const i = Math.floor(Math.log(bytes) / Math.log(k));\r\n\r\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + \" \" + sizes[i];\r\n };\r\n\r\n const fileType = (fileName) => {\r\n return (\r\n fileName.substring(fileName.lastIndexOf(\".\") + 1, fileName.length) ||\r\n fileName\r\n );\r\n };\r\n\r\n const removeFile = (name) => {\r\n const index = validFiles.findIndex((e) => e.name === name);\r\n const index2 = selectedFiles.findIndex((e) => e.name === name);\r\n const index3 = unsupportedFiles.findIndex((e) => e.name === name);\r\n validFiles.splice(index, 1);\r\n selectedFiles.splice(index2, 1);\r\n setValidFiles([...validFiles]);\r\n setSelectedFiles([...selectedFiles]);\r\n if (index3 !== -1) {\r\n // if \"file to be removed\" present in \"unsupported files\" remove it from \"unsupported files\"\r\n unsupportedFiles.splice(index3, 1);\r\n setUnsupportedFiles([...unsupportedFiles]);\r\n }\r\n };\r\n\r\n const openImageModal = (file) => {\r\n const reader = new FileReader();\r\n modalRef.current.style.display = \"block\";\r\n reader.readAsDataURL(file);\r\n reader.onload = function (e) {\r\n modalImageRef.current.style.backgroundImage = `url(${e.target.result})`;\r\n };\r\n };\r\n\r\n const closeModal = () => {\r\n modalRef.current.style.display = \"none\";\r\n modalImageRef.current.style.backgroundImage = \"none\";\r\n };\r\n\r\n // to be modified\r\n const uploadFiles = async () => {\r\n uploadModalRef.current.style.display = \"block\";\r\n uploadRef.current.innerHTML = \"File(s) Uploading...\";\r\n for (let i = 0; i < validFiles.length; i++) {\r\n const formData = new FormData();\r\n formData.append(\"image\", validFiles[i]);\r\n formData.append(\"key\", \"\");\r\n\r\n axios\r\n .post(\"https://api.imgbb.com/1/upload\", formData, {\r\n onUploadProgress: (progressEvent) => {\r\n const uploadPercentage = Math.floor(\r\n (progressEvent.loaded / progressEvent.total) * 100\r\n );\r\n progressRef.current.innerHTML = `${uploadPercentage}%`;\r\n progressRef.current.style.width = `${uploadPercentage}%`;\r\n\r\n if (uploadPercentage === 100) {\r\n uploadRef.current.innerHTML = \"File(s) Uploaded\";\r\n validFiles.length = 0;\r\n setValidFiles([...validFiles]);\r\n setSelectedFiles([...validFiles]);\r\n setUnsupportedFiles([...validFiles]);\r\n }\r\n },\r\n })\r\n .catch(() => {\r\n uploadRef.current.innerHTML = `<span class=\"error\">Error Uploading File(s)</span>`;\r\n progressRef.current.style.backgroundColor = \"red\";\r\n });\r\n }\r\n };\r\n // to be modified end\r\n\r\n const closeUploadModal = () => {\r\n uploadModalRef.current.style.display = \"none\";\r\n };\r\n\r\n return (\r\n <>\r\n <div className=\"container-fluid dropzone-container\">\r\n {unsupportedFiles.length ? (\r\n <p className=\"rm-unsupported-vid\">\r\n Please remove all unsupported files.\r\n </p>\r\n ) : (\r\n \"\"\r\n )}\r\n <div\r\n className=\"drop-container\"\r\n onDragOver={dragOver}\r\n onDragEnter={dragEnter}\r\n onDragLeave={dragLeave}\r\n onDrop={fileDrop}\r\n onClick={fileInputClicked}\r\n >\r\n <div className=\"drop-message\">\r\n <div className=\"upload-icon\"></div>\r\n Drag & Drop files here or click here to select file(s)\r\n </div>\r\n <input\r\n ref={fileInputRef}\r\n className=\"file-input\"\r\n type=\"file\"\r\n multiple\r\n onChange={filesSelected}\r\n />\r\n </div>\r\n <div>\r\n {validFiles.map((data, i) => (\r\n <div key={i}>\r\n <div className=\"file-status-bar\">\r\n <div\r\n // onClick={\r\n // !data.invalid\r\n // ? () => openImageModal(data)\r\n // : () => removeFile(data.name)\r\n // }\r\n onClick={\r\n data.invalid\r\n ? (e) => removeFile(data.name)\r\n : (e) => preventDefault(e)\r\n }\r\n >\r\n {/* <div className=\"file-type-logo\"></div> */}\r\n\r\n <span\r\n className={`file-name ${data.invalid ? \"file-error\" : \"\"}`}\r\n >\r\n <span className=\"file-type\">{fileType(data.name)}</span>\r\n {data.name}\r\n <span className=\"file-size\">\r\n ({fileSize(data.size)})\r\n </span>{\" \"}\r\n {data.invalid && (\r\n <span className=\"file-error-message\">\r\n ({errorMessage})\r\n </span>\r\n )}\r\n </span>\r\n </div>\r\n <div\r\n className=\"file-remove\"\r\n onClick={() => removeFile(data.name)}\r\n >\r\n X\r\n </div>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n {unsupportedFiles.length === 0 && validFiles.length ? (\r\n <div className=\"text-center\">\r\n <button\r\n className=\"btn btn-lg upload-video-btn\"\r\n onClick={() => uploadFiles()}\r\n >\r\n Upload Video\r\n </button>\r\n </div>\r\n ) : (\r\n \"\"\r\n )}\r\n </div>\r\n <div className=\"tatti-modal\" ref={modalRef}>\r\n <div className=\"overlay\"></div>\r\n <span className=\"close\" onClick={() => closeModal()}>\r\n X\r\n </span>\r\n <div className=\"modal-image\" ref={modalImageRef}></div>\r\n </div>\r\n\r\n <div className=\"upload-modal\" ref={uploadModalRef}>\r\n <div className=\"overlay\"></div>\r\n <div className=\"close\" onClick={() => closeUploadModal()}>\r\n X\r\n </div>\r\n <div className=\"progress-container\">\r\n <span ref={uploadRef}></span>\r\n <div className=\"progress\">\r\n <div className=\"progress-bar\" ref={progressRef}></div>\r\n </div>\r\n </div>\r\n </div>\r\n </>\r\n );\r\n};\r\n\r\nexport default Dropzone;\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/icons/AddAny.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/components/video/upload/VidState.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/actions/currentVideo.js",["472","473"],"import {\r\n SET_CURRENT_VIDEO,\r\n SET_CURRENT_VIDEO_ERROR,\r\n INCR_VIDEO_COUNT,\r\n UPDATE_VIDEO_LIKES,\r\n UPDATE_VIDEO_DISLIKES,\r\n} from \"./types\";\r\nimport axios from \"axios\";\r\nimport store from \"../store\";\r\nimport moment from \"moment\";\r\n\r\nexport const setCurrentVideo = (videoid) => async (dispatch) => {\r\n try {\r\n const res = await axios.get(`/api/video/get-video/${videoid}`);\r\n\r\n dispatch({\r\n type: SET_CURRENT_VIDEO,\r\n payload: { data: res.data, success: \"Video Obtained successfully\" },\r\n });\r\n } catch (error) {\r\n dispatch({\r\n type: SET_CURRENT_VIDEO_ERROR,\r\n payload: { error: \"Can't load the video\" },\r\n });\r\n }\r\n};\r\n\r\nexport const incrVideoViews = (videoid) => async (dispatch) => {\r\n try {\r\n const res = await axios.patch(\"/api/video/incr-video-views\", {\r\n videoid: videoid,\r\n });\r\n\r\n dispatch({\r\n type: INCR_VIDEO_COUNT,\r\n payload: { views: res.data.views },\r\n });\r\n } catch (error) {\r\n console.log(\"Video views can't be incremented\");\r\n }\r\n};\r\n\r\nexport const getRecommendedVideos = (userid) => async (dispatch) => {\r\n try {\r\n const res = await axios.post(\"/api/video/get-recm-videos\", {\r\n userid: userid,\r\n });\r\n\r\n console.log(res.data);\r\n } catch (error) {}\r\n};\r\n\r\nexport const updateVideoLikes = (userid, key) => async (dispatch) => {\r\n dispatch({\r\n type: UPDATE_VIDEO_LIKES,\r\n payload: { userid, key },\r\n });\r\n};\r\n\r\nexport const updateVideoDisLikes = (userid, key) => async (dispatch) => {\r\n dispatch({\r\n type: UPDATE_VIDEO_DISLIKES,\r\n payload: { userid, key },\r\n });\r\n};\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/reducers/currentVideo.js",["474","475"],"import {\r\n SET_CURRENT_VIDEO,\r\n SET_CURRENT_VIDEO_ERROR,\r\n INCR_VIDEO_COUNT,\r\n UPDATE_VIDEO_LIKES,\r\n UPDATE_VIDEO_DISLIKES,\r\n} from \"../actions/types\";\r\n\r\nconst initialState = {\r\n // not setting arrays or objects to null so that the methods in react-components might be valid\r\n comments: [],\r\n comments_sortby: null,\r\n created_at: null,\r\n description: null,\r\n dislikes: [],\r\n likes: [], // userids\r\n modified_at: null,\r\n owner: {},\r\n shares: [],\r\n tags: [],\r\n thumb_key: null,\r\n thumb_url: null,\r\n title: null,\r\n uploaded_by: [],\r\n video_key: null, // temporary\r\n video_url: null, // temporary\r\n video_visibility: null,\r\n views: 0,\r\n _id: null,\r\n error: null,\r\n success: null,\r\n};\r\n\r\nexport default function currentVideo(state = initialState, action) {\r\n // dispatched object will be in action\r\n const { type, payload } = action;\r\n\r\n switch (type) {\r\n case SET_CURRENT_VIDEO:\r\n return { ...state, ...payload.data, success: payload.success };\r\n case SET_CURRENT_VIDEO_ERROR:\r\n return { ...initialState, error: payload.error };\r\n case INCR_VIDEO_COUNT:\r\n return { ...state, views: payload.views };\r\n case UPDATE_VIDEO_LIKES:\r\n // for addition or removal userid should not be present in dislikes\r\n console.log(payload.key, payload.userid);\r\n\r\n if (payload.key === \"added\") {\r\n return {\r\n ...state,\r\n likes: [...state.likes, payload.userid],\r\n dislikes:\r\n state.dislikes.length > 0\r\n ? state.dislikes.filter((userid) => userid !== payload.userid)\r\n : [],\r\n };\r\n }\r\n if (payload.key === \"removed\") {\r\n return {\r\n ...state,\r\n likes:\r\n state.likes.length > 0\r\n ? state.likes.filter((userid) => userid !== payload.userid)\r\n : [],\r\n dislikes:\r\n state.dislikes.length > 0\r\n ? state.dislikes.filter((userid) => userid !== payload.userid)\r\n : [],\r\n };\r\n }\r\n case UPDATE_VIDEO_DISLIKES:\r\n // for addition or removal userid should not be present in likes\r\n if (payload.key === \"added\") {\r\n return {\r\n ...state,\r\n dislikes: [...state.dislikes, payload.userid],\r\n likes:\r\n state.likes.length > 0\r\n ? state.likes.filter((userid) => userid !== payload.userid)\r\n : [],\r\n };\r\n }\r\n if (payload.key === \"removed\") {\r\n return {\r\n ...state,\r\n dislikes:\r\n state.dislikes.length > 0\r\n ? state.dislikes.filter((userid) => userid !== payload.userid)\r\n : [],\r\n likes:\r\n state.likes.length > 0\r\n ? state.likes.filter((userid) => userid !== payload.userid)\r\n : [],\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/actions/recmVideo.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/reducers/recmVideo.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/utils/humanize.js",["476"],"const ALPHABET = \"KMGTPEZY\".split(\"\");\r\nconst THRESHOLD = 1e3;\r\n\r\nexport default function (n, fn) {\r\n n = Math.abs(n);\r\n var index = 0;\r\n while (n >= THRESHOLD && ++index < ALPHABET.length) {\r\n n /= THRESHOLD;\r\n }\r\n if (fn) n = fn(n);\r\n return index === 0 ? n : n + ALPHABET[index - 1];\r\n}\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/actions/likes.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/reducers/likes.js",["477","478","479"],"import {\r\n SET_USER_VID_LIKES,\r\n SET_USER_VID_DISLIKES,\r\n ADD_VID_LIKE,\r\n REMOVE_VID_LIKE,\r\n} from \"../actions/types\";\r\n\r\nconst initialState = {\r\n vidlikes: [],\r\n viddislikes: [],\r\n};\r\n\r\nexport default function (state = initialState, action) {\r\n const { type, payload } = action;\r\n\r\n switch (type) {\r\n case SET_USER_VID_LIKES:\r\n return { ...state, vidlikes: payload.vidlikes };\r\n case SET_USER_VID_DISLIKES:\r\n return { ...state, viddislikes: payload.viddislikes };\r\n default:\r\n return state;\r\n }\r\n}\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/actions/alert.js",[],"/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/utils/Alert.js",["480"],"import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { removeAlert } from \"../actions/alert\";\r\n\r\nconst Alert = ({ alert, removeAlert }) => {\r\n const closeBtnRef = React.useRef(null);\r\n\r\n React.useEffect(() => {\r\n let time = null;\r\n if (alert.msg.length > 0) {\r\n time = setTimeout(() => {\r\n closeBtnRef.current?.click(); // current can't be accessed when the modal is not visible so need to use *if condn*\r\n //removeAlert(); // alert.msg is changed\r\n }, alert.timeout);\r\n }\r\n // If manually clicked Interval will be cleared, this also prevents Memory Leak\r\n return () => {\r\n if (time) {\r\n clearInterval(time);\r\n }\r\n };\r\n }, [alert.msg]);\r\n\r\n return (\r\n alert.msg.length > 0 && (\r\n <div className=\"mx-2 fixed-top-20 text-center\" style={{ zIndex: \"1030\" }}>\r\n <div\r\n className={`alert alert-contain ${alert.alertType} fade show my-0`}\r\n role=\"alert\"\r\n >\r\n {alert.msg}\r\n <button\r\n ref={closeBtnRef}\r\n type=\"button\"\r\n className=\"btn-close-uni-alert ml-4 float-right\"\r\n onClick={() => removeAlert()}\r\n data-bs-dismiss=\"alert\"\r\n aria-label=\"Close\"\r\n ></button>\r\n </div>\r\n </div>\r\n )\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n alert: state.alert,\r\n});\r\n\r\nexport default connect(mapStateToProps, { removeAlert })(Alert);\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/reducers/channel.js",["481"],"import {\r\n SET_VIDEO_CHANNEL,\r\n FOLL_UNFOLLOW_CHANNEL,\r\n SET_CHANNEL_HOME_VIDEOS,\r\n SET_FEATURED_CHANNELS,\r\n} from \"../actions/types\";\r\n\r\nconst initialState = {\r\n // not setting arrays or objects to null so that the methods in react-components might be valid\r\n _id: null,\r\n title: null,\r\n description: null,\r\n channel_pic_url: null,\r\n channel_pic_key: null,\r\n channel_banner_url: null,\r\n channel_banner_key: null,\r\n created_at: null,\r\n modified_at: null,\r\n owned_by: null,\r\n followers: [],\r\n categories: [],\r\n other_links: [],\r\n featured_channels: [],\r\n channel_videos: [],\r\n};\r\n\r\nexport default function channel(state = initialState, action) {\r\n const { type, payload } = action;\r\n\r\n switch (type) {\r\n case SET_VIDEO_CHANNEL:\r\n return { ...state, ...payload.channel };\r\n case FOLL_UNFOLLOW_CHANNEL:\r\n // following, unfollowed keywords\r\n if (payload.msg.includes(\"following\")) {\r\n return { ...state, followers: [...state.followers, payload.userid] };\r\n }\r\n\r\n if (payload.msg.includes(\"unfollowed\")) {\r\n return {\r\n ...state,\r\n followers:\r\n state.followers.length > 0\r\n ? state.followers.filter((userid) => userid !== payload.userid)\r\n : [],\r\n };\r\n }\r\n case SET_CHANNEL_HOME_VIDEOS:\r\n return { ...state, channel_videos: [...payload.channel_videos] };\r\n case SET_FEATURED_CHANNELS:\r\n return { ...state, featured_channels: [...payload.featured_channels] };\r\n default:\r\n return state;\r\n }\r\n}\r\n","/mnt/c/Users/Parth979/Documents/workspace/Uni/client/src/actions/channel.js",[],{"ruleId":"482","replacedBy":"483"},{"ruleId":"484","replacedBy":"485"},{"ruleId":"486","severity":1,"message":"487","line":25,"column":8,"nodeType":"488","messageId":"489","endLine":25,"endColumn":13},{"ruleId":"486","severity":1,"message":"490","line":5,"column":8,"nodeType":"488","messageId":"489","endLine":5,"endColumn":17},{"ruleId":"486","severity":1,"message":"491","line":14,"column":9,"nodeType":"488","messageId":"489","endLine":14,"endColumn":19},{"ruleId":"492","severity":1,"message":"493","line":41,"column":6,"nodeType":"494","endLine":41,"endColumn":8,"suggestions":"495"},{"ruleId":"486","severity":1,"message":"496","line":11,"column":8,"nodeType":"488","messageId":"489","endLine":11,"endColumn":20},{"ruleId":"486","severity":1,"message":"497","line":12,"column":8,"nodeType":"488","messageId":"489","endLine":12,"endColumn":18},{"ruleId":"486","severity":1,"message":"498","line":13,"column":8,"nodeType":"488","messageId":"489","endLine":13,"endColumn":15},{"ruleId":"486","severity":1,"message":"499","line":15,"column":8,"nodeType":"488","messageId":"489","endLine":15,"endColumn":16},{"ruleId":"486","severity":1,"message":"500","line":5,"column":8,"nodeType":"488","messageId":"489","endLine":5,"endColumn":15},{"ruleId":"486","severity":1,"message":"501","line":9,"column":8,"nodeType":"488","messageId":"489","endLine":9,"endColumn":13},{"ruleId":"492","severity":1,"message":"502","line":24,"column":6,"nodeType":"494","endLine":24,"endColumn":8,"suggestions":"503"},{"ruleId":"492","severity":1,"message":"504","line":9,"column":6,"nodeType":"494","endLine":9,"endColumn":32,"suggestions":"505"},{"ruleId":"482","replacedBy":"506"},{"ruleId":"484","replacedBy":"507"},{"ruleId":"486","severity":1,"message":"508","line":2,"column":10,"nodeType":"488","messageId":"489","endLine":2,"endColumn":15},{"ruleId":"486","severity":1,"message":"509","line":13,"column":8,"nodeType":"488","messageId":"489","endLine":13,"endColumn":14},{"ruleId":"492","severity":1,"message":"510","line":78,"column":6,"nodeType":"494","endLine":78,"endColumn":13,"suggestions":"511"},{"ruleId":"492","severity":1,"message":"512","line":84,"column":6,"nodeType":"494","endLine":84,"endColumn":11,"suggestions":"513"},{"ruleId":"492","severity":1,"message":"514","line":90,"column":6,"nodeType":"494","endLine":90,"endColumn":23,"suggestions":"515"},{"ruleId":"492","severity":1,"message":"516","line":100,"column":6,"nodeType":"494","endLine":100,"endColumn":26,"suggestions":"517"},{"ruleId":"486","severity":1,"message":"518","line":2,"column":8,"nodeType":"488","messageId":"489","endLine":2,"endColumn":12},{"ruleId":"486","severity":1,"message":"519","line":3,"column":10,"nodeType":"488","messageId":"489","endLine":3,"endColumn":19},{"ruleId":"486","severity":1,"message":"520","line":1,"column":8,"nodeType":"488","messageId":"489","endLine":1,"endColumn":13},{"ruleId":"521","severity":1,"message":"522","line":22,"column":17,"nodeType":"523","endLine":25,"endColumn":19},{"ruleId":"486","severity":1,"message":"524","line":1,"column":17,"nodeType":"488","messageId":"489","endLine":1,"endColumn":25},{"ruleId":"486","severity":1,"message":"525","line":3,"column":10,"nodeType":"488","messageId":"489","endLine":3,"endColumn":14},{"ruleId":"486","severity":1,"message":"525","line":5,"column":10,"nodeType":"488","messageId":"489","endLine":5,"endColumn":14},{"ruleId":"492","severity":1,"message":"526","line":10,"column":6,"nodeType":"494","endLine":10,"endColumn":24,"suggestions":"527"},{"ruleId":"486","severity":1,"message":"528","line":8,"column":7,"nodeType":"488","messageId":"489","endLine":8,"endColumn":20},{"ruleId":"486","severity":1,"message":"529","line":5,"column":8,"nodeType":"488","messageId":"489","endLine":5,"endColumn":13},{"ruleId":"486","severity":1,"message":"530","line":6,"column":8,"nodeType":"488","messageId":"489","endLine":6,"endColumn":13},{"ruleId":"492","severity":1,"message":"531","line":27,"column":6,"nodeType":"494","endLine":27,"endColumn":11,"suggestions":"532"},{"ruleId":"533","severity":1,"message":"534","line":48,"column":33,"nodeType":"535","messageId":"536","endLine":48,"endColumn":35},{"ruleId":"486","severity":1,"message":"529","line":5,"column":8,"nodeType":"488","messageId":"489","endLine":5,"endColumn":13},{"ruleId":"486","severity":1,"message":"530","line":6,"column":8,"nodeType":"488","messageId":"489","endLine":6,"endColumn":13},{"ruleId":"492","severity":1,"message":"537","line":27,"column":6,"nodeType":"494","endLine":27,"endColumn":16,"suggestions":"538"},{"ruleId":"533","severity":1,"message":"534","line":47,"column":33,"nodeType":"535","messageId":"536","endLine":47,"endColumn":35},{"ruleId":"486","severity":1,"message":"529","line":4,"column":8,"nodeType":"488","messageId":"489","endLine":4,"endColumn":13},{"ruleId":"486","severity":1,"message":"530","line":5,"column":8,"nodeType":"488","messageId":"489","endLine":5,"endColumn":13},{"ruleId":"486","severity":1,"message":"539","line":5,"column":8,"nodeType":"488","messageId":"489","endLine":5,"endColumn":19},{"ruleId":"492","severity":1,"message":"514","line":33,"column":6,"nodeType":"494","endLine":33,"endColumn":17,"suggestions":"540"},{"ruleId":"521","severity":1,"message":"522","line":44,"column":19,"nodeType":"523","endLine":44,"endColumn":59},{"ruleId":"521","severity":1,"message":"522","line":47,"column":19,"nodeType":"523","endLine":47,"endColumn":56},{"ruleId":"486","severity":1,"message":"525","line":3,"column":10,"nodeType":"488","messageId":"489","endLine":3,"endColumn":14},{"ruleId":"492","severity":1,"message":"541","line":17,"column":6,"nodeType":"494","endLine":17,"endColumn":17,"suggestions":"542"},{"ruleId":"521","severity":1,"message":"522","line":53,"column":7,"nodeType":"523","endLine":56,"endColumn":9},{"ruleId":"486","severity":1,"message":"543","line":7,"column":16,"nodeType":"488","messageId":"489","endLine":7,"endColumn":23},{"ruleId":"521","severity":1,"message":"522","line":26,"column":21,"nodeType":"523","endLine":26,"endColumn":80},{"ruleId":"486","severity":1,"message":"544","line":4,"column":8,"nodeType":"488","messageId":"489","endLine":4,"endColumn":12},{"ruleId":"486","severity":1,"message":"545","line":8,"column":8,"nodeType":"488","messageId":"489","endLine":8,"endColumn":16},{"ruleId":"486","severity":1,"message":"546","line":12,"column":10,"nodeType":"488","messageId":"489","endLine":12,"endColumn":19},{"ruleId":"492","severity":1,"message":"547","line":28,"column":6,"nodeType":"494","endLine":28,"endColumn":17,"suggestions":"548"},{"ruleId":"521","severity":1,"message":"522","line":38,"column":19,"nodeType":"523","endLine":38,"endColumn":59},{"ruleId":"521","severity":1,"message":"522","line":41,"column":19,"nodeType":"523","endLine":41,"endColumn":56},{"ruleId":"521","severity":1,"message":"522","line":67,"column":7,"nodeType":"523","endLine":70,"endColumn":9},{"ruleId":"486","severity":1,"message":"549","line":25,"column":9,"nodeType":"488","messageId":"489","endLine":25,"endColumn":13},{"ruleId":"550","severity":1,"message":"551","line":44,"column":56,"nodeType":"552","messageId":"553","endLine":44,"endColumn":71,"fix":"554"},{"ruleId":"550","severity":1,"message":"555","line":62,"column":42,"nodeType":"552","messageId":"553","endLine":62,"endColumn":69,"fix":"556"},{"ruleId":"550","severity":1,"message":"557","line":99,"column":42,"nodeType":"552","messageId":"553","endLine":99,"endColumn":69,"fix":"558"},{"ruleId":"486","severity":1,"message":"559","line":3,"column":8,"nodeType":"488","messageId":"489","endLine":3,"endColumn":13},{"ruleId":"486","severity":1,"message":"560","line":15,"column":36,"nodeType":"488","messageId":"489","endLine":15,"endColumn":48},{"ruleId":"486","severity":1,"message":"561","line":1,"column":17,"nodeType":"488","messageId":"489","endLine":1,"endColumn":23},{"ruleId":"486","severity":1,"message":"524","line":1,"column":25,"nodeType":"488","messageId":"489","endLine":1,"endColumn":33},{"ruleId":"492","severity":1,"message":"562","line":43,"column":6,"nodeType":"494","endLine":43,"endColumn":21,"suggestions":"563"},{"ruleId":"486","severity":1,"message":"564","line":149,"column":9,"nodeType":"488","messageId":"489","endLine":149,"endColumn":23},{"ruleId":"486","severity":1,"message":"565","line":9,"column":8,"nodeType":"488","messageId":"489","endLine":9,"endColumn":13},{"ruleId":"486","severity":1,"message":"566","line":10,"column":8,"nodeType":"488","messageId":"489","endLine":10,"endColumn":14},{"ruleId":"567","severity":1,"message":"568","line":72,"column":5,"nodeType":"569","messageId":"570","endLine":96,"endColumn":8},{"ruleId":"567","severity":1,"message":"571","line":97,"column":5,"nodeType":"569","messageId":"572","endLine":98,"endColumn":20},{"ruleId":"573","severity":1,"message":"574","line":4,"column":1,"nodeType":"575","endLine":12,"endColumn":2},{"ruleId":"486","severity":1,"message":"576","line":4,"column":3,"nodeType":"488","messageId":"489","endLine":4,"endColumn":15},{"ruleId":"486","severity":1,"message":"577","line":5,"column":3,"nodeType":"488","messageId":"489","endLine":5,"endColumn":18},{"ruleId":"573","severity":1,"message":"574","line":13,"column":1,"nodeType":"575","endLine":24,"endColumn":2},{"ruleId":"492","severity":1,"message":"578","line":22,"column":6,"nodeType":"494","endLine":22,"endColumn":17,"suggestions":"579"},{"ruleId":"567","severity":1,"message":"568","line":48,"column":5,"nodeType":"569","messageId":"570","endLine":49,"endColumn":72},"no-native-reassign",["580"],"no-negated-in-lhs",["581"],"no-unused-vars","'Alert' is defined but never used.","Identifier","unusedVar","'NProgress' is defined but never used.","'loadingRef' is assigned a value but never used.","react-hooks/exhaustive-deps","React Hook React.useEffect has a missing dependency: 'formData'. Either include it or remove the dependency array. You can also do a functional update 'setFormData(f => ...)' if you only need 'formData' in the 'setFormData' call.","ArrayExpression",["582"],"'PlaylistIcon' is defined but never used.","'SavedPosts' is defined but never used.","'Uploads' is defined but never used.","'Settings' is defined but never used.","'iceland' is defined but never used.","'thumb' is defined but never used.","React Hook React.useEffect has missing dependencies: 'setUserData' and 'setUserVidLikes'. Either include them or remove the dependency array. If 'setUserData' changes too often, find the parent component that defines it and wrap that definition in useCallback.",["583"],"React Hook React.useEffect has an unnecessary dependency: 'window.location.pathname'. Either exclude it or remove the dependency array. Outer scope values like 'window.location.pathname' aren't valid dependencies because mutating them doesn't re-render the component.",["584"],["580"],["581"],"'Route' is defined but never used.","'chlpic' is defined but never used.","React Hook React.useEffect has a missing dependency: 'url'. Either include it or remove the dependency array. You can also do a functional update 'setUrl(u => ...)' if you only need 'url' in the 'setUrl' call.",["585"],"React Hook React.useEffect has missing dependencies: 'setUserVidDisLikes' and 'setUserVidLikes'. Either include them or remove the dependency array. If 'setUserVidLikes' changes too often, find the parent component that defines it and wrap that definition in useCallback.",["586"],"React Hook React.useEffect has a missing dependency: 'setVideoChannel'. Either include it or remove the dependency array. If 'setVideoChannel' changes too often, find the parent component that defines it and wrap that definition in useCallback.",["587"],"React Hook React.useEffect has missing dependencies: 'blindUserUpdate', 'incrVideoViews', and 'setCurrentVideo'. Either include them or remove the dependency array. If 'blindUserUpdate' changes too often, find the parent component that defines it and wrap that definition in useCallback.",["588"],"'HOBL' is defined but never used.","'useParams' is defined but never used.","'React' is defined but never used.","jsx-a11y/alt-text","img elements must have an alt prop, either with meaningful text, or an empty string for decorative images.","JSXOpeningElement","'useState' is defined but never used.","'Link' is defined but never used.","React Hook React.useEffect has missing dependencies: 'setRecmVideos' and 'userid'. Either include them or remove the dependency array. If 'setRecmVideos' changes too often, find the parent component that defines it and wrap that definition in useCallback.",["589"],"'FrequentChnls' is assigned a value but never used.","'pubgi' is defined but never used.","'pubgp' is defined but never used.","React Hook React.useEffect has a missing dependency: 'setFollowingChannels'. Either include it or remove the dependency array. If 'setFollowingChannels' changes too often, find the parent component that defines it and wrap that definition in useCallback.",["590"],"eqeqeq","Expected '!==' and instead saw '!='.","BinaryExpression","unexpected","React Hook React.useEffect has a missing dependency: 'setUserChannels'. Either include it or remove the dependency array. If 'setUserChannels' changes too often, find the parent component that defines it and wrap that definition in useCallback.",["591"],"'fourtothree' is defined but never used.",["592"],"React Hook React.useEffect has a missing dependency: 'setChannelHomeVideos'. Either include it or remove the dependency array. If 'setChannelHomeVideos' changes too often, find the parent component that defines it and wrap that definition in useCallback.",["593"],"'setData' is assigned a value but never used.","'valo' is defined but never used.","'humanize' is defined but never used.","'followers' is assigned a value but never used.","React Hook React.useEffect has a missing dependency: 'setFeaturedChannels'. Either include it or remove the dependency array. If 'setFeaturedChannels' changes too often, find the parent component that defines it and wrap that definition in useCallback.",["594"],"'cats' is assigned a value but never used.","no-useless-computed-key","Unnecessarily computed property [\"desc\"] found.","Property","unnecessarilyComputedProperty",{"range":"595","text":"596"},"Unnecessarily computed property [\"categories\"] found.",{"range":"597","text":"598"},"Unnecessarily computed property [\"otherLinks\"] found.",{"range":"599","text":"600"},"'upImg' is defined but never used.","'vidThumbnail' is assigned a value but never used.","'useRef' is defined but never used.","React Hook useEffect has a missing dependency: 'setValidFiles'. Either include it or remove the dependency array. If 'setValidFiles' changes too often, find the parent component that defines it and wrap that definition in useCallback.",["601"],"'openImageModal' is assigned a value but never used.","'store' is defined but never used.","'moment' is defined but never used.","no-fallthrough","Expected a 'break' statement before 'case'.","SwitchCase","case","Expected a 'break' statement before 'default'.","default","import/no-anonymous-default-export","Unexpected default export of anonymous function","ExportDefaultDeclaration","'ADD_VID_LIKE' is defined but never used.","'REMOVE_VID_LIKE' is defined but never used.","React Hook React.useEffect has a missing dependency: 'alert.timeout'. Either include it or remove the dependency array.",["602"],"no-global-assign","no-unsafe-negation",{"desc":"603","fix":"604"},{"desc":"605","fix":"606"},{"desc":"607","fix":"608"},{"desc":"609","fix":"610"},{"desc":"611","fix":"612"},{"desc":"613","fix":"614"},{"desc":"615","fix":"616"},{"desc":"617","fix":"618"},{"desc":"619","fix":"620"},{"desc":"621","fix":"622"},{"desc":"623","fix":"624"},{"desc":"625","fix":"626"},{"desc":"627","fix":"628"},[1484,1492],"\"desc\"",[2152,2166],"\"categories\"",[3606,3620],"\"otherLinks\"",{"desc":"629","fix":"630"},{"desc":"631","fix":"632"},"Update the dependencies array to be: [formData]",{"range":"633","text":"634"},"Update the dependencies array to be: [setUserData, setUserVidLikes]",{"range":"635","text":"636"},"Update the dependencies array to be: []",{"range":"637","text":"638"},"Update the dependencies array to be: [url, video]",{"range":"639","text":"640"},"Update the dependencies array to be: [_id, setUserVidDisLikes, setUserVidLikes]",{"range":"641","text":"642"},"Update the dependencies array to be: [setVideoChannel, video.owner._id]",{"range":"643","text":"644"},"Update the dependencies array to be: [blindUserUpdate, incrVideoViews, setCurrentVideo, userTheme, videoId]",{"range":"645","text":"646"},"Update the dependencies array to be: [current_video_id, setRecmVideos, userid]",{"range":"647","text":"648"},"Update the dependencies array to be: [_id, setFollowingChannels]",{"range":"649","text":"650"},"Update the dependencies array to be: [_id, sec, setUserChannels]",{"range":"651","text":"652"},"Update the dependencies array to be: [channelId, setVideoChannel]",{"range":"653","text":"654"},"Update the dependencies array to be: [channelId, setChannelHomeVideos]",{"range":"655","text":"656"},"Update the dependencies array to be: [channelId, setFeaturedChannels]",{"range":"657","text":"658"},"Update the dependencies array to be: [selectedFiles, setValidFiles]",{"range":"659","text":"660"},"Update the dependencies array to be: [alert.msg, alert.timeout]",{"range":"661","text":"662"},[1002,1004],"[formData]",[865,867],"[setUserData, setUserVidLikes]",[226,252],"[]",[2541,2548],"[url, video]",[2674,2679],"[_id, setUserVidDisLikes, setUserVidLikes]",[2793,2810],"[setVideoChannel, video.owner._id]",[3109,3129],"[blindUserUpdate, incrVideoViews, setCurrentVideo, userTheme, videoId]",[368,386],"[current_video_id, setRecmVideos, userid]",[892,897],"[_id, setFollowingChannels]",[870,880],"[_id, sec, setUserChannels]",[990,1001],"[channelId, setVideoChannel]",[494,505],"[channelId, setChannelHomeVideos]",[887,898],"[channelId, setFeaturedChannels]",[1245,1260],"[selectedFiles, setValidFiles]",[707,718],"[alert.msg, alert.timeout]"]