import { Badge } from '../../components/ui/badge'; import { Button } from '../../components/ui/button'; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../components/ui/tooltip'; import { ArrowRight, ArrowUpDown } from 'lucide-vue-next'; import { storeToRefs } from 'pinia'; import { formatDateFilter } from '../../shared/utils'; import { i18n } from '../../plugin'; import { useUiStore, useUserStore } from '../../stores'; const { t } = i18n.global; export const createColumns = ({ onDelete, onDeletePrompt }) => { const { showUserDialog } = useUserStore(); const { shiftHeld } = storeToRefs(useUiStore()); return [ { id: 'spacer', header: () => null, enableSorting: false, meta: { class: 'w-[20px]' }, cell: () => null }, { accessorKey: 'created_at', meta: { class: 'w-[90px]' }, header: ({ column }) => ( ), cell: ({ row }) => { const createdAt = row.getValue('created_at'); const shortText = formatDateFilter(createdAt, 'short'); const longText = formatDateFilter(createdAt, 'long'); return ( {shortText} {longText} ); } }, { accessorKey: 'type', meta: { class: 'w-[110px]' }, header: () => t('table.friendLog.type'), cell: ({ row }) => { const type = row.getValue('type'); return ( {t(`view.friend_log.filters.${type}`)} ); } }, { accessorKey: 'displayName', meta: { class: 'w-[260px]' }, header: () => t('table.friendLog.user'), cell: ({ row }) => { const original = row.original; const displayName = original.displayName || original.userId || ''; return ( {original.type === 'DisplayName' ? ( {original.previousDisplayName} ) : null} showUserDialog(original.userId)} > {displayName} {original.type === 'TrustLevel' ? ( ({original.previousTrustLevel} {original.trustLevel}) ) : null} ); } }, { id: 'action', meta: { class: 'w-[80px] max-w-[80px] text-right' }, header: () => t('table.friendLog.action'), enableSorting: false, cell: ({ row }) => { const original = row.original; return (
); } }, { id: 'trailing', header: () => null, enableSorting: false, meta: { class: 'w-[5px]' }, cell: () => null } ]; };