import {DeleteOutlined, EditOutlined, GlobalOutlined} from '@ant-design/icons/lib' import {useQuery} from '@apollo/react-hooks' import {Button, Popconfirm, Space, Table, Tooltip} from 'antd' import {PaginationProps} from 'antd/es/pagination' import {NextPage} from 'next' import Link from 'next/link' import React, {useState} from 'react' import {DateTime} from '../../../components/date.time' import {FormIsLive} from '../../../components/form/admin/is.live' import Structure from '../../../components/structure' import {TimeAgo} from '../../../components/time.ago' import {withAuth} from '../../../components/with.auth' import { PAGER_FORM_QUERY, PagerFormEntryQueryData, PagerFormQueryData, PagerFormQueryVariables } from '../../../graphql/query/pager.form.query' const Index: NextPage = () => { const [pagination, setPagination] = useState({ pageSize: 25, }) const [entries, setEntries] = useState() // TODO limit forms if user is only admin! const {loading, refetch} = useQuery(PAGER_FORM_QUERY, { variables: { limit: pagination.pageSize, start: pagination.current * pagination.pageSize || 0 }, onCompleted: ({pager}) => { setPagination({ ...pagination, total: pager.total, }) setEntries(pager.entries) } }) const deleteForm = async (form) => { // TODO } const columns = [ { title: 'Live', dataIndex: 'isLive', render: live => }, { title: 'Title', dataIndex: 'title', }, { title: 'Owner', dataIndex: 'admin', render: user => ( ) }, { title: 'Language', dataIndex: 'language', }, { title: 'Created', dataIndex: 'created', render: date => }, { title: 'Last Change', dataIndex: 'lastModified', render: date => }, { render: row => { return ( ) } }, ] return ( { setPagination(pagination) }} /> ) } export default withAuth(Index, ['admin'])