import { useTheme } from '@emotion/react'; import styled from '@emotion/styled'; import { IconCurrencyDollar } from '@tabler/icons-react'; import { BoardCardEditableFieldDate } from '@/ui/board-card-field-inputs/components/BoardCardEditableFieldDate'; import { BoardCardEditableFieldText } from '@/ui/board-card-field-inputs/components/BoardCardEditableFieldText'; import { Company, PipelineProgress } from '../../../generated/graphql'; import { Checkbox } from '../../ui/components/form/Checkbox'; import { IconCalendarEvent } from '../../ui/icons'; import { getLogoUrlFromDomainName } from '../../utils/utils'; const StyledBoardCard = styled.div<{ selected: boolean }>` background-color: ${({ theme, selected }) => selected ? theme.selectedCard : theme.background.secondary}; border: 1px solid ${({ theme }) => theme.border.color.medium}; border-radius: ${({ theme }) => theme.border.radius.sm}; box-shadow: ${({ theme }) => theme.boxShadow.light}; color: ${({ theme }) => theme.font.color.primary}; &:hover { background-color: ${({ theme, selected }) => selected ? theme.selectedCardHover : theme.background.tertiary}; } cursor: pointer; `; const StyledBoardCardWrapper = styled.div` padding-bottom: ${({ theme }) => theme.spacing(2)}; `; const StyledBoardCardHeader = styled.div` align-items: center; display: flex; flex-direction: row; font-weight: ${({ theme }) => theme.font.weight.semiBold}; height: 24px; padding-left: ${({ theme }) => theme.spacing(2)}; padding-right: ${({ theme }) => theme.spacing(2)}; padding-top: ${({ theme }) => theme.spacing(2)}; img { height: ${({ theme }) => theme.icon.size.md}px; margin-right: ${({ theme }) => theme.spacing(2)}; object-fit: cover; width: ${({ theme }) => theme.icon.size.md}px; } `; const StyledBoardCardBody = styled.div` display: flex; flex-direction: column; padding: ${({ theme }) => theme.spacing(2)}; span { align-items: center; display: flex; flex-direction: row; svg { color: ${({ theme }) => theme.font.color.tertiary}; margin-right: ${({ theme }) => theme.spacing(2)}; } } `; type CompanyProp = Pick< Company, 'id' | 'name' | 'domainName' | 'employees' | 'accountOwner' >; type PipelineProgressProp = Pick< PipelineProgress, 'id' | 'amount' | 'closeDate' >; export function CompanyBoardCard({ company, pipelineProgress, selected, onSelect, onCardUpdate, }: { company: CompanyProp; pipelineProgress: PipelineProgressProp; selected: boolean; onSelect: (company: CompanyProp) => void; onCardUpdate: (pipelineProgress: PipelineProgressProp) => Promise; }) { const theme = useTheme(); return ( {`${company.name}-company-logo`} {company.name}
onSelect(company)} /> onCardUpdate({ ...pipelineProgress, amount: parseInt(value), }) } /> { onCardUpdate({ ...pipelineProgress, closeDate: value.toISOString(), }); }} /> ); }