UNPKG

analytica-frontend-lib

Version:

Repositório público dos componentes utilizados nas plataformas da Analytica Ensino

1 lines 2.19 kB
{"version":3,"sources":["../src/utils/renderSubjectCell.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { SubjectEnum } from '../enums/SubjectEnum';\nimport { getSubjectInfo } from '../components/SubjectInfo/SubjectInfo';\nimport Text from '../components/Text/Text';\nimport { TruncatedText } from '../components/TruncatedText/TruncatedText';\nimport { cn } from './utils';\n\n/**\n * Render a subject cell with optional icon based on subject enum mapping\n * @param subjectName - The subject name to display\n * @param mapSubjectNameToEnum - Optional function to map subject name to SubjectEnum\n * @param showEmptyDash - Whether to show \"-\" for empty subject names (default: false)\n * @returns React node for the subject cell\n */\nexport const renderSubjectCell = (\n subjectName: string,\n mapSubjectNameToEnum?: (name: string) => SubjectEnum | null,\n showEmptyDash = false\n): ReactNode => {\n if (!subjectName) {\n return showEmptyDash ? (\n <Text size=\"sm\" color=\"text-text-400\">\n -\n </Text>\n ) : null;\n }\n\n const subjectEnum = mapSubjectNameToEnum?.(subjectName);\n\n if (!subjectEnum) {\n return <TruncatedText size=\"sm\">{subjectName}</TruncatedText>;\n }\n\n const subjectInfo = getSubjectInfo(subjectEnum);\n\n return (\n <div className=\"flex items-center gap-2 min-w-0\">\n <span\n className={cn(\n 'w-[21px] h-[21px] flex items-center justify-center rounded-sm text-text-950 shrink-0',\n subjectInfo.colorClass\n )}\n >\n {subjectInfo.icon}\n </span>\n <TruncatedText size=\"sm\">{subjectName}</TruncatedText>\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;AAqBM,cAeF,YAfE;AAPC,IAAM,oBAAoB,CAC/B,aACA,sBACA,gBAAgB,UACF;AACd,MAAI,CAAC,aAAa;AAChB,WAAO,gBACL,oBAAC,gBAAK,MAAK,MAAK,OAAM,iBAAgB,eAEtC,IACE;AAAA,EACN;AAEA,QAAM,cAAc,uBAAuB,WAAW;AAEtD,MAAI,CAAC,aAAa;AAChB,WAAO,oBAAC,iBAAc,MAAK,MAAM,uBAAY;AAAA,EAC/C;AAEA,QAAM,cAAc,eAAe,WAAW;AAE9C,SACE,qBAAC,SAAI,WAAU,mCACb;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,YAAY;AAAA,QACd;AAAA,QAEC,sBAAY;AAAA;AAAA,IACf;AAAA,IACA,oBAAC,iBAAc,MAAK,MAAM,uBAAY;AAAA,KACxC;AAEJ;","names":[]}