Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 2885 | Rev 2963 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 2885 Rev 2960
Línea 1... Línea 1...
1
import React from 'react'
1
import React, { useMemo } from 'react'
2
import { useNavigate } from 'react-router-dom'
2
import { useNavigate } from 'react-router-dom'
3
import { useSelector } from 'react-redux'
3
import { useSelector } from 'react-redux'
Línea 4... Línea 4...
4
 
4
 
Línea 5... Línea 5...
5
import { useFetch } from '@hooks'
5
import { useFetch } from '@hooks'
6
 
6
 
-
 
7
import Widget from '@components/UI/Widget'
-
 
8
import EmptySection from '@components/UI/EmptySection'
-
 
9
import {
-
 
10
  Avatar,
-
 
11
  List,
-
 
12
  ListItemAvatar,
-
 
13
  ListItemButton,
7
import Widget from '@components/UI/Widget'
14
  ListItemText
Línea 8... Línea 15...
8
import EmptySection from '@components/UI/EmptySection'
15
} from '@mui/material'
9
import List from '@components/UI/List'
16
import { ListItem } from '@components/UI/List'
10
 
17
 
11
export default function HomeNews({ currentPost }) {
18
export default function HomeNews({ currentPost }) {
Línea -... Línea 19...
-
 
19
  const { data: posts } = useFetch('/helpers/posts', [])
-
 
20
  const labels = useSelector(({ intl }) => intl.labels)
-
 
21
  const navigate = useNavigate()
-
 
22
 
-
 
23
  const filterPosts = useMemo(
12
  const { data: news } = useFetch('/helpers/posts', [])
24
    () => posts?.filter((post) => post.link.includes(currentPost)),
13
  const labels = useSelector(({ intl }) => intl.labels)
25
    [currentPost, posts]
14
  const navigate = useNavigate()
26
  )
Línea 15... Línea 27...
15
 
27
 
16
  return (
28
  return (
17
    <Widget>
29
    <Widget>
18
      <Widget.Header title={labels.posts} />
30
      <Widget.Header title={labels.posts} />
Línea 19... Línea 31...
19
 
31
 
20
      <Widget.Body>
32
      <Widget.Body>
21
        {news?.length <= 0 ? (
-
 
22
          <EmptySection message={labels.not_available_posts} />
-
 
23
        ) : null}
-
 
24
 
-
 
25
        <List styles={{ maxHeight: '380px', overflow: 'scroll' }}>
33
        {posts?.length <= 0 && (
26
          {news?.map(({ link, title, image, date }) => {
34
          <EmptySection message={labels.not_available_posts} />
27
            if (link.includes(currentPost)) return null
35
        )}
28
 
36
 
29
            return (
37
        <List sx={{ maxHeight: 285, overflow: 'auto' }}>
-
 
38
          {filterPosts.map(({ link, title, image, date }) => (
30
              <List.Item
39
            <ListItem key={title}>
31
                key={title}
40
              <ListItemButton onClick={() => navigate(link)}>
32
                title={title}
41
                <ListItemAvatar>
33
                image={image}
42
                  <Avatar src={image} alt={`${title} post image`} />
34
                subheader={date}
43
                </ListItemAvatar>
35
                avatarVariant='square'
44
 
36
                onClick={() => navigate(link)}
45
                <ListItemText primary={title} secondary={date} />
37
              />
46
              </ListItemButton>
38
            )
47
            </ListItem>