@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
1 lines • 4.96 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","names":["Flexbox"],"sources":["../../../src/List/ListItem/index.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { Loader2, MessageSquare } from 'lucide-react';\nimport { memo } from 'react';\n\nimport { Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\nimport Text from '@/Text';\nimport { preventDefaultAndStopPropagation } from '@/utils/dom';\n\nimport type { ListItemProps } from '../type';\nimport { styles } from './style';\nimport { getChatItemTime } from './time';\n\nconst ListItem = memo<ListItemProps>(\n ({\n ref,\n active,\n avatar,\n loading,\n description,\n date,\n title,\n onHoverChange,\n actions,\n className,\n style,\n showAction,\n children,\n classNames,\n addon,\n pin,\n styles: customStyles,\n ...rest\n }) => {\n const loadingNode = <Icon spin icon={Loader2} />;\n\n const pinNode = pin && (\n <div className={cx(styles.pin, classNames?.pin)} style={customStyles?.pin}>\n <div className={styles.triangle} />\n </div>\n );\n\n const actionsNode = actions && (\n <Flexbox\n horizontal\n className={cx(styles.actions, classNames?.actions)}\n gap={4}\n style={{ display: showAction ? undefined : 'none', ...customStyles?.actions }}\n onClick={preventDefaultAndStopPropagation}\n >\n {actions}\n </Flexbox>\n );\n\n const timeNode = date && (\n <div\n className={cx(styles.date, classNames?.date)}\n style={{ opacity: showAction ? 0 : undefined, ...customStyles?.date }}\n >\n {getChatItemTime(date)}\n </div>\n );\n\n return (\n <Flexbox\n horizontal\n align={'flex-start'}\n className={cx(styles.root, active && styles.active, className)}\n distribution={'space-between'}\n gap={8}\n padding={12}\n ref={ref}\n style={style}\n onMouseEnter={() => {\n onHoverChange?.(true);\n }}\n onMouseLeave={() => {\n onHoverChange?.(false);\n }}\n {...rest}\n >\n {pinNode}\n <Flexbox\n horizontal\n align={'flex-start'}\n className={classNames?.container}\n flex={1}\n gap={8}\n style={{ overflow: 'hidden', ...customStyles?.container }}\n >\n {avatar ?? <Icon icon={MessageSquare} style={{ marginTop: 4 }} />}\n <Flexbox\n className={cx(styles.content, classNames?.content)}\n gap={4}\n style={customStyles?.content}\n >\n <Text\n ellipsis\n as={'h3'}\n className={cx(styles.title, classNames?.title)}\n style={customStyles?.title}\n >\n {title}\n </Text>\n {description && (\n <Text\n ellipsis\n className={cx(styles.desc, classNames?.desc)}\n style={customStyles?.desc}\n >\n {description}\n </Text>\n )}\n {addon}\n </Flexbox>\n </Flexbox>\n {loading ? (\n loadingNode\n ) : (\n <>\n {actionsNode}\n {timeNode}\n </>\n )}\n {children}\n </Flexbox>\n );\n },\n);\n\nListItem.displayName = 'ListItem';\n\nexport default ListItem;\n"],"mappings":";;;;;;;;;;;;AAeA,MAAM,WAAW,MACd,EACC,KACA,QACA,QACA,SACA,aACA,MACA,OACA,eACA,SACA,WACA,OACA,YACA,UACA,YACA,OACA,KACA,QAAQ,cACR,GAAG,WACC;CACJ,MAAM,cAAc,oBAAC,MAAD;EAAM,MAAA;EAAK,MAAM;EAAW,CAAA;CAEhD,MAAM,UAAU,OACd,oBAAC,OAAD;EAAK,WAAW,GAAG,OAAO,KAAK,YAAY,IAAI;EAAE,OAAO,cAAc;YACpE,oBAAC,OAAD,EAAK,WAAW,OAAO,UAAY,CAAA;EAC/B,CAAA;CAGR,MAAM,cAAc,WAClB,oBAACA,mBAAD;EACE,YAAA;EACA,WAAW,GAAG,OAAO,SAAS,YAAY,QAAQ;EAClD,KAAK;EACL,OAAO;GAAE,SAAS,aAAa,KAAA,IAAY;GAAQ,GAAG,cAAc;GAAS;EAC7E,SAAS;YAER;EACO,CAAA;CAGZ,MAAM,WAAW,QACf,oBAAC,OAAD;EACE,WAAW,GAAG,OAAO,MAAM,YAAY,KAAK;EAC5C,OAAO;GAAE,SAAS,aAAa,IAAI,KAAA;GAAW,GAAG,cAAc;GAAM;YAEpE,gBAAgB,KAAK;EAClB,CAAA;AAGR,QACE,qBAACA,mBAAD;EACE,YAAA;EACA,OAAO;EACP,WAAW,GAAG,OAAO,MAAM,UAAU,OAAO,QAAQ,UAAU;EAC9D,cAAc;EACd,KAAK;EACL,SAAS;EACJ;EACE;EACP,oBAAoB;AAClB,mBAAgB,KAAK;;EAEvB,oBAAoB;AAClB,mBAAgB,MAAM;;EAExB,GAAI;YAfN;GAiBG;GACD,qBAACA,mBAAD;IACE,YAAA;IACA,OAAO;IACP,WAAW,YAAY;IACvB,MAAM;IACN,KAAK;IACL,OAAO;KAAE,UAAU;KAAU,GAAG,cAAc;KAAW;cAN3D,CAQG,UAAU,oBAAC,MAAD;KAAM,MAAM;KAAe,OAAO,EAAE,WAAW,GAAG;KAAI,CAAA,EACjE,qBAACA,mBAAD;KACE,WAAW,GAAG,OAAO,SAAS,YAAY,QAAQ;KAClD,KAAK;KACL,OAAO,cAAc;eAHvB;MAKE,oBAAC,MAAD;OACE,UAAA;OACA,IAAI;OACJ,WAAW,GAAG,OAAO,OAAO,YAAY,MAAM;OAC9C,OAAO,cAAc;iBAEpB;OACI,CAAA;MACN,eACC,oBAAC,MAAD;OACE,UAAA;OACA,WAAW,GAAG,OAAO,MAAM,YAAY,KAAK;OAC5C,OAAO,cAAc;iBAEpB;OACI,CAAA;MAER;MACO;OACF;;GACT,UACC,cAEA,qBAAA,YAAA,EAAA,UAAA,CACG,aACA,SACA,EAAA,CAAA;GAEJ;GACO;;EAGf;AAED,SAAS,cAAc"}