diff --git a/pages/learn/subject.js b/pages/learn/subject.js index 159ed6162..67694093a 100644 --- a/pages/learn/subject.js +++ b/pages/learn/subject.js @@ -12,7 +12,7 @@ import BannerSection from '../../components/learn/subject-banner'; import SyllabusTree from '../../components/learn/syllabus-tree/syllabus-tree-container'; import SubjectMarkdown from '../../components/learn/subject-marked'; -import { laravelSyllabus } from '../../utils/mock-data'; +import { laravelSyllabus, reactSyllabus } from '../../utils/mock-data'; const CurriculumSection = styled.section` ${baseContainer}; @@ -56,21 +56,37 @@ const Fab = styled.div` } `; -const defaultChapter = laravelSyllabus[0].chapters[0]; - export default class Subject extends React.Component { constructor(props) { super(props); this.state = { + activeSubject: this.selectSubject(this.props.url.query.id), activeChapterContent: '', - activeChapterName: defaultChapter.name, + activeChapterName: + this.selectSubject(this.props.url.query.id) === null + ? '' + : this.selectSubject(this.props.url.query.id)[0].chapters[0].name, loading: true, isSidebarOpen: true, }; } + selectSubject(openedGuide) { + switch (openedGuide) { + case 'laravel': + return laravelSyllabus; + case 'reactjs': + return reactSyllabus; + default: + return null; + } + } + componentDidMount() { - this.getChapterContent(defaultChapter); + if (this.state.activeSubject !== null) { + const defaultChapter = this.state.activeSubject[0].chapters[0]; + this.getChapterContent(defaultChapter); + } } changeChapter = selectedChapter => { @@ -91,7 +107,11 @@ export default class Subject extends React.Component { } render() { - return this.props.url.query.id === 'laravel' ? ( + return this.state.activeSubject === null ? ( + + Codestin Search App + + ) : (
Table of content
- + ) : null} @@ -121,10 +141,6 @@ export default class Subject extends React.Component {
- ) : ( - - Codestin Search App - ); } } diff --git a/utils/mock-data.js b/utils/mock-data.js index 469c10e66..5d6a0f4b3 100644 --- a/utils/mock-data.js +++ b/utils/mock-data.js @@ -7,7 +7,7 @@ export const listOfSubjects = [ subjectId: 'laravel', icon: 'devicon-laravel-plain colored', learningCount: '20', - learnGuideStatus: true, + isGuideCompleted: true, }, { id: '213', @@ -17,7 +17,7 @@ export const listOfSubjects = [ subjectId: 'reactjs', icon: 'devicon-react-original colored', learningCount: '28', - learnGuideStatus: false, + isGuideCompleted: true, }, { id: '2131', @@ -27,7 +27,7 @@ export const listOfSubjects = [ subjectId: 'go', icon: 'devicon-go-plain colored', learningCount: '7', - learnGuideStatus: false, + isGuideCompleted: false, }, { id: '21fa3', @@ -37,7 +37,7 @@ export const listOfSubjects = [ subjectId: 'android', icon: 'devicon-android-plain colored', learningCount: '9', - learnGuideStatus: false, + isGuideCompleted: false, }, { id: '21afasda3', @@ -47,7 +47,7 @@ export const listOfSubjects = [ subjectId: 'rails', icon: 'devicon-rails-plain colored', learningCount: '14', - learnGuideStatus: false, + isGuideCompleted: false, }, { id: '21wqerwqe3', @@ -57,7 +57,7 @@ export const listOfSubjects = [ subjectId: 'python', icon: 'devicon-python-plain colored', learningCount: '32', - learnGuideStatus: false, + isGuideCompleted: false, }, { id: '2bxcvbx13', @@ -67,7 +67,7 @@ export const listOfSubjects = [ subjectId: 'ios', icon: 'devicon-swift-plain colored', learningCount: '45', - learnGuideStatus: false, + isGuideCompleted: false, }, { id: '2bxczzxcvbx13', @@ -77,7 +77,7 @@ export const listOfSubjects = [ subjectId: 'javascript', icon: 'devicon-javascript-plain colored', learningCount: '31', - learnGuideStatus: false, + isGuideCompleted: false, }, { id: '2bxdfasczzxcvbx13', @@ -87,150 +87,10 @@ export const listOfSubjects = [ subjectId: 'angular', icon: 'devicon-angularjs-plain colored', learningCount: '3', - learnGuideStatus: false, + isGuideCompleted: false, }, ]; -export const indexPageLearns = [ - { - link: 'https://github.com/coderplex/learn/blob/master/web-dev/Frontend/Libraries%20%26%20Frameworks/Learn-React.md', - title: 'ReactJS', - subject: 'Frontend Web Development', - image: '', - }, - { - link: 'https://github.com/coderplex/learn/blob/master/web-dev/Backend/Learn-Laravel.md', - title: 'Laravel', - subject: 'Backend Web Development', - image: '', - }, - { - link: 'https://github.com/coderplex/learn/blob/master/programming-languages/Go/learn-go.md', - title: 'Go', - subject: 'Programming Language', - image: '', - }, - { - link: 'https://github.com/coderplex/learn/blob/master/computer-science/Learn-CS.md', - title: 'Introduction to C.S', - subject: 'Computer Science', - image: '', - }, - { - link: 'https://github.com/coderplex/learn/blob/master/Blockchain/blockchain-basics.md', - title: 'Blockchain', - subject: 'Decentralized Systems', - image: '', - }, - { - link: 'https://github.com/coderplex/learn/blob/master/mobile-dev/Android/learn-android.md', - title: 'Android', - subject: 'Mobile Development', - image: '', - }, -]; - -export const listOfDomains = [ - 'All', - 'Computer Science', - 'Programming Language', - 'Web Development', - 'Mobile Technology', - 'Data Science', - 'Artificial Intelligence', - 'BlockChain', -]; - -export const contentsOfLaravel = { - overview: 'https://cdn.rawgit.com/coderplex/learn/cdn/cdn/laravel/overview.md', - guides: [ - { - name: 'Prerequisites', - url: 'https://cdn.rawgit.com/coderplex/learn/cdn/cdn/laravel/guide/0.md', - }, - { - name: 'Introduction to MVC architecture', - url: 'https://cdn.rawgit.com/coderplex/learn/cdn/cdn/laravel/guide/1.md', - }, - { - name: 'Models,Views,Controllers and Routes', - url: 'https://cdn.rawgit.com/coderplex/learn/cdn/cdn/laravel/guide/2.md', - }, - { - name: 'FrontEnd', - url: 'https://cdn.rawgit.com/coderplex/learn/cdn/cdn/laravel/guide/3.md', - }, - { - name: 'Relationships', - url: 'https://cdn.rawgit.com/coderplex/learn/cdn/cdn/laravel/guide/4.md', - }, - { - name: 'Authentication', - url: 'https://cdn.rawgit.com/coderplex/learn/cdn/cdn/laravel/guide/5.md', - }, - { - name: 'View Composers and Archives', - url: 'https://cdn.rawgit.com/coderplex/learn/cdn/cdn/laravel/guide/6.md', - }, - { - name: 'Testing & Seeding', - url: 'https://cdn.rawgit.com/coderplex/learn/cdn/cdn/laravel/guide/7.md', - }, - { - name: 'Final Project', - url: 'https://cdn.rawgit.com/coderplex/learn/cdn/cdn/laravel/guide/8.md', - }, - ], - contributors: [ - { - userName: 'P Bhanu Teja', - userPage: 'https://github.com/pbteja1998', - userImage: 'https://avatars0.githubusercontent.com/u/17903466?s=400&v=4', - contributions: [ - { - type: 'topic', - count: '20', - }, - { - type: 'article', - count: '30', - }, - { - type: 'video', - count: '25', - }, - ], - }, - { - userName: 'M Zubair Ahmed', - userPage: 'https://github.com/M-ZubairAhmed', - userImage: - 'https://avatars0.githubusercontent.com/u/17708702?s=400&u=032075b378bf6d82da48725b9ce5f31c7a6469fa&v=4', - contributions: [ - { - type: 'topic', - count: '2', - }, - ], - }, - { - userName: 'Vinay Puppal', - userPage: 'https://www.vinaypuppal.com/', - userImage: 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/214440/profile/profile-512.jpg?2', - contributions: [ - { - type: 'topic', - count: '4', - }, - { - type: 'article', - count: '2', - }, - ], - }, - ], -}; - export const laravelSyllabus = [ { unit: { @@ -386,3 +246,155 @@ export const laravelSyllabus = [ ], }, ]; + +export const reactSyllabus = [ + { + unit: { + name: 'Preface', + }, + chapters: [ + { + name: 'Choosing ReactJS', + url: 'https://rawgit.com/coderplex/learn/cdn/react/choosing-reactjs.md', + }, + { + name: 'Prerequisites', + url: 'https://rawgit.com/coderplex/learn/cdn/react/prerequisites.md', + }, + { + name: 'Philosophy', + url: 'https://rawgit.com/coderplex/learn/cdn/react/philosophy.md', + }, + ], + }, + { + unit: { + name: 'Getting Started', + }, + chapters: [ + { + name: 'Trying React', + url: 'https://rawgit.com/coderplex/learn/cdn/react/trying-react.md', + }, + { + name: 'Create React App', + url: 'https://rawgit.com/coderplex/learn/cdn/react/create-react-app.md', + }, + { + name: 'JavaScript XML Syntax', + url: 'https://rawgit.com/coderplex/learn/cdn/react/javascript-xml-syntax.md', + }, + ], + }, + { + unit: { + name: 'Components', + }, + chapters: [ + { + name: 'Custom Components', + url: 'https://rawgit.com/coderplex/learn/cdn/react/custom-components.md', + }, + { + name: 'Rendering', + url: 'https://rawgit.com/coderplex/learn/cdn/react/rendering.md', + }, + { + name: 'Conditional Rendering', + url: 'https://rawgit.com/coderplex/learn/cdn/react/conditional-rendering.md', + }, + { + name: 'Data Flow', + url: 'https://rawgit.com/coderplex/learn/cdn/react/data-flow.md', + }, + { + name: 'Lifecycle', + url: 'https://rawgit.com/coderplex/learn/cdn/react/lifecycle.md', + }, + { + name: 'Events', + url: 'https://rawgit.com/coderplex/learn/cdn/react/events.md', + }, + ], + }, + { + unit: { + name: 'Forms', + }, + chapters: [ + { + name: 'Controlled Components', + url: 'https://rawgit.com/coderplex/learn/cdn/react/controlled-components.md', + }, + { + name: 'Uncontrolled Components', + url: 'https://rawgit.com/coderplex/learn/cdn/react/uncontrolled-components.md', + }, + ], + }, + { + unit: { + name: 'Composition', + }, + chapters: [ + { + name: 'Lifting State Up', + url: 'https://rawgit.com/coderplex/learn/cdn/react/lifting-state-up.md', + }, + { + name: 'Composition vs Inheritance', + url: 'https://rawgit.com/coderplex/learn/cdn/react/composition-vs-inheritance.md', + }, + { + name: 'Context', + url: 'https://rawgit.com/coderplex/learn/cdn/react/context.md', + }, + ], + }, + { + unit: { + name: 'Tools', + }, + chapters: [ + { + name: 'Developer Tools', + url: 'https://rawgit.com/coderplex/learn/cdn/react/developer-tools.md', + }, + { + name: 'Proptypes', + url: 'https://rawgit.com/coderplex/learn/cdn/react/proptypes.md', + }, + { + name: 'Error Boundaries', + url: 'https://rawgit.com/coderplex/learn/cdn/react/error-boundaries.md', + }, + ], + }, + { + unit: { + name: 'In depth discussions', + }, + chapters: [ + { + name: 'JSX In Depth', + url: 'https://rawgit.com/coderplex/learn/cdn/react/jsx-in-depth.md', + }, + { + name: 'Synthetic Events', + url: 'https://rawgit.com/coderplex/learn/cdn/react/synthetic-events.md', + }, + { + name: 'React Without JSX', + url: 'https://rawgit.com/coderplex/learn/cdn/react/react-without-jsx.md', + }, + { + name: 'React without ES6', + url: 'https://rawgit.com/coderplex/learn/cdn/react/react-without-es6.md', + }, + { + name: 'Reconcilation - Diff Algorithm', + url: 'https://rawgit.com/coderplex/learn/cdn/react/reconcilation---diff-algorithm.md', + }, + ], + }, +];