Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 636 | Rev 3209 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

import React, { useEffect, useMemo, useState } from "react";
import { axios } from '../../utils';
import List from "./list/List";
import Test from "./test/Test";
import Search from "../../shared/search/Search";
import Breadcrumbs from "../../shared/breadcrumbs/Breadcrumbs"

const SelfEvaluation = (props) => {


    // get props
    const { backendVars } = props;

    /**
     * Init States
     */
    const [data, setData] = useState([]);
    const [action, setAction] = useState();
    const [test, setTest] = useState();
    const [loading, setLoading] = useState(true);

    /**
     * Get All self evaluation tests
     */
    const fetchData = async (searchParam = '') => {
        setLoading(true);
        await axios.get(
            "/profile/self-evaluation?search=" + searchParam)
            .then((response) => {
                if (response.data.success) {
                    setData(response.data.data);
                }
            });
        setLoading(false);
    };

    /**
     * get info test
     * @param {*} url 
     */
    const getTestByUrl = async (url) => {
        await axios.get(url)
            .then((response) => {
                if (response.data.success) {
                    setAction(url);
                    setTest(response.data.data);
                }
            });
    };

    /**
     * Search data
     * @param {*} e 
     */
    const handleSearch = async (e) => fetchData(e);

    /**
     * componentDidMount
     */
    useEffect(() => {
        fetchData();
    }, [test]);

    const Content = useMemo(() => {
        !test ? (
            <div className="container">
                <div className="row">
                    <Breadcrumbs title={backendVars.LBL_SELF_EVALUATION} />
                </div>
                <div className="row">
                    <Search handleSearch={handleSearch} backendVars={backendVars} />
                </div>
                <div className="row">
                    <List
                        data={data}
                        getTestByUrl={getTestByUrl}
                        backendVars={backendVars}
                        loading={loading}
                    />
                </div>
            </div>
        ) : (
            <div className="container">
                <Test
                    backendVars={backendVars}
                    loading={loading}
                    setTest={setTest}
                    test={test}
                    action={action}
                />
            </div>
        )
    }, [test]);

    return (
        <section className="companies-info">
            <Content
            />
        </section>

    );
};

export default SelfEvaluation;