mirror of
https://github.com/gotson/komga.git
synced 2025-01-09 04:08:00 +08:00
style: use single quotes
This commit is contained in:
parent
800d718e4e
commit
61d041b7d5
@ -14,6 +14,7 @@ module.exports = {
|
||||
'no-fallthrough': 'off',
|
||||
'comma-dangle': ['error', 'always-multiline'],
|
||||
'semi': ['error', 'never'],
|
||||
'quotes': ['error', 'single'],
|
||||
},
|
||||
parserOptions: {
|
||||
parser: '@typescript-eslint/parser',
|
||||
|
@ -5,9 +5,9 @@
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import Vue from 'vue'
|
||||
import {Theme} from "@/types/themes"
|
||||
import {LIBRARY_ADDED, LIBRARY_CHANGED, LIBRARY_DELETED} from "@/types/events"
|
||||
import {LibrarySseDto} from "@/types/komga-sse"
|
||||
import {Theme} from '@/types/themes'
|
||||
import {LIBRARY_ADDED, LIBRARY_CHANGED, LIBRARY_DELETED} from '@/types/events'
|
||||
import {LibrarySseDto} from '@/types/komga-sse'
|
||||
|
||||
const cookieLocale = 'locale'
|
||||
const cookieTheme = 'theme'
|
||||
@ -89,7 +89,7 @@ export default Vue.extend({
|
||||
this.$eventHub.$off(LIBRARY_CHANGED, this.reloadLibraries)
|
||||
},
|
||||
watch: {
|
||||
"$store.state.persistedState.locale": {
|
||||
'$store.state.persistedState.locale': {
|
||||
handler(val) {
|
||||
if (this.$i18n.availableLocales.includes(val)) {
|
||||
this.$i18n.locale = val
|
||||
@ -98,7 +98,7 @@ export default Vue.extend({
|
||||
},
|
||||
immediate: true,
|
||||
},
|
||||
"$store.state.persistedState.theme": {
|
||||
'$store.state.persistedState.theme': {
|
||||
handler(val) {
|
||||
if (Object.values(Theme).includes(val)) {
|
||||
this.changeTheme(val)
|
||||
|
@ -78,9 +78,9 @@ import Vue from 'vue'
|
||||
import ReadListAddToDialog from '@/components/dialogs/ReadListAddToDialog.vue'
|
||||
import ReadListEditDialog from '@/components/dialogs/ReadListEditDialog.vue'
|
||||
import {BookDto} from '@/types/komga-books'
|
||||
import {SeriesDto} from "@/types/komga-series"
|
||||
import {ERROR} from "@/types/events"
|
||||
import ConfirmationDialog from "@/components/dialogs/ConfirmationDialog.vue"
|
||||
import {SeriesDto} from '@/types/komga-series'
|
||||
import {ERROR} from '@/types/events'
|
||||
import ConfirmationDialog from '@/components/dialogs/ConfirmationDialog.vue'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'Dialogs',
|
||||
|
@ -119,16 +119,16 @@
|
||||
|
||||
<script lang="ts">
|
||||
import Vue, {PropType} from 'vue'
|
||||
import {MediaStatus} from "@/types/enum-books"
|
||||
import {SeriesDto} from "@/types/komga-series"
|
||||
import {TransientBookDto} from "@/types/komga-transientbooks"
|
||||
import {BookDto, BookImportDto, PageDto, PageDtoWithUrl} from "@/types/komga-books"
|
||||
import SeriesPickerDialog from "@/components/dialogs/SeriesPickerDialog.vue"
|
||||
import TransientBookDetailsDialog from "@/components/dialogs/TransientBookDetailsDialog.vue"
|
||||
import TransientBookViewerDialog from "@/components/dialogs/TransientBookViewerDialog.vue"
|
||||
import {bookPageUrl, transientBookPageUrl} from "@/functions/urls"
|
||||
import {convertErrorCodes} from "@/functions/error-codes"
|
||||
import FileNameChooserDialog from "@/components/dialogs/FileNameChooserDialog.vue"
|
||||
import {MediaStatus} from '@/types/enum-books'
|
||||
import {SeriesDto} from '@/types/komga-series'
|
||||
import {TransientBookDto} from '@/types/komga-transientbooks'
|
||||
import {BookDto, BookImportDto, PageDto, PageDtoWithUrl} from '@/types/komga-books'
|
||||
import SeriesPickerDialog from '@/components/dialogs/SeriesPickerDialog.vue'
|
||||
import TransientBookDetailsDialog from '@/components/dialogs/TransientBookDetailsDialog.vue'
|
||||
import TransientBookViewerDialog from '@/components/dialogs/TransientBookViewerDialog.vue'
|
||||
import {bookPageUrl, transientBookPageUrl} from '@/functions/urls'
|
||||
import {convertErrorCodes} from '@/functions/error-codes'
|
||||
import FileNameChooserDialog from '@/components/dialogs/FileNameChooserDialog.vue'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'FileImportRow',
|
||||
@ -175,7 +175,7 @@ export default Vue.extend({
|
||||
},
|
||||
importPayload: {
|
||||
handler(val) {
|
||||
this.$emit("update:payload", val)
|
||||
this.$emit('update:payload', val)
|
||||
},
|
||||
immediate: true,
|
||||
},
|
||||
|
@ -67,7 +67,7 @@
|
||||
|
||||
<script lang="ts">
|
||||
import Vue, {PropType} from 'vue'
|
||||
import SearchBoxBase from "@/components/SearchBoxBase.vue"
|
||||
import SearchBoxBase from '@/components/SearchBoxBase.vue'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'FilterPanels',
|
||||
|
@ -29,7 +29,7 @@
|
||||
|
||||
<script lang="ts">
|
||||
import Vue from 'vue'
|
||||
import RtlIcon from "@/components/RtlIcon.vue"
|
||||
import RtlIcon from '@/components/RtlIcon.vue'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'HorizontalScroller',
|
||||
|
@ -128,9 +128,9 @@ import Vue from 'vue'
|
||||
import {RawLocation} from 'vue-router'
|
||||
import ReadListActionsMenu from '@/components/menus/ReadListActionsMenu.vue'
|
||||
import {BookDto} from '@/types/komga-books'
|
||||
import {SeriesDto} from "@/types/komga-series"
|
||||
import {THUMBNAILBOOK_ADDED, THUMBNAILSERIES_ADDED} from "@/types/events"
|
||||
import {ThumbnailBookSseDto, ThumbnailSeriesSseDto} from "@/types/komga-sse"
|
||||
import {SeriesDto} from '@/types/komga-series'
|
||||
import {THUMBNAILBOOK_ADDED, THUMBNAILSERIES_ADDED} from '@/types/events'
|
||||
import {ThumbnailBookSseDto, ThumbnailSeriesSseDto} from '@/types/komga-sse'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'ItemCard',
|
||||
|
@ -38,7 +38,7 @@
|
||||
|
||||
<script lang="ts">
|
||||
import Vue, {PropType} from 'vue'
|
||||
import {PageDto} from "@/types/komga-books"
|
||||
import {PageDto} from '@/types/komga-books'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'PagesTable',
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
<script lang="ts">
|
||||
// @ts-ignore
|
||||
import VueReadMoreSmooth from "vue-read-more-smooth"
|
||||
import VueReadMoreSmooth from 'vue-read-more-smooth'
|
||||
import Vue from 'vue'
|
||||
|
||||
export default Vue.extend({
|
||||
|
@ -102,9 +102,9 @@ import {bookThumbnailUrl, collectionThumbnailUrl, readListThumbnailUrl, seriesTh
|
||||
import {debounce} from 'lodash'
|
||||
import Vue from 'vue'
|
||||
import {BookDto} from '@/types/komga-books'
|
||||
import {SeriesDto} from "@/types/komga-series"
|
||||
import {getReadProgress} from "@/functions/book-progress"
|
||||
import {ReadStatus} from "@/types/enum-books"
|
||||
import {SeriesDto} from '@/types/komga-series'
|
||||
import {getReadProgress} from '@/functions/book-progress'
|
||||
import {ReadStatus} from '@/types/enum-books'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'SearchBox',
|
||||
|
@ -32,9 +32,9 @@
|
||||
|
||||
<script lang="ts">
|
||||
import Vue from 'vue'
|
||||
import {BOOK_IMPORTED, ERROR} from "@/types/events"
|
||||
import {convertErrorCodes} from "@/functions/error-codes"
|
||||
import {BookImportSseDto} from "@/types/komga-sse"
|
||||
import {BOOK_IMPORTED, ERROR} from '@/types/events'
|
||||
import {convertErrorCodes} from '@/functions/error-codes'
|
||||
import {BookImportSseDto} from '@/types/komga-sse'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'Toaster',
|
||||
|
@ -124,9 +124,9 @@ import UserEditDialog from '@/components/dialogs/UserEditDialog.vue'
|
||||
import UserSharedLibrariesEditDialog from '@/components/dialogs/UserSharedLibrariesEditDialog.vue'
|
||||
import {UserRoles} from '@/types/enum-users'
|
||||
import Vue from 'vue'
|
||||
import PasswordChangeDialog from "@/components/dialogs/PasswordChangeDialog.vue"
|
||||
import {ERROR} from "@/types/events"
|
||||
import ConfirmationDialog from "@/components/dialogs/ConfirmationDialog.vue"
|
||||
import PasswordChangeDialog from '@/components/dialogs/PasswordChangeDialog.vue'
|
||||
import {ERROR} from '@/types/events'
|
||||
import ConfirmationDialog from '@/components/dialogs/ConfirmationDialog.vue'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'UsersList',
|
||||
|
@ -74,8 +74,8 @@
|
||||
|
||||
<script lang="ts">
|
||||
import Vue from 'vue'
|
||||
import {SeriesDto} from "@/types/komga-series"
|
||||
import {ERROR} from "@/types/events"
|
||||
import {SeriesDto} from '@/types/komga-series'
|
||||
import {ERROR} from '@/types/events'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'CollectionAddToDialog',
|
||||
|
@ -46,7 +46,7 @@
|
||||
<script lang="ts">
|
||||
import {UserRoles} from '@/types/enum-users'
|
||||
import Vue from 'vue'
|
||||
import {ERROR} from "@/types/events"
|
||||
import {ERROR} from '@/types/events'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'CollectionEditDialog',
|
||||
|
@ -285,7 +285,7 @@ import {helpers, requiredIf} from 'vuelidate/lib/validators'
|
||||
import {BookDto} from '@/types/komga-books'
|
||||
import IsbnVerify from '@saekitominaga/isbn-verify'
|
||||
import {isMatch} from 'date-fns'
|
||||
import {ERROR} from "@/types/events"
|
||||
import {ERROR} from '@/types/events'
|
||||
|
||||
const validDate = (value: string) => !helpers.req(value) || isMatch(value, 'yyyy-MM-dd')
|
||||
const validIsbn = (value: string) => !helpers.req(value) || new IsbnVerify(value).isIsbn13({check_digit: true})
|
||||
|
@ -303,8 +303,8 @@ import Vue from 'vue'
|
||||
import {SeriesStatus} from '@/types/enum-series'
|
||||
import {helpers, minValue, requiredIf} from 'vuelidate/lib/validators'
|
||||
import {ReadingDirection} from '@/types/enum-books'
|
||||
import {SeriesDto} from "@/types/komga-series"
|
||||
import {ERROR} from "@/types/events"
|
||||
import {SeriesDto} from '@/types/komga-series'
|
||||
import {ERROR} from '@/types/events'
|
||||
|
||||
const tags = require('language-tags')
|
||||
|
||||
|
@ -65,7 +65,7 @@
|
||||
|
||||
<script lang="ts">
|
||||
import Vue from 'vue'
|
||||
import {ERROR} from "@/types/events"
|
||||
import {ERROR} from '@/types/events'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'FileBrowserDialog',
|
||||
|
@ -273,7 +273,7 @@
|
||||
import FileBrowserDialog from '@/components/dialogs/FileBrowserDialog.vue'
|
||||
import Vue from 'vue'
|
||||
import {required} from 'vuelidate/lib/validators'
|
||||
import {ERROR} from "@/types/events"
|
||||
import {ERROR} from '@/types/events'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'LibraryEditDialog',
|
||||
|
@ -58,7 +58,7 @@
|
||||
<script lang="ts">
|
||||
import Vue from 'vue'
|
||||
import {required, sameAs} from 'vuelidate/lib/validators'
|
||||
import {ERROR} from "@/types/events"
|
||||
import {ERROR} from '@/types/events'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'PasswordChangeDialog',
|
||||
|
@ -76,7 +76,7 @@
|
||||
<script lang="ts">
|
||||
import Vue from 'vue'
|
||||
import {BookDto} from '@/types/komga-books'
|
||||
import {ERROR} from "@/types/events"
|
||||
import {ERROR} from '@/types/events'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'ReadListAddToDialog',
|
||||
|
@ -35,7 +35,7 @@
|
||||
<script lang="ts">
|
||||
import {UserRoles} from '@/types/enum-users'
|
||||
import Vue from 'vue'
|
||||
import {ERROR} from "@/types/events"
|
||||
import {ERROR} from '@/types/events'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'ReadListEditDialog',
|
||||
|
@ -69,9 +69,9 @@
|
||||
|
||||
<script lang="ts">
|
||||
import Vue, {PropType} from 'vue'
|
||||
import {SeriesDto} from "@/types/komga-series"
|
||||
import {SeriesDto} from '@/types/komga-series'
|
||||
import {debounce} from 'lodash'
|
||||
import {seriesThumbnailUrl} from "@/functions/urls"
|
||||
import {seriesThumbnailUrl} from '@/functions/urls'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'SeriesPickerDialog',
|
||||
@ -120,7 +120,7 @@ export default Vue.extend({
|
||||
this.results = []
|
||||
},
|
||||
select(s: SeriesDto) {
|
||||
this.$emit("update:series", s)
|
||||
this.$emit('update:series', s)
|
||||
this.dialogClose()
|
||||
},
|
||||
dialogClose() {
|
||||
|
@ -67,10 +67,10 @@
|
||||
|
||||
<script lang="ts">
|
||||
import Vue, {PropType} from 'vue'
|
||||
import {TransientBookDto} from "@/types/komga-transientbooks"
|
||||
import {BookDto, PageDto} from "@/types/komga-books"
|
||||
import {getBookFormatFromMediaType} from "@/functions/book-format"
|
||||
import PagesTable from "@/components/PagesTable.vue"
|
||||
import {TransientBookDto} from '@/types/komga-transientbooks'
|
||||
import {BookDto, PageDto} from '@/types/komga-books'
|
||||
import {getBookFormatFromMediaType} from '@/functions/book-format'
|
||||
import PagesTable from '@/components/PagesTable.vue'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'TransientBookDetailsDialog',
|
||||
|
@ -112,8 +112,8 @@
|
||||
|
||||
<script lang="ts">
|
||||
import Vue, {PropType} from 'vue'
|
||||
import {PageDtoWithUrl} from "@/types/komga-books"
|
||||
import RtlIcon from "@/components/RtlIcon.vue"
|
||||
import {PageDtoWithUrl} from '@/types/komga-books'
|
||||
import RtlIcon from '@/components/RtlIcon.vue'
|
||||
|
||||
|
||||
export default Vue.extend({
|
||||
|
@ -89,7 +89,7 @@
|
||||
import {UserRoles} from '@/types/enum-users'
|
||||
import Vue from 'vue'
|
||||
import {email, required} from 'vuelidate/lib/validators'
|
||||
import {ERROR} from "@/types/events"
|
||||
import {ERROR} from '@/types/events'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'UserAddDialog',
|
||||
|
@ -54,7 +54,7 @@
|
||||
<script lang="ts">
|
||||
import {UserRoles} from '@/types/enum-users'
|
||||
import Vue from 'vue'
|
||||
import {ERROR} from "@/types/events"
|
||||
import {ERROR} from '@/types/events'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'UserEditDialog',
|
||||
|
@ -55,7 +55,7 @@
|
||||
|
||||
<script lang="ts">
|
||||
import Vue from 'vue'
|
||||
import {ERROR} from "@/types/events"
|
||||
import {ERROR} from '@/types/events'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'UserSharedLibrariesEditDialog',
|
||||
|
@ -56,7 +56,7 @@
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import Vue from 'vue'
|
||||
import ConfirmationDialog from "@/components/dialogs/ConfirmationDialog.vue"
|
||||
import ConfirmationDialog from '@/components/dialogs/ConfirmationDialog.vue'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'LibraryActionsMenu',
|
||||
|
@ -28,7 +28,7 @@
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import Vue from 'vue'
|
||||
import {SeriesDto} from "@/types/komga-series"
|
||||
import {SeriesDto} from '@/types/komga-series'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'SeriesActionsMenu',
|
||||
|
@ -80,7 +80,7 @@ import {ReadingDirection} from '@/types/enum-books'
|
||||
import {PagedReaderLayout, ScaleType} from '@/types/enum-reader'
|
||||
import {shortcutsLTR, shortcutsRTL, shortcutsVertical} from '@/functions/shortcuts/paged-reader'
|
||||
import {PageDtoWithUrl} from '@/types/komga-books'
|
||||
import {buildSpreads} from "@/functions/book-spreads"
|
||||
import {buildSpreads} from '@/functions/book-spreads'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'PagedReader',
|
||||
|
@ -1,6 +1,6 @@
|
||||
import {PageDtoWithUrl} from "@/types/komga-books"
|
||||
import {PagedReaderLayout} from "@/types/enum-reader"
|
||||
import {isPageLandscape} from "@/functions/page"
|
||||
import {PageDtoWithUrl} from '@/types/komga-books'
|
||||
import {PagedReaderLayout} from '@/types/enum-reader'
|
||||
import {isPageLandscape} from '@/functions/page'
|
||||
import {cloneDeep} from 'lodash'
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
import i18n from "@/i18n"
|
||||
import i18n from '@/i18n'
|
||||
|
||||
export function convertErrorCodes(message: string): string {
|
||||
const match = message.match(/ERR_\d{4}/g)
|
||||
|
@ -1,6 +1,6 @@
|
||||
import _Vue from 'vue'
|
||||
import KomgaSseService from "@/services/komga-sse.service"
|
||||
import {Module} from "vuex"
|
||||
import KomgaSseService from '@/services/komga-sse.service'
|
||||
import {Module} from 'vuex'
|
||||
|
||||
const vuexModule: Module<any, any> = {
|
||||
state: {
|
||||
|
@ -1,5 +1,5 @@
|
||||
import {Module} from "vuex"
|
||||
import {Theme} from "@/types/themes"
|
||||
import {Module} from 'vuex'
|
||||
import {Theme} from '@/types/themes'
|
||||
|
||||
export const persistedModule: Module<any, any> = {
|
||||
state: {
|
||||
|
@ -5,7 +5,7 @@ import Vuetify from 'vuetify/lib'
|
||||
import colors from 'vuetify/lib/util/colors'
|
||||
|
||||
import {Touch} from 'vuetify/lib/directives'
|
||||
import i18n from "@/i18n"
|
||||
import i18n from '@/i18n'
|
||||
|
||||
Vue.use(Vuetify, {
|
||||
directives: {
|
||||
|
@ -2,7 +2,7 @@ import urls from '@/functions/urls'
|
||||
import Vue from 'vue'
|
||||
import Router from 'vue-router'
|
||||
import store from './store'
|
||||
import {LIBRARIES_ALL, LIBRARY_ROUTE} from "@/types/library"
|
||||
import {LIBRARIES_ALL, LIBRARY_ROUTE} from '@/types/library'
|
||||
|
||||
const qs = require('qs')
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
import {AxiosInstance} from 'axios'
|
||||
import {BookDto, BookImportBatchDto, BookMetadataUpdateDto, PageDto, ReadProgressUpdateDto} from '@/types/komga-books'
|
||||
import {formatISO} from "date-fns"
|
||||
import {formatISO} from 'date-fns'
|
||||
|
||||
const qs = require('qs')
|
||||
|
||||
@ -150,7 +150,7 @@ export default class KomgaBooksService {
|
||||
try {
|
||||
await this.http.patch(`${API_BOOKS}/${bookId}/metadata`, metadata)
|
||||
} catch (e) {
|
||||
let msg = `An error occurred while trying to update book metadata`
|
||||
let msg = 'An error occurred while trying to update book metadata'
|
||||
if (e.response.data.message) {
|
||||
msg += `: ${e.response.data.message}`
|
||||
}
|
||||
@ -162,7 +162,7 @@ export default class KomgaBooksService {
|
||||
try {
|
||||
await this.http.patch(`${API_BOOKS}/${bookId}/read-progress`, readProgress)
|
||||
} catch (e) {
|
||||
let msg = `An error occurred while trying to update read progress`
|
||||
let msg = 'An error occurred while trying to update read progress'
|
||||
if (e.response.data.message) {
|
||||
msg += `: ${e.response.data.message}`
|
||||
}
|
||||
@ -174,7 +174,7 @@ export default class KomgaBooksService {
|
||||
try {
|
||||
await this.http.delete(`${API_BOOKS}/${bookId}/read-progress`)
|
||||
} catch (e) {
|
||||
let msg = `An error occurred while trying to delete read progress`
|
||||
let msg = 'An error occurred while trying to delete read progress'
|
||||
if (e.response.data.message) {
|
||||
msg += `: ${e.response.data.message}`
|
||||
}
|
||||
@ -186,7 +186,7 @@ export default class KomgaBooksService {
|
||||
try {
|
||||
await this.http.post(`${API_BOOKS}/import`, batch)
|
||||
} catch (e) {
|
||||
let msg = `An error occurred while trying to submit book import batch`
|
||||
let msg = 'An error occurred while trying to submit book import batch'
|
||||
if (e.response.data.message) {
|
||||
msg += `: ${e.response.data.message}`
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
import {AxiosInstance} from 'axios'
|
||||
import {SeriesDto} from "@/types/komga-series"
|
||||
import {AuthorDto} from "@/types/komga-books"
|
||||
import {SeriesDto} from '@/types/komga-series'
|
||||
import {AuthorDto} from '@/types/komga-books'
|
||||
|
||||
const qs = require('qs')
|
||||
|
||||
|
@ -58,14 +58,14 @@ export default class KomgaReadListsService {
|
||||
async postReadListImport(files: any): Promise<ReadListRequestResultDto[]> {
|
||||
try {
|
||||
const formData = new FormData()
|
||||
files.forEach((f: any) => formData.append("files", f))
|
||||
files.forEach((f: any) => formData.append('files', f))
|
||||
return (await this.http.post(`${API_READLISTS}/import`, formData, {
|
||||
headers: {
|
||||
'Content-Type': 'multipart/form-data',
|
||||
},
|
||||
})).data
|
||||
} catch (e) {
|
||||
let msg = `An error occurred while trying to import readlists'`
|
||||
let msg = 'An error occurred while trying to import readlists\''
|
||||
if (e.response.data.message) {
|
||||
msg += `: ${e.response.data.message}`
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
import {AxiosInstance} from 'axios'
|
||||
import {AuthorDto} from "@/types/komga-books"
|
||||
import {AuthorDto} from '@/types/komga-books'
|
||||
|
||||
const qs = require('qs')
|
||||
const tags = require('language-tags')
|
||||
|
@ -1,6 +1,6 @@
|
||||
import {AxiosInstance} from 'axios'
|
||||
import {AuthorDto, BookDto} from '@/types/komga-books'
|
||||
import {SeriesDto, SeriesMetadataUpdateDto} from "@/types/komga-series"
|
||||
import {SeriesDto, SeriesMetadataUpdateDto} from '@/types/komga-series'
|
||||
|
||||
const qs = require('qs')
|
||||
|
||||
@ -151,7 +151,7 @@ export default class KomgaSeriesService {
|
||||
try {
|
||||
await this.http.patch(`${API_SERIES}/${seriesId}/metadata`, metadata)
|
||||
} catch (e) {
|
||||
let msg = `An error occurred while trying to update series metadata`
|
||||
let msg = 'An error occurred while trying to update series metadata'
|
||||
if (e.response.data.message) {
|
||||
msg += `: ${e.response.data.message}`
|
||||
}
|
||||
|
@ -22,9 +22,9 @@ import {
|
||||
SERIES_DELETED,
|
||||
THUMBNAILBOOK_ADDED,
|
||||
THUMBNAILSERIES_ADDED,
|
||||
} from "@/types/events"
|
||||
import Vue from "vue"
|
||||
import {TaskQueueSseDto} from "@/types/komga-sse"
|
||||
} from '@/types/events'
|
||||
import Vue from 'vue'
|
||||
import {TaskQueueSseDto} from '@/types/komga-sse'
|
||||
|
||||
const API_SSE = '/sse/v1/events'
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
import {AxiosInstance} from 'axios'
|
||||
import {TransientBookDto} from "@/types/komga-transientbooks"
|
||||
import {TransientBookDto} from '@/types/komga-transientbooks'
|
||||
|
||||
const API_TRANSIENT_BOOKS = '/api/v1/transient-books'
|
||||
|
||||
@ -25,7 +25,7 @@ export default class KomgaTransientBooksService {
|
||||
try {
|
||||
return (await this.http.post(`${API_TRANSIENT_BOOKS}/${id}/analyze`)).data
|
||||
} catch (e) {
|
||||
let msg = `An error occurred while trying to analyze transient book`
|
||||
let msg = 'An error occurred while trying to analyze transient book'
|
||||
if (e.response.data.message) {
|
||||
msg += `: ${e.response.data.message}`
|
||||
}
|
||||
|
@ -124,7 +124,7 @@ export default class KomgaUsersService {
|
||||
try {
|
||||
await this.http.post(`${API_USERS}/logout`)
|
||||
} catch (e) {
|
||||
let msg = `An error occurred while trying to logout`
|
||||
let msg = 'An error occurred while trying to logout'
|
||||
if (e.response.data.message) {
|
||||
msg += `: ${e.response.data.message}`
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
import Vue from 'vue'
|
||||
import Vuex from 'vuex'
|
||||
import {BookDto} from '@/types/komga-books'
|
||||
import {SeriesDto} from "@/types/komga-series"
|
||||
import createPersistedState from "vuex-persistedstate"
|
||||
import {SeriesDto} from '@/types/komga-series'
|
||||
import createPersistedState from 'vuex-persistedstate'
|
||||
import {persistedModule} from './plugins/persisted-state'
|
||||
|
||||
Vue.use(Vuex)
|
||||
|
@ -1,4 +1,4 @@
|
||||
import i18n from "@/i18n"
|
||||
import i18n from '@/i18n'
|
||||
|
||||
export enum SeriesStatus {
|
||||
ENDED = 'ENDED',
|
||||
|
@ -1,9 +1,9 @@
|
||||
import {bookThumbnailUrl, collectionThumbnailUrl, readListThumbnailUrl, seriesThumbnailUrl} from '@/functions/urls'
|
||||
import {RawLocation} from 'vue-router/types/router'
|
||||
import {BookDto} from '@/types/komga-books'
|
||||
import {SeriesDto} from "@/types/komga-series"
|
||||
import i18n from "@/i18n"
|
||||
import {MediaStatus} from "@/types/enum-books"
|
||||
import {SeriesDto} from '@/types/komga-series'
|
||||
import i18n from '@/i18n'
|
||||
import {MediaStatus} from '@/types/enum-books'
|
||||
|
||||
export enum ItemTypes {
|
||||
BOOK, SERIES, COLLECTION, READLIST
|
||||
|
@ -1,5 +1,5 @@
|
||||
import {Context} from '@/types/context'
|
||||
import {CopyMode} from "@/types/enum-books"
|
||||
import {CopyMode} from '@/types/enum-books'
|
||||
|
||||
export interface BookDto {
|
||||
id: string,
|
||||
|
@ -1,4 +1,4 @@
|
||||
import {AuthorDto} from "@/types/komga-books"
|
||||
import {AuthorDto} from '@/types/komga-books'
|
||||
|
||||
export interface SeriesDto {
|
||||
id: string,
|
||||
|
@ -1,4 +1,4 @@
|
||||
import {PageDto} from "@/types/komga-books"
|
||||
import {PageDto} from '@/types/komga-books'
|
||||
|
||||
export interface ScanRequestDto {
|
||||
path: string,
|
||||
|
@ -53,7 +53,7 @@
|
||||
<script lang="ts">
|
||||
import PasswordChangeDialog from '@/components/dialogs/PasswordChangeDialog.vue'
|
||||
import Vue from 'vue'
|
||||
import AuthenticationActivityTable from "@/components/AuthenticationActivityTable.vue"
|
||||
import AuthenticationActivityTable from '@/components/AuthenticationActivityTable.vue'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'AccountSettings',
|
||||
|
@ -103,16 +103,16 @@
|
||||
|
||||
<script lang="ts">
|
||||
import Vue from 'vue'
|
||||
import FileBrowserDialog from "@/components/dialogs/FileBrowserDialog.vue"
|
||||
import FileImportRow from "@/components/FileImportRow.vue"
|
||||
import {TransientBookDto} from "@/types/komga-transientbooks"
|
||||
import SeriesPickerDialog from "@/components/dialogs/SeriesPickerDialog.vue"
|
||||
import {SeriesDto} from "@/types/komga-series"
|
||||
import {BookImportBatchDto, BookImportDto} from "@/types/komga-books"
|
||||
import {CopyMode} from "@/types/enum-books"
|
||||
import {convertErrorCodes} from "@/functions/error-codes"
|
||||
import {ERROR} from "@/types/events"
|
||||
import EmptyState from "@/components/EmptyState.vue"
|
||||
import FileBrowserDialog from '@/components/dialogs/FileBrowserDialog.vue'
|
||||
import FileImportRow from '@/components/FileImportRow.vue'
|
||||
import {TransientBookDto} from '@/types/komga-transientbooks'
|
||||
import SeriesPickerDialog from '@/components/dialogs/SeriesPickerDialog.vue'
|
||||
import {SeriesDto} from '@/types/komga-series'
|
||||
import {BookImportBatchDto, BookImportDto} from '@/types/komga-books'
|
||||
import {CopyMode} from '@/types/enum-books'
|
||||
import {convertErrorCodes} from '@/functions/error-codes'
|
||||
import {ERROR} from '@/types/events'
|
||||
import EmptyState from '@/components/EmptyState.vue'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'BookImport',
|
||||
|
@ -313,8 +313,8 @@ import {shortcutsAll} from '@/functions/shortcuts/reader'
|
||||
import {shortcutsSettingsContinuous} from '@/functions/shortcuts/continuous-reader'
|
||||
import {BookDto, PageDto, PageDtoWithUrl} from '@/types/komga-books'
|
||||
import {Context, ContextOrigin} from '@/types/context'
|
||||
import {SeriesDto} from "@/types/komga-series"
|
||||
import jsFileDownloader from "js-file-downloader"
|
||||
import {SeriesDto} from '@/types/komga-series'
|
||||
import jsFileDownloader from 'js-file-downloader'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'BookReader',
|
||||
|
@ -356,13 +356,13 @@ import Vue from 'vue'
|
||||
import ReadListsExpansionPanels from '@/components/ReadListsExpansionPanels.vue'
|
||||
import {BookDto, BookFormat} from '@/types/komga-books'
|
||||
import {Context, ContextOrigin} from '@/types/context'
|
||||
import {SeriesDto} from "@/types/komga-series"
|
||||
import ReadMore from "@/components/ReadMore.vue"
|
||||
import VueHorizontal from "vue-horizontal"
|
||||
import {authorRoles} from "@/types/author-roles"
|
||||
import {convertErrorCodes} from "@/functions/error-codes"
|
||||
import RtlIcon from "@/components/RtlIcon.vue"
|
||||
import {BookSseDto, LibrarySseDto, ReadListSseDto, ReadProgressSseDto} from "@/types/komga-sse"
|
||||
import {SeriesDto} from '@/types/komga-series'
|
||||
import ReadMore from '@/components/ReadMore.vue'
|
||||
import VueHorizontal from 'vue-horizontal'
|
||||
import {authorRoles} from '@/types/author-roles'
|
||||
import {convertErrorCodes} from '@/functions/error-codes'
|
||||
import RtlIcon from '@/components/RtlIcon.vue'
|
||||
import {BookSseDto, LibrarySseDto, ReadListSseDto, ReadProgressSseDto} from '@/types/komga-sse'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'BrowseBook',
|
||||
|
@ -136,10 +136,10 @@ import FilterPanels from '@/components/FilterPanels.vue'
|
||||
import FilterList from '@/components/FilterList.vue'
|
||||
import {Location} from 'vue-router'
|
||||
import EmptyState from '@/components/EmptyState.vue'
|
||||
import {SeriesDto} from "@/types/komga-series"
|
||||
import {authorRoles} from "@/types/author-roles"
|
||||
import {AuthorDto} from "@/types/komga-books"
|
||||
import {CollectionSseDto, ReadProgressSeriesSseDto, SeriesSseDto} from "@/types/komga-sse"
|
||||
import {SeriesDto} from '@/types/komga-series'
|
||||
import {authorRoles} from '@/types/author-roles'
|
||||
import {AuthorDto} from '@/types/komga-books'
|
||||
import {CollectionSseDto, ReadProgressSeriesSseDto, SeriesSseDto} from '@/types/komga-sse'
|
||||
import {throttle} from 'lodash'
|
||||
|
||||
export default Vue.extend({
|
||||
|
@ -68,8 +68,8 @@ import {COLLECTION_ADDED, COLLECTION_CHANGED, COLLECTION_DELETED, LIBRARY_CHANGE
|
||||
import Vue from 'vue'
|
||||
import {Location} from 'vue-router'
|
||||
import {LIBRARIES_ALL, LIBRARY_ROUTE} from '@/types/library'
|
||||
import {LibrarySseDto} from "@/types/komga-sse"
|
||||
import MultiSelectBar from "@/components/bars/MultiSelectBar.vue"
|
||||
import {LibrarySseDto} from '@/types/komga-sse'
|
||||
import MultiSelectBar from '@/components/bars/MultiSelectBar.vue'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'BrowseCollections',
|
||||
|
@ -139,11 +139,11 @@ import SortList from '@/components/SortList.vue'
|
||||
import FilterPanels from '@/components/FilterPanels.vue'
|
||||
import FilterList from '@/components/FilterList.vue'
|
||||
import {mergeFilterParams, sortOrFilterActive, toNameValue} from '@/functions/filter'
|
||||
import {SeriesDto} from "@/types/komga-series"
|
||||
import {AuthorDto} from "@/types/komga-books"
|
||||
import {authorRoles} from "@/types/author-roles"
|
||||
import {LibrarySseDto, ReadProgressSeriesSseDto, SeriesSseDto} from "@/types/komga-sse"
|
||||
import {throttle} from "lodash"
|
||||
import {SeriesDto} from '@/types/komga-series'
|
||||
import {AuthorDto} from '@/types/komga-books'
|
||||
import {authorRoles} from '@/types/author-roles'
|
||||
import {LibrarySseDto, ReadProgressSeriesSseDto, SeriesSseDto} from '@/types/komga-sse'
|
||||
import {throttle} from 'lodash'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'BrowseLibraries',
|
||||
|
@ -92,8 +92,8 @@ import ReadListActionsMenu from '@/components/menus/ReadListActionsMenu.vue'
|
||||
import MultiSelectBar from '@/components/bars/MultiSelectBar.vue'
|
||||
import {BookDto, ReadProgressUpdateDto} from '@/types/komga-books'
|
||||
import {ContextOrigin} from '@/types/context'
|
||||
import {BookSseDto, ReadListSseDto, ReadProgressSseDto} from "@/types/komga-sse"
|
||||
import {throttle} from "lodash"
|
||||
import {BookSseDto, ReadListSseDto, ReadProgressSseDto} from '@/types/komga-sse'
|
||||
import {throttle} from 'lodash'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'BrowseReadList',
|
||||
|
@ -68,8 +68,8 @@ import {LIBRARY_CHANGED, READLIST_ADDED, READLIST_CHANGED, READLIST_DELETED} fro
|
||||
import Vue from 'vue'
|
||||
import {Location} from 'vue-router'
|
||||
import {LIBRARIES_ALL, LIBRARY_ROUTE} from '@/types/library'
|
||||
import {LibrarySseDto} from "@/types/komga-sse"
|
||||
import MultiSelectBar from "@/components/bars/MultiSelectBar.vue"
|
||||
import {LibrarySseDto} from '@/types/komga-sse'
|
||||
import MultiSelectBar from '@/components/bars/MultiSelectBar.vue'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'BrowseReadLists',
|
||||
|
@ -410,14 +410,14 @@ import FilterList from '@/components/FilterList.vue'
|
||||
import SortList from '@/components/SortList.vue'
|
||||
import {mergeFilterParams, sortOrFilterActive, toNameValue} from '@/functions/filter'
|
||||
import FilterPanels from '@/components/FilterPanels.vue'
|
||||
import {SeriesDto} from "@/types/komga-series"
|
||||
import {groupAuthorsByRole} from "@/functions/authors"
|
||||
import ReadMore from "@/components/ReadMore.vue"
|
||||
import {authorRoles, authorRolesSeries} from "@/types/author-roles"
|
||||
import VueHorizontal from "vue-horizontal"
|
||||
import RtlIcon from "@/components/RtlIcon.vue"
|
||||
import {throttle} from "lodash"
|
||||
import {BookSseDto, CollectionSseDto, LibrarySseDto, ReadProgressSseDto, SeriesSseDto} from "@/types/komga-sse"
|
||||
import {SeriesDto} from '@/types/komga-series'
|
||||
import {groupAuthorsByRole} from '@/functions/authors'
|
||||
import ReadMore from '@/components/ReadMore.vue'
|
||||
import {authorRoles, authorRolesSeries} from '@/types/author-roles'
|
||||
import VueHorizontal from 'vue-horizontal'
|
||||
import RtlIcon from '@/components/RtlIcon.vue'
|
||||
import {throttle} from 'lodash'
|
||||
import {BookSseDto, CollectionSseDto, LibrarySseDto, ReadProgressSseDto, SeriesSseDto} from '@/types/komga-sse'
|
||||
|
||||
const tags = require('language-tags')
|
||||
|
||||
|
@ -162,11 +162,11 @@ import {
|
||||
SERIES_DELETED,
|
||||
} from '@/types/events'
|
||||
import Vue from 'vue'
|
||||
import {SeriesDto} from "@/types/komga-series"
|
||||
import {LIBRARIES_ALL, LIBRARY_ROUTE} from "@/types/library"
|
||||
import {SeriesDto} from '@/types/komga-series'
|
||||
import {LIBRARIES_ALL, LIBRARY_ROUTE} from '@/types/library'
|
||||
import {throttle} from 'lodash'
|
||||
import {subMonths} from 'date-fns'
|
||||
import {BookSseDto, ReadProgressSseDto, SeriesSseDto} from "@/types/komga-sse"
|
||||
import {BookSseDto, ReadProgressSseDto, SeriesSseDto} from '@/types/komga-sse'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'Dashboard',
|
||||
|
@ -188,9 +188,9 @@ import LibraryActionsMenu from '@/components/menus/LibraryActionsMenu.vue'
|
||||
import SearchBox from '@/components/SearchBox.vue'
|
||||
import {Theme} from '@/types/themes'
|
||||
import Vue from 'vue'
|
||||
import {LIBRARIES_ALL} from "@/types/library"
|
||||
import Toaster from "@/components/Toaster.vue"
|
||||
import {MediaStatus} from "@/types/enum-books"
|
||||
import {LIBRARIES_ALL} from '@/types/library'
|
||||
import Toaster from '@/components/Toaster.vue'
|
||||
import {MediaStatus} from '@/types/enum-books'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'home',
|
||||
|
@ -101,8 +101,8 @@
|
||||
|
||||
<script lang="ts">
|
||||
import Vue from 'vue'
|
||||
import {email, required} from "vuelidate/lib/validators"
|
||||
import {Theme} from "@/types/themes"
|
||||
import {email, required} from 'vuelidate/lib/validators'
|
||||
import {Theme} from '@/types/themes'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'Login',
|
||||
|
@ -141,7 +141,7 @@ import {
|
||||
SERIES_DELETED,
|
||||
} from '@/types/events'
|
||||
import Vue from 'vue'
|
||||
import {SeriesDto} from "@/types/komga-series"
|
||||
import {SeriesDto} from '@/types/komga-series'
|
||||
import {
|
||||
BookSseDto,
|
||||
CollectionSseDto,
|
||||
@ -149,8 +149,8 @@ import {
|
||||
ReadProgressSeriesSseDto,
|
||||
ReadProgressSseDto,
|
||||
SeriesSseDto,
|
||||
} from "@/types/komga-sse"
|
||||
import {throttle} from "lodash"
|
||||
} from '@/types/komga-sse'
|
||||
import {throttle} from 'lodash'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'Search',
|
||||
|
@ -89,7 +89,7 @@
|
||||
|
||||
<script lang="ts">
|
||||
import Vue from 'vue'
|
||||
import {convertErrorCodes} from "@/functions/error-codes"
|
||||
import {convertErrorCodes} from '@/functions/error-codes'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'SettingsDataImport',
|
||||
|
@ -24,7 +24,7 @@
|
||||
import Vue from 'vue'
|
||||
import {MediaStatus} from '@/types/enum-books'
|
||||
import {BookDto} from '@/types/komga-books'
|
||||
import {convertErrorCodes} from "@/functions/error-codes"
|
||||
import {convertErrorCodes} from '@/functions/error-codes'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'SettingsMediaAnalysis',
|
||||
|
@ -25,8 +25,8 @@
|
||||
|
||||
<script lang="ts">
|
||||
import Vue from 'vue'
|
||||
import ConfirmationDialog from "@/components/dialogs/ConfirmationDialog.vue"
|
||||
import {ERROR} from "@/types/events"
|
||||
import ConfirmationDialog from '@/components/dialogs/ConfirmationDialog.vue'
|
||||
import {ERROR} from '@/types/events'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'SettingsServer',
|
||||
|
@ -22,8 +22,8 @@
|
||||
|
||||
<script lang="ts">
|
||||
import Vue from 'vue'
|
||||
import AuthenticationActivityTable from "@/components/AuthenticationActivityTable.vue"
|
||||
import UsersList from "@/components/UsersList.vue"
|
||||
import AuthenticationActivityTable from '@/components/AuthenticationActivityTable.vue'
|
||||
import UsersList from '@/components/UsersList.vue'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'SettingsUsers',
|
||||
|
@ -1,11 +1,11 @@
|
||||
import {buildSpreads} from "@/functions/book-spreads"
|
||||
import {PagedReaderLayout} from "@/types/enum-reader"
|
||||
import {PageDtoWithUrl} from "@/types/komga-books"
|
||||
import {buildSpreads} from '@/functions/book-spreads'
|
||||
import {PagedReaderLayout} from '@/types/enum-reader'
|
||||
import {PageDtoWithUrl} from '@/types/komga-books'
|
||||
|
||||
describe("Single Page", () => {
|
||||
describe('Single Page', () => {
|
||||
const pageLayout = PagedReaderLayout.SINGLE_PAGE
|
||||
|
||||
test("given no pages then it should return no spreads", () => {
|
||||
test('given no pages then it should return no spreads', () => {
|
||||
const pages = [] as PageDtoWithUrl[]
|
||||
|
||||
const spreads = buildSpreads(pages, pageLayout)
|
||||
@ -13,7 +13,7 @@ describe("Single Page", () => {
|
||||
expect(spreads.length).toEqual(0)
|
||||
})
|
||||
|
||||
test("given single page then it should return single spread with single page", () => {
|
||||
test('given single page then it should return single spread with single page', () => {
|
||||
const pages = [
|
||||
{
|
||||
number: 1,
|
||||
@ -28,10 +28,10 @@ describe("Single Page", () => {
|
||||
})
|
||||
})
|
||||
|
||||
describe("Double Pages", () => {
|
||||
describe('Double Pages', () => {
|
||||
const pageLayout = PagedReaderLayout.DOUBLE_PAGES
|
||||
|
||||
test("given no pages then it should return no spreads", () => {
|
||||
test('given no pages then it should return no spreads', () => {
|
||||
const pages = [] as PageDtoWithUrl[]
|
||||
|
||||
const spreads = buildSpreads(pages, pageLayout)
|
||||
@ -39,7 +39,7 @@ describe("Double Pages", () => {
|
||||
expect(spreads.length).toEqual(0)
|
||||
})
|
||||
|
||||
test("given single page then it should return single spread with single page", () => {
|
||||
test('given single page then it should return single spread with single page', () => {
|
||||
const pages = [
|
||||
{
|
||||
number: 1,
|
||||
@ -53,7 +53,7 @@ describe("Double Pages", () => {
|
||||
expect(spreads[0][0].number).toEqual(1)
|
||||
})
|
||||
|
||||
test("given even pages then it should return correct spreads", () => {
|
||||
test('given even pages then it should return correct spreads', () => {
|
||||
const pages = [
|
||||
{number: 1} as PageDtoWithUrl,
|
||||
{number: 2} as PageDtoWithUrl,
|
||||
@ -82,7 +82,7 @@ describe("Double Pages", () => {
|
||||
expect(spreads[3][0].number).toEqual(6)
|
||||
})
|
||||
|
||||
test("given odd pages then it should return correct spreads", () => {
|
||||
test('given odd pages then it should return correct spreads', () => {
|
||||
const pages = [
|
||||
{number: 1} as PageDtoWithUrl,
|
||||
{number: 2} as PageDtoWithUrl,
|
||||
@ -110,10 +110,10 @@ describe("Double Pages", () => {
|
||||
})
|
||||
})
|
||||
|
||||
describe("Double Pages No Cover", () => {
|
||||
describe('Double Pages No Cover', () => {
|
||||
const pageLayout = PagedReaderLayout.DOUBLE_NO_COVER
|
||||
|
||||
test("given no pages then it should return no spreads", () => {
|
||||
test('given no pages then it should return no spreads', () => {
|
||||
const pages = [] as PageDtoWithUrl[]
|
||||
|
||||
const spreads = buildSpreads(pages, pageLayout)
|
||||
@ -121,7 +121,7 @@ describe("Double Pages No Cover", () => {
|
||||
expect(spreads.length).toEqual(0)
|
||||
})
|
||||
|
||||
test("given single page then it should return single spread with single page", () => {
|
||||
test('given single page then it should return single spread with single page', () => {
|
||||
const pages = [
|
||||
{
|
||||
number: 1,
|
||||
|
Loading…
Reference in New Issue
Block a user