{"version":3,"mappings":"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","names":["deleteReadingJournalEntries","gql","DeleteAllJournalEntriesButton","book","sendDelete","loading","useMutation","deleteJournalEntry","event","router","toast","jsxs","DrawerButton","jsx","Icon","trash","updateReadingJournal","ChangePrivacyJournalEntriesButton","journals","privacySettingId","updateJournal","updateAll","journal","updateJournalEntry","PrivacySettings","PrivacyIcons","OwnerReadingJournalOptions","Text","PrivacyPublic","PrivacyFollows","PrivacyPrivate","ReadingJournalModal","lazy","__vitePreload","OFFSET","OwnerReadingJournalControls","open","setOpen","useState","editOpen","setEditOpen","buttonRef","useRef","openModal","startTransition","Button","plus","chevronDown","Suspense","Drawer","ClientDateTime","date","useMount","dateAsDate","isDate","ListBook","metadata","faList","TextLink","StatusWantToRead","WantToReadStatus","StatusRead","ReadStatus","StatusCurrentlyreading","CurrentlyReadingStatus","StatusStopped","DidNotFinishStatus","SvgNotebook","props","React.createElement","Plaintext","text","className","Note","icon","Quote","Rated","star","SvgPencil","user","Fragment","BookReviewText","Link","SvgPeople","ReferredTo","ReferredBy","SvgBookCircleArrowUp","ProgressUpdated","PromptBook","UserBookReadStarted","UserBookReadFinished","JournalEventMap","StatusCurrentlyReading","Reviewed","DefaultEventComponent","ReadingJournalEntryEvent","JournalEntryEventComponent","ReadingJournalPositionSeconds","position","audioReadingFormat","secondsFormat","ReadingJournalPositionPages","textReadingFormat","ReadingJournalPosition","JournalTags","tags","tag","ReadingJournalControls","ReadingJournalCard","isOwner","LikeButton","PrivacyIcon","_a","ReadingJournals","UserReadingJournalsPage","usePage","currentUserId","useCurrentUserId","BookLayout","Container","UserByline","Callout","DefaultLayoutWrapper"],"ignoreList":[],"sources":["../../../app/javascript/features/ReadingJournal/queries/deleteReadingJournalEntries.ts","../../../app/javascript/features/ReadingJournal/components/OwnerReadingJournalControls/OwnerReadingJournalOptions/OwnerReadingJournalButtons/DeleteAllJournalEntriesButton.tsx","../../../app/javascript/features/ReadingJournal/queries/updateReadingJournal.ts","../../../app/javascript/features/ReadingJournal/components/OwnerReadingJournalControls/OwnerReadingJournalOptions/OwnerReadingJournalButtons/ChangePrivacyJournalEntriesButton.tsx","../../../app/javascript/features/ReadingJournal/components/OwnerReadingJournalControls/OwnerReadingJournalOptions/OwnerReadingJournalOptions.tsx","../../../app/javascript/features/ReadingJournal/components/OwnerReadingJournalControls/OwnerReadingJournalControls.tsx","../../../app/javascript/components/shared/ClientDatetime.tsx","../../../app/javascript/features/ReadingJournal/components/ReadingJournalEntry/ReadingJournalEntryEvent/events/ListBook.tsx","../../../app/javascript/features/ReadingJournal/components/ReadingJournalEntry/ReadingJournalEntryEvent/events/StatusWantToRead.tsx","../../../app/javascript/features/ReadingJournal/components/ReadingJournalEntry/ReadingJournalEntryEvent/events/StatusRead.tsx","../../../app/javascript/features/ReadingJournal/components/ReadingJournalEntry/ReadingJournalEntryEvent/events/StatusCurrentlyReading.tsx","../../../app/javascript/features/ReadingJournal/components/ReadingJournalEntry/ReadingJournalEntryEvent/events/StatusStopped.tsx","../../../app/javascript/icons/solid/notebook.svg","../../../app/javascript/components/shared/Plaintext.tsx","../../../app/javascript/features/ReadingJournal/components/ReadingJournalEntry/ReadingJournalEntryEvent/events/Note.tsx","../../../app/javascript/features/ReadingJournal/components/ReadingJournalEntry/ReadingJournalEntryEvent/events/Quote.tsx","../../../app/javascript/features/ReadingJournal/components/ReadingJournalEntry/ReadingJournalEntryEvent/events/Rated.tsx","../../../app/javascript/icons/regular/pencil.svg","../../../app/javascript/features/ReadingJournal/components/ReadingJournalEntry/ReadingJournalEntryEvent/events/Reviewed.tsx","../../../app/javascript/icons/regular/people.svg","../../../app/javascript/features/ReadingJournal/components/ReadingJournalEntry/ReadingJournalEntryEvent/events/ReferredTo.tsx","../../../app/javascript/features/ReadingJournal/components/ReadingJournalEntry/ReadingJournalEntryEvent/events/ReferredBy.tsx","../../../app/javascript/icons/regular/book-circle-arrow-up.svg","../../../app/javascript/features/ReadingJournal/components/ReadingJournalEntry/ReadingJournalEntryEvent/events/ProgressUpdated.tsx","../../../app/javascript/features/ReadingJournal/components/ReadingJournalEntry/ReadingJournalEntryEvent/events/PromptBook.tsx","../../../app/javascript/features/ReadingJournal/components/ReadingJournalEntry/ReadingJournalEntryEvent/events/UserBookReadStarted.tsx","../../../app/javascript/features/ReadingJournal/components/ReadingJournalEntry/ReadingJournalEntryEvent/events/UserBookReadFinished.tsx","../../../app/javascript/features/ReadingJournal/components/ReadingJournalEntry/ReadingJournalEntryEvent/events/index.ts","../../../app/javascript/features/ReadingJournal/components/ReadingJournalEntry/ReadingJournalEntryEvent/events/DefaultEventComponent.tsx","../../../app/javascript/features/ReadingJournal/components/ReadingJournalEntry/ReadingJournalEntryEvent/ReadingJournalEntryEvent.tsx","../../../app/javascript/features/ReadingJournal/components/ReadingJournalPosition/ReadingJournalPositionSeconds.tsx","../../../app/javascript/features/ReadingJournal/components/ReadingJournalPosition/ReadingJournalPositionPages.tsx","../../../app/javascript/features/ReadingJournal/components/ReadingJournalPosition/ReadingJournalPosition.tsx","../../../app/javascript/features/ReadingJournal/components/ReadingJournalCard/JournalTags.tsx","../../../app/javascript/features/ReadingJournal/components/ReadingJournalCard/ReadingJournalCard.tsx","../../../app/javascript/features/ReadingJournal/components/ReadingJournals/ReadingJournals.tsx","../../../app/javascript/pages/clientverse/books/journals/show.tsx"],"sourcesContent":["import { gql } from \"graphql-tag\";\n\nexport const deleteReadingJournalEntries = gql`\n mutation DeleteReadingJournalEntries($book_id: Int!) {\n deleteResponse: delete_reading_journals_for_book(book_id: $book_id) {\n ids\n }\n }\n`;\n","import DrawerButton from \"components/ui/DrawerButton\";\nimport { useMutation } from \"lib/apollo/client\";\nimport { toast } from \"sonner\";\nimport Icon from \"hardcover-ui/components/Icon\";\nimport trash from \"icons/solid/trash.svg\";\nimport { deleteReadingJournalEntries } from \"features/ReadingJournal/queries/deleteReadingJournalEntries\";\nimport { PageSerializersBooksLayout } from \"types/serializers\";\nimport { router } from \"@inertiajs/react\";\n\nexport default function DeleteAllJournalEntriesButton({\n book,\n}: {\n book: PageSerializersBooksLayout;\n}) {\n const [sendDelete, { loading }] = useMutation(deleteReadingJournalEntries);\n\n const deleteJournalEntry = async (event: any) => {\n event.preventDefault();\n if (confirm(\"Are you sure you want to delete all journal entries?\")) {\n sendDelete({\n variables: {\n book_id: book.id,\n },\n })\n .then(() => {\n router.reload({ only: [\"journals\"] });\n toast.success(\"Journal entries deleted successfully\");\n })\n .catch(() => {\n toast.error(\"Failed to delete journal entries. Please try again\");\n });\n }\n };\n\n return (\n \n \n Delete All Entries\n \n );\n}\n","import { gql } from \"graphql-tag\";\n\nexport const updateReadingJournal = gql`\n mutation UpdateReadingJournalEntry(\n $id: Int!\n $object: ReadingJournalUpdateType!\n ) {\n updateResponse: update_reading_journal(id: $id, object: $object) {\n reading_journal {\n ...ReadingJournalFragment\n }\n }\n }\n`;\n","import DrawerButton from \"components/ui/DrawerButton\";\nimport { useMutation } from \"lib/apollo/client\";\nimport { toast } from \"sonner\";\nimport {\n PrivacyIcons,\n PrivacySettings,\n PrivacySettingType,\n} from \"constants/PrivacySettings\";\nimport Icon from \"hardcover-ui/components/Icon\";\nimport { updateReadingJournal } from \"features/ReadingJournal/queries/updateReadingJournal\";\nimport { ReadingJournalSerializersJournal } from \"types/serializers\";\nimport { router } from \"@inertiajs/react\";\n\nexport default function ChangePrivacyJournalEntriesButton({\n journals,\n privacySettingId,\n}: {\n journals: ReadingJournalSerializersJournal[];\n privacySettingId: PrivacySettingType;\n}) {\n const [updateJournal, { loading }] = useMutation(updateReadingJournal);\n\n const updateAll = async () => {\n return Promise.all(\n journals.map(async (journal) => {\n return updateJournal({\n variables: {\n id: journal.id,\n object: {\n privacy_setting_id: privacySettingId,\n },\n },\n });\n })\n );\n };\n\n const updateJournalEntry = async (event: any) => {\n event.preventDefault();\n if (\n confirm(\n `Are you sure you want to change all journal entries to ${PrivacySettings[privacySettingId]}?`\n )\n ) {\n updateAll()\n .then(() => {\n router.reload({ only: [\"journals\"] });\n toast.success(\"Journal entries changed successfully\");\n })\n .catch(() => {\n toast.error(\"Failed to change journal entries. Please try again\");\n });\n }\n };\n\n return (\n \n \n Change all to {PrivacySettings[privacySettingId]}\n \n );\n}\n","import Text from \"hardcover-ui/components/Text\";\nimport DeleteAllJournalEntriesButton from \"./OwnerReadingJournalButtons/DeleteAllJournalEntriesButton\";\nimport {\n PrivacyFollows,\n PrivacyPrivate,\n PrivacyPublic,\n} from \"constants/PrivacySettings\";\nimport ChangePrivacyJournalEntriesButton from \"./OwnerReadingJournalButtons/ChangePrivacyJournalEntriesButton\";\nimport { ReadingJournalSerializersJournal, PageSerializersBooksLayout } from \"types/serializers\";\n\nexport default function OwnerReadingJournalOptions({\n book,\n journals,\n}: {\n book: PageSerializersBooksLayout;\n journals: ReadingJournalSerializersJournal[];\n}) {\n return (\n
\n
\n \n {book.title}\n \n \n Manage Reading Journal\n \n
\n\n \n \n \n \n
\n );\n}\n","import Icon from \"hardcover-ui/components/Icon\";\nimport { lazy, startTransition, Suspense, useRef, useState } from \"react\";\nimport chevronDown from \"icons/solid/chevron-down.svg\";\nimport { Drawer } from \"features/Drawer\";\nimport Button from \"hardcover-ui/components/Button\";\nimport OwnerReadingJournalOptions from \"./OwnerReadingJournalOptions/OwnerReadingJournalOptions\";\nimport plus from \"icons/solid/plus.svg\";\nimport { PageSerializersBooksLayout, ReadingJournalSerializersJournal } from \"types/serializers\";\n\nconst ReadingJournalModal = lazy(\n () =>\n import(\n \"features/ReadingJournal/components/ReadingJournalModal/ReadingJournalModal\"\n )\n);\n\nconst OFFSET: [number, number] = [23, 10];\n\nexport default function OwnerReadingJournalControls({\n book,\n journals,\n}: {\n book: PageSerializersBooksLayout;\n journals: ReadingJournalSerializersJournal[];\n}) {\n const [open, setOpen] = useState(false);\n const [editOpen, setEditOpen] = useState(false);\n const buttonRef = useRef(null);\n\n const openModal = () => {\n startTransition(() => {\n setEditOpen(true);\n setOpen(false);\n });\n };\n\n return (\n
\n \n\n setOpen(true)}\n ref={buttonRef}\n >\n Settings\n \n \n\n {open && buttonRef.current ? (\n {},\n offset: OFFSET,\n placement: \"bottom-end\",\n }}\n />\n }\n >\n setOpen(false),\n offset: OFFSET,\n placement: \"bottom-end\",\n }}\n >\n \n \n \n ) : (\n false\n )}\n\n \n setEditOpen(false)}\n book={book}\n />\n \n
\n );\n}\n","import useMount from \"hooks/useMount\";\nimport { isDate } from \"lodash\";\n\nexport function ClientDateTime({ date }: { date: Date | null | string }) {\n const mounted = useMount();\n\n if (!mounted) return null;\n\n if (!date) {\n return -;\n }\n\n const dateAsDate = isDate(date) ? date : new Date(date);\n\n return (\n \n {dateAsDate.toLocaleTimeString([], {\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n })}\n \n );\n}\n","import { ListBookMetadataType } from \"types/ReadingJournalType\";\nimport Icon from \"hardcover-ui/components/Icon\";\nimport Text from \"hardcover-ui/components/Text\";\nimport faList from \"icons/regular/list.svg\";\nimport TextLink from \"hardcover-ui/components/TextLink\";\nimport { ReadingJournalEventProps } from \"./types\";\n\nexport default function ListBook({ journal }: ReadingJournalEventProps) {\n const metadata = journal.metadata as ListBookMetadataType;\n return (\n \n \n Added to list\n \n {metadata.list_name}\n \n \n );\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport Icon from \"hardcover-ui/components/Icon\";\nimport Text from \"hardcover-ui/components/Text\";\nimport { WantToReadStatus } from \"components/shared/UserBookStatuses\";\nimport { ReadingJournalEventProps } from \"./types\";\n\nexport default function StatusWantToRead({\n journal,\n}: ReadingJournalEventProps) {\n return (\n \n \n Saved as Want To Read\n \n );\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport Icon from \"hardcover-ui/components/Icon\";\nimport Text from \"hardcover-ui/components/Text\";\nimport { ReadStatus } from \"components/shared/UserBookStatuses\";\nimport { ReadingJournalEventProps } from \"./types\";\n\nexport default function StatusRead({ journal }: ReadingJournalEventProps) {\n return (\n \n \n Marked as Read\n \n );\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport Icon from \"hardcover-ui/components/Icon\";\nimport Text from \"hardcover-ui/components/Text\";\nimport { CurrentlyReadingStatus } from \"components/shared/UserBookStatuses\";\nimport { ReadingJournalEventProps } from \"./types\";\n\nexport default function StatusCurrentlyreading({\n journal,\n}: ReadingJournalEventProps) {\n return (\n \n \n Started Reading\n \n );\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport Icon from \"hardcover-ui/components/Icon\";\nimport Text from \"hardcover-ui/components/Text\";\nimport { DidNotFinishStatus } from \"components/shared/UserBookStatuses\";\nimport { ReadingJournalEventProps } from \"./types\";\n\nexport default function StatusStopped({ journal }: ReadingJournalEventProps) {\n return (\n \n \n Stopped reading\n \n );\n}\n","import * as React from \"react\";\nconst SvgNotebook = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 512 512\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M64 48v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24h40v80H24c-13.3 0-24 10.7-24 24s10.7 24 24 24h40v80H24c-13.3 0-24 10.7-24 24s10.7 24 24 24h40v56c0 26.5 21.5 48 48 48h80V0h-80C85.5 0 64 21.5 64 48M432 0H224v512h208c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48\" }));\nexport default SvgNotebook;\n","export default function Plaintext({\n text,\n className,\n}: {\n text: string;\n className?: string;\n}) {\n return (\n

\n {(text || \"\").replace(\"\\r\\n\\r\\n\", \"

\")}\n

\n );\n}\n","import icon from \"icons/solid/notebook.svg\";\nimport Icon from \"hardcover-ui/components/Icon\";\nimport Text from \"hardcover-ui/components/Text\";\nimport Plaintext from \"components/shared/Plaintext\";\nimport { ReadingJournalEventProps } from \"./types\";\n\nexport default function Note({ journal }: ReadingJournalEventProps) {\n return (\n
\n \n \n Saved a Note\n \n \n </div>\n );\n}\n","import Plaintext from \"components/shared/Plaintext\";\nimport icon from \"icons/solid/quote-left.svg\";\nimport Text from \"hardcover-ui/components/Text\";\nimport Icon from \"hardcover-ui/components/Icon\";\nimport { ReadingJournalEventProps } from \"./types\";\n\nexport default function Quote({ journal }: ReadingJournalEventProps) {\n return (\n <div>\n <Text variant=\"secondary\" className=\"flex flex-row items-center gap-2\">\n <Icon icon={icon} />\n <span>Saved a Quote</span>\n </Text>\n <Plaintext text={journal.entry} className=\"mt-4\" />\n </div>\n );\n}\n","import { RatingMetadataType } from \"types/ReadingJournalType\";\nimport Icon from \"hardcover-ui/components/Icon\";\nimport Text from \"hardcover-ui/components/Text\";\nimport star from \"icons/regular/star.svg\";\nimport { ReadingJournalEventProps } from \"./types\";\n\nexport default function Rated({ journal }: ReadingJournalEventProps) {\n const metadata = journal.metadata as RatingMetadataType;\n return (\n <Text variant=\"secondary\" className=\"flex flex-row items-center gap-2\">\n <Icon icon={star} />\n <span>Rated {metadata.rating} ⭐</span>\n </Text>\n );\n}\n","import * as React from \"react\";\nconst SvgPencil = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 512 512\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m36.4 360.9-23 78.1L1 481.2c-2.5 8.5-.2 17.6 6 23.8s15.3 8.5 23.7 6.1L73 498.6l78.1-23c10.4-3 20.1-8 28.6-14.5l.3.2.5-.8c1.4-1.1 2.7-2.2 4-3.3 1.4-1.2 2.7-2.5 4-3.8l304.2-304.1a64 64 0 0 0 8.2-80.5c-2.3-3.5-5.1-6.9-8.2-10l-39.4-39.5c-25-25-65.5-25-90.5 0L58.6 323.5c-2.5 2.5-4.9 5.2-7.1 8l-.8.5.2.3a89 89 0 0 0-14.5 28.6M383 191 197.4 376.6l-49.6-12.4-12.4-49.6L321 129zM97 358.9l7.7 31a24.1 24.1 0 0 0 17.5 17.5l31 7.7-7.4 11.2a41 41 0 0 1-8.1 3.4l-23.4 6.9-54.9 16 16.1-54.8 6.9-23.4c.8-2.8 2-5.6 3.4-8.1zm218.3-140.2c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-96 96c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0z\" }));\nexport default SvgPencil;\n","import Icon from \"hardcover-ui/components/Icon\";\nimport Text from \"hardcover-ui/components/Text\";\nimport icon from \"icons/regular/pencil.svg\";\nimport BookReviewText from \"components/BookReview/BookReviewText\";\nimport { Link } from \"@inertiajs/react\";\nimport { ReadingJournalEventProps } from \"./types\";\n\nexport default function ListBook({\n journal,\n book,\n user,\n}: ReadingJournalEventProps) {\n return (\n <div>\n <Text variant=\"secondary\" className=\"flex flex-row items-center gap-2\">\n <Icon icon={icon} />\n <span>Reviewed</span>\n </Text>\n\n {journal.metadata.review ? (\n <>\n <BookReviewText\n expanded={false}\n reviewSlate={journal.metadata.review}\n />\n </>\n ) : (\n false\n )}\n <p className=\"mt-2 text-right\">\n <Link\n href={`/books/${book.slug}/reviews/@${user.username}`}\n className=\"text-indigo-600 dark:text-yellow-400 hover:underline\"\n >\n Read full review\n </Link>\n </p>\n </div>\n );\n}\n","import * as React from \"react\";\nconst SvgPeople = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 640 512\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M160 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96m-13.7 80h27.5c.8 0 1.5 0 2.3.1V304H144V176.1c.7 0 1.5-.1 2.3-.1M144 488V352h32v136c0 13.3 10.7 24 24 24s24-10.7 24-24V223.6l43.1 76.2c6.5 11.5 21.2 15.6 32.7 9.1s15.6-21.2 9.1-32.7l-58.6-103.5a88 88 0 0 0-76.6-44.7h-27.4c-31.7 0-61 17.1-76.6 44.7L11.1 276.2c-6.5 11.5-2.5 26.2 9.1 32.7s26.2 2.5 32.7-9.1L96 223.6V488c0 13.3 10.7 24 24 24s24-10.7 24-24M480 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96m107.1 203.8c6.5 11.5 21.2 15.6 32.7 9.1s15.6-21.2 9.1-32.7l-51.8-91.5c-19.8-35-56.9-56.6-97.1-56.6s-77.3 21.6-97.1 56.6l-51.8 91.5c-6.5 11.5-2.5 26.2 9.1 32.7s26.2 2.5 32.7-9.1l47.9-84.6-46.3 148a16.05 16.05 0 0 0 15.3 20.8H416v104c0 13.3 10.7 24 24 24s24-10.7 24-24V384h32v104c0 13.3 10.7 24 24 24s24-10.7 24-24V384h26.2c10.8 0 18.5-10.5 15.3-20.8l-46.3-148zM526.7 336h-93.4L480 186.5z\" }));\nexport default SvgPeople;\n","import { ReferredToMetadataType } from \"types/ReadingJournalType\";\nimport Icon from \"hardcover-ui/components/Icon\";\nimport Text from \"hardcover-ui/components/Text\";\nimport icon from \"icons/regular/people.svg\";\nimport TextLink from \"hardcover-ui/components/TextLink\";\nimport { ReadingJournalEventProps } from \"./types\";\n\nexport default function ReferredTo({ journal }: ReadingJournalEventProps) {\n const metadata = journal.metadata as ReferredToMetadataType;\n return (\n <Text variant=\"secondary\" className=\"flex flex-row items-center gap-2\">\n <Icon icon={icon} />\n <span>\n <TextLink href={`/@${metadata.referred_username}`}>\n {metadata.referred_username}\n </TextLink>\n Referred you\n </span>\n </Text>\n );\n}\n","import { ReferredToMetadataType } from \"types/ReadingJournalType\";\nimport Icon from \"hardcover-ui/components/Icon\";\nimport Text from \"hardcover-ui/components/Text\";\nimport icon from \"icons/regular/people.svg\";\nimport TextLink from \"hardcover-ui/components/TextLink\";\nimport { ReadingJournalEventProps } from \"./types\";\n\nexport default function ReferredBy({ journal }: ReadingJournalEventProps) {\n const metadata = journal.metadata as ReferredToMetadataType;\n return (\n <Text variant=\"secondary\" className=\"flex flex-row items-center gap-2\">\n <Icon icon={icon} />\n <span>\n You referred\n <TextLink href={`/@${metadata.referred_username}`}>\n {metadata.referred_username}\n </TextLink>\n to this book\n </span>\n </Text>\n );\n}\n","import * as React from \"react\";\nconst SvgBookCircleArrowUp = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 640 512\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M88 0A88 88 0 0 0 0 88v336h.4A79.98 79.98 0 0 0 80 512h314.8a176 176 0 0 1-46.3-48H80c-17.7 0-32-14.3-32-32s14.3-32 32-32h242.9c-1.9-10.4-2.9-21.1-2.9-32 0-5.4.2-10.7.7-16H80c-11.4 0-22.2 2.4-32 6.7V88c0-22.1 17.9-40 40-40h304c4.4 0 8 3.6 8 8v164.5c14.6-9.5 30.8-17 48-21.8V56c0-30.9-25.1-56-56-56zm408 224a144 144 0 1 0 0 288 144 144 0 1 0 0-288m-67.3 147.3c-6.2-6.2-6.2-16.4 0-22.6l56-56c6.2-6.2 16.4-6.2 22.6 0l56 56c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L512 342.6V432c0 8.8-7.2 16-16 16s-16-7.2-16-16v-89.4l-28.7 28.7c-6.2 6.2-16.4 6.2-22.6 0\" }));\nexport default SvgBookCircleArrowUp;\n","import { ProgressMetadataType } from \"types/ReadingJournalType\";\nimport Icon from \"hardcover-ui/components/Icon\";\nimport Text from \"hardcover-ui/components/Text\";\nimport icon from \"icons/regular/book-circle-arrow-up.svg\";\nimport { ReadingJournalEventProps } from \"./types\";\n\nexport default function ProgressUpdated({ journal }: ReadingJournalEventProps) {\n const metadata = journal.metadata as ProgressMetadataType;\n return (\n <Text variant=\"secondary\" className=\"flex flex-row items-center gap-2\">\n <Icon icon={icon} />\n <span>\n Updated progress from <b>{metadata.progress_was || 0}%</b> →{\" \"}\n <b>{metadata.progress}%</b>\n </span>\n </Text>\n );\n}\n","import { ListBookMetadataType } from \"types/ReadingJournalType\";\nimport Icon from \"hardcover-ui/components/Icon\";\nimport Text from \"hardcover-ui/components/Text\";\nimport faList from \"icons/regular/list.svg\";\nimport TextLink from \"hardcover-ui/components/TextLink\";\nimport { ReadingJournalEventProps } from \"./types\";\n\nexport default function PromptBook({ journal }: ReadingJournalEventProps) {\n const metadata = journal.metadata as ListBookMetadataType;\n return (\n <Text variant=\"secondary\" className=\"flex flex-row items-center gap-2\">\n <Icon icon={faList} />\n <span>Added to list</span>\n <TextLink href={`/@${metadata.username}/lists/${metadata.slug}`}>\n {metadata.list_name}\n </TextLink>\n </Text>\n );\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport Icon from \"hardcover-ui/components/Icon\";\nimport Text from \"hardcover-ui/components/Text\";\nimport { CurrentlyReadingStatus } from \"components/shared/UserBookStatuses\";\nimport { ReadingJournalEventProps } from \"./types\";\n\nexport default function UserBookReadStarted({\n journal,\n}: ReadingJournalEventProps) {\n return (\n <Text variant=\"secondary\" className=\"flex flex-row items-center gap-2\">\n <Icon icon={CurrentlyReadingStatus.icon} />\n <span>Started reading</span>\n </Text>\n );\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport Icon from \"hardcover-ui/components/Icon\";\nimport Text from \"hardcover-ui/components/Text\";\nimport { ReadStatus } from \"components/shared/UserBookStatuses\";\nimport { ReadingJournalEventProps } from \"./types\";\n\nexport default function UserBookReadFinished({\n journal,\n}: ReadingJournalEventProps) {\n return (\n <Text variant=\"secondary\" className=\"flex flex-row items-center gap-2\">\n <Icon icon={ReadStatus.icon} />\n <span>Finished reading</span>\n </Text>\n );\n}\n","import ListBook from \"./ListBook\";\nimport StatusWantToRead from \"./StatusWantToRead\";\nimport StatusRead from \"./StatusRead\";\nimport StatusCurrentlyReading from \"./StatusCurrentlyReading\";\nimport StatusStopped from \"./StatusStopped\";\nimport Note from \"./Note\";\nimport Quote from \"./Quote\";\nimport Rated from \"./Rated\";\nimport Reviewed from \"./Reviewed\";\nimport ReferredTo from \"./ReferredTo\";\nimport ReferredBy from \"./ReferredBy\";\nimport ProgressUpdated from \"./ProgressUpdated\";\nimport PromptBook from \"./PromptBook\";\nimport UserBookReadStarted from \"./UserBookReadStarted\";\nimport UserBookReadFinished from \"./UserBookReadFinished\";\n\n// type ReadingJournalEventComponentType = ({ journal }:{ journal: ReadingJournalType }) => React.ReactElement;\n\nconst JournalEventMap = {\n status_want_to_read: StatusWantToRead,\n status_currently_reading: StatusCurrentlyReading,\n status_read: StatusRead,\n status_stopped: StatusStopped,\n note: Note,\n quote: Quote,\n rated: Rated,\n reviewed: Reviewed,\n referral_to: ReferredTo,\n referred_by: ReferredBy,\n progress_updated: ProgressUpdated,\n list_book: ListBook,\n prompt_book: PromptBook,\n user_book_read_started: UserBookReadStarted,\n user_book_read_finished: UserBookReadFinished,\n};\n\nexport default JournalEventMap;\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport icon from \"icons/solid/notebook.svg\";\nimport Icon from \"hardcover-ui/components/Icon\";\nimport Text from \"hardcover-ui/components/Text\";\nimport { ReadingJournalEventProps } from \"./types\";\n\nexport default function DefaultEventComponent({\n journal,\n}: ReadingJournalEventProps) {\n return (\n <Text variant=\"secondary\">\n <Icon icon={icon} />\n </Text>\n );\n}\n","import { BookSerializersBookByline, ReadingJournalSerializersJournal, UserSerializersUserByline } from \"types/serializers\";\nimport JournalEventMap from \"./events\";\nimport DefaultEventComponent from \"./events/DefaultEventComponent\";\n\nexport default function ReadingJournalEntryEvent({\n journal,\n book,\n user,\n}: {\n journal: ReadingJournalSerializersJournal;\n book: BookSerializersBookByline\n user: UserSerializersUserByline;\n}) {\n const JournalEntryEventComponent =\n JournalEventMap[journal.event] || DefaultEventComponent;\n\n return (\n <JournalEntryEventComponent journal={journal} book={book} user={user} />\n );\n}\n","import { ReadingJournalPositionType } from \"features/ReadingJournal/types\";\nimport Icon from \"hardcover-ui/components/Icon\";\nimport { secondsFormat } from \"lib/bookUtils\";\nimport { audioReadingFormat } from \"types/ReadingFormatType\";\n\nexport default function ReadingJournalPositionSeconds({\n position,\n}: {\n position: ReadingJournalPositionType;\n}) {\n return (\n <span className=\"flex flex-row items-center space-x-2\">\n <Icon icon={audioReadingFormat.iconRegular} />\n <span>{secondsFormat(position.value)}</span>\n </span>\n );\n}\n","import { ReadingJournalPositionType } from \"features/ReadingJournal/types\";\nimport Icon from \"hardcover-ui/components/Icon\";\nimport { textReadingFormat } from \"types/ReadingFormatType\";\n\nexport default function ReadingJournalPositionPages({\n position,\n}: {\n position: ReadingJournalPositionType;\n}) {\n return (\n <span className=\"flex flex-row items-center space-x-2\">\n <Icon icon={textReadingFormat.iconRegular} />\n <span>p. {position.value.toLocaleString()}</span>\n </span>\n );\n}\n","import { ReadingJournalPositionType } from \"features/ReadingJournal/types\";\nimport ReadingJournalPositionSeconds from \"./ReadingJournalPositionSeconds\";\nimport ReadingJournalPositionPages from \"./ReadingJournalPositionPages\";\n\nexport default function ReadingJournalPosition({\n position,\n}: {\n position: ReadingJournalPositionType | null;\n}) {\n if (!position || !position?.value) return null;\n\n if (position.type === \"seconds\") {\n return <ReadingJournalPositionSeconds position={position} />;\n }\n\n if (position.type === \"pages\") {\n return <ReadingJournalPositionPages position={position} />;\n }\n\n return null;\n}\n","import Text from \"hardcover-ui/components/Text\";\nimport { TagSerializersTaggingToBasicTag } from \"types/serializers\";\n\nexport default function JournalTags({ tags }: { tags: TagSerializersTaggingToBasicTag[] }) {\n if (tags.length === 0) {\n return false;\n }\n\n return (\n <div className=\"flex flex-row space-x-2\">\n {tags.map((tag) => (\n <Text key={tag.tag} variant=\"secondary\" size=\"sm\">\n #{tag.tag}\n </Text>\n ))}\n </div>\n );\n}\n","import LikeButton from \"components/likes/LikeButton\";\nimport TextLink from \"hardcover-ui/components/TextLink\";\nimport { lazy, Suspense } from \"react\";\nimport PrivacyIcon from \"components/shared/PrivacyIcon\";\nimport { ClientDateTime } from \"components/shared/ClientDatetime\";\nimport ReadingJournalEntryEvent from \"../ReadingJournalEntry/ReadingJournalEntryEvent/ReadingJournalEntryEvent\";\nimport ReadingJournalPosition from \"../ReadingJournalPosition/ReadingJournalPosition\";\nimport JournalTags from \"./JournalTags\";\nimport { ReadingJournalSerializersJournal, PageSerializersBooksLayout, UserSerializersUserByline } from \"types/serializers\";\n\nconst ReadingJournalControls = lazy(\n () =>\n import(\n \"../ReadingJournalEntry/ReadingJournalControls/ReadingJournalControls\"\n )\n);\n\nexport default function ReadingJournalCard({\n book,\n className = \"\",\n isOwner,\n journal,\n user,\n}: {\n book: PageSerializersBooksLayout;\n className?: string;\n isOwner: boolean;\n journal: ReadingJournalSerializersJournal;\n user: UserSerializersUserByline;\n}) {\n return (\n <div className={className}>\n <ReadingJournalEntryEvent journal={journal} book={book} user={user} />\n\n <div className=\"mt-4 space-y-2\">\n <JournalTags tags={journal.tags} />\n <div className=\"flex flex-row justify-between items-baseline\">\n <div className=\"flex flex-row items-center space-x-2\">\n <LikeButton likeable={journal} showLikes={false} />\n\n <PrivacyIcon privacySettingId={journal.privacySettingId} />\n\n <ReadingJournalPosition\n position={journal.metadata?.position || null}\n />\n\n {isOwner ? (\n <Suspense>\n <ReadingJournalControls journal={journal} book={book} />\n </Suspense>\n ) : (\n false\n )}\n </div>\n <TextLink\n href={`/books/${book.slug}/journals/@${user.username}#entry-${journal.id}`}\n variant=\"secondary\"\n size=\"sm\"\n >\n <ClientDateTime date={journal.actionAt} />\n </TextLink>\n </div>\n </div>\n </div>\n );\n}\n","import ReadingJournalCard from \"../ReadingJournalCard/ReadingJournalCard\";\nimport { PageSerializersBooksLayout, ReadingJournalSerializersJournal, UserSerializersUserByline } from \"types/serializers\";\n\nexport default function ReadingJournals({\n book,\n user,\n journals,\n isOwner\n}: {\n book: PageSerializersBooksLayout;\n journals: ReadingJournalSerializersJournal[]\n user: UserSerializersUserByline;\n isOwner: boolean;\n}) {\n return (\n <div>\n {journals.map((journal) => (\n <ReadingJournalCard\n key={`journal-${journal.id}`}\n book={book}\n isOwner={isOwner}\n journal={journal}\n user={user}\n className=\"mt-2 bg-card p-4 rounded\"\n />\n ))}\n </div>\n );\n}\n","import Container from \"hardcover-ui/components/Container\";\nimport UserByline from \"components/users/UserByline\";\nimport OwnerReadingJournalControls from \"features/ReadingJournal/components/OwnerReadingJournalControls/OwnerReadingJournalControls\";\nimport Callout from \"hardcover-ui/components/Callout\";\nimport { DefaultLayoutWrapper } from \"layouts/DefaultLayout\";\nimport { usePage } from \"@inertiajs/react\";\nimport { BookJournalShowProps } from \"./show.props\";\nimport useCurrentUserId from \"hooks/user/useCurrentUserId\";\nimport ReadingJournals from \"features/ReadingJournal/components/ReadingJournals/ReadingJournals\";\nimport BookLayout from \"features/books/layouts/BookLayout/BookLayout\";\n\nexport type ReadingJournalSearchParamsType = {\n page?: string;\n};\n\nfunction UserReadingJournalsPage() {\n const { book, journals, user } = usePage<BookJournalShowProps>().props;\n const currentUserId = useCurrentUserId();\n\n return (\n <BookLayout>\n <Container variant=\"layout\" size=\"md\" className=\"gap-4\">\n <div className=\"flex flex-row justify-between items-center\">\n <UserByline user={user} byline=\"Reading Journal By\" />\n {currentUserId === user.id ? (\n <OwnerReadingJournalControls book={book} journals={journals} />\n ) : (\n false\n )}\n </div>\n {journals.length === 0 ? (\n <Callout variant=\"secondary\" className=\"mt-4\">\n <p>No journal entries yet.</p>\n </Callout>\n ) : (\n <ReadingJournals journals={journals} book={book} user={user} isOwner={currentUserId === user.id} />\n )}\n </Container>\n </BookLayout>\n );\n}\n\nUserReadingJournalsPage.layout = DefaultLayoutWrapper;\nexport default UserReadingJournalsPage;"],"file":"assets/show-CUtrRtXk.js"}