\n \n \n \n Hey there! This is where books will go when you've finished reading\n them. Get started by heading over to\n the Discover page to add\n books to your list.\n \n \n\n \n \n Looks like you've got some reading to do! Check them out in your\n reading books or\n discover more\n \n \n \n
\n\n\n\n\n\n","\nimport { defineComponent } from \"vue\";\nimport ListItemList from \"@/components/ListItemList.vue\";\nimport { item } from \"@/types\";\nexport default defineComponent({\n setup() {\n function filter(item: item) {\n return Boolean(item.finishDate);\n }\n\n return { filter };\n },\n components: {\n ListItemList,\n },\n});\n","import { render } from \"./Finished.vue?vue&type=template&id=bd13424a&scoped=true\"\nimport script from \"./Finished.vue?vue&type=script&lang=ts\"\nexport * from \"./Finished.vue?vue&type=script&lang=ts\"\n\nimport \"./Finished.vue?vue&type=style&index=0&id=bd13424a&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-bd13424a\"\n\nexport default script","\n \n \n \n
\n \n \n
\n \n \n \n
\n \n
\n
{{ book.title }}
\n {{ book.author }}\n
{{ book.synopsis.substring(0, 500) }}...
\n
\n
\n \n \n \n\n\n\n\n\n","\nimport { computed, defineComponent, PropType } from \"vue\";\nimport TooltipStatus from \"@/components/TooltipStatus.vue\";\nimport { useActor } from \"@xstate/vue\";\nimport type { BookMachineActor } from \"@/machines/bookMachine\";\n\nexport default defineComponent({\n props: {\n bookRef: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props) {\n const { state: bookState } = useActor(props.bookRef);\n const book = computed(() => bookState.value.context?.book);\n const buttons = computed(() => bookState.value.context?.buttons);\n const isLoading = computed(() => bookState.value.matches(\"loadBook\"));\n\n return { book, bookState, buttons, isLoading };\n },\n components: {\n TooltipStatus,\n },\n});\n","import { render } from \"./BookRow.vue?vue&type=template&id=217616cd&scoped=true\"\nimport script from \"./BookRow.vue?vue&type=script&lang=ts\"\nexport * from \"./BookRow.vue?vue&type=script&lang=ts\"\n\nimport \"./BookRow.vue?vue&type=style&index=0&id=217616cd&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-217616cd\"\n\nexport default script","\n
\n
\n \n
\n
\n \n
\n\n
\n
\n \n \n
\n
\n
\n \n \n
\n \n \n
\n
\n \n \n
\n \n \n\n\n\n\n\n","/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any */\nimport { dataMachine } from \"./dataMachine\";\nimport { assign, spawn } from \"xstate\";\nimport { performListItems } from \"@/utils/listItems\";\nimport { bookMachine } from \"./bookMachine\";\nimport type { item } from \"@/types\";\n\nexport const listMachine = dataMachine.withConfig({\n services: {\n performRequest() {\n return performListItems();\n },\n },\n actions: {\n onDone: assign({\n result: (ctx, event: any) => {\n return event.data.map((item: item) =>\n spawn(bookMachine({ book: item.book, item }))\n );\n },\n }),\n },\n});\n","\nimport { computed, defineComponent, PropType } from \"vue\";\nimport type { item } from \"@/types\";\nimport BookRow from \"@/components/BookRow.vue\";\nimport { listMachine } from \"@/machines/listMachine\";\nimport { useMachine } from \"@xstate/vue\";\n\nexport default defineComponent({\n props: {\n filter: {\n type: Function as PropType<(i: item) => boolean>,\n required: true,\n },\n },\n setup(props) {\n const { state: listState, send: sendList } = useMachine(listMachine);\n sendList({ type: \"CLICK\" });\n const isLoading = computed(() =>\n ([\"loading\", \"idle\"] as [\"loading\", \"idle\"]).some(listState.value.matches)\n );\n const bookRefs = computed(() => listState.value.context.result);\n\n const filtteredBookRefs = computed(() =>\n bookRefs.value.filter((ref) => props.filter(ref.state.context.listItem))\n );\n\n return { filtteredBookRefs, bookRefs, isLoading };\n },\n components: {\n BookRow,\n },\n});\n","import { render } from \"./ListItemList.vue?vue&type=template&id=5fe1f89f&scoped=true\"\nimport script from \"./ListItemList.vue?vue&type=script&lang=ts\"\nexport * from \"./ListItemList.vue?vue&type=script&lang=ts\"\n\nimport \"./ListItemList.vue?vue&type=style&index=0&id=5fe1f89f&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-5fe1f89f\"\n\nexport default script","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./BookRow.vue?vue&type=style&index=0&id=217616cd&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Finished.vue?vue&type=style&index=0&id=bd13424a&scoped=true&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ListItemList.vue?vue&type=style&index=0&id=5fe1f89f&scoped=true&lang=css\""],"sourceRoot":""}