import {ColumnConfig} from '@common/datatable/column-config'; import {NewsArticle} from '@app/titles/models/news-article'; import {Trans} from '@common/i18n/trans'; import {FormattedDate} from '@common/i18n/formatted-date'; import {Link} from 'react-router-dom'; import {Tooltip} from '@common/ui/tooltip/tooltip'; import {IconButton} from '@common/ui/buttons/icon-button'; import {EditIcon} from '@common/icons/material/Edit'; import {useContext} from 'react'; import {TableContext} from '@common/ui/tables/table-context'; import clsx from 'clsx'; import {useDeleteNewsArticle} from '@app/admin/news/requests/use-delete-news-article'; import {DialogTrigger} from '@common/ui/overlays/dialog/dialog-trigger'; import {DeleteIcon} from '@common/icons/material/Delete'; import {ConfirmationDialog} from '@common/ui/overlays/dialog/confirmation-dialog'; import {useDialogContext} from '@common/ui/overlays/dialog/dialog-context'; import {NewsArticleLink} from '@app/news/news-article-link'; import {NewsArticleImage} from '@app/news/news-article-image'; export const newsDatatableColumns: ColumnConfig[] = [ { key: 'name', width: 'flex-3 min-w-200', visibleInMode: 'all', header: () => , body: article => , }, { key: 'updatedAt', allowsSorting: true, width: 'w-96', header: () => , body: article => ( ), }, { key: 'actions', header: () => , width: 'w-84 flex-shrink-0', hideHeader: true, align: 'end', visibleInMode: 'all', body: article => (
}> }>
), }, ]; interface ArticleColumnProps { article: NewsArticle; } function ArticleColumn({article}: ArticleColumnProps) { const {isCollapsedMode} = useContext(TableContext); return (
{!isCollapsedMode && (

{article.body}

)}
); } interface DeleteArticleDialogProps { article: NewsArticle; } export function DeleteArticleDialog({article}: DeleteArticleDialogProps) { const deleteArticle = useDeleteNewsArticle(); const {close} = useDialogContext(); return ( } body={} confirm={} onConfirm={() => { deleteArticle.mutate( {articleId: article.id}, {onSuccess: () => close()}, ); }} /> ); }