Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3274 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 3274 Rev 3719
Línea 1... Línea 1...
1
import React from 'react'
1
import React from 'react';
2
import { useParams } from 'react-router-dom'
2
import { useParams } from 'react-router-dom';
3
import { Grid } from '@mui/material'
3
import { Grid } from '@mui/material';
4
 
4
 
5
import { usePosts } from '@hooks'
5
import { usePosts } from '@hooks';
6
 
6
 
7
import PostCard from '@components/post/PostCard'
7
import PostCard from '@components/post/PostCard';
8
import HomeNews from '@components/widgets/default/HomeNews'
8
import HomeNews from '@components/widgets/default/HomeNews';
9
 
9
 
10
const PostViewPage = () => {
10
const PostViewPage = () => {
11
  const { uuid } = useParams()
11
  const { uuid } = useParams();
12
  const {
-
 
13
    post,
-
 
14
    addComment,
-
 
15
    updateTotalShare,
12
  const { post, addComment, updateTotalShare, updateMyReaction, updateReactions } = usePosts(
16
    updateMyReaction,
13
    `/post/${uuid}`
17
    updateReactions
14
  );
18
  } = usePosts(`/post/${uuid}`)
-
 
19
 
15
 
20
  return (
16
  return (
21
    <Grid container spacing={1}>
17
    <Grid container spacing={1}>
22
      <Grid item xs={12} md={8}>
18
      <Grid size={{ xs: 12, md: 8 }}>
23
        <PostCard
19
        <PostCard
24
          post={post}
20
          post={post}
25
          addComment={addComment}
21
          addComment={addComment}
26
          updateTotalShare={updateTotalShare}
22
          updateTotalShare={updateTotalShare}
27
          updateMyReaction={updateMyReaction}
23
          updateMyReaction={updateMyReaction}
28
          updateReactions={updateReactions}
24
          updateReactions={updateReactions}
29
        />
25
        />
30
      </Grid>
26
      </Grid>
31
 
27
 
32
      <Grid item xs={12} md={4}>
28
      <Grid size={{ xs: 12, md: 4 }}>
33
        <HomeNews currentPost={post.uuid} />
29
        <HomeNews currentPost={post.uuid} />
34
      </Grid>
30
      </Grid>
35
    </Grid>
31
    </Grid>
36
  )
32
  );
37
}
33
};
38
 
34
 
39
export const renderContent = ({ type, file }) => {
35
export const renderContent = ({ type, file }) => {
40
  switch (type) {
36
  switch (type) {
41
    case 'video': {
37
    case 'video': {
42
      return (
-
 
43
        <video src={file} controls preload='none' controlsList='nodownload' />
38
      return <video src={file} controls preload='none' controlsList='nodownload' />;
44
      )
-
 
45
    }
39
    }
46
 
40
 
47
    case 'image': {
41
    case 'image': {
48
      return <img src={file} />
42
      return <img src={file} />;
49
    }
43
    }
50
 
44
 
51
    case 'document': {
45
    case 'document': {
52
      return (
46
      return (
53
        <a href={file} download>
47
        <a href={file} download>
54
          <img className='pdf' src='/images/extension/pdf.png' alt='pdf' />
48
          <img className='pdf' src='/images/extension/pdf.png' alt='pdf' />
55
        </a>
49
        </a>
56
      )
50
      );
57
    }
51
    }
58
 
52
 
59
    case 'audio': {
53
    case 'audio': {
60
      return (
54
      return (
61
        <audio controls>
55
        <audio controls>
62
          <source src={file} />
56
          <source src={file} />
63
        </audio>
57
        </audio>
64
      )
58
      );
65
    }
59
    }
66
 
60
 
67
    default: {
61
    default: {
68
      return (
62
      return (
69
        <a href={file} download>
63
        <a href={file} download>
70
          <img className='pdf' src='/images/extension/pdf.png' alt='pdf' />
64
          <img className='pdf' src='/images/extension/pdf.png' alt='pdf' />
71
        </a>
65
        </a>
72
      )
66
      );
73
    }
67
    }
74
  }
68
  }
75
}
69
};
76
 
70
 
77
export default PostViewPage
71
export default PostViewPage;