From 42d5896f63112b091c72f0db1278d0f4da456e9e Mon Sep 17 00:00:00 2001 From: RezaAshrafi77 Date: Thu, 23 Sep 2021 13:04:37 +0330 Subject: [PATCH] reza activated lesson dropdown --- src/redux/actions-type/book.tsx | 7 +- src/redux/actions/book.tsx | 7 +- src/redux/reducers/book.tsx | 319 +++++++++++++++-------------- src/views/Course/Lesson/index.scss | 11 +- src/views/Course/Lesson/index.tsx | 12 +- 5 files changed, 197 insertions(+), 159 deletions(-) diff --git a/src/redux/actions-type/book.tsx b/src/redux/actions-type/book.tsx index 6d56d31..38f878c 100644 --- a/src/redux/actions-type/book.tsx +++ b/src/redux/actions-type/book.tsx @@ -8,6 +8,11 @@ interface info{ data : any } +interface setLessonActive{ + type : "book/lesson/active" + data : any +} + interface error{ type : "book/error" data : undefined @@ -19,6 +24,6 @@ interface loading{ } -type BookAction = list | info | loading | error; +type BookAction = list | info | setLessonActive | loading | error; export default BookAction; diff --git a/src/redux/actions/book.tsx b/src/redux/actions/book.tsx index 853e8a9..3a35406 100644 --- a/src/redux/actions/book.tsx +++ b/src/redux/actions/book.tsx @@ -3,12 +3,15 @@ import { Dispatch } from "redux"; const book = { list: (data = {}) => - async (dispatch : Dispatch) => + async (dispatch: Dispatch) => await proxy.get("book/list", data, { dispatch }), info: (data = {}) => - async (dispatch : Dispatch) => + async (dispatch: Dispatch) => await proxy.get("book/info", data, { dispatch }), + + setLessonActive: (data: undefined) => async (dispatch: Dispatch) => + await dispatch({ type: "book/lesson/active", data: data }), // update: // (data = {}, data2 = {}) => // async (dispatch : Dispatch) => { diff --git a/src/redux/reducers/book.tsx b/src/redux/reducers/book.tsx index 637f49e..153ee3c 100644 --- a/src/redux/reducers/book.tsx +++ b/src/redux/reducers/book.tsx @@ -11,180 +11,184 @@ const initialState = { subjects: [], levels: [], sortFilters: ["مرتب سازی", "محبوب ترین", "جدیدترین"], - mockLessons : [ - { - id : 0, - title : "درس اول : چگونه با نیاندیشن آینده خود و اطرافیانمان را نابود کنیم؟ ", + mockLessons: [ + { + id: 0, + title: + "درس اول : چگونه با نیاندیشن آینده خود و اطرافیانمان را نابود کنیم؟ ", duration: 256, - active : true, - files : [ - { - type : 'video', - name : 'مقدمه ای جالب و قابل تامل مترجم کتاب', - duration : '1:40:00', - view : true, - download : true - }, - { - type : 'video', - name : 'مقدمه ای جالب و قابل تامل مترجم کتاب', - duration : '1:40:00', - view : true, - download : true + active: true, + files: [ + { + type: "video", + name: "مقدمه ای جالب و قابل تامل مترجم کتاب", + duration: "1:40:00", + view: true, + download: true, }, - { - type : 'video', - name : 'مقدمه ای جالب و قابل تامل مترجم کتاب', - duration : '1:40:00', - view : true, - download : false + { + type: "video", + name: "مقدمه ای جالب و قابل تامل مترجم کتاب", + duration: "1:40:00", + view: true, + download: true, }, - { - type : 'video', - name : 'مقدمه ای جالب و قابل تامل مترجم کتاب', - duration : '1:40:00', - view : false, - download : false + { + type: "video", + name: "مقدمه ای جالب و قابل تامل مترجم کتاب", + duration: "1:40:00", + view: true, + download: false, }, - { - type : 'document', - name : 'مقدمه ای جالب و قابل تامل مترجم کتاب', - duration : '1:40:00', - view : false, - download : false + { + type: "video", + name: "مقدمه ای جالب و قابل تامل مترجم کتاب", + duration: "1:40:00", + view: false, + download: false, }, - ] + { + type: "document", + name: "مقدمه ای جالب و قابل تامل مترجم کتاب", + duration: "1:40:00", + view: false, + download: false, + }, + ], }, - { - id : 1, - title : "درس اول : چگونه با نیاندیشن آینده خود و اطرافیانمان را نابود کنیم؟ ", + { + id: 1, + title: + "درس اول : چگونه با نیاندیشن آینده خود و اطرافیانمان را نابود کنیم؟ ", duration: 256, - active : false, - files : [ - { - type : 'video', - name : 'مقدمه ای جالب و قابل تامل مترجم کتاب', - duration : '1:40:00', - view : true, - download : true - }, - { - type : 'video', - name : 'مقدمه ای جالب و قابل تامل مترجم کتاب', - duration : '1:40:00', - view : true, - download : true + active: false, + files: [ + { + type: "video", + name: "مقدمه ای جالب و قابل تامل مترجم کتاب", + duration: "1:40:00", + view: true, + download: true, + }, + { + type: "video", + name: "مقدمه ای جالب و قابل تامل مترجم کتاب", + duration: "1:40:00", + view: true, + download: true, }, - { - type : 'video', - name : 'مقدمه ای جالب و قابل تامل مترجم کتاب', - duration : '1:40:00', - view : true, - download : false + { + type: "video", + name: "مقدمه ای جالب و قابل تامل مترجم کتاب", + duration: "1:40:00", + view: true, + download: false, }, - { - type : 'video', - name : 'مقدمه ای جالب و قابل تامل مترجم کتاب', - duration : '1:40:00', - view : false, - download : false + { + type: "video", + name: "مقدمه ای جالب و قابل تامل مترجم کتاب", + duration: "1:40:00", + view: false, + download: false, }, - { - type : 'video', - name : 'مقدمه ای جالب و قابل تامل مترجم کتاب', - duration : '1:40:00', - view : false, - download : false + { + type: "video", + name: "مقدمه ای جالب و قابل تامل مترجم کتاب", + duration: "1:40:00", + view: false, + download: false, }, - ] + ], }, - { - id : 2, - title : "درس اول : چگونه با نیاندیشن آینده خود و اطرافیانمان را نابود کنیم؟ ", + { + id: 2, + title: + "درس اول : چگونه با نیاندیشن آینده خود و اطرافیانمان را نابود کنیم؟ ", duration: 256, - active : false, - files : [ - { - type : 'video', - name : 'مقدمه ای جالب و قابل تامل مترجم کتاب', - duration : '1:40:00', - view : true, - download : true - }, - { - type : 'video', - name : 'مقدمه ای جالب و قابل تامل مترجم کتاب', - duration : '1:40:00', - view : true, - download : true + active: false, + files: [ + { + type: "video", + name: "مقدمه ای جالب و قابل تامل مترجم کتاب", + duration: "1:40:00", + view: true, + download: true, + }, + { + type: "video", + name: "مقدمه ای جالب و قابل تامل مترجم کتاب", + duration: "1:40:00", + view: true, + download: true, }, - { - type : 'video', - name : 'مقدمه ای جالب و قابل تامل مترجم کتاب', - duration : '1:40:00', - view : true, - download : false + { + type: "video", + name: "مقدمه ای جالب و قابل تامل مترجم کتاب", + duration: "1:40:00", + view: true, + download: false, }, - { - type : 'video', - name : 'مقدمه ای جالب و قابل تامل مترجم کتاب', - duration : '1:40:00', - view : false, - download : false + { + type: "video", + name: "مقدمه ای جالب و قابل تامل مترجم کتاب", + duration: "1:40:00", + view: false, + download: false, }, - { - type : 'video', - name : 'مقدمه ای جالب و قابل تامل مترجم کتاب', - duration : '1:40:00', - view : false, - download : false + { + type: "video", + name: "مقدمه ای جالب و قابل تامل مترجم کتاب", + duration: "1:40:00", + view: false, + download: false, }, - ] + ], }, - { - id : 3, - title : "درس اول : چگونه با نیاندیشن آینده خود و اطرافیانمان را نابود کنیم؟ ", + { + id: 3, + title: + "درس اول : چگونه با نیاندیشن آینده خود و اطرافیانمان را نابود کنیم؟ ", duration: 256, - active : false, - files : [ - { - type : 'video', - name : 'مقدمه ای جالب و قابل تامل مترجم کتاب', - duration : '1:40:00', - view : true, - download : true - }, - { - type : 'video', - name : 'مقدمه ای جالب و قابل تامل مترجم کتاب', - duration : '1:40:00', - view : true, - download : true + active: false, + files: [ + { + type: "video", + name: "مقدمه ای جالب و قابل تامل مترجم کتاب", + duration: "1:40:00", + view: true, + download: true, }, - { - type : 'video', - name : 'مقدمه ای جالب و قابل تامل مترجم کتاب', - duration : '1:40:00', - view : true, - download : false + { + type: "video", + name: "مقدمه ای جالب و قابل تامل مترجم کتاب", + duration: "1:40:00", + view: true, + download: true, }, - { - type : 'video', - name : 'مقدمه ای جالب و قابل تامل مترجم کتاب', - duration : '1:40:00', - view : false, - download : false + { + type: "video", + name: "مقدمه ای جالب و قابل تامل مترجم کتاب", + duration: "1:40:00", + view: true, + download: false, }, - { - type : 'video', - name : 'مقدمه ای جالب و قابل تامل مترجم کتاب', - duration : '1:40:00', - view : false, - download : false + { + type: "video", + name: "مقدمه ای جالب و قابل تامل مترجم کتاب", + duration: "1:40:00", + view: false, + download: false, }, - ] - } - ] + { + type: "video", + name: "مقدمه ای جالب و قابل تامل مترجم کتاب", + duration: "1:40:00", + view: false, + download: false, + }, + ], + }, + ], }; const grades = [ @@ -203,7 +207,7 @@ const grades = [ "دوازدهم", ]; -export default function book(state = initialState, action : BookAction) { +export default function book(state = initialState, action: BookAction) { let { type, data } = action; switch (type) { case "book/list": @@ -231,6 +235,17 @@ export default function book(state = initialState, action : BookAction) { }; case "book/info": return { ...state, loading: false, info: data, error: null }; + case "book/lesson/active": + return { + ...state, + loading: false, + error: null, + mockLessons: state.mockLessons.map((item) => + item.id === data + ? { ...item, active: !item.active } + : { ...item, active: false } + ), + }; // case "book/update": // return { ...state, loading: false, error: null }; // case "book/add": diff --git a/src/views/Course/Lesson/index.scss b/src/views/Course/Lesson/index.scss index 5eceaf4..aa4cddc 100644 --- a/src/views/Course/Lesson/index.scss +++ b/src/views/Course/Lesson/index.scss @@ -2,7 +2,8 @@ header { background-color: #414141; border: 1px solid #b3b3b3 !important; - padding: 15px !important; + padding: 10px 15px !important; + cursor: pointer; h4 { color: #9cdf52; margin: 0px; @@ -47,6 +48,10 @@ font-size: 18px; } } + &__duration{ + width: 260px; + text-align: center; + } &__files{ &--sample{ li{ @@ -72,6 +77,10 @@ font-size: calc(100vw / 80); } } + &__duration{ + width: 250px; + text-align: center; + } &__files{ &--sample{ li{ diff --git a/src/views/Course/Lesson/index.tsx b/src/views/Course/Lesson/index.tsx index 61743d4..9e74432 100644 --- a/src/views/Course/Lesson/index.tsx +++ b/src/views/Course/Lesson/index.tsx @@ -4,17 +4,19 @@ import whitePlay from "../../../assets/icons/white-play.png"; import document from "../../../assets/icons/document.png"; import lock from "../../../assets/icons/lock.png"; import './index.scss'; +import {connect} from 'react-redux'; +import {book} from '../../../redux/actions'; -export default function Lesson(props : any) { +function Lesson(props : any) { const {lesson} = props; return (
-
+
props.toggle(lesson.id)}>

{lesson.title}

-
+
مدت زمان درس {lesson.duration}
@@ -54,3 +56,7 @@ export default function Lesson(props : any) {
) } + +export default connect((state : any) => ({ + +}),{toggle : book.setLessonActive})(Lesson); \ No newline at end of file