import React, { FC, useState } from 'react' import { FaArrowLeft, FaArrowRight, FaAngleDown, FaAngleRight } from 'react-icons/fa'; import { MdModeEdit } from 'react-icons/md'; import { Link } from 'react-router-dom'; import styled from 'styled-components'; import { Question, QuestionStatus } from '../../../__generated__/graphql-schema' import { useCurrentUser } from '../../../contexts'; import { NodeId } from '../../../utils/graphql'; import { gql } from '@apollo/client'; const EditIcon = styled(MdModeEdit)` margin: auto; font-size: 1.5rem; `; type Props = { questions: Question[] title: string pagination?: { onNextPageClick: () => void hasNextPage: boolean hasPreviousPage: boolean onPreviousPageClick: () => void } } export const QuestionsListFragments = gql` fragment QuestionFields on Question { id status user { id } updatedAt } ` export const QuestionsList: FC = ({ questions, title, pagination }) => { const { user } = useCurrentUser() const [pageCount, setPageCount] = useState(1) const [collapsed, setCollapsed] = useState(false) const formatDate = (stringDate: string) => new Date(stringDate).toLocaleDateString() const handleOnNextPageClick = () => { if (pagination?.hasNextPage) { pagination.onNextPageClick() setPageCount(pageCount + 1) } } const handleOnPreviousPageClick = () => { if (pagination?.hasPreviousPage) { pagination.onPreviousPageClick() setPageCount(pageCount - 1) } } return (

{title}

{questions.length > 0 &&
Página: {pageCount}
}

{!collapsed &&
{questions.length ?
{questions.map((question) => (

{`# ${NodeId.decode(question.id).id}`}

Atualizada em: {" "} {formatDate(question.updatedAt)}
{(question.user.id === user?.id && question.status !== QuestionStatus.Registered) &&
}
))}
:
Nenhuma questão.
}
}
) }