import { Globe, Linkedin, Phone } from "lucide-react"; import { useRecordContext, useTranslate } from "ra-core"; import { EditButton } from "@/components/ds/admin/edit-button"; import { DeleteButton } from "@/components/ds/admin/delete-button"; import { ReferenceField } from "@/components/ds/admin/reference-field"; import { ShowButton } from "@/components/ds/admin/show-button"; import { TextField } from "@/components/ds/admin/text-field"; import { DateField } from "@/components/ds/admin/date-field"; import { UrlField } from "@/components/ds/admin/url-field"; import { SelectField } from "@/components/ds/admin/select-field"; import { AsideSection } from "../misc/AsideSection"; import { SaleName } from "../sales/SaleName"; import type { Company } from "../types"; import { sizes } from "./sizes"; import { CompanyMergeButton } from "./CompanyMergeButton"; import { CompanyHealthCard } from "./CompanyHealthCard"; interface CompanyAsideProps { link?: string; } export const CompanyAside = ({ link = "edit" }: CompanyAsideProps) => { const record = useRecordContext(); const translate = useTranslate(); if (!record) return null; return (
{link === "edit" ? ( ) : ( )}
{link !== "edit" && ( <>
)}
); }; const CompanyInfo = ({ record }: { record: Company }) => { const translate = useTranslate(); if (!record.website && !record.linkedin_url && !record.phone_number) { return null; } return ( {record.website && (
)} {record.linkedin_url && (
{translate("crm.company.field.linkedin")}
)} {record.phone_number && (
)}
); }; const ContextInfo = ({ record }: { record: Company }) => { const translate = useTranslate(); if (!record.revenue && !record.id) { return null; } const translatedSizes = sizes.map((size) => ({ ...size, name: translate(`crm.company.size.${size.id}`, { _: size.name }), })); return ( {record.sector && ( {translate("crm.company.field.sector")}: )} {record.size && ( {translate("crm.company.field.size")}:{" "} )} {record.revenue && ( {translate("crm.company.field.revenue")}:{" "} )} {record.tax_identifier && ( {translate("crm.company.field.tax_identifier")}:{" "} )} ); }; const AddressInfo = ({ record }: { record: Company }) => { const translate = useTranslate(); if (!record.address && !record.city && !record.zipcode && !record.stateAbbr) { return null; } return ( ); }; const AdditionalInfo = ({ record }: { record: Company }) => { const translate = useTranslate(); if ( !record.created_at && !record.sales_id && !record.description && !record.context_links ) { return null; } const getBaseURL = (url: string) => { const urlObject = new URL(url.startsWith("http") ? url : `https://${url}`); return urlObject.hostname; }; return ( {record.description && (

{record.description}

)} {record.context_links && Array.isArray(record.context_links) && (
{record.context_links.map((link, index) => link ? ( {getBaseURL(link)} ) : null, )}
)} {record.sales_id !== null && (
{translate("crm.company.field.followed_by")} 
)} {record.created_at && (

{translate("crm.company.field.first_seen")}{" "}

)}
); };