Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 2320 | Rev 2718 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 www 1
import React from "react";
2
import { useEffect, useState } from "react";
3
import { connect } from "react-redux";
4
import { useForm } from "react-hook-form";
5
import styled from "styled-components";
1158 stevensc 6
import { axios } from "../../../../utils";
1 www 7
import Group from "./group/Group";
8
import AddGroupModal from "./add-group-modal/AddGroupModal";
9
import { addNotification } from "../../../../redux/notification/notification.actions";
10
import Spinner from "../../../../shared/loading-spinner/Spinner";
1597 steven 11
import SearchList from "../../../../components/SearchList";
12
import Profile from "../../../../components/Profile";
1 www 13
 
14
const StyledSpinnerContainer = styled.div`
15
  position: absolute;
16
  left: 0;
17
  top: 0;
18
  width: 100%;
19
  height: 100%;
20
  background: rgba(255, 255, 255, 0.4);
21
  display: flex;
22
  justify-content: center;
23
  align-items: center;
24
  z-index: 300;
25
`;
26
 
27
const MyGroups = (props) => {
28
  // props destructuring
29
  const { groupTypes, industries } = props.backendVars;
30
 
31
  // states
32
  const [Groups, setGroups] = useState([]);
33
  const [loading, setLoading] = useState(true);
34
  const [showAddGroupModal, setShowAddGroupModal] = useState(false);
35
 
36
  useEffect(() => {
37
    fetchGroups();
38
  }, []);
39
 
1158 stevensc 40
  const fetchGroups = async (searchParam = '') => {
1 www 41
    setLoading(true);
42
    await axios
43
      .get(
1158 stevensc 44
        "/group/my-groups?search=" + searchParam)
1 www 45
      .then((response) => {
46
        const resData = response.data;
1158 stevensc 47
        (resData);
1 www 48
        if (resData.success) {
49
          setGroups(resData.data);
50
        }
51
      });
52
    setLoading(false);
53
  };
54
 
55
  const handleShowAddGroupModal = () => {
56
    setShowAddGroupModal(!showAddGroupModal);
57
  };
58
 
59
  return (
60
    <React.Fragment>
61
      <section className="companies-info">
62
        <div className="container">
1597 steven 63
          <SearchList
64
            title="Mis grupos"
65
            fetchCallback={fetchGroups}
66
            addTitle="Agregar"
67
            addCallback={handleShowAddGroupModal}
68
          />
1 www 69
 
70
          <div className="companies-list">
2294 stevensc 71
            {
72
              Groups.length
73
                ?
74
                Groups.map(
75
                  ({ image, link_delete, link_edit, link_view, name, privacy }, id) => (
76
                    <Profile
77
                      image={image}
78
                      name={name}
79
                      status={privacy}
80
                      link_view={link_view}
81
                      link_edit={link_edit}
82
                      link_delete={link_delete}
83
                      key={id}
84
                      fetchCallback={fetchGroups}
2320 stevensc 85
                      btnAcceptTitle='Ver grupo'
86
                      btnEditTitle='Editar grupo'
2322 stevensc 87
                      btnCancelTitle='Borrar grupo'
2294 stevensc 88
                    />
89
                  ))
90
                :
91
                <div style={{ margin: "auto", textAlign: "center" }}>
92
                  Ningún registro coincidio con su consulta
93
                </div>
94
            }
95
            {loading && (
96
              <StyledSpinnerContainer>
97
                <Spinner />
98
              </StyledSpinnerContainer>
99
            )}
1 www 100
          </div>
2294 stevensc 101
          {/* <!--product-feed-tab end--> */}
1 www 102
        </div>
103
      </section>
104
      <AddGroupModal
105
        show={showAddGroupModal}
106
        onHide={handleShowAddGroupModal}
107
        fetchGroups={fetchGroups}
108
        groupTypes={groupTypes}
109
        industries={industries}
110
      />
111
    </React.Fragment>
112
  );
113
};
114
 
115
// const mapStateToProps = (state) => ({});
116
 
117
const mapDispatchToProps = {
118
  addNotification: (notification) => addNotification(notification),
119
};
120
 
121
export default connect(null, mapDispatchToProps)(MyGroups);