Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 1158 | Rev 1598 | 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">
71
            <div
72
              className="row"
73
              id="profiles-container"
74
              style={{
75
                position: "relative",
76
              }}
77
            >
1158 stevensc 78
              {
79
                Groups.length
80
                  ?
81
                  Groups.map(
82
                    ({ image, link_delete, link_edit, link_view, name, privacy }, id) => (
1597 steven 83
                      <Profile
1158 stevensc 84
                        image={image}
85
                        name={name}
1597 steven 86
                        status={privacy}
1158 stevensc 87
                        link_view={link_view}
88
                        link_edit={link_edit}
89
                        link_delete={link_delete}
90
                        key={id}
91
                      />
92
                    ))
93
                  :
94
                  <div style={{ margin: "auto", textAlign: "center" }}>
95
                    Ningún registro coincidio con su consulta
96
                  </div>
97
              }
1 www 98
              {loading && (
99
                <StyledSpinnerContainer>
100
                  <Spinner />
101
                </StyledSpinnerContainer>
102
              )}
103
            </div>
104
            {/* <!--product-feed-tab end--> */}
105
          </div>
106
        </div>
107
      </section>
108
      <AddGroupModal
109
        show={showAddGroupModal}
110
        onHide={handleShowAddGroupModal}
111
        fetchGroups={fetchGroups}
112
        groupTypes={groupTypes}
113
        industries={industries}
114
      />
115
    </React.Fragment>
116
  );
117
};
118
 
119
// const mapStateToProps = (state) => ({});
120
 
121
const mapDispatchToProps = {
122
  addNotification: (notification) => addNotification(notification),
123
};
124
 
125
export default connect(null, mapDispatchToProps)(MyGroups);