Rev 7165 | Rev 7209 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React from 'react'import { Avatar, Card } from '@mui/material'import { useSelector } from 'react-redux'import styled from 'styled-components'import OpenInNewIcon from '@mui/icons-material/OpenInNew'import EditIcon from '@mui/icons-material/Edit'import DeleteIcon from '@mui/icons-material/Delete'import { useHistory } from 'react-router-dom'const StyledQuestionCard = styled(Card)`background: var(--bg-color);border: 1px solid var(--border-primary);border-radius: var(--border-radius);height: fit-content;padding: 1rem 0;& > * {padding-right: 1rem;padding-left: 1rem;}& > h2 {font-size: 2rem;line-height: 1.2;}p {color: var(--font-color);font-size: 1rem;font-weight: 400;text-align: justify;margin-bottom: 0.5rem;}span {color: var(--subtitle-color);font-weight: 600;font-size: 0.9rem;}`const QuestionDetails = styled.div`display: flex;align-items: center;flex-wrap: wrap;gap: 1rem;justify-content: space-between;margin-bottom: 0.5rem;padding-bottom: 0.5rem;border-bottom: 1px solid var(--border-primary);`const QuestionUserInfo = styled.div`align-items: center;background: var(--chat-send);border-radius: var(--border-radius);color: var(--font-color);display: inline-flex;font-weight: 600;gap: 0.5rem;padding: 0.5rem;width: fit-content;`const QuestionActions = styled.div`display: flex;align-items: center;gap: 0.5rem;justify-content: space-around;padding-top: 0.5rem;border-top: 1px solid var(--border-primary);& > * {flex-grow: 1;}.btn {color: var(--icons-color);font-size: 1rem !important;border: 1px solid var(--border-primary) !important;border-radius: var(--border-radius) !important;padding: 5px !important;}`const QuestionStats = styled.div`display: flex;align-items: center;gap: 0.5rem;`const QuestionCard = ({updated_on = '',link_add_comment = '',added_on = '',user_name = '',user_image = '',title = '',description = '',categories = [],views = 0,answers = 0,reactions = 0,comments = 0,link_view = '',link_edit = '',link_delete = '',onDelete = () => null,onEdit = () => null,}) => {const labels = useSelector(({ intl }) => intl.labels)const history = useHistory()const onView = (url = '') => {history.replace(url)}return (<StyledQuestionCard><QuestionDetails><QuestionUserInfo><Avatarsrc={user_image}alt={`${user_name} profile image`}sx={{ width: '50px', height: '50px' }}/><p>{user_name}</p></QuestionUserInfo><ul className="question-categories">{categories.map(({ category }) => (<li key={category}>{category}</li>))}</ul></QuestionDetails><h2>{title}</h2><span>{`${labels.my_coach_question} ${added_on}`}</span><p className="my-3">{description}</p><QuestionStats className="mb-2"><span>{`${answers} ${labels.my_coach_answers}`}</span><span>{`${reactions} ${labels.my_coach_reactions}`}</span><span>{`${views} ${labels.my_coach_views}`}</span><span>{`${comments} ${labels.comments}`}</span></QuestionStats><QuestionActions>{link_view && (<buttonclassName="btn feed__share-option"onClick={() => onView(link_view)}><OpenInNewIcon />{labels.view}</button>)}{link_edit && (<buttonclassName="btn feed__share-option"onClick={() => onEdit(link_edit)}><EditIcon />{labels.edit}</button>)}{link_delete && (<buttonclassName="btn feed__share-option"onClick={() => onDelete(link_delete)}><DeleteIcon />{labels.delete}</button>)}</QuestionActions></StyledQuestionCard>)}export default QuestionCard