Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
5 stevensc 1
import React from 'react'
2
import { useSelector } from 'react-redux'
2614 stevensc 3
import { useNavigate } from 'react-router-dom'
5 stevensc 4
import styled from 'styled-components'
5
 
6
import OpenInNewIcon from '@mui/icons-material/OpenInNew'
7
import EditIcon from '@mui/icons-material/Edit'
8
import DeleteIcon from '@mui/icons-material/Delete'
9
import ArrowBackIosNewIcon from '@mui/icons-material/ArrowBackIosNew'
535 stevensc 10
 
409 stevensc 11
import Paraphrase from '../UI/Paraphrase'
1507 stevensc 12
import WidgetWrapper from '../widgets/WidgetLayout'
5 stevensc 13
 
14
export const QuestionStats = styled.div`
15
  display: flex;
16
  align-items: center;
17
  gap: 0.5rem;
421 andreina 18
  justify-content: space-around;
748 stevensc 19
  padding: 5px;
5 stevensc 20
`
21
 
748 stevensc 22
const QuestionCategories = styled.ul`
5 stevensc 23
  align-items: center;
24
  display: flex;
25
  gap: 0.5rem;
26
  flex-wrap: wrap;
27
  max-width: 200px;
28
  li {
412 stevensc 29
    background: rgb(198, 209, 240);
5 stevensc 30
    border-radius: var(--border-radius);
31
    color: var(--font-color);
412 stevensc 32
    padding: 0.3rem 0.4rem;
33
    font-size: 0.7rem;
5 stevensc 34
    font-weight: 600;
35
  }
36
`
37
 
38
const QuestionCard = ({
39
  last_answer_on = '',
40
  added_on = '',
41
  user_name = '',
42
  user_image = '',
43
  title = '',
44
  description = '',
45
  categories = [],
46
  views = 0,
47
  answers = 0,
48
  reactions = 0,
49
  comments = 0,
50
  link_view = '',
51
  link_edit = '',
52
  link_delete = '',
53
  link_answers_add = '',
54
  link_answers = '',
55
  onDelete = () => null,
56
  onEdit = () => null,
748 stevensc 57
  onReply = () => null
5 stevensc 58
}) => {
59
  const labels = useSelector(({ intl }) => intl.labels)
2614 stevensc 60
  const navigate = useNavigate()
5 stevensc 61
 
62
  const onView = (url = '') => {
2614 stevensc 63
    navigate(url)
5 stevensc 64
  }
65
 
66
  const goBack = () => {
2614 stevensc 67
    navigate('/my-coach')
5 stevensc 68
  }
69
 
70
  return (
1895 stevensc 71
    <WidgetWrapper>
1507 stevensc 72
      <WidgetWrapper.Header image={user_image} title={user_name}>
5 stevensc 73
        <QuestionCategories>
74
          {categories.map(({ category }) => (
75
            <li key={category}>{category}</li>
76
          ))}
77
        </QuestionCategories>
1507 stevensc 78
      </WidgetWrapper.Header>
748 stevensc 79
 
1895 stevensc 80
      <WidgetWrapper.Body>
535 stevensc 81
        <h2>{title}</h2>
82
        <span>{`${labels.my_coach_question} ${added_on}`}</span>
536 stevensc 83
        {last_answer_on ? (
535 stevensc 84
          <span>{`${labels.my_coach_last_answer} ${last_answer_on}`}</span>
536 stevensc 85
        ) : null}
86
        <Paraphrase>{description}</Paraphrase>
1895 stevensc 87
      </WidgetWrapper.Body>
5 stevensc 88
 
748 stevensc 89
      <QuestionStats>
90
        <span>{`${answers} ${labels.my_coach_answers}`}</span>
91
        <span>{`${reactions} ${labels.my_coach_reactions}`}</span>
92
        <span>{`${views} ${labels.my_coach_views}`}</span>
93
        <span>{`${comments} ${labels.comments}`}</span>
94
      </QuestionStats>
95
 
1507 stevensc 96
      <WidgetWrapper.Actions>
5 stevensc 97
        {link_answers && (
531 stevensc 98
          <button onClick={goBack}>
5 stevensc 99
            <ArrowBackIosNewIcon />
100
            {labels.back}
101
          </button>
102
        )}
103
        {link_view && (
531 stevensc 104
          <button onClick={() => onView(link_view)}>
5 stevensc 105
            <OpenInNewIcon />
106
            {labels.view}
107
          </button>
108
        )}
109
        {link_edit && (
531 stevensc 110
          <button onClick={() => onEdit(link_edit)}>
5 stevensc 111
            <EditIcon />
112
            {labels.edit}
113
          </button>
114
        )}
115
        {link_answers_add && (
531 stevensc 116
          <button onClick={() => onReply(link_edit)}>
5 stevensc 117
            <EditIcon />
118
            {labels.reply}
119
          </button>
120
        )}
121
        {link_delete && (
122
          <button
748 stevensc 123
            className='btn feed__share-option'
5 stevensc 124
            onClick={() => onDelete(link_delete)}
125
          >
126
            <DeleteIcon />
127
            {labels.delete}
128
          </button>
129
        )}
1507 stevensc 130
      </WidgetWrapper.Actions>
1895 stevensc 131
    </WidgetWrapper>
5 stevensc 132
  )
133
}
134
 
135
export default QuestionCard