forked from Archives/Athou_commafeed
make compact mode more compact
This commit is contained in:
@@ -70,8 +70,6 @@
|
|||||||
"groups": [
|
"groups": [
|
||||||
"useLocation",
|
"useLocation",
|
||||||
"useParams",
|
"useParams",
|
||||||
"useStyles",
|
|
||||||
"useMantineTheme",
|
|
||||||
"useState",
|
"useState",
|
||||||
"useAppSelector",
|
"useAppSelector",
|
||||||
"useAppDispatch",
|
"useAppDispatch",
|
||||||
|
|||||||
@@ -17,19 +17,25 @@ interface FeedEntryProps {
|
|||||||
onHeaderClick: (e: React.MouseEvent) => void
|
onHeaderClick: (e: React.MouseEvent) => void
|
||||||
}
|
}
|
||||||
|
|
||||||
const useStyles = createStyles((theme, props: FeedEntryProps) => {
|
const useStyles = createStyles((theme, props: FeedEntryProps & { compact: boolean }) => {
|
||||||
let backgroundColor
|
let backgroundColor
|
||||||
if (theme.colorScheme === "dark") backgroundColor = props.entry.read ? "inherit" : theme.colors.dark[5]
|
if (theme.colorScheme === "dark") backgroundColor = props.entry.read ? "inherit" : theme.colors.dark[5]
|
||||||
else backgroundColor = props.entry.read && !props.expanded ? theme.colors.gray[0] : "inherit"
|
else backgroundColor = props.entry.read && !props.expanded ? theme.colors.gray[0] : "inherit"
|
||||||
|
|
||||||
|
let marginY = theme.spacing.xs
|
||||||
|
if (props.compact) marginY = 6
|
||||||
|
|
||||||
|
let mobileMarginY = 6
|
||||||
|
if (props.compact) mobileMarginY = 4
|
||||||
|
|
||||||
const styles = {
|
const styles = {
|
||||||
paper: {
|
paper: {
|
||||||
backgroundColor,
|
backgroundColor,
|
||||||
marginTop: theme.spacing.xs,
|
marginTop: marginY,
|
||||||
marginBottom: theme.spacing.xs,
|
marginBottom: marginY,
|
||||||
[theme.fn.smallerThan(Constants.layout.mobileBreakpoint)]: {
|
[theme.fn.smallerThan(Constants.layout.mobileBreakpoint)]: {
|
||||||
marginTop: "6px",
|
marginTop: mobileMarginY,
|
||||||
marginBottom: "6px",
|
marginBottom: mobileMarginY,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
body: {
|
body: {
|
||||||
@@ -45,18 +51,23 @@ const useStyles = createStyles((theme, props: FeedEntryProps) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
export function FeedEntry(props: FeedEntryProps) {
|
export function FeedEntry(props: FeedEntryProps) {
|
||||||
const { classes } = useStyles(props)
|
|
||||||
const viewMode = useAppSelector(state => state.user.settings?.viewMode)
|
const viewMode = useAppSelector(state => state.user.settings?.viewMode)
|
||||||
const dispatch = useAppDispatch()
|
const compact = viewMode === "title"
|
||||||
|
const compactHeader = compact && !props.expanded
|
||||||
|
|
||||||
const compactHeader = viewMode === "title" && !props.expanded
|
const { classes } = useStyles({ ...props, compact })
|
||||||
|
|
||||||
|
const dispatch = useAppDispatch()
|
||||||
|
|
||||||
const swipeHandlers = useSwipeable({
|
const swipeHandlers = useSwipeable({
|
||||||
onSwipedRight: () => dispatch(markEntry({ entry: props.entry, read: !props.entry.read })),
|
onSwipedRight: () => dispatch(markEntry({ entry: props.entry, read: !props.entry.read })),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const spacing = compact ? 8 : "xs"
|
||||||
|
const borderRadius = compact ? "xs" : "sm"
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Paper withBorder className={classes.paper}>
|
<Paper withBorder radius={borderRadius} className={classes.paper}>
|
||||||
<Anchor
|
<Anchor
|
||||||
variant="text"
|
variant="text"
|
||||||
href={props.entry.url}
|
href={props.entry.url}
|
||||||
@@ -65,17 +76,17 @@ export function FeedEntry(props: FeedEntryProps) {
|
|||||||
onClick={props.onHeaderClick}
|
onClick={props.onHeaderClick}
|
||||||
onAuxClick={props.onHeaderClick}
|
onAuxClick={props.onHeaderClick}
|
||||||
>
|
>
|
||||||
<Box p="xs" {...swipeHandlers}>
|
<Box p={spacing} {...swipeHandlers}>
|
||||||
{compactHeader && <FeedEntryCompactHeader entry={props.entry} />}
|
{compactHeader && <FeedEntryCompactHeader entry={props.entry} />}
|
||||||
{!compactHeader && <FeedEntryHeader entry={props.entry} expanded={props.expanded} />}
|
{!compactHeader && <FeedEntryHeader entry={props.entry} expanded={props.expanded} />}
|
||||||
</Box>
|
</Box>
|
||||||
</Anchor>
|
</Anchor>
|
||||||
{props.expanded && (
|
{props.expanded && (
|
||||||
<Box px="xs" pb="xs">
|
<Box px={spacing} pb={spacing}>
|
||||||
<Box className={classes.body} sx={{ direction: props.entry.rtl ? "rtl" : "ltr" }}>
|
<Box className={classes.body} sx={{ direction: props.entry.rtl ? "rtl" : "ltr" }}>
|
||||||
<FeedEntryBody entry={props.entry} />
|
<FeedEntryBody entry={props.entry} />
|
||||||
</Box>
|
</Box>
|
||||||
<Divider variant="dashed" my="xs" />
|
<Divider variant="dashed" my={spacing} />
|
||||||
<FeedEntryFooter entry={props.entry} />
|
<FeedEntryFooter entry={props.entry} />
|
||||||
</Box>
|
</Box>
|
||||||
)}
|
)}
|
||||||
|
|||||||
Reference in New Issue
Block a user