import { Link } from 'react-router-dom'
import { Paper, Skeleton, Box, Badge, Text, Group, ThemeIcon } from '@mantine/core'
import { IconUser, IconMessages } from '@tabler/icons-react'
import { useGetUserByIdQuery } from '../app/api/users'
import { useGetPanelByIdQuery } from '../app/api/panels'
import type { Post } from '../app/types/common'
const FeedPost = ({ post, hidePanel, hideAuthor }: { post: Post, hidePanel?: boolean, hideAuthor?: boolean }) => {
// Fetch panel info
let panelElement: React.ReactNode = null
const { data: panelData, isLoading: panelIsLoading } = useGetPanelByIdQuery({ id: post.panelId })
if (!hidePanel) {
if (panelIsLoading) {
panelElement =
} else if (!panelData) {
panelElement = Error Loading Panel Data
} else {
panelElement = (
}
component={Link}
to={`/panel/${panelData.name}`}
>
{`panel/${panelData.name}`}
)
}
}
// Fetch author info
let authorElement: React.ReactNode = null
const { data: authorData, isLoading: authorIsLoading } = useGetUserByIdQuery({ id: post.authorId })
if (!hideAuthor) {
if (authorIsLoading) {
authorElement =
} else if (!authorData) {
authorElement = Error Loading Author Data
} else {
authorElement = (
}
component={Link}
to={`/user/${authorData.username}`}
>
{`user/${authorData.username}`}
)
}
}
return (
{panelElement}
{authorElement}
{post.title}
{post.content}
Click to View
)
}
export default FeedPost