-
Notifications
You must be signed in to change notification settings - Fork 3
/
.eslintcache
1 lines (1 loc) · 127 KB
/
.eslintcache
1
[{"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\index.js":"1","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\App.js":"2","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Subscriber\\SubscriberLogin.js":"3","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Subscriber\\SubscriberDashboard.js":"4","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Subscriber\\SubscriberEmailVerify.js":"5","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Subscriber\\SubscriberVerify.js":"6","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Author\\AuthorVerify.js":"7","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Subscriber\\SubscriberForgetVerify.js":"8","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Subscriber\\SubscriberForgetPassword.js":"9","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Subscriber\\SubscriberSettings.js":"10","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Subscriber\\SubscriberSignup.js":"11","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Subscriber\\SubscriberProfile.js":"12","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Author\\AuthorDashboard.js":"13","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Author\\AuthorEmailVerify.js":"14","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Author\\AuthorForgetPassword.js":"15","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Author\\AuthorSettings.js":"16","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Author\\AuthorForgetVerify.js":"17","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Course\\CreateCourse.js":"18","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Author\\AuthorNewPassword.js":"19","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Subscriber\\SubscriberNewPassword.js":"20","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Author\\AuthorSignup.js":"21","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Author\\AuthorLogin.js":"22","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Course\\UploadCourse.js":"23","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Author\\AuthorProfile.js":"24","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Utils\\Home.js":"25","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Course\\CourseHome.js":"26","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Utils\\CourseCard.js":"27","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Utils\\verify.js":"28","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Subscriber\\SubscriberHeader.js":"29","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Author\\AuthorCourseCarousel.js":"30","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Subscriber\\SubscriberCourseCarousel.js":"31","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Author\\AuthorHeader.js":"32","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Utils\\VideoPlyar.js":"33","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Utils\\Footer.js":"34","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Utils\\HLSSource.js":"35","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Utils\\Header.js":"36","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Utils\\Carousel.js":"37","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Utils\\CategoriesDropdown.js":"38","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Utils\\HomeCarousel.js":"39","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Tests\\createTest.js":"40","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Tests\\questions.js":"41","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Tests\\testPreview.js":"42","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Course\\CourseView.js":"43","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Tests\\test.js":"44"},{"size":243,"mtime":1613812719880,"results":"45","hashOfConfig":"46"},{"size":5013,"mtime":1615924587845,"results":"47","hashOfConfig":"46"},{"size":3111,"mtime":1613812719854,"results":"48","hashOfConfig":"46"},{"size":2139,"mtime":1613812719843,"results":"49","hashOfConfig":"46"},{"size":541,"mtime":1613813469457,"results":"50","hashOfConfig":"46"},{"size":566,"mtime":1613813469458,"results":"51","hashOfConfig":"46"},{"size":510,"mtime":1613813469456,"results":"52","hashOfConfig":"46"},{"size":598,"mtime":1613813469457,"results":"53","hashOfConfig":"46"},{"size":2160,"mtime":1613809714184,"results":"54","hashOfConfig":"46"},{"size":5629,"mtime":1613812719866,"results":"55","hashOfConfig":"46"},{"size":4420,"mtime":1613809714197,"results":"56","hashOfConfig":"46"},{"size":14570,"mtime":1613812719865,"results":"57","hashOfConfig":"46"},{"size":1260,"mtime":1613812719790,"results":"58","hashOfConfig":"46"},{"size":551,"mtime":1613813469456,"results":"59","hashOfConfig":"46"},{"size":2169,"mtime":1613809714180,"results":"60","hashOfConfig":"46"},{"size":5556,"mtime":1613812719813,"results":"61","hashOfConfig":"46"},{"size":591,"mtime":1613812719790,"results":"62","hashOfConfig":"46"},{"size":19744,"mtime":1615995997450,"results":"63","hashOfConfig":"46"},{"size":3239,"mtime":1613809714180,"results":"64","hashOfConfig":"46"},{"size":3263,"mtime":1613809714185,"results":"65","hashOfConfig":"46"},{"size":4417,"mtime":1613809714182,"results":"66","hashOfConfig":"46"},{"size":3019,"mtime":1613812719792,"results":"67","hashOfConfig":"46"},{"size":9348,"mtime":1615887506130,"results":"68","hashOfConfig":"46"},{"size":16071,"mtime":1613812719812,"results":"69","hashOfConfig":"46"},{"size":1466,"mtime":1613812719878,"results":"70","hashOfConfig":"46"},{"size":9982,"mtime":1613812719816,"results":"71","hashOfConfig":"46"},{"size":881,"mtime":1613813469459,"results":"72","hashOfConfig":"46"},{"size":763,"mtime":1613809714198,"results":"73","hashOfConfig":"46"},{"size":3422,"mtime":1613812719844,"results":"74","hashOfConfig":"46"},{"size":3617,"mtime":1613812719774,"results":"75","hashOfConfig":"46"},{"size":3737,"mtime":1613812719842,"results":"76","hashOfConfig":"46"},{"size":3595,"mtime":1613812719791,"results":"77","hashOfConfig":"46"},{"size":743,"mtime":1614695978564,"results":"78","hashOfConfig":"46"},{"size":2653,"mtime":1613813469459,"results":"79","hashOfConfig":"46"},{"size":1045,"mtime":1613813469460,"results":"80","hashOfConfig":"46"},{"size":2699,"mtime":1613812719867,"results":"81","hashOfConfig":"46"},{"size":3603,"mtime":1613809714197,"results":"82","hashOfConfig":"46"},{"size":967,"mtime":1613813469458,"results":"83","hashOfConfig":"46"},{"size":1154,"mtime":1613813469460,"results":"84","hashOfConfig":"46"},{"size":4869,"mtime":1615924618360,"results":"85","hashOfConfig":"46"},{"size":2130,"mtime":1615653048679,"results":"86","hashOfConfig":"46"},{"size":2832,"mtime":1616010499122,"results":"87","hashOfConfig":"46"},{"size":3075,"mtime":1615888132573,"results":"88","hashOfConfig":"46"},{"size":2162,"mtime":1616011279249,"results":"89","hashOfConfig":"46"},{"filePath":"90","messages":"91","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},"1y1evg4",{"filePath":"93","messages":"94","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"95","messages":"96","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"97","messages":"98","errorCount":0,"warningCount":7,"fixableErrorCount":0,"fixableWarningCount":0,"source":"99","usedDeprecatedRules":"92"},{"filePath":"100","messages":"101","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"102","messages":"103","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"104","messages":"105","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"106","messages":"107","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"108","messages":"109","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"110","messages":"111","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"112","messages":"113","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"114","messages":"115","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"116","usedDeprecatedRules":"92"},{"filePath":"117","messages":"118","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"119","usedDeprecatedRules":"92"},{"filePath":"120","messages":"121","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"122","messages":"123","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"124","messages":"125","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"126","messages":"127","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"128","messages":"129","errorCount":0,"warningCount":15,"fixableErrorCount":0,"fixableWarningCount":0,"source":"130","usedDeprecatedRules":"92"},{"filePath":"131","messages":"132","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"133","messages":"134","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"135","messages":"136","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"137","messages":"138","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"139","messages":"140","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"141","usedDeprecatedRules":"92"},{"filePath":"142","messages":"143","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"144","usedDeprecatedRules":"92"},{"filePath":"145","messages":"146","errorCount":0,"warningCount":8,"fixableErrorCount":0,"fixableWarningCount":0,"source":"147","usedDeprecatedRules":"92"},{"filePath":"148","messages":"149","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"150","usedDeprecatedRules":"92"},{"filePath":"151","messages":"152","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"153","messages":"154","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"155","messages":"156","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"157","usedDeprecatedRules":"92"},{"filePath":"158","messages":"159","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"160","messages":"161","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"162","usedDeprecatedRules":"92"},{"filePath":"163","messages":"164","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"165","messages":"166","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"167","messages":"168","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"169","messages":"170","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"171","usedDeprecatedRules":"92"},{"filePath":"172","messages":"173","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"174","usedDeprecatedRules":"92"},{"filePath":"175","messages":"176","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"177","usedDeprecatedRules":"92"},{"filePath":"178","messages":"179","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"180","messages":"181","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"182","messages":"183","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"184","messages":"185","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"92"},{"filePath":"186","messages":"187","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"188","messages":"189","errorCount":0,"warningCount":7,"fixableErrorCount":0,"fixableWarningCount":0,"source":"190","usedDeprecatedRules":"92"},{"filePath":"191","messages":"192","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\index.js",[],["193","194"],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\App.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Subscriber\\SubscriberLogin.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Subscriber\\SubscriberDashboard.js",["195","196","197","198","199","200","201"],"import React, { useState, useEffect } from 'react';\r\nimport CourseCard from '../Utils/CourseCard';\r\nimport SubscriberHeader from './SubscriberHeader';\r\nimport Axios from 'axios';\r\nimport Swal from 'sweetalert2'\r\nimport SubscriberCourseCarousel from \"./SubscriberCourseCarousel\"\r\n\r\nimport '../styles/UserDashboard.css';\r\n\r\nexport default function SubscriberDashboard({ history }) {\r\n const [courseID,setcourseID] = useState('')\r\n\r\n const [courses, setCourses] = useState([]);\r\n const [status,setCourseStatus] = useState('')\r\n const [name, setName] = useState('');\r\n\r\n useEffect(() => {\r\n Axios.post('/subscriber/profile').then(res => {\r\n setName(res.data.profiledata.firstName);\r\n }).catch(error => {\r\n if(error.response.data.message === \"Unauthorised.\"){\r\n history.push('/subscriber/login');\r\n }\r\n else\r\n {\r\n Swal.fire({\r\n icon : 'error' ,\r\n text : `${error.response.data.message}`\r\n })\r\n }\r\n });\r\n\r\n // Axios.get('/subscriber/myCourses').then(res => {\r\n // console.log('Result : ', res.data.courseData);\r\n // console.log(\"efdef\",res.data.courseData[0].courseId)\r\n // setcourseID(res.data.courseData.courseId)\r\n // console.log(\"ID:\", courseID)\r\n // setCourses(res.data.courseData);\r\n // }).catch(error => {\r\n // if(error.response.data.message === \"Unauthorised.\"){\r\n // history.push('/subscriber/login');\r\n // }\r\n // else\r\n // {\r\n // setCourseStatus(\"No Courses\")\r\n // }\r\n // });\r\n }, []);\r\n\r\n return (\r\n <div>\r\n <SubscriberHeader history={history} />\r\n <div className=\"all\">\r\n <h1>Welcome {name}</h1>\r\n Use the Icon on the top right corner to Go to Profile/ Account Settings/ Log out!\r\n {status}\r\n \r\n <SubscriberCourseCarousel />\r\n </div>\r\n </div>\r\n );\r\n}\r\n","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Subscriber\\SubscriberEmailVerify.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Subscriber\\SubscriberVerify.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Author\\AuthorVerify.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Subscriber\\SubscriberForgetVerify.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Subscriber\\SubscriberForgetPassword.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Subscriber\\SubscriberSettings.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Subscriber\\SubscriberSignup.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Subscriber\\SubscriberProfile.js",["202","203","204","205"],"import React, { useState, useEffect } from 'react';\r\nimport SubscriberHeader from './SubscriberHeader';\r\nimport '../styles/UserProfile.css';\r\nimport { Form, FormInput, FormGroup } from 'shards-react';\r\nimport { Button } from 'shards-react';\r\nimport { Tabs, Tab } from 'react-bootstrap';\r\nimport Axios from 'axios';\r\nimport Swal from 'sweetalert2';\r\nimport axios from 'axios';\r\n\r\nexport default function SubscriberProfile({ history }) {\r\n const [url, setUrl] = useState('');\r\n const [imgStatus, setStatus] = useState('Upload Image');\r\n const [firstName, setfirstName] = useState('First Name');\r\n const [middleName, setmiddleName] = useState('Middle Name');\r\n const [lastName, setlastName] = useState('Last Name');\r\n const [phNum, setphNum] = useState('Phone Number');\r\n const [linkedInURL, setlinkedInURL] = useState('LinkedIn URL');\r\n const [twitterURL, settwitterURL] = useState('Twitter URL');\r\n const [higherEducation, sethigherEducation] = useState('Higher Education');\r\n const [areaOfInterest, setareaOfInterest] = useState('Area Of Interest');\r\n\r\n const ImageUpload = () => {\r\n const [file, setFile] = useState('');\r\n const [imagePreviewUrl, setImagePreview] = useState('');\r\n\r\n useEffect(() => {\r\n axios\r\n .post('/subscriber/profileImageView')\r\n .then(res => {\r\n const ext = res.data.url.slice(-2);\r\n if (ext === 'NA') {\r\n setStatus('Upload Image');\r\n } else {\r\n setStatus('Update Image');\r\n }\r\n setImagePreview(res.data.url);\r\n\r\n })\r\n .catch(error => {\r\n if (error.response.data.message === 'Unauthorised.') {\r\n history.push('/subscriber/login');\r\n } else {\r\n Swal.fire({\r\n icon: 'error',\r\n text: `${error.response.data.message}`\r\n });\r\n }\r\n });\r\n }, []);\r\n\r\n const _handleSubmit = e => {\r\n e.preventDefault();\r\n // TODO: do something with -> this.state.file\r\n console.log('handle uploading-', file);\r\n const formData = new FormData();\r\n formData.append('image', file);\r\n axios({\r\n method: 'post',\r\n url: '/subscriber/profileImageUpdate',\r\n data: formData\r\n })\r\n .then(res => {\r\n Swal.fire({\r\n icon: 'success',\r\n text: `${res.data.message}`\r\n });\r\n })\r\n .catch(error => {\r\n if (error.response.data.message === 'Unauthorised.') {\r\n history.push('/subscriber/login');\r\n } else {\r\n Swal.fire({\r\n icon: 'error',\r\n text: `${error.response.data.message}`\r\n });\r\n }\r\n });\r\n };\r\n\r\n const _handleImageChange = e => {\r\n e.preventDefault();\r\n\r\n let reader = new FileReader();\r\n let file = e.target.files[0];\r\n\r\n reader.onloadend = () => {\r\n setFile(file);\r\n setImagePreview(reader.result);\r\n };\r\n reader.readAsDataURL(file);\r\n };\r\n\r\n return (\r\n <div>\r\n <form onSubmit={e => _handleSubmit(e)}>\r\n <input className=\"ProfileImageInputButton\" type=\"file\" onChange={e => _handleImageChange(e)} />\r\n <Button className=\"ProfileImageSubmitButton\" type=\"submit\" onClick={e => _handleSubmit(e)}>\r\n {imgStatus}\r\n </Button>\r\n </form>\r\n <div style={{ textAlign: 'center', height: '100px', width: '100px', border: '5px solid gray' }}>\r\n {imagePreviewUrl ? (\r\n <img style={{ width: '100%', height: '100%' }} src={imagePreviewUrl} />\r\n ) : (\r\n <div>Please select an Image for Preview</div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n Axios.post('/subscriber/profile')\r\n .then(res => {\r\n console.log('Response Invalid: ', res);\r\n setUrl(res.data.url);\r\n console.log('Project : ', res.data);\r\n const {\r\n firstName,\r\n middleName,\r\n lastName,\r\n phNum,\r\n linkedInURL,\r\n twitterURL,\r\n higherEducation,\r\n areaOfInterest\r\n } = res.data.profiledata;\r\n\r\n setfirstName(firstName);\r\n setmiddleName(middleName);\r\n setlastName(lastName);\r\n setphNum(phNum);\r\n setlinkedInURL(linkedInURL);\r\n settwitterURL(twitterURL);\r\n sethigherEducation(higherEducation);\r\n setareaOfInterest(areaOfInterest);\r\n })\r\n .catch(error => {\r\n if (error.response.data.message == 'Unauthorised.') {\r\n history.push('/subscriber/login');\r\n } else {\r\n Swal.fire({\r\n icon: 'error',\r\n text: `${error.response.data.message}`\r\n });\r\n }\r\n });\r\n }, []);\r\n\r\n return (\r\n <div>\r\n <SubscriberHeader history={history} />\r\n <div>\r\n <Tabs id=\"profileTab\" className=\"profiletab\">\r\n <Tab eventKey=\"personal\" title=\"Personal Details\">\r\n <div className=\"ProfilePic\">\r\n <ImageUpload />\r\n </div>\r\n <Form className=\"subform\">\r\n <FormGroup>\r\n <label htmlFor=\"#firstName\">First Name</label>\r\n <FormInput id=\"#firstName\" value={firstName} onChange={e => setfirstName(e.target.value)} />\r\n </FormGroup>\r\n <FormGroup>\r\n <label htmlFor=\"#middleName\">Middle Name</label>\r\n <FormInput id=\"#middleName\" value={middleName} onChange={e => setmiddleName(e.target.value)} />\r\n </FormGroup>\r\n <FormGroup>\r\n <label htmlFor=\"#lastName\">Last Name</label>\r\n <FormInput id=\"#lastName\" value={lastName} onChange={e => setlastName(e.target.value)} />\r\n </FormGroup>\r\n <FormGroup>\r\n <label htmlFor=\"#phNum\">Phone Number</label>\r\n <FormInput id=\"#phNum\" value={phNum} onChange={e => setphNum(e.target.value)} />\r\n </FormGroup>\r\n <Button\r\n theme=\"info\"\r\n onClick={() => {\r\n Axios.post('/subscriber/update', {\r\n firstName,\r\n middleName,\r\n lastName,\r\n phNum,\r\n linkedInURL,\r\n twitterURL,\r\n higherEducation,\r\n areaOfInterest\r\n })\r\n .then(res => {\r\n Swal.fire({\r\n icon: 'success',\r\n text: `${res.data.message}`\r\n });\r\n })\r\n .catch(error => {\r\n if (error.response.data.message === 'Unauthorised.') {\r\n history.push('/subscriber/login');\r\n } else {\r\n Swal.fire({\r\n icon: 'error',\r\n text: `${error.response.data.message}`\r\n });\r\n }\r\n });\r\n }}\r\n >\r\n Update\r\n </Button>\r\n </Form>\r\n </Tab>\r\n <Tab eventKey=\"social\" title=\"Social Media Handles\">\r\n <Form className=\"subform\">\r\n <FormGroup>\r\n <label htmlFor=\"#linkedInURL\">LinkedIn URL</label>\r\n <FormInput id=\"#linkedInURL\" value={linkedInURL} onChange={e => setlinkedInURL(e.target.value)} />\r\n </FormGroup>\r\n <FormGroup>\r\n <label htmlFor=\"#twitterURL\">Twitter URL</label>\r\n <FormInput id=\"#twitterURL\" value={twitterURL} onChange={e => settwitterURL(e.target.value)} />\r\n </FormGroup>\r\n <Button\r\n theme=\"info\"\r\n onClick={() => {\r\n Axios.post('/subscriber/update', {\r\n firstName,\r\n middleName,\r\n lastName,\r\n phNum,\r\n linkedInURL,\r\n twitterURL,\r\n higherEducation,\r\n areaOfInterest\r\n }).then(res => {\r\n Swal.fire({\r\n icon : 'success' ,\r\n text : `${res.data.message}`\r\n })\r\n }).catch(error => {\r\n if(error.response.data.message === \"Unauthorised.\"){\r\n history.push('/subscriber/login');\r\n }\r\n else\r\n {\r\n Swal.fire({\r\n icon : 'error' ,\r\n text : `${error.response.data.message}`\r\n })\r\n }\r\n });;\r\n }}\r\n >\r\n Update\r\n </Button>\r\n </Form>\r\n </Tab>\r\n <Tab eventKey=\"education\" title=\"Education\">\r\n <Form className=\"subform\">\r\n <FormGroup>\r\n <label htmlFor=\"#higherEducation\">Higher Education</label>\r\n <FormInput\r\n id=\"#higherEducation\"\r\n value={higherEducation}\r\n onChange={e => sethigherEducation(e.target.value)}\r\n />\r\n </FormGroup>\r\n <FormGroup>\r\n <label htmlFor=\"#areaOfInterest\">Area of Interest</label>\r\n <FormInput id=\"#areaOfInterest\" value={areaOfInterest} onChange={e => setareaOfInterest(e.target.value)} />\r\n </FormGroup>\r\n <Button\r\n theme=\"info\"\r\n onClick={() => {\r\n Axios.post('/subscriber/update', {\r\n firstName,\r\n middleName,\r\n lastName,\r\n phNum,\r\n linkedInURL,\r\n twitterURL,\r\n higherEducation,\r\n areaOfInterest\r\n }).then(res => {\r\n Swal.fire({\r\n icon : 'success' ,\r\n text : `${res.data.message}`\r\n })\r\n }).catch(error => {\r\n if(error.response.data.message === \"Unauthorised.\"){\r\n history.push('/subscriber/login');\r\n }\r\n else\r\n {\r\n Swal.fire({\r\n icon : 'error' ,\r\n text : `${error.response.data.message}`\r\n })\r\n }\r\n });;\r\n }}\r\n >\r\n Update\r\n </Button>\r\n </Form>\r\n </Tab>\r\n </Tabs>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Author\\AuthorDashboard.js",["206"],"import React, { useState, useEffect } from 'react';\r\nimport AuthorHeader from './AuthorHeader';\r\nimport '../styles/UserDashboard.css';\r\nimport Axios from 'axios';\r\nimport AuthorCourseCarousel from './AuthorCourseCarousel';\r\nimport Swal from 'sweetalert2';\r\n\r\nexport default function AuthorDashboard({ history }) {\r\n const [name, setName] = useState('');\r\n\r\n useEffect(() => {\r\n Axios.post('/author/profile')\r\n .then(res => {\r\n setName(res.data.profiledata.firstName);\r\n })\r\n .catch(error => {\r\n if (error.response.data.message === 'Unauthorised.') {\r\n history.push('/author/login');\r\n } else {\r\n Swal.fire({\r\n icon: 'error',\r\n text: `${error.response.data.message}`\r\n });\r\n }\r\n });\r\n }, []);\r\n\r\n return (\r\n <div>\r\n <AuthorHeader history={history} />\r\n <div className=\"all\">\r\n <h1>Welcome {name}!</h1>\r\n Use the Icon on the top right corner to Go to Profile/ Account Settings/ Log out!\r\n <AuthorCourseCarousel />\r\n </div>\r\n </div>\r\n );\r\n}\r\n","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Author\\AuthorEmailVerify.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Author\\AuthorForgetPassword.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Author\\AuthorSettings.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Author\\AuthorForgetVerify.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Course\\CreateCourse.js",["207","208","209","210","211","212","213","214","215","216","217","218","219","220","221"],"import React, { useEffect, useState } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport StepProgressBar from 'react-step-progress';\r\nimport 'react-step-progress/dist/index.css';\r\nimport { Form, FormInput, FormGroup, Button } from 'shards-react';\r\nimport '../styles/CreateCourse.css';\r\nimport { Card, CardTitle, CardBody } from 'shards-react';\r\nimport { Image } from 'react-bootstrap';\r\nimport 'antd/dist/antd.css';\r\nimport { message } from 'antd';\r\nimport ImgCrop from 'antd-img-crop';\r\nimport { Slider } from 'antd';\r\nimport axios from 'axios';\r\nimport { Upload } from 'antd';\r\n\r\nimport Swal from 'sweetalert2'\r\n\r\nexport default function CreateCourse() {\r\n let history = useHistory();\r\n const [courseId, setCourseId] = useState('');\r\n \r\n useEffect(() => {});\r\n\r\n\r\n const PreviewVedioUpload = () => {\r\n const [vedioFile, setVedioFile] = useState(null);\r\n function handelFileChange(e) {\r\n setVedioFile(e.target.files[0]);\r\n }\r\n function handleSubmit() {\r\n const formData = new FormData();\r\n formData.append('image', vedioFile);\r\n\r\n formData.append('courseId', history.location.state.id); //Inserting course ID maunually \r\n axios({\r\n method: 'post',\r\n url: '/author/uploadPreview',\r\n\r\n data: formData \r\n }).then(res=>{\r\n Swal.fire({\r\n icon : 'success' ,\r\n text : `${res.data.message}`\r\n })\r\n }).catch(error=>{\r\n if(error.response.data.message === \"Unauthorised.\"){\r\n history.push('/author/login');\r\n }\r\n else\r\n {\r\n Swal.fire({\r\n icon : 'error' ,\r\n text : `${error.response.data.message}`\r\n })\r\n }\r\n })\r\n }\r\n return (\r\n <div>\r\n <input type=\"file\" onChange={e => handelFileChange(e)} />\r\n <br />\r\n <button onClick={handleSubmit}>Upload</button>\r\n </div>\r\n );\r\n };\r\n \r\n\r\n const ImageUpload = () => {\r\n const [file, setFile] = useState('');\r\n const [imagePreviewUrl, setImagePreview] = useState('');\r\n const _handleSubmit = e => {\r\n e.preventDefault();\r\n console.log('handle uploading-', file);\r\n const formData = new FormData();\r\n formData.append('image', file);\r\n\r\n\r\n formData.append('courseId' , history.location.state.id ) // Inserting course Id manually \r\n axios({\r\n method: 'post',\r\n url: '/author/uploadThumbnail',\r\n\r\n data: formData \r\n }).then(res=>{\r\n Swal.fire({\r\n icon : 'success' ,\r\n text : `${res.data.message}`\r\n })\r\n }).catch(error=>{\r\n if(error.response.data.message === \"Unauthorised.\"){\r\n history.push('/author/login');\r\n }\r\n else\r\n {\r\n Swal.fire({\r\n icon : 'error' ,\r\n text : `${error.response.data.message}`\r\n })\r\n }\r\n })\r\n }\r\n\r\n\r\n const _handleImageChange = e => {\r\n e.preventDefault();\r\n let reader = new FileReader();\r\n let file = e.target.files[0];\r\n reader.onloadend = () => {\r\n setFile(file);\r\n setImagePreview(reader.result);\r\n };\r\n reader.readAsDataURL(file);\r\n };\r\n return (\r\n <div>\r\n <form onSubmit={e => _handleSubmit(e)}>\r\n <input type=\"file\" onChange={e => _handleImageChange(e)} />\r\n <button type=\"submit\" onClick={e => _handleSubmit(e)}>\r\n Upload Image\r\n </button>\r\n </form>\r\n <div style={{ textAlign: 'center', height: '100px', width: '100px', border: '5px solid gray' }}>\r\n {imagePreviewUrl ? (\r\n <img style={{ width: '100%', height: '100%' }} src={imagePreviewUrl} />\r\n ) : (\r\n <div>Please select an Image for Preview</div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n };\r\n\r\n // Course Thumbnail\r\n const CourseThumbnail = () => {\r\n const [fileList, setFileList] = useState([]);\r\n\r\n const onChange = ({ fileList: newFileList }) => {\r\n setFileList(newFileList);\r\n };\r\n\r\n const onPreview = async file => {\r\n let src = file.url;\r\n if (!src) {\r\n src = await new Promise(resolve => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file.originFileObj);\r\n reader.onload = () => resolve(reader.result);\r\n });\r\n }\r\n const image = new Image();\r\n image.src = src;\r\n const imgWindow = window.open(src);\r\n imgWindow.document.write(image.outerHTML);\r\n };\r\n\r\n return (\r\n <ImgCrop rotate>\r\n <Upload\r\n action=\"https://www.mocky.io/v2/5cc8019d300000980a055e76\"\r\n listType=\"picture-card\"\r\n fileList={fileList}\r\n onChange={onChange}\r\n onPreview={onPreview}\r\n >\r\n {fileList.length < 1 && '+ Upload'}\r\n </Upload>\r\n </ImgCrop>\r\n );\r\n };\r\n\r\n // Preview Video\r\n const previewprops = {\r\n name: 'file',\r\n action: 'author/uploadThumbnailPreview',\r\n headers: {\r\n authorization: 'authorization-text'\r\n },\r\n onChange(info) {\r\n if (info.file.status !== 'uploading') {\r\n console.log(info.file, info.fileList);\r\n }\r\n if (info.file.status === 'done') {\r\n message.success(`${info.file.name} file uploaded successfully`);\r\n } else if (info.file.status === 'error') {\r\n message.error(`${info.file.name} file upload failed.`);\r\n console.log('error ; ', info);\r\n }\r\n }\r\n };\r\n\r\n // Price Slider\r\n class PriceSlider extends React.Component {\r\n state = {\r\n disabled: false\r\n };\r\n\r\n handleDisabledChange = disabled => {\r\n this.setState({ disabled });\r\n };\r\n\r\n render() {\r\n const { disabled } = this.state;\r\n return (\r\n <>\r\n <Slider min={500} max={5000} range defaultValue={[700, 1500]} disabled={disabled} />\r\n </>\r\n );\r\n }\r\n }\r\n\r\n function Section({ sectionId }) {\r\n const [section, createSection] = useState(true);\r\n const [sectionName, setSectionName] = useState('');\r\n\r\n console.log('$$$$$$$$$$$$ Secid : ', sectionId);\r\n\r\n const [fields, setFields] = useState([{ lectureName: '', lectureFile: null }]);\r\n\r\n function handleAdd() {\r\n const values = [...fields];\r\n values.push({ lectureName: '', lectureFile: null });\r\n setFields(values);\r\n }\r\n\r\n function handleRemove(i) {\r\n const values = [...fields];\r\n values.splice(i, 1);\r\n setFields(values);\r\n }\r\n\r\n function handleNameChange(i, event) {\r\n const values = [...fields];\r\n values[i].lectureName = event.target.value;\r\n setFields(values);\r\n }\r\n function handleFileChange(i, event) {\r\n const values = [...fields];\r\n values[i].lectureFile = event.target.files[0];\r\n setFields(values);\r\n }\r\n\r\n function saveLecture(i) {\r\n const values = [...fields];\r\n const formData = new FormData();\r\n formData.append('image', values[i].lectureFile);\r\n formData.append('vedioName', `${values[i].lectureName}`);\r\n formData.append('sectionId', `${sectionId}`);\r\n axios({\r\n method: 'post',\r\n url: '/author/add-video',\r\n data: formData\r\n }).then(res=>{\r\n Swal.fire({\r\n icon : 'success' ,\r\n text : `${res.data.message}`\r\n })\r\n }).catch(error=>{\r\n if(error.response.data.message === \"Unauthorised.\"){\r\n history.push('/author/login');\r\n }\r\n else\r\n {\r\n Swal.fire({\r\n icon : 'error' ,\r\n text : `${error.response.data.message}`\r\n })\r\n }\r\n });\r\n }\r\n\r\n return (\r\n <div>\r\n <Card className=\"CrCoCard\">\r\n <CardBody>\r\n <CardTitle>\r\n <h4>Section Name here</h4>\r\n </CardTitle>\r\n {fields.map((field, idx) => {\r\n return (\r\n <div key={`${field}-${idx}`}>\r\n <FormInput\r\n className=\"videoIp\"\r\n type=\"text\"\r\n placeholder=\"Enter Lecture Name and attach file\"\r\n value={field.lectureName || ''}\r\n onChange={e => handleNameChange(idx, e)}\r\n />\r\n <FormInput\r\n className=\"videoIp\"\r\n type=\"file\"\r\n placeholder=\"Upload File\"\r\n onChange={e => handleFileChange(idx, e)}\r\n />\r\n <Button theme=\"success\" className=\"CrCoSaveLectureBut\" type=\"button\" onClick={() => saveLecture(idx)}>\r\n Save Lecture\r\n </Button>\r\n </div>\r\n );\r\n })}\r\n <Button theme=\"success\" className=\"CrCoAddLectureBut\" type=\"button\" onClick={() => handleAdd()}>\r\n Add Lecture\r\n </Button>\r\n <Button\r\n theme=\"success\"\r\n className=\"CrCoShowStateBut\"\r\n type=\"button\"\r\n onClick={() => {\r\n console.log('Feilds : ', fields);\r\n }}\r\n >\r\n Show State\r\n </Button>\r\n </CardBody>\r\n </Card>\r\n </div>\r\n );\r\n }\r\n\r\n function SectionContainer() {\r\n // const courseId = '60040cd8ca5848206b593c67'\r\n const [sections, setSections] = useState([{ sectionNumber: 0, sectionSaved: false, sectionName: '', sectionId: '' }]);\r\n const [sectionCount, setSectionCount] = useState(0);\r\n const [name, setName] = useState('');\r\n\r\n const saveSection = i => {\r\n setSectionCount(sectionCount + 1);\r\n axios\r\n .post('/author/create-section', {\r\n number: sectionCount,\r\n sectionName: name,\r\n courseId: `${history.location.state.id}`\r\n //courseId: '6006db170db0231310bd4728'\r\n })\r\n .then(res => {\r\n const values = [...sections];\r\n values[i].sectionNumber = sectionCount;\r\n values[i].sectionSaved = true;\r\n values[i].sectionName = name;\r\n values[i].sectionId = `${res.data.sectionId}`;\r\n setSections(values);\r\n })\r\n .catch(error => {\r\n if(error.response.data.message === \"Unauthorised.\"){\r\n history.push('/author/login');\r\n }\r\n else\r\n {\r\n Swal.fire({\r\n icon : 'error' ,\r\n text : `${error.response.data.message}`\r\n })\r\n }\r\n });\r\n };\r\n const addSection = () => {\r\n setName('');\r\n const values = [...sections];\r\n values.push({ sectionNumber: 0, sectionSaved: false, sectionName: '', sectionId: '' });\r\n setSections(values);\r\n };\r\n\r\n return (\r\n <div>\r\n {sections.map((section, idx) => {\r\n return !section.sectionSaved ? (\r\n <div>\r\n <FormInput\r\n className=\"videoIp\"\r\n type=\"text\"\r\n placeholder=\"Enter Section Name\"\r\n value={name || ''}\r\n onChange={e => setName(e.target.value)}\r\n />\r\n\r\n <Button theme=\"success\" className=\"CrCoSaveSecBut\" type=\"button\" onClick={() => saveSection(idx)}>\r\n Save Section\r\n </Button>\r\n </div>\r\n ) : (\r\n <div>\r\n <Section sectionId={section.sectionId} />\r\n </div>\r\n );\r\n })}\r\n <Button className=\"CrCoAddSectionBtn\" theme=\"success\" type=\"button\" onClick={addSection}>\r\n Add Section\r\n </Button>\r\n </div>\r\n );\r\n }\r\n\r\n const step1Content = (\r\n <div>\r\n <Card className=\"createcard\" style={{ maxWidth: '1500px' }}>\r\n <CardBody>\r\n <div className=\"step2\">\r\n <Form>\r\n <label className=\"labelstep2\" htmlFor=\"name\">\r\n Section Name:\r\n </label>\r\n </Form>\r\n </div>\r\n <SectionContainer />\r\n </CardBody>\r\n </Card>\r\n </div>\r\n );\r\n\r\n const step2Content = (\r\n <div>\r\n <Card className=\"createcard\" style={{ maxWidth: '1500px' }}>\r\n <CardBody>\r\n <div className=\"step2\">\r\n Add a thumbnail and preview\r\n <div className=\"thumbnailUpload\">\r\n <h4>Thumbnail</h4>\r\n <ImageUpload />\r\n </div>\r\n <div className=\"previewUpload\">\r\n <h4>Preview</h4>\r\n\r\n <PreviewVedioUpload />\r\n </div>\r\n <Form>\r\n <FormGroup></FormGroup>\r\n </Form>\r\n </div>\r\n </CardBody>\r\n </Card>\r\n </div>\r\n );\r\n\r\n const step3Content = (\r\n <div>\r\n <Card className=\"createcard\" style={{ maxWidth: '1500px' }}>\r\n <CardBody>\r\n <div className=\"priceRange\">\r\n What price range would to like to set for your course\r\n <FormGroup>\r\n <FormInput type=\"text\"></FormInput>\r\n </FormGroup>\r\n </div>\r\n <Form>\r\n <label className=\"labelstep2\" htmlFor=\"name\">\r\n Would you like to add any coupons?:\r\n </label>\r\n <FormGroup>\r\n <FormInput type=\"text\"></FormInput>\r\n </FormGroup>\r\n </Form>\r\n </CardBody>\r\n </Card>\r\n </div>\r\n );\r\n\r\n const step4Content = (\r\n <div>\r\n <Card className=\"createcard\" style={{ maxWidth: '1500px' }}>\r\n <CardBody>\r\n <div className=\"previewCourse\">Please Confirm all the data before submitting your course for preview</div>\r\n </CardBody>\r\n </Card>\r\n </div>\r\n );\r\n\r\n // setup step validators, will be called before proceeding to the next step\r\n function step1Validator() {\r\n // return a boolean\r\n }\r\n\r\n function step2Validator() {\r\n // return a boolean\r\n }\r\n\r\n function step3Validator() {\r\n // return a boolean\r\n }\r\n\r\n function step4Validator() {\r\n // return a boolean\r\n }\r\n\r\n function onFormSubmit() {\r\n // handle the submit logic here\r\n // This function will be executed at the last step\r\n // when the submit button (next button in the previous steps) is pressed\r\n history.push('/course/create');\r\n }\r\n \r\n return (\r\n <div>\r\n {/* <AuthorHeader /> */}\r\n <div className=\"createheader\">\r\n <Button className=\"buttonexitc\" theme=\"outline-danger\" href=\"/author/dashboard\">\r\n Exit\r\n </Button>\r\n <div className=\"createheading\">Let's Set-up your Course!</div>\r\n <Button className=\"buttonbackc\" theme=\"outline-danger\" href=\"/author/uploadcourse\">\r\n Back\r\n </Button>\r\n </div>\r\n <div className=\"ui divider\"></div>\r\n <div className=\"stepbar\">\r\n <StepProgressBar\r\n startingStep={0}\r\n onSubmit={onFormSubmit}\r\n steps={[\r\n {\r\n label: 'Step 1',\r\n name: 'step 1',\r\n subtitle: 'Course Curiculam and Content',\r\n content: step1Content\r\n // validator: step1Validator\r\n },\r\n {\r\n label: 'Step 2',\r\n name: 'step 2',\r\n subtitle: 'Course Preview and Thumbnail',\r\n content: step2Content\r\n // validator: step2Validator\r\n },\r\n {\r\n label: 'Step 3',\r\n name: 'step 3',\r\n subtitle: 'Pricing and Coupons',\r\n content: step3Content\r\n // validator: step3Validator\r\n },\r\n {\r\n label: 'Step 4',\r\n name: 'step 4',\r\n subtitle: 'Submit for Preview',\r\n content: step4Content\r\n // validator: step4Validator\r\n }\r\n ]}\r\n />\r\n </div>\r\n </div>\r\n );\r\n}\r\n","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Author\\AuthorNewPassword.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Subscriber\\SubscriberNewPassword.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Author\\AuthorSignup.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Author\\AuthorLogin.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Course\\UploadCourse.js",["222","223","224","225","226","227"],"import React, { useState } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport StepProgressBar from 'react-step-progress';\r\nimport 'react-step-progress/dist/index.css';\r\nimport { Form, FormInput, FormGroup, FormTextarea, Button } from 'shards-react';\r\nimport '../styles/UploadCourse.css';\r\nimport { Dropdown} from 'react-bootstrap';\r\nimport { Card, CardTitle,CardBody } from 'shards-react';\r\nimport axios from 'axios';\r\nimport Swal from 'sweetalert2'\r\n\r\nexport default function UploadCourse() {\r\n const [title, setTitle] = useState('Course Name');\r\n const [description, setDescription] = useState('');\r\n const [category, setCategory] = useState('');\r\n const [suitableFor, setSuitableFor] = useState('');\r\n const [platform, setPlatform] = useState('');\r\n const [prerequisite, setPrerequisite] = useState('');\r\n const [cat,setCat] = useState('Choose a Category');\r\n // setup the step content\r\n let history = useHistory();\r\n const step1Content = (\r\n <div>\r\n <Card className=\"uploadcard\" style={{ maxWidth: '1500px' }}>\r\n <CardBody>\r\n <CardTitle className=\"institle\">Instructions</CardTitle>\r\n <p>Instructions will be entered here</p>\r\n </CardBody>\r\n </Card>\r\n </div>\r\n );\r\n\r\n const step2Content = (\r\n <div>\r\n <Card className=\"uploadcard\" style={{ maxWidth: '1500px' }}>\r\n <CardBody>\r\n <div className=\"step2\">\r\n <Form>\r\n <FormGroup>\r\n <label className=\"labelstep2\" htmlFor=\"name\">\r\n What would you like to name your course?\r\n </label>\r\n\r\n <FormInput\r\n type=\"text\"\r\n id=\"title\"\r\n onChange={e => setTitle(e.target.value)}\r\n placeholder=\"Enter Something..\"\r\n ></FormInput>\r\n </FormGroup>\r\n <FormGroup>\r\n <label className=\"labelstep2\" htmlFor=\"desc\">\r\n Give a short Description about your course!\r\n </label>\r\n <FormTextarea\r\n rows=\"5\"\r\n type=\"text\"\r\n id=\"desc\"\r\n onChange={e => setDescription(e.target.value)}\r\n placeholder=\"Enter Something..\"\r\n />\r\n </FormGroup>\r\n </Form>\r\n </div>\r\n </CardBody>\r\n </Card>\r\n </div>\r\n );\r\n\r\n const step3Content = (\r\n <div>\r\n <Card className=\"uploadcard\" style={{ maxWidth: '1500px' }}>\r\n <CardBody>\r\n <div className=\"step3\">\r\n <label className=\"labelstep3\" htmlFor=\"dropdown\">\r\n Where would you categorize your course?\r\n </label>\r\n <Dropdown className=\"createdropdown\">\r\n <Dropdown.Toggle variant=\"outline-primary\" id=\"dropdown-basic\">\r\n Choose\r\n </Dropdown.Toggle>\r\n {/* <input type=\"text\" onChange={e => setCategory(e.target.value)} /> */}\r\n <Dropdown.Menu>\r\n <Dropdown.Item onClick={e=>setCategory('Development')}>Development</Dropdown.Item>\r\n <Dropdown.Item onClick={e=>setCategory(\"Business\")}>Business</Dropdown.Item>\r\n <Dropdown.Item onClick={e=>setCategory(\"Finance & Accounting\")}>Finance & Accounting</Dropdown.Item>\r\n <Dropdown.Item onClick={e=>setCategory(\"IT & Software\")}>IT & Software</Dropdown.Item>\r\n <Dropdown.Item onClick={e=>setCategory(\"Marketing\")}>Marketing</Dropdown.Item>\r\n <Dropdown.Item onClick={e=>setCategory(\"Photography\")}>Photography</Dropdown.Item>\r\n </Dropdown.Menu>\r\n </Dropdown>\r\n </div>\r\n </CardBody>\r\n </Card>\r\n </div>\r\n );\r\n\r\n const step4Content = (\r\n <Card className=\"uploadcard\" style={{ maxWidth: '1500px' }}>\r\n <CardBody>\r\n <div className=\"step4\">\r\n <Form>\r\n <FormGroup>\r\n <label className=\"labelstep4\" htmlFor=\"suit\">\r\n For whom this course will be suitable for?\r\n </label>\r\n <FormInput\r\n type=\"suit\"\r\n id=\"suit\"\r\n onChange={e => {\r\n setSuitableFor(e.target.value);\r\n }}\r\n placeholder=\"Enter Something..\"\r\n />\r\n </FormGroup>\r\n <FormGroup>\r\n <label className=\"labelstep4\" htmlFor=\"platform\">\r\n Platform?\r\n </label>\r\n <FormInput\r\n type=\"text\"\r\n id=\"platform\"\r\n onChange={e => {\r\n setPlatform(e.target.value);\r\n }}\r\n placeholder=\"Enter Something..\"\r\n />\r\n </FormGroup>\r\n <FormGroup>\r\n <label className=\"labelstep4\" htmlFor=\"prerequisites\">\r\n Any prerequisites?\r\n </label>\r\n <FormInput\r\n type=\"suit\"\r\n id=\"prerequisites\"\r\n onChange={e => {\r\n setPrerequisite(e.target.value);\r\n }}\r\n placeholder=\"Enter Something..\"\r\n />\r\n </FormGroup>\r\n </Form>\r\n </div>\r\n </CardBody>\r\n </Card>\r\n );\r\n\r\n // setup step validators, will be called before proceeding to the next step\r\n function step1Validator() {\r\n // return a boolean\r\n }\r\n\r\n function step2Validator() {\r\n // return a boolean\r\n }\r\n\r\n function step3Validator() {\r\n // return a boolean\r\n }\r\n\r\n function step4Validator() {\r\n // return a boolean\r\n }\r\n\r\n function onFormSubmit() {\r\n console.log(category)\r\n axios.post('/author/create-course', { title, description, category, suitableFor, platform, prerequisite }).then(res => {\r\n console.log(res.data.courseId);\r\n history.push({\r\n pathname: '/course/create',\r\n state: { id: res.data.courseId }\r\n });\r\n }).catch(error=>{\r\n if(error.response.data.message === \"Unauthorised.\"){\r\n history.push('/author/login');\r\n }\r\n else\r\n {\r\n Swal.fire({\r\n icon : 'error' ,\r\n text : `${error.response.data.message}`\r\n })\r\n }\r\n });\r\n\r\n //\r\n }\r\n\r\n return (\r\n <div>\r\n <div className=\"createheading\">Get Started With Your Course</div>\r\n <Button className=\"buttonexit\" theme=\"outline-danger\" href=\"/author/dashboard\">\r\n Exit\r\n </Button>\r\n <StepProgressBar\r\n className=\"stepbar\"\r\n startingStep={0}\r\n onSubmit={onFormSubmit}\r\n steps={[\r\n {\r\n label: 'Step 1',\r\n name: 'step 1',\r\n content: step1Content\r\n // validator: step1Validator\r\n },\r\n {\r\n label: 'Step 2',\r\n name: 'step 2',\r\n content: step2Content\r\n // validator: step2Validator\r\n },\r\n {\r\n label: 'Step 3',\r\n name: 'step 3',\r\n content: step3Content\r\n // validator: step3Validator\r\n },\r\n {\r\n label: 'Step 4',\r\n name: 'step 4',\r\n content: step4Content\r\n // validator: step4Validator\r\n }\r\n ]}\r\n />\r\n </div>\r\n );\r\n}\r\n","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Author\\AuthorProfile.js",["228","229"],"import React, { useState, useEffect } from 'react';\r\nimport AuthorHeader from './AuthorHeader';\r\nimport '../styles/UserProfile.css';\r\nimport { Form, FormInput, FormGroup } from 'shards-react';\r\nimport { Button } from 'shards-react';\r\nimport { Tabs, Tab } from 'react-bootstrap';\r\nimport axios from 'axios';\r\nimport Swal from 'sweetalert2'\r\n\r\nexport default function AuthorProfile({history}) {\r\n const [imgStatus, setStatus] = useState('Upload Image');\r\n\r\n const [firstName, setfirstName] = useState('First Name');\r\n const [middleName, setmiddleName] = useState('Middle Name');\r\n const [lastName, setlastName] = useState('Last Name');\r\n const [phNum, setphNum] = useState('Phone Number');\r\n const [linkedInURL, setlinkedInURL] = useState('LinkedIn URL');\r\n const [twitterURL, settwitterURL] = useState('Twitter URL');\r\n const [qualification, setqualification] = useState('Qaulification');\r\n const [biography, setBiography] = useState('Biography ');\r\n\r\n useEffect(() => {\r\n axios.post('/author/profile').then(res => {\r\n \r\n setfirstName(res.data.profiledata.firstName);\r\n setmiddleName(res.data.profiledata.middleName);\r\n setlastName(res.data.profiledata.lastName);\r\n setphNum(res.data.profiledata.phNum);\r\n setlinkedInURL(res.data.profiledata.linkedInURL);\r\n settwitterURL(res.data.profiledata.twitterURL);\r\n setqualification(res.data.profiledata.qualification);\r\n setBiography(res.data.profiledata.biography);\r\n }).catch(error => {\r\n if(error.response.data.message === \"Unauthorised.\"){\r\n history.push('/author/login');\r\n }\r\n else\r\n {\r\n Swal.fire({\r\n icon : 'error' ,\r\n text : `${error.response.data.message}`\r\n })\r\n }\r\n });\r\n }, []);\r\n\r\n const ImageUpload = () => {\r\n const [file, setFile] = useState('');\r\n const [imagePreviewUrl, setImagePreview] = useState('');\r\n\r\n useEffect(() => {\r\n axios.post('/author/profileImageView').then(res => {\r\n const ext = res.data.url.slice(-2);\r\n if (ext === 'NA') {\r\n setStatus('Upload Image');\r\n } else {\r\n setStatus('Update Image');\r\n }\r\n setImagePreview(res.data.url);\r\n }).catch(error => {\r\n if(error.response.data.message === \"Unauthorised.\"){\r\n history.push('/author/login');\r\n }\r\n else\r\n {\r\n Swal.fire({\r\n icon : 'error' ,\r\n text : `${error.response.data.message}`\r\n })\r\n }\r\n });\r\n }, []);\r\n\r\n const _handleSubmit = e => {\r\n e.preventDefault();\r\n // TODO: do something with -> this.state.file\r\n console.log('handle uploading-', file);\r\n const formData = new FormData();\r\n formData.append('image', file);\r\n axios({\r\n method: 'post',\r\n url: '/author/profileImageUpdate',\r\n data: formData\r\n }).then(res=>{\r\n Swal.fire({\r\n icon : 'success' ,\r\n text : `${res.data.message}`\r\n })\r\n }).catch(error=>{\r\n\r\n if(error.response.data.message === \"Unauthorised.\"){\r\n history.push('/author/login');\r\n }\r\n else\r\n {\r\n Swal.fire({\r\n icon : 'error' ,\r\n text : `${error.response.data.message}`\r\n })\r\n }\r\n });\r\n };\r\n\r\n const _handleImageChange = e => {\r\n e.preventDefault();\r\n\r\n let reader = new FileReader();\r\n let file = e.target.files[0];\r\n\r\n reader.onloadend = () => {\r\n setFile(file);\r\n setImagePreview(reader.result);\r\n };\r\n reader.readAsDataURL(file);\r\n };\r\n\r\n return (\r\n <div>\r\n <form onSubmit={e => _handleSubmit(e)}>\r\n <input className=\"ProfileImageInputButton\" type=\"file\" onChange={e => _handleImageChange(e)} />\r\n <Button className=\"ProfileImageSubmitButton\" type=\"submit\" onClick={e => _handleSubmit(e)}>\r\n {imgStatus}\r\n </Button>\r\n </form>\r\n <div style={{ textAlign: 'center', height: '100px', width: '100px', border: '5px solid gray' }}>\r\n {imagePreviewUrl ? (\r\n <img style={{ width: '100%', height: '100%' }} src={imagePreviewUrl} />\r\n ) : (\r\n <div>Please select an Image for Preview</div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n };\r\n\r\n return (\r\n <div>\r\n <AuthorHeader history={history}/>\r\n <div className=\"profiletab\">\r\n <Tabs id=\"profileTab\">\r\n <Tab eventKey=\"personal\" title=\"Personal Details\">\r\n <div className=\"ProfilePic\">\r\n <ImageUpload />\r\n </div>\r\n <Form className=\"subform\">\r\n <FormGroup>\r\n <label htmlFor=\"#firstName\">First Name</label>\r\n <FormInput\r\n id=\"#firstName\"\r\n value={firstName}\r\n onChange={event => {\r\n setfirstName(event.target.value);\r\n }}\r\n />\r\n </FormGroup>\r\n <FormGroup>\r\n <label htmlFor=\"#middleName\">Middle Name</label>\r\n <FormInput\r\n id=\"#middleName\"\r\n value={middleName}\r\n onChange={event => {\r\n setmiddleName(event.target.value);\r\n }}\r\n />\r\n </FormGroup>\r\n <FormGroup>\r\n <label htmlFor=\"#lastName\">Last Name</label>\r\n <FormInput\r\n id=\"#lastName\"\r\n value={lastName}\r\n onChange={event => {\r\n setlastName(event.target.value);\r\n }}\r\n />\r\n </FormGroup>\r\n <FormGroup>\r\n <label htmlFor=\"#phNum\">Phone Number</label>\r\n <FormInput\r\n id=\"#phNum\"\r\n value={phNum}\r\n onChange={event => {\r\n setphNum(event.target.value);\r\n }}\r\n />\r\n </FormGroup>\r\n <Button\r\n theme=\"info\"\r\n onClick={() => {\r\n axios\r\n .post('/author/update', {\r\n firstName,\r\n middleName,\r\n lastName,\r\n phNum,\r\n linkedInURL,\r\n twitterURL,\r\n qualification,\r\n biography\r\n })\r\n .then(res => {\r\n Swal.fire({\r\n icon : 'success' ,\r\n text : `${res.data.message}`\r\n })\r\n }).catch(error => {\r\n if(error.response.data.message === \"Unauthorised.\"){\r\n history.push('/author/login');\r\n }\r\n else\r\n {\r\n Swal.fire({\r\n icon : 'error' ,\r\n text : `${error.response.data.message}`\r\n })\r\n }\r\n });\r\n }}\r\n >\r\n Update\r\n </Button>\r\n </Form>\r\n </Tab>\r\n <Tab eventKey=\"social\" title=\"Social Media Handles\">\r\n <Form className=\"subform\">\r\n <FormGroup>\r\n <label htmlFor=\"#linkedInURL\">LinkedIn URL</label>\r\n <FormInput\r\n id=\"#linkedInURL\"\r\n value={linkedInURL}\r\n onChange={event => {\r\n setlinkedInURL(event.target.value);\r\n }}\r\n />\r\n </FormGroup>\r\n <FormGroup>\r\n <label htmlFor=\"#twitterURL\">Twitter URL</label>\r\n <FormInput\r\n id=\"#twitterURL\"\r\n value={twitterURL}\r\n onChange={event => {\r\n settwitterURL(event.target.value);\r\n }}\r\n />\r\n </FormGroup>\r\n <Button\r\n theme=\"info\"\r\n onClick={() => {\r\n axios\r\n .post('/author/update', {\r\n firstName,\r\n middleName,\r\n lastName,\r\n phNum,\r\n linkedInURL,\r\n twitterURL,\r\n qualification,\r\n biography\r\n })\r\n .then(res => {\r\n Swal.fire({\r\n icon : 'success' ,\r\n text : `${res.data.message}`\r\n })\r\n }).catch(error => {\r\n if(error.response.data.message === \"Unauthorised.\"){\r\n history.push('/author/login');\r\n }\r\n else\r\n {\r\n Swal.fire({\r\n icon : 'error' ,\r\n text : `${error.response.data.message}`\r\n })\r\n }\r\n });\r\n }}\r\n >\r\n Update\r\n </Button>\r\n </Form>\r\n </Tab>\r\n <Tab eventKey=\"education\" title=\"Education\">\r\n <Form className=\"subform\">\r\n <FormGroup>\r\n <label htmlFor=\"#qualification\">Qualification</label>\r\n <FormInput\r\n id=\"#qualification\"\r\n value={qualification}\r\n onChange={event => {\r\n setqualification(event.target.value);\r\n }}\r\n />\r\n </FormGroup>\r\n <FormGroup>\r\n <label htmlFor=\"#areaOfInterest\">Area of Interest</label>\r\n <FormInput\r\n id=\"#areaOfInterest\"\r\n value={biography}\r\n onChange={event => {\r\n setBiography(event.target.value);\r\n }}\r\n />\r\n </FormGroup>\r\n <Button\r\n theme=\"info\"\r\n onClick={() => {\r\n axios\r\n .post('/author/update', {\r\n firstName,\r\n middleName,\r\n lastName,\r\n phNum,\r\n linkedInURL,\r\n twitterURL,\r\n qualification,\r\n biography\r\n })\r\n .then(res => {\r\n Swal.fire({\r\n icon : 'success' ,\r\n text : `${res.data.message}`\r\n })\r\n }).catch(error => {\r\n if(error.response.data.message === \"Unauthorised.\"){\r\n history.push('/author/login');\r\n }\r\n else\r\n {\r\n Swal.fire({\r\n icon : 'error' ,\r\n text : `${error.response.data.message}`\r\n })\r\n }\r\n });;\r\n }}\r\n >\r\n Update\r\n </Button>\r\n </Form>\r\n </Tab>\r\n </Tabs>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Utils\\Home.js",["230","231","232","233","234","235","236","237"],"import React, { useEffect, useState } from 'react';\r\nimport { Header } from './Header';\r\nimport CourseCard from './CourseCard';\r\nimport HomeCarousel from './HomeCarousel';\r\nimport Footer1 from './Footer';\r\nimport { Container, Row, Col } from 'shards-react';\r\nimport axios from 'axios';\r\nimport CarouselDemo from '../Utils/Carousel';\r\nimport SubscriberHeader from '../Subscriber/SubscriberHeader';\r\nimport Cookies from 'js-cookie';\r\nimport AuthorHeader from '../Author/AuthorHeader';\r\n\r\nexport default function Home({ history }) {\r\n const categories = ['IT & Software', 'Finance & Accounting', 'Development', 'Business', 'Marketing', 'Photography'];\r\n const [courses, setCourses] = useState([]);\r\n function Headerfunc() {\r\n if (Cookies.get('u') === 's') {\r\n return <SubscriberHeader />;\r\n } else if (Cookies.get('u') === 'a') {\r\n return <AuthorHeader />;\r\n } else {\r\n return <Header />;\r\n }\r\n }\r\n // useEffect(() => {\r\n // axios.get('/home/getCourses').then(res => {\r\n // setCourses(res.data.courseData);\r\n // });\r\n // }, []);\r\n\r\n return (\r\n <div className=\"home\">\r\n <div className=\"header\">\r\n <Headerfunc />\r\n </div>\r\n <HomeCarousel />\r\n\r\n {categories.map(value => {\r\n return <CarouselDemo cat={value} />;\r\n })}\r\n\r\n <Footer1 />\r\n </div>\r\n );\r\n}\r\n","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Course\\CourseHome.js",["238","239","240","241","242"],"import React, { useState, useEffect } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport '../styles/CourseHome.css';\r\nimport { useParams } from 'react-router';\r\nimport Header from '../Utils/Header';\r\nimport { Card, CardTitle, CardBody, CardFooter, CardImg, Button, Container, Row, Col } from 'shards-react';\r\nimport razorpayLogo from '../assets/razorpay.png';\r\nimport Footer1 from '../Utils/Footer';\r\nimport { Collapse } from 'antd';\r\nimport HLSSource from '../Utils/HLSSource';\r\nimport Axios from 'axios';\r\nimport { Scrollbars } from 'rc-scrollbars';\r\nimport { Player, ControlBar, ForwardControl, ReplayControl } from 'video-react';\r\nimport Swal from 'sweetalert2';\r\nimport Cookies from 'js-cookie';\r\nimport SubscriberHeader from '../Subscriber/SubscriberHeader';\r\nimport AuthorHeader from \"../Author/AuthorHeader\"\r\n\r\nfunction loadScript(src) {\r\n return new Promise(resolve => {\r\n const script = document.createElement('script');\r\n script.src = src;\r\n script.onload = () => {\r\n resolve(true);\r\n };\r\n script.onerror = () => {\r\n resolve(false);\r\n };\r\n document.body.appendChild(script);\r\n });\r\n}\r\nconst __DEV__ = document.domain === 'localhost';\r\nexport default function CourseHome({ history }) {\r\n const [title, setTitle] = useState('');\r\n const [price, setPrice] = useState(0);\r\n const [suitableFor, setSuitableFor] = useState('');\r\n const [description, setDescription] = useState('');\r\n const [prerequisite, setPrerequisite] = useState([]);\r\n const [authorName, setAuthorName] = useState('');\r\n const [category, setCategory] = useState('');\r\n const [courseThumbnail, setCourseThumbnail] = useState('');\r\n const [coursePreview, setCoursePreview] = useState('');\r\n const [sectionData, setSections] = useState([]);\r\n\r\n let { courseTitle } = useParams();\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n\r\n Axios.post('/course/details', {\r\n courseTitle: courseTitle\r\n }).then(res => {\r\n setTitle(res.data.title);\r\n setPrice(res.data.price);\r\n setSuitableFor(res.data.suitableFor);\r\n setDescription(res.data.description);\r\n setPrerequisite(res.data.prerequisite);\r\n setAuthorName(res.data.authorName);\r\n setCategory(res.data.category);\r\n setCourseThumbnail(res.data.courseThumbnail);\r\n setCoursePreview(res.data.coursePreview);\r\n res.data.sectionData.forEach((value, index) => {\r\n setSections(oldArray => [...oldArray, { sectionName: value.sectionName, sectionNumber: value.sectionNumber }]);\r\n });\r\n });\r\n }, []);\r\n\r\n const { Panel } = Collapse;\r\n let itemList = [];\r\n\r\n function Headerfunc() {\r\n if (Cookies.get('u') === 's') {\r\n return <SubscriberHeader />;\r\n } else if (Cookies.get('u') === 'a') {\r\n return <AuthorHeader />;\r\n } else {\r\n return <Header />;\r\n }\r\n }\r\n\r\n prerequisite.map((item, index) => {\r\n itemList.push(<li key={index}>{item}</li>);\r\n });\r\n\r\n const Section = ({ section }) => {\r\n const { Panel } = Collapse;\r\n\r\n return (\r\n <Collapse>\r\n <Panel header={section.sectionName} key={section.sectionNumber}>\r\n {}\r\n </Panel>\r\n </Collapse>\r\n );\r\n };\r\n async function DisplayRazorpay() {\r\n const res = await loadScript('https://checkout.razorpay.com/v1/checkout.js');\r\n\r\n if (!res) {\r\n alert('Razorpay SDK failed to load. Are you online?');\r\n return;\r\n }\r\n\r\n Axios.post('/payment/process', {\r\n price,\r\n courseTitle\r\n })\r\n .then(res => {\r\n console.log(res.data);\r\n const options = {\r\n key: __DEV__ ? 'rzp_test_3LqDzu8J6aTI9F' : 'PRODUCTION_KEY',\r\n currency: res.data.currency, //data.currency,\r\n amount: res.data.price,\r\n order_id: res.data.id, //data.id,\r\n name: `Payment for course ${title}`,\r\n description: `Course buy`,\r\n image: razorpayLogo\r\n\r\n // handler: function (response) {\r\n // alert(response.razorpay_payment_id)\r\n // alert(response.razorpay_order_id)\r\n // alert(response.razorpay_signature)\r\n // },\r\n // prefill: {\r\n // name : res.data.name,\r\n // email: res.data.email,\r\n // contact: res.data.contact\r\n // }\r\n };\r\n const paymentObject = new window.Razorpay(options);\r\n paymentObject.open();\r\n })\r\n .catch(error => {\r\n if (error.response.data.message === 'Unauthorised.') {\r\n Swal.fire({\r\n icon: 'error',\r\n text: `Your session has been expired. Kindly login again to continue.`\r\n });\r\n history.push('/subscriber/login');\r\n }\r\n });\r\n }\r\n return (\r\n <div>\r\n <Headerfunc />\r\n <div className=\"topCard\">\r\n <Card className=\"tpCard\" style={{ maxWidth: '1800px' }}>\r\n <CardImg className=\"crdImg\" src={courseThumbnail} />\r\n <CardBody>\r\n <CardTitle className=\"crhmCT\">{title}</CardTitle>\r\n <div className=\"SmallDesc\">\r\n <p>\r\n <h6>Price: {price}</h6>\r\n </p>\r\n <p>Author: {authorName}</p>\r\n <p>Category: {category}</p>\r\n <p>Language: English</p>\r\n </div>\r\n\r\n <Button className=\"WishlistButton\" onClick={DisplayRazorpay}>\r\n Buy Now\r\n </Button>\r\n <Button className=\"ShareButton\">Share</Button>\r\n </CardBody>\r\n </Card>\r\n <div>\r\n <Card className=\"tpCard1\" style={{ maxWidth: '1800px' }}>\r\n <CardBody>\r\n <div className=\"TextDescription\">\r\n <h2>Description:</h2>\r\n {description}\r\n <div className=\"TextSuitableFor\">\r\n <h3>Suitable For:</h3>\r\n {suitableFor}\r\n </div>\r\n </div>\r\n <h2 className=\"H2Heading\">Course Preview:</h2>\r\n <div className=\"CRHMVidPlayerDiv\">\r\n <Player className=\"CRHMvidPlayer\" src={coursePreview}>\r\n {/* <HLSSource\r\n isVideoChild\r\n src=\"https://multiplatform-f.akamaihd.net/i/multi/will/bunny/big_buck_bunny_,640x360_400,640x360_700,640x360_1000,950x540_1500,.f4v.csmil/master.m3u8\"\r\n /> */}\r\n <ControlBar className=\"ctrlbar\" autoHide={true}>\r\n <ReplayControl seconds={10} order={2.2} />\r\n <ForwardControl seconds={10} order={3.2} />\r\n </ControlBar>\r\n </Player>\r\n </div>\r\n <h2 className=\"H2Heading\">What You'll Learn:</h2>\r\n\r\n <div className=\"TextWhatLearn\">\r\n <Container>\r\n <Row>\r\n <Col>\r\n <ul>\r\n <li>Spf/Dmarc</li>\r\n <li>Cookie Issues</li>\r\n <li>XSS</li>\r\n <li>SQLi</li>\r\n </ul>\r\n </Col>\r\n\r\n <Col>\r\n <ul>\r\n <li>IDOR</li>\r\n <li>Authentication Bypass</li>\r\n <li>Rate Limiting</li>\r\n <li>RCE</li>\r\n </ul>\r\n </Col>\r\n </Row>\r\n </Container>\r\n </div>\r\n <h2 className=\"H2Heading\">PreRequisites:</h2>\r\n <div className=\"PrereqText\">{itemList}</div>\r\n </CardBody>\r\n <CardFooter></CardFooter>\r\n </Card>\r\n </div>\r\n <h3 className=\"ContentsHeading\">Contents</h3>\r\n <Collapse className=\"CoHoCollaps\">\r\n <Scrollbars style={{ width: 525, height: 630 }}>\r\n {sectionData.map(section => (\r\n <Section section={section} key={section.sectionName} />\r\n ))}\r\n </Scrollbars>\r\n </Collapse> \r\n </div>\r\n\r\n <div>\r\n <Footer1 />\r\n </div>\r\n </div>\r\n );\r\n}\r\n","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Utils\\CourseCard.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Utils\\verify.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Subscriber\\SubscriberHeader.js",["243"],"import React from 'react';\r\nimport '../styles/Header.css';\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\nimport 'shards-ui/dist/css/shards.min.css';\r\nimport ShoppingCartIcon from '@material-ui/icons/ShoppingCart';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport logo from '../assets/CL.png';\r\nimport { Button } from 'shards-react';\r\nimport { BsPersonSquare } from 'react-icons/bs';\r\nimport { Dropdown } from 'react-bootstrap';\r\nimport {\r\n Navbar,\r\n NavbarToggler,\r\n NavbarBrand,\r\n Nav,\r\n NavItem,\r\n NavLink,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n FormInput,\r\n Collapse\r\n} from 'shards-react';\r\nimport CategoriesDropdown from \"../Utils/CategoriesDropdown\"\r\nimport axios from 'axios';\r\nimport Cookies from 'js-cookie';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\n\r\n\r\n export default function SubscriberHeader(){\r\n let history = useHistory();\r\n return (\r\n <div className=\"subscriberheader\">\r\n <Navbar className=\"nav\" expand=\"md\">\r\n <NavbarBrand>\r\n <img src={logo} width='90' heigh='90' onClick={()=>history.push('/')}/>\r\n </NavbarBrand>\r\n <NavbarToggler />\r\n\r\n <Collapse navbar>\r\n <Nav navbar>\r\n <NavItem>\r\n <NavLink>\r\n <CategoriesDropdown />\r\n </NavLink>\r\n </NavItem>\r\n </Nav>\r\n <Nav navbar>\r\n <InputGroup size=\"sm\" seamless className=\"headersearch\">\r\n <InputGroupAddon type=\"prepend\">\r\n <InputGroupText>\r\n <SearchIcon />\r\n </InputGroupText>\r\n </InputGroupAddon>\r\n <FormInput className=\"border-0\" placeholder=\"Search...\" />\r\n </InputGroup>\r\n </Nav>\r\n </Collapse>\r\n <div className=\"right\">\r\n <Collapse navbar>\r\n <div>\r\n <ShoppingCartIcon fontSize=\"large\"/>\r\n </div>\r\n <Dropdown >\r\n <Dropdown.Toggle variant=\"inf\" id=\"dropdown-basic\">\r\n <BsPersonSquare size=\"30\" />\r\n </Dropdown.Toggle>\r\n\r\n\r\n <Dropdown.Menu>\r\n <Dropdown.Item href=\"/subscriber/profile\">Profile</Dropdown.Item>\r\n <Dropdown.Item href=\"/subscriber/settings\">Account Settings</Dropdown.Item>\r\n <Dropdown.Divider />\r\n <Button className=\"logoutbutton\" theme=\"outline-danger\" onClick={ () => {\r\n axios.post('/logout').then(res => {\r\n console.log(res.data.message);\r\n Cookies.remove('u');\r\n\r\n history.push('/');\r\n }).catch(error => {\r\n console.log(error);\r\n });\r\n } }>Logout</Button>\r\n </Dropdown.Menu>\r\n </Dropdown>\r\n <div className=\"right\"></div>\r\n </Collapse>\r\n </div>\r\n\r\n </Navbar>\r\n </div>\r\n );\r\n};\r\n","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Author\\AuthorCourseCarousel.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Subscriber\\SubscriberCourseCarousel.js",["244"],"import React, { useState, useEffect } from 'react';\r\nimport { Carousel } from 'primereact/carousel';\r\nimport { Button } from 'primereact/button';\r\nimport '../styles/CarouselDemo.css';\r\nimport 'primeicons/primeicons.css';\r\nimport 'primereact/resources/themes/saga-blue/theme.css';\r\nimport 'primereact/resources/primereact.css';\r\nimport 'primeflex/primeflex.css';\r\nimport Axios from 'axios';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nconst SubscriberCourseCarousel = () => {\r\n const [courses, setCourses] = useState([]);\r\n const history = useHistory();\r\n const [courseID,setcourseID] = useState('')\r\n\r\n useEffect(() => {\r\n Axios.get('/subscriber/myCourses').then(res => {\r\n console.log('Result : ', res.data.courseData);\r\n setcourseID(res.data.courseData.courseId)\r\n console.log(\"ID:\", courseID)\r\n setCourses(res.data.courseData);\r\n });\r\n }, []);\r\n\r\n const submit = title => {\r\n history.push(`/course/view/${title}`);\r\n };\r\n const responsiveOptions = [\r\n {\r\n breakpoint: '1024px',\r\n numVisible: 3,\r\n numScroll: 3\r\n },\r\n {\r\n breakpoint: '600px',\r\n numVisible: 2,\r\n numScroll: 2\r\n },\r\n {\r\n breakpoint: '480px',\r\n numVisible: 1,\r\n numScroll: 1\r\n }\r\n ];\r\n\r\n const productTemplate = courses => {\r\n return (\r\n <div className=\"product-item\">\r\n <div className=\"product-item-content\">\r\n <div className=\"p-mb-3\">\r\n <div className=\"CCimg\">\r\n <img\r\n src={courses.courseThumbnail}\r\n onError={e => (e.target.src = 'https://www.primefaces.org/wp-content/uploads/2020/05/placeholder.png')}\r\n alt=\"error\"\r\n className=\"product-image\"\r\n />\r\n </div>\r\n </div>\r\n <div>\r\n <div className=\"CCtitle\">\r\n <h4 className=\"p-mb-1\">{courses.courseName}</h4>\r\n </div>\r\n <h6 className=\"p-mt-0 p-mb-3\">Rs. {courses.price}</h6>\r\n <div className=\"car-buttons p-mt-5\">\r\n <Button\r\n icon=\"pi pi-play\"\r\n onClick={() => submit(courses.courseName)}\r\n className=\"p-button p-button-rounded p-mr-2\"\r\n />\r\n <Button icon=\"pi pi-star\" className=\"p-button-success p-button-rounded p-mr-2\" />\r\n <Button icon=\"pi pi-cog\" className=\"p-button-help p-button-rounded\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n };\r\n\r\n return (\r\n <div>\r\n <div className=\"CourseCorousel\">\r\n <div className=\"carousel-demo\">\r\n <div className=\"card\">\r\n <Carousel\r\n value={courses}\r\n numVisible={5}\r\n numScroll={5}\r\n responsiveOptions={responsiveOptions}\r\n itemTemplate={productTemplate}\r\n header={<h5 className=\"CCHeader\">Course Category</h5>}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default SubscriberCourseCarousel;\r\n","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Author\\AuthorHeader.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Utils\\VideoPlyar.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Utils\\Footer.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Utils\\HLSSource.js",["245"],"import React, { Component } from 'react';\r\nimport Hls from 'hls.js';\r\nimport { BsReverseLayoutSidebarInsetReverse } from 'react-icons/bs';\r\n\r\nexport default class HLSSource extends Component {\r\n constructor(props, context) {\r\n super(props, context);\r\n this.hls = new Hls();\r\n }\r\n\r\n componentDidMount() {\r\n // `src` is the property get from this component\r\n // `video` is the property insert from `Video` component\r\n // `video` is the html5 video element\r\n const { src, video } = this.props;\r\n // load hls video source base on hls.js\r\n if (Hls.isSupported()) {\r\n this.hls.loadSource(src);\r\n this.hls.attachMedia(video);\r\n this.hls.on(Hls.Events.MANIFEST_PARSED, () => {\r\n video.play();\r\n });\r\n }\r\n }\r\n\r\n\r\n componentWillUnmount() {\r\n // destroy hls video source\r\n if (this.hls) {\r\n this.hls.destroy();\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <source\r\n src={this.props.src}\r\n type={this.props.type || 'application/x-mpegURL'}\r\n />\r\n );\r\n }\r\n}\r\n\r\n","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Utils\\Header.js",["246","247"],"import React from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport '../styles/Header.css';\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\nimport 'shards-ui/dist/css/shards.min.css';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport logo from '../assets/CL.png';\r\nimport { Button } from 'shards-react';\r\nimport CategoriesDropdown from './CategoriesDropdown';\r\nimport Axios from 'axios'\r\nimport {\r\n Navbar,\r\n NavbarToggler,\r\n NavbarBrand,\r\n Nav,\r\n NavItem,\r\n NavLink,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n FormInput,\r\n Collapse\r\n} from 'shards-react';\r\nimport Search from '@material-ui/icons/Search';\r\n\r\nexport var type = \"\";\r\n\r\nexport const Header = () => {\r\n const history = useHistory();\r\n\r\n function loginHandleClick() {\r\n history.push('/subscriber/login');\r\n }\r\n const signupHandleClick = () => {\r\n history.push('/subscriber/signup');\r\n };\r\n async function search(key)\r\n {\r\n //console.warn(key);\r\n if(key)\r\n {\r\n Axios.get('http://localhost:5000/home/search?param='+key).then(res=>{\r\n console.log(res.data.resultData); \r\n })\r\n }\r\n \r\n }\r\n return (\r\n <Navbar className=\"nav\" expand=\"md\">\r\n <NavbarBrand>\r\n <img src={logo} width='60' heigh='40' />\r\n </NavbarBrand>\r\n <NavbarToggler />\r\n\r\n <Collapse navbar>\r\n <Nav navbar>\r\n <NavItem>\r\n <NavLink><CategoriesDropdown /></NavLink>\r\n </NavItem>\r\n </Nav>\r\n\r\n <Nav navbar >\r\n <InputGroup size=\"sm\" seamless className=\"headersearch\" >\r\n <InputGroupAddon type=\"prepend\">\r\n <InputGroupText>\r\n <SearchIcon />\r\n </InputGroupText>\r\n </InputGroupAddon>\r\n <FormInput className=\"border-0\" placeholder=\"Search...\" onChange = {(e)=> search(e.target.value)} />\r\n </InputGroup>\r\n </Nav>\r\n\r\n \r\n \r\n </Collapse>\r\n <div className=\"right\">\r\n <Button outline theme=\"info\" onClick={loginHandleClick}>\r\n LogIn\r\n \r\n\r\n </Button>\r\n <Button className=\"signupButton\" outline theme=\"info\" onClick={signupHandleClick}>\r\n SignUp\r\n </Button>\r\n </div>\r\n </Navbar>\r\n );\r\n};\r\n\r\nexport default Header;","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Utils\\Carousel.js",["248"],"import React, { useState, useEffect } from 'react';\r\nimport { Carousel } from 'primereact/carousel';\r\nimport { Button } from 'primereact/button';\r\nimport '../styles/CarouselDemo.css';\r\nimport 'primeicons/primeicons.css';\r\nimport 'primereact/resources/themes/saga-blue/theme.css';\r\nimport 'primereact/resources/primereact.css';\r\nimport 'primeflex/primeflex.css';\r\nimport Axios from 'axios';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nconst CarouselDemo = ({cat}) => {\r\n const [courses, setCourses] = useState([]);\r\n const history = useHistory();\r\n\r\n useEffect(() => {\r\n Axios.post('/home/getCourses', {\r\n category: cat\r\n }).then(res => {\r\n console.log('Result : ', res.data.courseData);\r\n setCourses(res.data.courseData);\r\n });\r\n }, []);\r\n\r\n const submit = title => {\r\n history.push(`/course/${title}`);\r\n };\r\n const responsiveOptions = [\r\n {\r\n breakpoint: '1024px',\r\n numVisible: 3,\r\n numScroll: 3\r\n },\r\n {\r\n breakpoint: '600px',\r\n numVisible: 2,\r\n numScroll: 2\r\n },\r\n {\r\n breakpoint: '480px',\r\n numVisible: 1,\r\n numScroll: 1\r\n }\r\n ];\r\n\r\n const productTemplate = courses => {\r\n return (\r\n <div className=\"product-item\">\r\n <div className=\"product-item-content\">\r\n <div className=\"p-mb-3\">\r\n <div className=\"CCimg\">\r\n <img\r\n src={courses.courseThumbnail}\r\n onError={e => (e.target.src = 'https://www.primefaces.org/wp-content/uploads/2020/05/placeholder.png')}\r\n alt=\"error\"\r\n className=\"product-image\"\r\n />\r\n </div>\r\n </div>\r\n <div>\r\n <div className=\"CCtitle\">\r\n <h4 className=\"p-mb-1\">{courses.courseName}</h4>\r\n </div>\r\n <h6 className=\"p-mt-0 p-mb-3\">Rs. {courses.price}</h6>\r\n <div className=\"car-buttons p-mt-5\">\r\n <Button\r\n icon=\"pi pi-shopping-cart\"\r\n onClick={() => submit(courses.courseName)}\r\n className=\"p-button p-button-rounded p-mr-2\"\r\n />\r\n <Button icon=\"pi pi-star\" className=\"p-button-success p-button-rounded p-mr-2\" />\r\n <Button icon=\"pi pi-cog\" className=\"p-button-help p-button-rounded\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n };\r\n\r\n return (\r\n <div>\r\n <div className=\"CourseCorousel\">\r\n <div className=\"carousel-demo\">\r\n <div className=\"card\">\r\n <Carousel\r\n value={courses}\r\n numVisible={5}\r\n numScroll={5}\r\n responsiveOptions={responsiveOptions}\r\n itemTemplate={productTemplate}\r\n header={<h5 className=\"CCHeader\">{cat}</h5>}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default CarouselDemo;\r\n","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Utils\\CategoriesDropdown.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Utils\\HomeCarousel.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Tests\\createTest.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Tests\\questions.js",[],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Tests\\testPreview.js",["249"],"D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Course\\CourseView.js",["250","251","252","253","254","255","256"],"import React, { useEffect, useState } from 'react';\r\nimport SubscriberHeader from '../Subscriber/SubscriberHeader';\r\nimport { useHistory } from 'react-router-dom';\r\nimport '../styles/CourseView.css';\r\nimport '../styles/video-react.css'; // import css\r\nimport HLSSource from '../Utils/HLSSource';\r\nimport { Player, ControlBar, ForwardControl, ReplayControl } from 'video-react';\r\nimport { Collapse } from 'antd';\r\nimport { Scrollbars } from 'rc-scrollbars';\r\nimport { useParams } from \"react-router\";\r\nimport axios from 'axios';\r\nimport Swal from 'sweetalert2';\r\nimport VideoPlayer from '../Utils/VideoPlyar';\r\n\r\nexport default function CourseView() {\r\n let history = useHistory();\r\n const [sections, setSections] = useState([]);\r\n const [playerUrl, setUrl] = useState('');\r\n const { title } = useParams();\r\n\r\n useEffect(() => {\r\n axios\r\n .post('/author/course/sections', {\r\n title\r\n })\r\n .then(res => {\r\n res.data.sectionData.forEach((value, index) => {\r\n\r\n setSections(oldArray => [...oldArray, { sectionName: value.sectionName, sectionVedios: value.video }]);\r\n });\r\n\r\n\r\n })\r\n .catch(error => {\r\n if (error.response.data.message === 'Unauthorised.') {\r\n history.push('/author/login');\r\n } else {\r\n Swal.fire({\r\n icon: 'error',\r\n text: `${error.response.data.message}`\r\n });\r\n }\r\n });\r\n },[]);\r\n console.log(sections);\r\n const Section = ({ section }) => {\r\n const { Panel } = Collapse;\r\n\r\n return (\r\n <Collapse>\r\n <Panel header={section.sectionName}>\r\n {section.sectionVedios.map(vedio => (\r\n <button\r\n key={vedio.videoName}\r\n onClick={() => {\r\n setUrl(`${vedio.videoURL}`);\r\n }}\r\n >\r\n {vedio.videoName}\r\n </button>\r\n ))}\r\n </Panel>\r\n </Collapse>\r\n );\r\n };\r\n return (\r\n <div>\r\n <SubscriberHeader history={history} />\r\n <div className=\"vidPlayerdiv\">\r\n <h1 className=\"crvTitle\">Title</h1>\r\n <VideoPlayer poster=\"https://cdn.pixabay.com/photo/2015/04/23/22/00/tree-736885__340.jpg\">\r\n\r\n </VideoPlayer>\r\n </div>\r\n <div className=\"crvCollapse\">\r\n <Collapse className=\"CoHoCollaps\">\r\n <Scrollbars style={{ width: 525, height: 630 }}>\r\n {sections.map(section => (\r\n <Section section={section} key={section.sectionName} />\r\n ))}\r\n </Scrollbars>\r\n </Collapse> \r\n </div>\r\n </div>\r\n );\r\n}","D:\\College\\Projects\\Celestial-learning\\CelestialLearning-client\\src\\Components\\Tests\\test.js",["257"],{"ruleId":"258","replacedBy":"259"},{"ruleId":"260","replacedBy":"261"},{"ruleId":"262","severity":1,"message":"263","line":2,"column":8,"nodeType":"264","messageId":"265","endLine":2,"endColumn":18},{"ruleId":"262","severity":1,"message":"266","line":11,"column":12,"nodeType":"264","messageId":"265","endLine":11,"endColumn":20},{"ruleId":"262","severity":1,"message":"267","line":11,"column":21,"nodeType":"264","messageId":"265","endLine":11,"endColumn":32},{"ruleId":"262","severity":1,"message":"268","line":13,"column":12,"nodeType":"264","messageId":"265","endLine":13,"endColumn":19},{"ruleId":"262","severity":1,"message":"269","line":13,"column":21,"nodeType":"264","messageId":"265","endLine":13,"endColumn":31},{"ruleId":"262","severity":1,"message":"270","line":14,"column":19,"nodeType":"264","messageId":"265","endLine":14,"endColumn":34},{"ruleId":"271","severity":1,"message":"272","line":48,"column":8,"nodeType":"273","endLine":48,"endColumn":10,"suggestions":"274"},{"ruleId":"262","severity":1,"message":"275","line":12,"column":12,"nodeType":"264","messageId":"265","endLine":12,"endColumn":15},{"ruleId":"276","severity":1,"message":"277","line":104,"column":25,"nodeType":"278","endLine":104,"endColumn":96},{"ruleId":"279","severity":1,"message":"280","line":140,"column":49,"nodeType":"281","messageId":"282","endLine":140,"endColumn":51},{"ruleId":"271","severity":1,"message":"272","line":149,"column":8,"nodeType":"273","endLine":149,"endColumn":10,"suggestions":"283"},{"ruleId":"271","severity":1,"message":"272","line":26,"column":8,"nodeType":"273","endLine":26,"endColumn":10,"suggestions":"284"},{"ruleId":"262","severity":1,"message":"285","line":20,"column":12,"nodeType":"264","messageId":"265","endLine":20,"endColumn":20},{"ruleId":"262","severity":1,"message":"286","line":20,"column":22,"nodeType":"264","messageId":"265","endLine":20,"endColumn":33},{"ruleId":"276","severity":1,"message":"277","line":124,"column":25,"nodeType":"278","endLine":124,"endColumn":96},{"ruleId":"262","severity":1,"message":"287","line":134,"column":11,"nodeType":"264","messageId":"265","endLine":134,"endColumn":26},{"ruleId":"262","severity":1,"message":"288","line":172,"column":11,"nodeType":"264","messageId":"265","endLine":172,"endColumn":23},{"ruleId":"262","severity":1,"message":"289","line":192,"column":11,"nodeType":"264","messageId":"265","endLine":192,"endColumn":22},{"ruleId":"262","severity":1,"message":"290","line":212,"column":16,"nodeType":"264","messageId":"265","endLine":212,"endColumn":23},{"ruleId":"262","severity":1,"message":"291","line":212,"column":25,"nodeType":"264","messageId":"265","endLine":212,"endColumn":38},{"ruleId":"262","severity":1,"message":"292","line":213,"column":16,"nodeType":"264","messageId":"265","endLine":213,"endColumn":27},{"ruleId":"262","severity":1,"message":"293","line":213,"column":29,"nodeType":"264","messageId":"265","endLine":213,"endColumn":43},{"ruleId":"262","severity":1,"message":"294","line":225,"column":18,"nodeType":"264","messageId":"265","endLine":225,"endColumn":30},{"ruleId":"262","severity":1,"message":"295","line":467,"column":14,"nodeType":"264","messageId":"265","endLine":467,"endColumn":28},{"ruleId":"262","severity":1,"message":"296","line":471,"column":14,"nodeType":"264","messageId":"265","endLine":471,"endColumn":28},{"ruleId":"262","severity":1,"message":"297","line":475,"column":14,"nodeType":"264","messageId":"265","endLine":475,"endColumn":28},{"ruleId":"262","severity":1,"message":"298","line":479,"column":14,"nodeType":"264","messageId":"265","endLine":479,"endColumn":28},{"ruleId":"262","severity":1,"message":"299","line":19,"column":12,"nodeType":"264","messageId":"265","endLine":19,"endColumn":15},{"ruleId":"262","severity":1,"message":"300","line":19,"column":16,"nodeType":"264","messageId":"265","endLine":19,"endColumn":22},{"ruleId":"262","severity":1,"message":"295","line":149,"column":14,"nodeType":"264","messageId":"265","endLine":149,"endColumn":28},{"ruleId":"262","severity":1,"message":"296","line":153,"column":14,"nodeType":"264","messageId":"265","endLine":153,"endColumn":28},{"ruleId":"262","severity":1,"message":"297","line":157,"column":14,"nodeType":"264","messageId":"265","endLine":157,"endColumn":28},{"ruleId":"262","severity":1,"message":"298","line":161,"column":14,"nodeType":"264","messageId":"265","endLine":161,"endColumn":28},{"ruleId":"271","severity":1,"message":"272","line":45,"column":8,"nodeType":"273","endLine":45,"endColumn":10,"suggestions":"301"},{"ruleId":"276","severity":1,"message":"277","line":127,"column":25,"nodeType":"278","endLine":127,"endColumn":96},{"ruleId":"262","severity":1,"message":"302","line":1,"column":17,"nodeType":"264","messageId":"265","endLine":1,"endColumn":26},{"ruleId":"262","severity":1,"message":"263","line":3,"column":8,"nodeType":"264","messageId":"265","endLine":3,"endColumn":18},{"ruleId":"262","severity":1,"message":"303","line":6,"column":10,"nodeType":"264","messageId":"265","endLine":6,"endColumn":19},{"ruleId":"262","severity":1,"message":"304","line":6,"column":21,"nodeType":"264","messageId":"265","endLine":6,"endColumn":24},{"ruleId":"262","severity":1,"message":"305","line":6,"column":26,"nodeType":"264","messageId":"265","endLine":6,"endColumn":29},{"ruleId":"262","severity":1,"message":"306","line":7,"column":8,"nodeType":"264","messageId":"265","endLine":7,"endColumn":13},{"ruleId":"262","severity":1,"message":"268","line":15,"column":12,"nodeType":"264","messageId":"265","endLine":15,"endColumn":19},{"ruleId":"262","severity":1,"message":"269","line":15,"column":21,"nodeType":"264","messageId":"265","endLine":15,"endColumn":31},{"ruleId":"262","severity":1,"message":"307","line":2,"column":10,"nodeType":"264","messageId":"265","endLine":2,"endColumn":20},{"ruleId":"262","severity":1,"message":"308","line":10,"column":8,"nodeType":"264","messageId":"265","endLine":10,"endColumn":17},{"ruleId":"271","severity":1,"message":"309","line":66,"column":8,"nodeType":"273","endLine":66,"endColumn":10,"suggestions":"310"},{"ruleId":"262","severity":1,"message":"311","line":68,"column":13,"nodeType":"264","messageId":"265","endLine":68,"endColumn":18},{"ruleId":"312","severity":1,"message":"313","line":81,"column":36,"nodeType":"314","messageId":"315","endLine":81,"endColumn":38},{"ruleId":"276","severity":1,"message":"277","line":37,"column":17,"nodeType":"278","endLine":37,"endColumn":89},{"ruleId":"271","severity":1,"message":"316","line":24,"column":8,"nodeType":"273","endLine":24,"endColumn":10,"suggestions":"317"},{"ruleId":"262","severity":1,"message":"318","line":3,"column":10,"nodeType":"264","messageId":"265","endLine":3,"endColumn":44},{"ruleId":"262","severity":1,"message":"319","line":24,"column":8,"nodeType":"264","messageId":"265","endLine":24,"endColumn":14},{"ruleId":"276","severity":1,"message":"277","line":51,"column":17,"nodeType":"278","endLine":51,"endColumn":57},{"ruleId":"271","severity":1,"message":"320","line":23,"column":8,"nodeType":"273","endLine":23,"endColumn":10,"suggestions":"321"},{"ruleId":"271","severity":1,"message":"322","line":39,"column":8,"nodeType":"273","endLine":39,"endColumn":10,"suggestions":"323"},{"ruleId":"262","severity":1,"message":"308","line":6,"column":8,"nodeType":"264","messageId":"265","endLine":6,"endColumn":17},{"ruleId":"262","severity":1,"message":"324","line":7,"column":10,"nodeType":"264","messageId":"265","endLine":7,"endColumn":16},{"ruleId":"262","severity":1,"message":"325","line":7,"column":18,"nodeType":"264","messageId":"265","endLine":7,"endColumn":28},{"ruleId":"262","severity":1,"message":"326","line":7,"column":30,"nodeType":"264","messageId":"265","endLine":7,"endColumn":44},{"ruleId":"262","severity":1,"message":"327","line":7,"column":46,"nodeType":"264","messageId":"265","endLine":7,"endColumn":59},{"ruleId":"262","severity":1,"message":"328","line":18,"column":12,"nodeType":"264","messageId":"265","endLine":18,"endColumn":21},{"ruleId":"271","severity":1,"message":"329","line":44,"column":7,"nodeType":"273","endLine":44,"endColumn":9,"suggestions":"330"},{"ruleId":"271","severity":1,"message":"331","line":23,"column":7,"nodeType":"273","endLine":23,"endColumn":9,"suggestions":"332"},"no-native-reassign",["333"],"no-negated-in-lhs",["334"],"no-unused-vars","'CourseCard' is defined but never used.","Identifier","unusedVar","'courseID' is assigned a value but never used.","'setcourseID' is assigned a value but never used.","'courses' is assigned a value but never used.","'setCourses' is assigned a value but never used.","'setCourseStatus' is assigned a value but never used.","react-hooks/exhaustive-deps","React Hook useEffect has a missing dependency: 'history'. Either include it or remove the dependency array.","ArrayExpression",["335"],"'url' is assigned a value 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","eqeqeq","Expected '===' and instead saw '=='.","BinaryExpression","unexpected",["336"],["337"],"'courseId' is assigned a value but never used.","'setCourseId' is assigned a value but never used.","'CourseThumbnail' is assigned a value but never used.","'previewprops' is assigned a value but never used.","'PriceSlider' is defined but never used.","'section' is assigned a value but never used.","'createSection' is assigned a value but never used.","'sectionName' is assigned a value but never used.","'setSectionName' is assigned a value but never used.","'handleRemove' is defined but never used.","'step1Validator' is defined but never used.","'step2Validator' is defined but never used.","'step3Validator' is defined but never used.","'step4Validator' is defined but never used.","'cat' is assigned a value but never used.","'setCat' is assigned a value but never used.",["338"],"'useEffect' is defined but never used.","'Container' is defined but never used.","'Row' is defined but never used.","'Col' is defined but never used.","'axios' is defined but never used.","'useHistory' is defined but never used.","'HLSSource' is defined but never used.","React Hook useEffect has a missing dependency: 'courseTitle'. Either include it or remove the dependency array.",["339"],"'Panel' is assigned a value but never used.","array-callback-return","Array.prototype.map() expects a return value from arrow function.","ArrowFunctionExpression","expectedInside","React Hook useEffect has a missing dependency: 'courseID'. Either include it or remove the dependency array.",["340"],"'BsReverseLayoutSidebarInsetReverse' is defined but never used.","'Search' is defined but never used.","React Hook useEffect has a missing dependency: 'cat'. Either include it or remove the dependency array.",["341"],"React Hook useEffect has a missing dependency: 'courseList'. Either include it or remove the dependency array.",["342"],"'Player' is defined but never used.","'ControlBar' is defined but never used.","'ForwardControl' is defined but never used.","'ReplayControl' is defined but never used.","'playerUrl' is assigned a value but never used.","React Hook useEffect has missing dependencies: 'history' and 'title'. Either include them or remove the dependency array.",["343"],"React Hook useEffect has missing dependencies: 'course' and 'section'. Either include them or remove the dependency array.",["344"],"no-global-assign","no-unsafe-negation",{"desc":"345","fix":"346"},{"desc":"345","fix":"347"},{"desc":"345","fix":"348"},{"desc":"345","fix":"349"},{"desc":"350","fix":"351"},{"desc":"352","fix":"353"},{"desc":"354","fix":"355"},{"desc":"356","fix":"357"},{"desc":"358","fix":"359"},{"desc":"360","fix":"361"},"Update the dependencies array to be: [history]",{"range":"362","text":"363"},{"range":"364","text":"363"},{"range":"365","text":"363"},{"range":"366","text":"363"},"Update the dependencies array to be: [courseTitle]",{"range":"367","text":"368"},"Update the dependencies array to be: [courseID]",{"range":"369","text":"370"},"Update the dependencies array to be: [cat]",{"range":"371","text":"372"},"Update the dependencies array to be: [courseList]",{"range":"373","text":"374"},"Update the dependencies array to be: [history, title]",{"range":"375","text":"376"},"Update the dependencies array to be: [course, section]",{"range":"377","text":"378"},[1734,1736],"[history]",[5766,5768],[910,912],[1920,1922],[2716,2718],"[courseTitle]",[922,924],"[courseID]",[806,808],"[cat]",[1184,1186],"[courseList]",[1597,1599],"[history, title]",[683,685],"[course, section]"]