Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

import React, { useEffect, useState } from "react";
import { axios } from '../../utils';
import CardTest from "./card-test/CardTest";
import Search from "../../shared/search/Search";
import Breadcrumbs from "../../shared/breadcrumbs/Breadcrumbs"
import Spinner from "../../shared/loading-spinner/Spinner";

const SelfEvaluation = (props) => {


    // get props
    const { backendVars } = props;

    /**
     * Init States
     */
    const [rows, setRows] = 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) {
                    setRows(response.data.data);
                }
            });
        setLoading(false);
    };

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

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

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

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

            {!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="companies-list">
                        {loading ? (
                            <div className="row">
                                <Spinner />
                            </div>
                        ) : (
                            <div className="row">
                                {rows.length <= 0 ? (
                                    <div className="col-md-12 col-sm-12 col-xs-12 text-center">
                                        {backendVars.LBL_DATATABLE_SZERORECORDS}
                                    </div>
                                ) : (
                                    <div className="col-md-12 col-sm-12 col-xs-12">
                                        {rows.map((test, key) => {
                                            return <CardTest
                                                key={key}
                                                test={test}
                                                getTestByUrl={getTestByUrl}
                                                backendVars={backendVars} />
                                        })}
                                    </div>
                                )}
                            </div>
                        )}

                    </div>

                </div>) : (

                <div className="container">
                    {loading ? (
                        <div className="row">
                            <Spinner />
                        </div>
                    ) : (
                        <div>
{test}
                        </div>
                    )}
                </div>
            )}

        </section>

    );
};

export default SelfEvaluation;