diff --git a/src/Redux/actions/public.js b/src/Redux/actions/public.js index 3df16dd..b02d22b 100644 --- a/src/Redux/actions/public.js +++ b/src/Redux/actions/public.js @@ -2,6 +2,12 @@ import proxy from "../proxy"; const publicApi = { getHomeData: (data, history) => async (dispatch) => await proxy.get("public/homePage", data, { history, dispatch }), + getFaqList: (data, history) => async (dispatch) => + await proxy.get("public/faq", data, { history, dispatch }), + setFaqActive: (data) => async (dispatch) => + await dispatch({ type: "public/faq/activate", data: data }), + searchFaq: (data) => async (dispatch) => + await dispatch({ type: "public/faq/search", data: data }), }; export default publicApi; diff --git a/src/Redux/reducers/book.js b/src/Redux/reducers/book.js index ea9cbd1..c394bf6 100644 --- a/src/Redux/reducers/book.js +++ b/src/Redux/reducers/book.js @@ -1,5 +1,5 @@ const initialState = { - loading: false, + loading: true, error: null, list: null, info: null, diff --git a/src/Redux/reducers/public.js b/src/Redux/reducers/public.js index 20afc77..bff629d 100644 --- a/src/Redux/reducers/public.js +++ b/src/Redux/reducers/public.js @@ -1,13 +1,40 @@ const initialState = { homeData: [], + faqList: [], loading: false, error: null, + searchResult: [], }; export default function publicApi(state = initialState, action) { let { type, data } = action; switch (type) { case "public/homePage": return { ...state, loading: false, error: null, homeData: data }; + case "public/faq": + return { ...state, loading: false, error: null, faqList: data }; + case "public/faq/activate": + return { + ...state, + loading: false, + error: null, + faqList: state.faqList.map((item) => + item.id === data + ? { ...item, active: !item.active } + : { ...item, active: false } + ), + }; + case "public/faq/search": + console.log(data); + return { + ...state, + loading: false, + error: null, + searchResult: state.faqList.filter( + (item) => + item.title.indexOf(data) !== -1 || + item.description.indexOf(data) !== -1 + ), + }; case "loading": return { ...state, loading: true }; case "error": diff --git a/src/views/Faq/Collapse/index.js b/src/views/Faq/Collapse/index.js index 4cd27a5..0731dbf 100644 --- a/src/views/Faq/Collapse/index.js +++ b/src/views/Faq/Collapse/index.js @@ -1,4 +1,7 @@ import React, { Component } from "react"; +import { connect } from "react-redux"; +import { publicApi } from "~/Redux/actions"; + import KeyboardArrowUpIcon from "@material-ui/icons/KeyboardArrowUp"; import KeyboardArrowDownIcon from "@material-ui/icons/KeyboardArrowDown"; @@ -17,9 +20,10 @@ const fontSize = { div: window.innerWidth > maxDesktopSize ? 14 : window.innerWidth / 95, }, }; -export default class Collapse extends Component { + +class Collapse extends Component { render() { - const { message, setMessageActive } = this.props; + const { message, setFaqActive } = this.props; return (