{"version":3,"mappings":"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","names":["ExternalLinkIcon","url","size","jsx","Icon","faTiktok","faLink","Fragment","extractDomain","urlParts","path","truncate","InactiveListControlsButton","onClick","loading","Button","LoadingSpinner","dots","ActiveListDropdownButton","lazy","__vitePreload","ListDropdown","list","user","clicked","setClicked","useState","Suspense","InactiveListDropdownButton","ListLinks","currentUserId","useCurrentUserId","jsxs","UserByline","Badge","PrivacyIcon","LikeButton","ListHeader","username","Heading","Text","calendar","TextLink","pluralize","_a","ListUserReadCountLoader","_b","ExpandingText","ListShowPage","letterbooks","view","usePage","coverImageUrl","cdnUrl","classNames","DynamicListContainer","Callout","Letterbooks","DefaultLayoutWrapper"],"ignoreList":[],"sources":["../../../app/javascript/components/shared/ExternalLinkIcon.tsx","../../../app/javascript/lib/htmlTools.ts","../../../app/javascript/features/lists/components/ListDropdown/InactiveListControlsButton.tsx","../../../app/javascript/features/lists/components/ListDropdown/ListDropdown.tsx","../../../app/javascript/features/lists/components/ListLinks/ListLinks.tsx","../../../app/javascript/features/lists/components/ListHeader/ListHeader.tsx","../../../app/javascript/pages/clientverse/users/lists/show.tsx"],"sourcesContent":["import Icon from \"hardcover-ui/components/Icon\";\nimport faTiktok from \"icons/brands/tiktok.svg\";\nimport faLink from \"icons/regular/link.svg\";\n\nexport default function ExternalLinkIcon({ url, size }) {\n if (!url) {\n return <>;\n }\n\n if (url.indexOf(\"tiktok.com\") !== -1) {\n return ;\n }\n\n return ;\n}\n","import stringToHtml from \"lib/stringToHtml\";\nimport stripHtml from \"lib/stripHtml\";\nimport { truncate } from \"lodash\";\n\nexport const shortenToHtml = (text, length = null) => {\n return `${stringToHtml(stripHtml(text.slice(0, length || Infinity)))}${\n length && text.length > length ? \"…\" : \"\"\n }`;\n};\n\nexport function extractHost(url: string) {\n try {\n return new URL(url).host;\n } catch {\n return null;\n }\n}\n\nexport function extractDomain(url: string) {\n try {\n const urlParts = new URL(url).hostname.split(\".\");\n const path = urlParts.slice(urlParts.length - 2, 2).join(\".\");\n\n return truncate(path, { length: 40 });\n } catch {\n return null;\n }\n}\n","/* eslint-disable @typescript-eslint/no-empty-function */\nimport Button from \"hardcover-ui/components/Button\";\nimport Icon from \"hardcover-ui/components/Icon\";\nimport LoadingSpinner from \"hardcover-ui/components/LoadingSpinner\";\nimport dots from \"icons/solid/ellipsis.svg\";\n\ninterface Props {\n onClick?: any;\n loading?: boolean;\n}\nexport default function InactiveListControlsButton({\n onClick = () => {},\n loading = false,\n}: Props) {\n return (\n
\n \n
\n );\n}\n","import { Suspense, lazy, useState } from \"react\";\nimport InactiveListDropdownButton from \"./InactiveListControlsButton\";\nimport { ListSerializersListByline, UserSerializersUserByline } from \"types/serializers\";\n\nconst ActiveListDropdownButton = lazy(\n () => import(\"./ActiveListDropdownButton\")\n);\n\nexport default function ListDropdown({ list, user }: { list: ListSerializersListByline, user: UserSerializersUserByline }) {\n const [clicked, setClicked] = useState(false);\n\n return (\n <>\n {clicked ? (\n }>\n \n \n ) : (\n \n )}\n \n );\n}\n","import LikeButton from \"components/likes/LikeButton\";\nimport UserByline from \"components/users/UserByline\";\nimport PrivacyIcon from \"components/shared/PrivacyIcon\";\nimport Badge from \"hardcover-ui/components/Badge\";\nimport ListDropdown from \"../ListDropdown/ListDropdown\";\nimport useCurrentUserId from \"hooks/user/useCurrentUserId\";\nimport { ListSerializersListByline, UserSerializersUserByline } from \"types/serializers\";\n\nexport default function ListLinks({ list, user }: { list: ListSerializersListByline, user: UserSerializersUserByline }) {\n const currentUserId = useCurrentUserId();\n\n return (\n
\n
\n \n {list.privacySettingId !== 1 && (\n \n \n \n {list.privacySettingId === 2 ? \"Followers Only\" : \"Private\"}\n \n \n )}\n
\n\n
\n \n {list.userId === currentUserId ? : false}\n
\n
\n );\n}\n","import Heading from \"hardcover-ui/components/Heading\";\nimport Text from \"hardcover-ui/components/Text\";\nimport ExternalLinkIcon from \"components/shared/ExternalLinkIcon\";\nimport ExpandingText from \"components/ui/ExpandingText\";\nimport { extractDomain } from \"lib/htmlTools\";\nimport ListUserReadCountLoader from \"components/BookGroup/headers/parts/ListUserReadCountLoader\";\nimport calendar from \"icons/solid/calendar.svg\";\nimport Icon from \"hardcover-ui/components/Icon\";\nimport TextLink from \"hardcover-ui/components/TextLink\";\nimport pluralize from \"lib/pluralize\";\nimport ListLinks from \"../ListLinks/ListLinks\";\nimport { ListSerializersListByline, UserSerializersUserByline } from \"types/serializers\";\n\nexport interface PageProps {\n list: ListSerializersListByline;\n user: UserSerializersUserByline;\n}\n\nexport default function ListHeader({ list, user }: PageProps) {\n const { username } = user;\n\n return (\n
\n \n \n {list.name}\n \n
\n
    \n
  • \n \n \n Updated {list.updatedAtText} ago\n \n
  • \n
  • \n \n {list.booksCount.toLocaleString()}{\" \"}\n {pluralize(\"Book\", list.booksCount)}\n \n
  • \n {list.url?.length > 0 ? (\n
  • \n \n \n {extractDomain(list.url)}\n \n
  • \n ) : (\n false\n )}\n
\n
\n \n
\n
\n\n {list.description?.length > 0 ? (\n \n ) : (\n false\n )}\n
\n );\n}\n","import { usePage } from \"@inertiajs/react\";\nimport { DefaultLayoutWrapper } from \"layouts/DefaultLayout\";\nimport { UserListPageProps } from \"./show.props\";\nimport { Letterbooks } from \"features/Letterbooks\";\nimport DynamicListContainer from \"features/tags/components/TagHeader/DynamicListContainer/DynamicListContainer\";\nimport ListHeader from \"features/lists/components/ListHeader/ListHeader\";\nimport classNames from \"lib/classNames\";\nimport Callout from \"hardcover-ui/components/Callout\";\nimport { cdnUrl } from \"lib/imageTools\";\n\nfunction ListShowPage() {\n const { letterbooks, list, view, user } = usePage().props;\n const coverImageUrl = cdnUrl(\"/static/bookHeaders/fantasy.webp\");\n\n return (\n \n \n \n \n
\n \n <>\n \n {letterbooks.letterbooks.length === 0 ? (\n
\n \n <>\n There are no books is this list.\n \n \n
\n ) : (\n
\n \n
\n )}\n \n
\n
\n \n );\n}\n\nListShowPage.layout = DefaultLayoutWrapper;\nexport default ListShowPage;"],"file":"assets/show-D31zAzpg.js"}