Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
2922 stevensc 1
import React, { useMemo, useState } from 'react'
5 stevensc 2
import { useSelector } from 'react-redux'
2942 stevensc 3
import { IconButton, styled, Typography } from '@mui/material'
2921 stevensc 4
import { ExpandLess, ExpandMore } from '@mui/icons-material'
5 stevensc 5
 
2922 stevensc 6
import { useFetch } from '@hooks'
5 stevensc 7
 
2921 stevensc 8
import Widget from '@components/UI/Widget'
9
import List from '@components/UI/List'
853 stevensc 10
 
2921 stevensc 11
const HelperItem = styled('div')`
853 stevensc 12
  cursor: pointer;
13
  display: flex;
14
  align-items: center;
15
  justify-content: space-between;
16
  width: 100%;
17
`
18
 
1774 stevensc 19
const GroupsWidget = () => {
5 stevensc 20
  const labels = useSelector(({ intl }) => intl.labels)
21
 
22
  return (
2921 stevensc 23
    <Widget>
24
      <Widget.Body>
25
        <GroupsWidget.Item url='/helpers/my-groups' title={labels.my_groups} />
26
        <GroupsWidget.Item
27
          url='/helpers/groups-suggestion'
28
          title={labels.suggest_groups}
29
        />
30
      </Widget.Body>
31
    </Widget>
5 stevensc 32
  )
33
}
34
 
2922 stevensc 35
const Item = ({ url = '/helpers/my-groups', title = 'Mis grupos' }) => {
36
  const [displayMenu, setDisplayMenu] = useState(false)
854 stevensc 37
  const [lookMore, setLookMore] = useState(false)
5 stevensc 38
  const labels = useSelector(({ intl }) => intl.labels)
39
 
2942 stevensc 40
  const { data } = useFetch(url, [])
5 stevensc 41
 
2942 stevensc 42
  const items = useMemo(() => {
43
    if (!lookMore) return [...data].slice(0, 3)
44
    return data
45
  }, [lookMore])
46
 
2943 stevensc 47
  console.log(items)
2944 stevensc 48
  console.log(data)
2943 stevensc 49
 
2922 stevensc 50
  const toggleMenu = () => setDisplayMenu(!displayMenu)
5 stevensc 51
 
52
  return (
853 stevensc 53
    <>
854 stevensc 54
      <HelperItem>
2942 stevensc 55
        <Typography variant='overline'>{title}</Typography>
56
 
853 stevensc 57
        <IconButton onClick={toggleMenu}>
2921 stevensc 58
          {displayMenu ? <ExpandLess /> : <ExpandMore />}
853 stevensc 59
        </IconButton>
854 stevensc 60
      </HelperItem>
5 stevensc 61
 
2921 stevensc 62
      <List styles={{ width: '100%', height: displayMenu ? 'auto' : 0 }}>
2944 stevensc 63
        {/* {data.map(({ id, name, profile, image }) => (
2921 stevensc 64
          <List.Item key={id} image={image} title={name} url={profile} />
65
        ))}
5 stevensc 66
 
2922 stevensc 67
        {items.length > 3 && (
2921 stevensc 68
          <List.Item
69
            title={lookMore ? labels.view_less : labels.view_more}
70
            onClick={() => setLookMore(!lookMore)}
71
          />
2944 stevensc 72
        )} */}
2921 stevensc 73
      </List>
853 stevensc 74
    </>
5 stevensc 75
  )
76
}
77
 
1774 stevensc 78
GroupsWidget.Item = Item
5 stevensc 79
 
1774 stevensc 80
export default GroupsWidget