Added settings provider maximum description lines (#2611)

This commit is contained in:
Anderson Shindy Oki 2024-08-09 16:40:44 +09:00 committed by GitHub
parent f424c21628
commit baae406a02
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 25 additions and 6 deletions

View file

@ -108,10 +108,12 @@ export const ProviderView: FunctionComponent<ProviderViewProps> = ({
})
.map((v, idx) => (
<Card
titleStyles={{ overflow: "hidden", textOverflow: "ellipsis" }}
key={BuildKey(v.key, idx)}
header={v.name ?? capitalize(v.key)}
description={v.description}
onClick={() => select(v)}
lineClamp={2}
></Card>
));
} else {

View file

@ -1,14 +1,23 @@
import { FunctionComponent } from "react";
import { Center, Stack, Text, UnstyledButton } from "@mantine/core";
import {
Center,
MantineStyleProp,
Stack,
Text,
UnstyledButton,
} from "@mantine/core";
import { faPlus } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import TextPopover from "@/components/TextPopover";
import styles from "./Card.module.scss";
interface CardProps {
header?: string;
description?: string;
plus?: boolean;
header?: string;
lineClamp?: number | undefined;
onClick?: () => void;
plus?: boolean;
titleStyles?: MantineStyleProp | undefined;
}
export const Card: FunctionComponent<CardProps> = ({
@ -16,6 +25,8 @@ export const Card: FunctionComponent<CardProps> = ({
description,
plus,
onClick,
lineClamp,
titleStyles,
}) => {
return (
<UnstyledButton p="lg" onClick={onClick} className={styles.card}>
@ -24,9 +35,15 @@ export const Card: FunctionComponent<CardProps> = ({
<FontAwesomeIcon size="2x" icon={faPlus}></FontAwesomeIcon>
</Center>
) : (
<Stack h="100%" gap={0} align="flex-start">
<Text fw="bold">{header}</Text>
<Text hidden={description === undefined}>{description}</Text>
<Stack h="100%" gap={0}>
<Text fw="bold" style={titleStyles}>
{header}
</Text>
<TextPopover text={description}>
<Text hidden={description === undefined} lineClamp={lineClamp}>
{description}
</Text>
</TextPopover>
</Stack>
)}
</UnstyledButton>