2023-09-05 09:10:26 +02:00
|
|
|
import { Box, createStyles, Space, Text } from "@mantine/core"
|
2022-08-13 10:56:07 +02:00
|
|
|
import { Entry } from "app/types"
|
|
|
|
|
import { RelativeDate } from "components/RelativeDate"
|
2022-10-27 16:25:32 +02:00
|
|
|
import { FeedEntryTitle } from "./FeedEntryTitle"
|
2022-11-08 11:51:26 +01:00
|
|
|
import { FeedFavicon } from "./FeedFavicon"
|
2022-08-13 10:56:07 +02:00
|
|
|
|
|
|
|
|
export interface FeedEntryHeaderProps {
|
|
|
|
|
entry: Entry
|
|
|
|
|
expanded: boolean
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const useStyles = createStyles((theme, props: FeedEntryHeaderProps) => ({
|
|
|
|
|
headerText: {
|
|
|
|
|
fontWeight: theme.colorScheme === "light" && !props.entry.read ? "bold" : "inherit",
|
|
|
|
|
},
|
|
|
|
|
headerSubtext: {
|
|
|
|
|
display: "flex",
|
|
|
|
|
alignItems: "center",
|
|
|
|
|
fontSize: "90%",
|
|
|
|
|
},
|
|
|
|
|
}))
|
|
|
|
|
export function FeedEntryHeader(props: FeedEntryHeaderProps) {
|
|
|
|
|
const { classes } = useStyles(props)
|
|
|
|
|
return (
|
|
|
|
|
<Box>
|
2022-10-27 16:25:32 +02:00
|
|
|
<Box className={classes.headerText}>
|
|
|
|
|
<FeedEntryTitle entry={props.entry} />
|
|
|
|
|
</Box>
|
2022-08-13 10:56:07 +02:00
|
|
|
<Box className={classes.headerSubtext}>
|
2023-09-05 09:10:26 +02:00
|
|
|
<FeedFavicon url={props.entry.iconUrl} />
|
|
|
|
|
<Space w={6} />
|
|
|
|
|
<Text color="dimmed">
|
|
|
|
|
{props.entry.feedName}
|
|
|
|
|
<span> · </span>
|
|
|
|
|
<RelativeDate date={props.entry.date} />
|
|
|
|
|
</Text>
|
2022-08-13 10:56:07 +02:00
|
|
|
</Box>
|
|
|
|
|
{props.expanded && (
|
|
|
|
|
<Box className={classes.headerSubtext}>
|
|
|
|
|
<Text color="dimmed">
|
|
|
|
|
{props.entry.author && <span>by {props.entry.author}</span>}
|
|
|
|
|
{props.entry.author && props.entry.categories && <span> · </span>}
|
|
|
|
|
{props.entry.categories && <span>{props.entry.categories}</span>}
|
|
|
|
|
</Text>
|
|
|
|
|
</Box>
|
|
|
|
|
)}
|
|
|
|
|
</Box>
|
|
|
|
|
)
|
|
|
|
|
}
|