UNPKG

@lobehub/ui

Version:

Lobe UI is an open-source UI component library for building AIGC web apps

1 lines 2.56 kB
{"version":3,"file":"utils.mjs","names":[],"sources":["../../src/Avatar/utils.ts"],"sourcesContent":["import { isValidElement, type ReactNode } from 'react';\n\n/**\n * 判断 avatar 是否是默认的 Ant Design Avatar 类型\n * (URL 路径或 React 元素)\n */\nexport const isDefaultAntAvatar = (avatar: ReactNode): boolean => {\n if (!avatar) return false;\n\n const isStringAvatar = typeof avatar === 'string';\n const isUrlOrDataUri =\n isStringAvatar && ['/', 'http', 'data:'].some((prefix) => avatar.startsWith(prefix));\n\n return Boolean(isUrlOrDataUri || isValidElement(avatar));\n};\n\n/**\n * 判断是否有有效的背景色\n */\nexport const hasValidBackground = (background?: string | null): boolean => {\n return Boolean(\n background &&\n background !== 'transparent' &&\n background !== 'rgba(0,0,0,0)' &&\n background !== null,\n );\n};\n\n/**\n * 获取用于可读性计算的实际颜色值\n * 如果是 CSS 变量,返回 fallback 值\n */\nexport const getActualColorForReadable = (\n background: string | undefined,\n fallbackColor: string,\n): string => {\n const bgColor = background || fallbackColor;\n\n // 如果背景是 CSS 变量,使用 fallback 颜色\n if (typeof bgColor === 'string' && bgColor.startsWith('var(')) {\n return fallbackColor;\n }\n\n return bgColor;\n};\n\n/**\n * 格式化头像文本(转大写并可选切片)\n */\nexport const formatAvatarText = (text: string | undefined, sliceText: boolean): string => {\n if (!text) return '';\n\n const upperText = text.toUpperCase();\n return sliceText ? upperText.slice(0, 2) : upperText;\n};\n\n/**\n * 计算 emoji 大小\n */\nexport const calculateEmojiSize = (\n size: number,\n hasBackground: boolean,\n emojiScaleWithBackground: boolean,\n): number => {\n if (emojiScaleWithBackground) {\n return hasBackground ? size * 0.85 : size;\n }\n return size * 0.85;\n};\n"],"mappings":";;;;;;AAMA,MAAa,sBAAsB,WAA+B;CAChE,IAAI,CAAC,QAAQ,OAAO;CAGpB,MAAM,iBADiB,OAAO,WAAW,YAErB;EAAC;EAAK;EAAQ;CAAO,CAAC,CAAC,MAAM,WAAW,OAAO,WAAW,MAAM,CAAC;CAErF,OAAO,QAAQ,kBAAkB,eAAe,MAAM,CAAC;AACzD;;;;AAKA,MAAa,sBAAsB,eAAwC;CACzE,OAAO,QACL,cACA,eAAe,iBACf,eAAe,mBACf,eAAe,IACjB;AACF;;;;;AAMA,MAAa,6BACX,YACA,kBACW;CACX,MAAM,UAAU,cAAc;CAG9B,IAAI,OAAO,YAAY,YAAY,QAAQ,WAAW,MAAM,GAC1D,OAAO;CAGT,OAAO;AACT;;;;AAKA,MAAa,oBAAoB,MAA0B,cAA+B;CACxF,IAAI,CAAC,MAAM,OAAO;CAElB,MAAM,YAAY,KAAK,YAAY;CACnC,OAAO,YAAY,UAAU,MAAM,GAAG,CAAC,IAAI;AAC7C;;;;AAKA,MAAa,sBACX,MACA,eACA,6BACW;CACX,IAAI,0BACF,OAAO,gBAAgB,OAAO,MAAO;CAEvC,OAAO,OAAO;AAChB"}