From 36099b787b063de893e5cc552b8e89557d0ffd44 Mon Sep 17 00:00:00 2001
From: Alessandro Jean
Date: Wed, 2 Mar 2022 12:54:31 -0300
Subject: [PATCH] Release v0.2.44.
Rewrite the router navigation guard.
Convert Vue SFC to script setup syntax.
Convert Book Vue SFC to script setup syntax.
Convert Dialog Vue SFC to script setup syntax.
Add Prettier.
Lint the files with ESLint and Prettier.
Convert Prettier file to JavaScript.
Undo hiding the loading indicator.
Update dependencies.
Fix empty header in search dialog on mobile.
Fix dialogs wrong z-order in sm breakpoint.
Increase filter dialog height in mobile.
Add missing fade transitions and fix imports.
Show header anchors on focus too.
Bump the version to release.
---
.eslintrc.js | 19 +-
.husky/pre-commit | 5 +
.prettierrc.js | 5 +
package.json | 32 +-
src/App.vue | 155 +--
src/components/Alert.vue | 183 ++-
src/components/AppNavbar.vue | 315 +++--
src/components/Avatar.vue | 84 +-
src/components/BasicBarChart.vue | 277 +++--
src/components/BetaWarning.vue | 64 +-
src/components/BulletSteps.vue | 68 +-
src/components/ContentFooter.vue | 37 +-
src/components/CoverOption.vue | 118 +-
src/components/DashboardFooter.vue | 78 +-
src/components/DescriptionList.vue | 24 +-
src/components/GroupGrid.vue | 241 ++--
src/components/HomeFooter.vue | 53 +-
src/components/HomeHeader.vue | 62 +-
src/components/LibraryHeader.vue | 228 ++--
src/components/LoadingIndicator.vue | 68 +-
src/components/LocaleSelector.vue | 92 +-
src/components/MobileNavbar.vue | 276 ++---
src/components/MonthlyBoughtsChart.vue | 306 +++--
src/components/MonthlyExpenseChart.vue | 238 ++--
src/components/PageHeader.vue | 53 +-
src/components/Paginator.vue | 243 ++--
src/components/SearchHistoryItem.vue | 138 +--
src/components/SearchItem.vue | 199 ++-
src/components/SignInWithGoogleButton.vue | 88 +-
src/components/SimpleHeader.vue | 31 +-
src/components/StatCard.vue | 112 +-
src/components/ThemeToggle.vue | 141 +--
src/components/Typewriter.vue | 152 ++-
src/components/book/BookBreadcrumb.vue | 90 +-
src/components/book/BookCard.vue | 245 ++--
.../book/BookCardReadingActions.vue | 101 +-
src/components/book/BookCarousel.vue | 310 +++--
src/components/book/BookCover.vue | 217 ++--
src/components/book/BookCoverSelector.vue | 296 ++---
src/components/book/BookForm.vue | 491 ++++----
src/components/book/BookGrid.vue | 251 ++--
src/components/book/BookInformation.vue | 423 +++----
src/components/book/BookNavigator.vue | 101 +-
src/components/book/BookOrganization.vue | 72 +-
src/components/book/BookOwnerBadge.vue | 56 +-
src/components/book/BookProviderSearch.vue | 219 ++--
src/components/book/BookReading.vue | 180 ++-
src/components/book/BookSelector.vue | 117 +-
src/components/book/BookTable.vue | 1077 +++++++++--------
src/components/book/BookTabs.vue | 483 ++++----
src/components/dialogs/BookCoverDialog.vue | 91 +-
src/components/dialogs/BookCreateDialog.vue | 930 +++++++-------
src/components/dialogs/BookDeleteDialog.vue | 143 +--
src/components/dialogs/BookEditDialog.vue | 326 +++--
src/components/dialogs/DonationDialog.vue | 102 +-
.../dialogs/LibraryFiltersDialog.vue | 455 ++++---
src/components/dialogs/ReloadDialog.vue | 59 +-
src/components/dialogs/SearchDialog.vue | 780 ++++++------
src/components/dialogs/SettingsDialog.vue | 706 ++++++-----
src/components/dialogs/SheetChooserDialog.vue | 208 ++--
src/components/fields/BaseField.vue | 94 +-
src/components/fields/DimensionField.vue | 114 +-
src/components/fields/MarkdownField.vue | 160 +--
src/components/fields/MonetaryField.vue | 222 ++--
src/components/fields/TagField.vue | 205 ++--
src/components/fields/TextField.vue | 106 +-
src/components/icons/AmazonIcon.vue | 20 +-
src/components/icons/GitHubIcon.vue | 7 +-
src/components/icons/GoogleIcon.vue | 29 +-
src/components/icons/LoadingSpinIcon.vue | 15 +-
src/components/icons/NewPopIcon.vue | 33 +-
src/components/icons/PaniniIcon.vue | 127 +-
src/components/icons/PicPayIcon.vue | 10 +-
src/components/icons/SkoobIcon.vue | 11 +-
src/components/transitions/FadeTransition.vue | 22 +-
.../transitions/ScaleTransition.vue | 22 +-
src/composables/useAppInfo.js | 2 +-
src/composables/useDarkMode.js | 21 +-
src/composables/useDebouncedRef.js | 8 +-
src/composables/useImageLazyLoader.js | 12 +-
src/composables/useImageLoader.js | 2 +-
src/composables/useIsbnSearch.js | 6 +-
src/composables/useMarkdown.js | 25 +-
src/composables/useMotionSafe.js | 15 +-
src/composables/useTailwindTheme.js | 2 +-
src/data/DataTable.js | 16 +-
src/data/Query.js | 8 +-
src/data/QueryBuilder.js | 69 +-
src/i18n/index.js | 13 +-
src/i18n/messages/en-US.js | 44 +-
src/i18n/messages/pt-BR.js | 27 +-
src/model/Book.js | 134 +-
src/mutations/useBulkDeleteBookMutation.js | 14 +-
src/mutations/useBulkEditBookMutation.js | 14 +-
src/mutations/useCreateBookMutation.js | 8 +-
src/mutations/useDeleteBookMutation.js | 10 +-
src/mutations/useEditBookMutation.js | 12 +-
src/queries/useBookCollectionQuery.js | 4 +-
src/queries/useBookExistsQuery.js | 4 +-
src/queries/useBookQuery.js | 4 +-
src/queries/useBookSearchQuery.js | 9 +-
src/queries/useBooksQuery.js | 9 +-
src/queries/useCoverQuery.js | 4 +-
src/queries/useGitHubReleaseQuery.js | 9 +-
src/queries/useGroupsQuery.js | 4 +-
src/queries/useIsbnSearchQuery.js | 4 +-
src/queries/useLastAddedQuery.js | 4 +-
src/queries/useLatestReadingsQuery.js | 4 +-
src/queries/useNextReadsQuery.js | 4 +-
src/queries/usePublishersQuery.js | 4 +-
src/queries/useStatisticsQuery.js | 6 +-
src/queries/useStoresQuery.js | 4 +-
src/queries/useTimeZoneQuery.js | 4 +-
src/router/index.js | 28 +-
src/services/cover.js | 46 +-
src/services/links.js | 24 +-
src/services/lookup/Cbl.js | 16 +-
src/services/lookup/GoogleBooks.js | 4 +-
src/services/lookup/Lookup.js | 6 +-
src/services/lookup/OpenLibrary.js | 6 +-
src/services/lookup/index.js | 9 +-
src/services/sheet/buildSheetUrl.js | 6 +-
src/services/sheet/bulkDeleteBooks.js | 35 +-
src/services/sheet/bulkUpdateBooks.js | 23 +-
src/services/sheet/countTotalResults.js | 5 +-
src/services/sheet/deleteBook.js | 33 +-
src/services/sheet/findSheetId.js | 14 +-
src/services/sheet/getBookByCode.js | 6 +-
src/services/sheet/getBookById.js | 6 +-
src/services/sheet/getBookNeighbors.js | 19 +-
src/services/sheet/getBooks.js | 16 +-
src/services/sheet/getBooksFromCollection.js | 2 +-
src/services/sheet/getBooksFromGroup.js | 7 +-
src/services/sheet/getColumnUniqueValues.js | 6 +-
src/services/sheet/getGroups.js | 7 +-
src/services/sheet/getLatestReadings.js | 2 +-
src/services/sheet/getNextReads.js | 29 +-
src/services/sheet/getPublishers.js | 2 +-
src/services/sheet/getSheetData.js | 37 +-
src/services/sheet/getStatistics.js | 19 +-
src/services/sheet/getStores.js | 2 +-
src/services/sheet/getTimeZone.js | 20 +-
src/services/sheet/insertBook.js | 17 +-
src/services/sheet/searchBooks.js | 188 +--
src/services/sheet/updateBook.js | 15 +-
src/stores/auth.js | 73 +-
src/stores/collection.js | 12 +-
src/stores/main.js | 6 +-
src/stores/search.js | 12 +-
src/stores/settings.js | 41 +-
src/stores/sheet.js | 24 +-
src/tests/book.test.js | 9 +-
src/tests/cover.test.js | 27 +-
src/tests/lookup.test.js | 20 +-
src/tests/sheet.test.js | 42 +-
src/util/date.js | 8 +-
src/util/index.js | 2 +-
src/util/isbn.js | 27 +-
src/util/validators.js | 28 +-
src/views/Error.vue | 132 +-
src/views/Home.vue | 160 +--
src/views/PageNotFound.vue | 53 +-
src/views/SignIn.vue | 179 ++-
src/views/about/Accessibility.vue | 55 +-
src/views/about/Index.vue | 61 +-
src/views/about/Instructions.vue | 79 +-
src/views/about/PrivacyPolicy.vue | 68 +-
src/views/about/TermsOfUse.vue | 59 +-
src/views/dashboard/Home.vue | 271 ++---
src/views/dashboard/Index.vue | 300 ++---
src/views/dashboard/Stats.vue | 140 +--
src/views/dashboard/library/Book.vue | 318 +++--
src/views/dashboard/library/Explorer.vue | 911 +++++++-------
src/views/dashboard/library/Index.vue | 16 +-
tailwind.config.js | 20 +-
yarn.lock | 216 ++--
176 files changed, 8877 insertions(+), 9601 deletions(-)
create mode 100755 .husky/pre-commit
create mode 100644 .prettierrc.js
diff --git a/.eslintrc.js b/.eslintrc.js
index a2d82e34..4b340674 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -1,21 +1,28 @@
module.exports = {
root: true,
- plugins: ['jest'],
+ plugins: ['jest', 'prettier'],
env: {
browser: true,
node: true,
'jest/globals': true
},
- extends: [
- 'plugin:vue/vue3-essential',
- '@vue/standard'
- ],
+ extends: ['plugin:vue/vue3-essential', 'prettier'],
+ parser: 'vue-eslint-parser',
parserOptions: {
parser: '@babel/eslint-parser'
},
rules: {
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
- 'vue/multi-word-component-names': 'off'
+ 'vue/multi-word-component-names': 'off',
+ 'prettier/prettier': [
+ 'warn',
+ {
+ semi: false,
+ printWidth: 80,
+ singleQuote: true,
+ trailingComma: 'none'
+ }
+ ]
}
}
diff --git a/.husky/pre-commit b/.husky/pre-commit
new file mode 100755
index 00000000..660b8209
--- /dev/null
+++ b/.husky/pre-commit
@@ -0,0 +1,5 @@
+#!/bin/sh
+. "$(dirname "$0")/_/husky.sh"
+
+npm run lint
+npm run test
diff --git a/.prettierrc.js b/.prettierrc.js
new file mode 100644
index 00000000..ef9ec008
--- /dev/null
+++ b/.prettierrc.js
@@ -0,0 +1,5 @@
+module.exports = {
+ printWidth: 80,
+ singleQuote: true,
+ trailingComma: 'never'
+}
diff --git a/package.json b/package.json
index 77f5fa08..2c955c45 100644
--- a/package.json
+++ b/package.json
@@ -1,25 +1,26 @@
{
"name": "toshokan",
- "version": "0.2.43",
+ "version": "0.2.44",
"private": true,
"scripts": {
- "dev": "vite",
"build": "vite build",
- "serve": "vite preview",
+ "dev": "vite",
"lint": "eslint src",
"lint:fix": "eslint src --fix",
+ "prepare": "husky install",
+ "serve": "vite preview",
"test": "jest ./src/tests",
"test:watch": "jest --watch ./src/tests"
},
"dependencies": {
"@headlessui/vue": "^1.5.0",
- "@heroicons/vue": "^1.0.5",
+ "@heroicons/vue": "^1.0.6",
"@tailwindcss/aspect-ratio": "^0.4.0",
- "@tailwindcss/forms": "^0.4.0",
+ "@tailwindcss/forms": "^0.5.0",
"@tailwindcss/typography": "^0.5.2",
"@vuelidate/core": "^2.0.0-alpha.34",
"@vuelidate/validators": "^2.0.0-alpha.26",
- "apexcharts": "^3.33.1",
+ "apexcharts": "^3.33.2",
"axios": "^0.26.0",
"core-js": "^3.21.1",
"dedent": "^0.7.0",
@@ -39,7 +40,7 @@
"vue": "^3.2.31",
"vue-i18n": "^9.1.9",
"vue-query": "^1.19.1",
- "vue-router": "^4.0.12",
+ "vue-router": "^4.0.13",
"vue3-apexcharts": "^1.4.1",
"vuedraggable": "^4.1.0"
},
@@ -51,27 +52,30 @@
"@types/gapi.client.drive": "^3.0.13",
"@types/gapi.client.sheets": "^4.0.20201029",
"@types/google.visualization": "^0.0.68",
- "@types/jest": "^27.4.0",
+ "@types/jest": "^27.4.1",
"@types/tailwindcss": "^3.0.9",
- "@vitejs/plugin-vue": "^2.2.2",
+ "@vitejs/plugin-vue": "^2.2.4",
"@vue/compiler-sfc": "^3.2.31",
- "@vue/eslint-config-standard": "^6.1.0",
"autoprefixer": "^10.4.2",
"babel-jest": "^27.5.1",
- "eslint": "^8.9.0",
+ "eslint": "^8.10.0",
+ "eslint-config-prettier": "^8.5.0",
"eslint-plugin-import": "^2.25.4",
"eslint-plugin-jest": "^26.1.1",
"eslint-plugin-node": "^11.1.0",
+ "eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-standard": "^5.0.0",
- "eslint-plugin-vue": "^8.4.1",
+ "eslint-plugin-vue": "^8.5.0",
"git-describe": "^4.1.0",
+ "husky": "^7.0.4",
"jest": "^27.5.1",
- "postcss": "^8.4.6",
+ "postcss": "^8.4.7",
"postcss-loader": "^6.2.1",
+ "prettier": "^2.5.1",
"source-map": "^0.7.3",
"tailwindcss": "^3.0.23",
- "vite": "^2.8.4",
+ "vite": "^2.8.6",
"vite-plugin-pwa": "^0.11.13"
}
}
diff --git a/src/App.vue b/src/App.vue
index 595b3ef1..94b9e233 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,24 +1,78 @@
+
+
-
+
-
+
{{ t('app.starting') }}
-
+
{{ t('a11y.jumpToMain') }}
@@ -26,85 +80,10 @@
{{ navigationHelpText }}
-
+
-
+
-
-
diff --git a/src/components/Alert.vue b/src/components/Alert.vue
index 4201ee6f..3408085e 100644
--- a/src/components/Alert.vue
+++ b/src/components/Alert.vue
@@ -1,12 +1,71 @@
+
+
-
+
-
-
-
+
+
+
{{ title }}
@@ -39,92 +113,9 @@
-
+
-
-
diff --git a/src/components/Typewriter.vue b/src/components/Typewriter.vue
index 99123a3f..7b6c9b61 100644
--- a/src/components/Typewriter.vue
+++ b/src/components/Typewriter.vue
@@ -1,95 +1,91 @@
-
-
- {{ displayText.join('') }}
-
- {{ words[wordIdx] }}
-
-
-
-
+
+
+ {{
+ displayText.join('')
+ }}
+
+ {{ words[wordIdx] }}
+
+
+
diff --git a/src/components/book/BookGrid.vue b/src/components/book/BookGrid.vue
index e7fdcb44..e5cedd3d 100644
--- a/src/components/book/BookGrid.vue
+++ b/src/components/book/BookGrid.vue
@@ -1,6 +1,121 @@
+
+
-
+
-
+
-
-
diff --git a/src/components/book/BookInformation.vue b/src/components/book/BookInformation.vue
index 0156ab7f..3220a707 100644
--- a/src/components/book/BookInformation.vue
+++ b/src/components/book/BookInformation.vue
@@ -1,3 +1,155 @@
+
+
@@ -10,12 +162,11 @@
/>
-
+
-
+
{{ book.titleParts.main }}
@@ -51,7 +202,11 @@
@@ -84,8 +239,8 @@
:disabled="disabled"
:title="
t('dashboard.details.header.options.markAs', {
- status: t(book.isRead ? 'book.unread' : 'book.read').toLowerCase() }
- )
+ status: t(book.isRead ? 'book.unread' : 'book.read').toLowerCase()
+ })
"
@click="$emit('click:toggleStatus', $event)"
>
@@ -96,8 +251,8 @@
{{
t('dashboard.details.header.options.markAs', {
- status: t(book.isRead ? 'book.unread' : 'book.read').toLowerCase() }
- )
+ status: t(book.isRead ? 'book.unread' : 'book.read').toLowerCase()
+ })
}}
@@ -106,7 +261,13 @@
v-if="showBookInfo"
class="button is-icon-only px-2.5"
:disabled="disabled"
- :title="t(`dashboard.details.header.options.${book.favorite ? 'removeFromFavorites' : 'addToFavorites' }`)"
+ :title="
+ t(
+ `dashboard.details.header.options.${
+ book.favorite ? 'removeFromFavorites' : 'addToFavorites'
+ }`
+ )
+ "
@click="$emit('click:toggleFavorite', $event)"
>
@@ -114,7 +275,13 @@
- {{ t(`dashboard.details.header.options.${book.favorite ? 'removeFromFavorites' : 'addToFavorites' }`) }}
+ {{
+ t(
+ `dashboard.details.header.options.${
+ book.favorite ? 'removeFromFavorites' : 'addToFavorites'
+ }`
+ )
+ }}
@@ -135,14 +302,24 @@
-
+
-
- {{ book.codeType }}
+ -
+ {{ book.codeType }}
+
- {{ book.code }}
-
- {{ t('book.properties.createdAt') }}
+ -
+ {{ t('book.properties.createdAt') }}
+
-
-
- {{ t('book.properties.updatedAt') }}
+
-
+ {{ t('book.properties.updatedAt') }}
+
-
-
-
diff --git a/src/components/book/BookProviderSearch.vue b/src/components/book/BookProviderSearch.vue
index c3f978d3..cb588761 100644
--- a/src/components/book/BookProviderSearch.vue
+++ b/src/components/book/BookProviderSearch.vue
@@ -1,3 +1,76 @@
+
+