Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 1597 | Rev 2294 | 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}
1598 steven 91
                        fetchCallback={fetchGroups}
1158 stevensc 92
                      />
93
                    ))
94
                  :
95
                  <div style={{ margin: "auto", textAlign: "center" }}>
96
                    Ningún registro coincidio con su consulta
97
                  </div>
98
              }
1 www 99
              {loading && (
100
                <StyledSpinnerContainer>
101
                  <Spinner />
102
                </StyledSpinnerContainer>
103
              )}
104
            </div>
105
            {/* <!--product-feed-tab end--> */}
106
          </div>
107
        </div>
108
      </section>
109
      <AddGroupModal
110
        show={showAddGroupModal}
111
        onHide={handleShowAddGroupModal}
112
        fetchGroups={fetchGroups}
113
        groupTypes={groupTypes}
114
        industries={industries}
115
      />
116
    </React.Fragment>
117
  );
118
};
119
 
120
// const mapStateToProps = (state) => ({});
121
 
122
const mapDispatchToProps = {
123
  addNotification: (notification) => addNotification(notification),
124
};
125
 
126
export default connect(null, mapDispatchToProps)(MyGroups);