All files / src/components/settings FeaturedModelCard.tsx

0% Statements 0/22
0% Branches 0/1
0% Functions 0/1
0% Lines 0/22

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66                                                                                                                                   
import React from "react"
import styled from "styled-components"
 
export interface FeaturedModelCardProps {
	modelId: string
	description: string
	onClick: () => void
	isSelected: boolean
	label: string
}
 
const CardContainer = styled.div<{ isSelected: boolean }>`
	padding: 2px 4px;
	margin-bottom: 2px;
	border-radius: 3px;
	border: 1px solid var(--vscode-textLink-foreground);
	opacity: ${(props) => (props.isSelected ? 1 : 0.6)};
	cursor: pointer;
 
	&:hover {
		background-color: var(--vscode-list-hoverBackground);
		opacity: 1;
	}
`
 
const ModelHeader = styled.div`
	display: flex;
	align-items: center;
	justify-content: space-between;
`
 
const ModelName = styled.div`
	font-weight: 500;
	font-size: 12px;
	line-height: 1.2;
`
 
const Label = styled.span`
	font-size: 10px;
	color: var(--vscode-textLink-foreground);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	font-weight: 500;
`
 
const Description = styled.div`
	margin-top: 0px;
	font-size: 11px;
	color: var(--vscode-descriptionForeground);
	line-height: 1.2;
`
 
const FeaturedModelCard: React.FC<FeaturedModelCardProps> = ({ modelId, description, onClick, isSelected, label }) => {
	return (
		<CardContainer isSelected={isSelected} onClick={onClick}>
			<ModelHeader>
				<ModelName>{modelId}</ModelName>
				<Label>{label}</Label>
			</ModelHeader>
			<Description>{description}</Description>
		</CardContainer>
	)
}
 
export default FeaturedModelCard