Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
2388 stevensc 1
import React, { useEffect, useState } from 'react'
2
import { useHistory, useParams } from 'react-router-dom'
2369 stevensc 3
import { useSelector } from 'react-redux'
2362 stevensc 4
import { Container, Grid } from '@mui/material'
2368 stevensc 5
import parse from 'html-react-parser'
2362 stevensc 6
 
2390 stevensc 7
import { axios } from '@app/utils'
2385 stevensc 8
import useFetch from '@app/hooks/useFetch'
9
 
2362 stevensc 10
import Widget from '@app/components/UI/Widget'
2369 stevensc 11
import AuthNavbar from '@app/components/UI/auth-navbar'
2362 stevensc 12
 
13
function ShorterPostPage() {
2385 stevensc 14
  const { id } = useParams()
2388 stevensc 15
  const history = useHistory()
2385 stevensc 16
  const { data } = useFetch(`/shorter/${id}`, null)
2388 stevensc 17
  const [post, setPost] = useState({})
18
  const { isAuth } = useSelector((state) => state.auth)
2368 stevensc 19
 
2388 stevensc 20
  const getPost = async (url) => {
2390 stevensc 21
    return await axios.get(url).then((res) => res.data.data)
2388 stevensc 22
  }
2385 stevensc 23
 
2388 stevensc 24
  useEffect(() => {
2390 stevensc 25
    if (!data) return
2402 stevensc 26
    if (data?.redirect) {
27
      const redirectUrl = data?.url.split('.com')[1]
28
      history.replace(redirectUrl)
29
      return
30
    }
2388 stevensc 31
 
2389 stevensc 32
    getPost(data?.url)
2388 stevensc 33
      .then((post) => setPost(post))
34
      .catch((error) => console.log(error))
35
  }, [data])
36
 
2362 stevensc 37
  return (
2369 stevensc 38
    <>
39
      {!isAuth ? <AuthNavbar /> : null}
40
      <Container>
41
        <Grid
42
          container
43
          sx={{
44
            display: 'flex',
45
            justifyContent: 'center',
46
            alignItems: 'center'
47
          }}
48
        >
49
          <Grid item xs={12} md={8}>
50
            <Widget>
2393 stevensc 51
              <Widget.Media alt={post.title} src={post.image} height={450} />
2362 stevensc 52
 
2392 stevensc 53
              <Widget.Body>{parse(post.description ?? '')}</Widget.Body>
2369 stevensc 54
            </Widget>
55
          </Grid>
2362 stevensc 56
        </Grid>
2369 stevensc 57
      </Container>
58
    </>
2362 stevensc 59
  )
60
}
61
 
62
export default ShorterPostPage