@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
1 lines • 4.81 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","names":["Icon","Flexbox","Text"],"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 icon={Loader2} spin />;\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 className={cx(styles.actions, classNames?.actions)}\n gap={4}\n horizontal\n onClick={preventDefaultAndStopPropagation}\n style={{ display: showAction ? undefined : 'none', ...customStyles?.actions }}\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 align={'flex-start'}\n className={cx(styles.root, active && styles.active, className)}\n distribution={'space-between'}\n gap={8}\n horizontal\n onMouseEnter={() => {\n onHoverChange?.(true);\n }}\n onMouseLeave={() => {\n onHoverChange?.(false);\n }}\n padding={12}\n ref={ref}\n style={style}\n {...rest}\n >\n {pinNode}\n <Flexbox\n align={'flex-start'}\n className={classNames?.container}\n flex={1}\n gap={8}\n horizontal\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 as={'h3'}\n className={cx(styles.title, classNames?.title)}\n ellipsis\n style={customStyles?.title}\n >\n {title}\n </Text>\n {description && (\n <Text\n className={cx(styles.desc, classNames?.desc)}\n ellipsis\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,oBAACA;EAAK,MAAM;EAAS;GAAO;CAEhD,MAAM,UAAU,OACd,oBAAC;EAAI,WAAW,GAAG,OAAO,KAAK,YAAY,IAAI;EAAE,OAAO,cAAc;YACpE,oBAAC,SAAI,WAAW,OAAO,WAAY;GAC/B;CAGR,MAAM,cAAc,WAClB,oBAACC;EACC,WAAW,GAAG,OAAO,SAAS,YAAY,QAAQ;EAClD,KAAK;EACL;EACA,SAAS;EACT,OAAO;GAAE,SAAS,aAAa,SAAY;GAAQ,GAAG,cAAc;GAAS;YAE5E;GACO;CAGZ,MAAM,WAAW,QACf,oBAAC;EACC,WAAW,GAAG,OAAO,MAAM,YAAY,KAAK;EAC5C,OAAO;GAAE,SAAS,aAAa,IAAI;GAAW,GAAG,cAAc;GAAM;YAEpE,gBAAgB,KAAK;GAClB;AAGR,QACE,qBAACA;EACC,OAAO;EACP,WAAW,GAAG,OAAO,MAAM,UAAU,OAAO,QAAQ,UAAU;EAC9D,cAAc;EACd,KAAK;EACL;EACA,oBAAoB;AAClB,mBAAgB,KAAK;;EAEvB,oBAAoB;AAClB,mBAAgB,MAAM;;EAExB,SAAS;EACJ;EACE;EACP,GAAI;;GAEH;GACD,qBAACA;IACC,OAAO;IACP,WAAW,YAAY;IACvB,MAAM;IACN,KAAK;IACL;IACA,OAAO;KAAE,UAAU;KAAU,GAAG,cAAc;KAAW;eAExD,UAAU,oBAACD;KAAK,MAAM;KAAe,OAAO,EAAE,WAAW,GAAG;MAAI,EACjE,qBAACC;KACC,WAAW,GAAG,OAAO,SAAS,YAAY,QAAQ;KAClD,KAAK;KACL,OAAO,cAAc;;MAErB,oBAACC;OACC,IAAI;OACJ,WAAW,GAAG,OAAO,OAAO,YAAY,MAAM;OAC9C;OACA,OAAO,cAAc;iBAEpB;QACI;MACN,eACC,oBAACA;OACC,WAAW,GAAG,OAAO,MAAM,YAAY,KAAK;OAC5C;OACA,OAAO,cAAc;iBAEpB;QACI;MAER;;MACO;KACF;GACT,UACC,cAEA,8CACG,aACA,YACA;GAEJ;;GACO;EAGf;AAED,SAAS,cAAc;AAEvB,uBAAe"}