@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
1 lines • 3.07 kB
Source Map (JSON)
{"version":3,"file":"PopoverPanel.mjs","names":["PopoverPanel: FC<PopoverPanelProps>","displayTitle","domain","Flexbox","Icon"],"sources":["../../../../src/mdx/mdxComponents/Citation/PopoverPanel.tsx"],"sourcesContent":["'use client';\n\nimport { Popover } from 'antd';\nimport { ArrowRightIcon } from 'lucide-react';\nimport { type FC, type ReactNode, useMemo } from 'react';\n\nimport { Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\n\nimport { styles } from './style';\n\ninterface PopoverPanelProps {\n alt?: string;\n children?: ReactNode;\n title?: string;\n url?: string;\n usePopover?: boolean;\n}\n\nconst PopoverPanel: FC<PopoverPanelProps> = ({ children, usePopover, title, alt, url }) => {\n const [displayTitle, domain, host] = useMemo(() => {\n try {\n const urlObj = new URL(url!);\n const hostForUrl = urlObj.host;\n\n let displayTitle = title;\n\n if (title === url) {\n displayTitle = '';\n }\n\n let domain = urlObj.hostname.replace('www.', '');\n if (!displayTitle) domain = url!;\n\n return [displayTitle, domain, hostForUrl];\n } catch {\n return [title, url, url];\n }\n }, [url, title]);\n\n return usePopover && url ? (\n <Popover\n arrow={false}\n content={\n <Flexbox gap={8}>\n <Flexbox\n className={styles.link}\n gap={12}\n horizontal\n justify={'space-between'}\n onClick={() => {\n window.open(url, '_blank');\n }}\n >\n <Flexbox align={'center'} gap={4} horizontal>\n <img\n alt={alt || title || url}\n height={14}\n src={`https://icons.duckduckgo.com/ip3/${host}.ico`}\n style={{ borderRadius: 4 }}\n width={14}\n />\n <span className={styles.url}>{domain}</span>\n </Flexbox>\n <Icon icon={ArrowRightIcon} />\n </Flexbox>\n {displayTitle}\n </Flexbox>\n }\n trigger={'hover'}\n >\n {children}\n </Popover>\n ) : (\n children\n );\n};\n\nPopoverPanel.displayName = 'MdxPopoverPanel';\n\nexport default PopoverPanel;\n"],"mappings":";;;;;;;;;;;AAmBA,MAAMA,gBAAuC,EAAE,UAAU,YAAY,OAAO,KAAK,UAAU;CACzF,MAAM,CAAC,cAAc,QAAQ,QAAQ,cAAc;AACjD,MAAI;GACF,MAAM,SAAS,IAAI,IAAI,IAAK;GAC5B,MAAM,aAAa,OAAO;GAE1B,IAAIC,iBAAe;AAEnB,OAAI,UAAU,IACZ,kBAAe;GAGjB,IAAIC,WAAS,OAAO,SAAS,QAAQ,QAAQ,GAAG;AAChD,OAAI,CAACD,eAAc,YAAS;AAE5B,UAAO;IAACA;IAAcC;IAAQ;IAAW;UACnC;AACN,UAAO;IAAC;IAAO;IAAK;IAAI;;IAEzB,CAAC,KAAK,MAAM,CAAC;AAEhB,QAAO,cAAc,MACnB,oBAAC;EACC,OAAO;EACP,SACE,qBAACC;GAAQ,KAAK;cACZ,qBAACA;IACC,WAAW,OAAO;IAClB,KAAK;IACL;IACA,SAAS;IACT,eAAe;AACb,YAAO,KAAK,KAAK,SAAS;;eAG5B,qBAACA;KAAQ,OAAO;KAAU,KAAK;KAAG;gBAChC,oBAAC;MACC,KAAK,OAAO,SAAS;MACrB,QAAQ;MACR,KAAK,oCAAoC,KAAK;MAC9C,OAAO,EAAE,cAAc,GAAG;MAC1B,OAAO;OACP,EACF,oBAAC;MAAK,WAAW,OAAO;gBAAM;OAAc;MACpC,EACV,oBAACC,gBAAK,MAAM,iBAAkB;KACtB,EACT;IACO;EAEZ,SAAS;EAER;GACO,GAEV;;AAIJ,aAAa,cAAc;AAE3B,2BAAe"}