Commit Graph

4807 Commits

Author SHA1 Message Date
Fernando Fernández
5e8653fef4 refactor(api/composable): skip global loading on data refresh
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-18 16:39:48 +01:00
Fernando Fernández
5968590509 refactor: extract BetterOmit and Mutable types to global scope
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-18 16:39:48 +01:00
Fernando Fernández
8026f1c84f
refactor: fix import sorting discrepancies
(for real this time)

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-18 13:52:18 +01:00
renovate[bot]
c53d4966f1
chore(deps): update actions/upload-artifact action to v4.1.0 (#2210) 2024-01-17 20:32:39 +00:00
Fernando Fernández
623affc143 refactor: add readonly to class methods, remove unnecessary continue from loop
Fix some SonarCloud's smells

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-17 21:20:57 +01:00
Fernando Fernández
e637caa170 refactor: create JHover and change vue-router component imports
* Switching some of the smallest pieces off Vuetify
* Import the typed RouterView and RouterLink versions of the components

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-17 21:20:57 +01:00
Fernando Fernández
caaacb24c6 perf: reduce items on-screen in ItemGrid
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-17 21:20:57 +01:00
Fernando Fernández
b71c532134 refactor: move all typeof statements to @/utils/validation
* Way less verbose than the full statement
* Lighter on bundle size

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-17 21:20:57 +01:00
Fernando Fernández
15dfc151ac refactor: add isArray validation function
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-17 21:20:57 +01:00
Fernando Fernández
590cdd8235 perf: switch from lodash's isEqual to fast-equals
Way faster and maintained library: https://github.com/planttheidea/fast-equals

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-17 21:20:57 +01:00
Fernando Fernández
140e6f29c1 perf: replace lodash is-nil with native implementation
* It's faster: https://www.measurethat.net/Benchmarks/Show/8769/0/lodash-isnil-vs-native-isnil

* Lighter in bundle

* lodash has been unmaintained for a long time and it's a good idea to reduce our reliance on it

* There's no need to have a 3rd party dependency for such a trivial check

* No need to disable any of "eslint-plugin-you-dont-need-lodash-underscore" rules

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-17 21:20:57 +01:00
Fernando Fernández
902b348893 refactor: put everything into the singletons
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-17 21:20:57 +01:00
Weblate
45736449dc chore(i18n): translate terms
Co-authored-by: Hans Cronau <JellyfinWeblate@hanscronau.anonaddy.com>
Co-authored-by: Kityn <kitynska@gmail.com>
Co-authored-by: Lukáš Kucharczyk <lukas@kucharczyk.xyz>
Co-authored-by: Ramazan Sancar <ramazansancar4545@gmail.com>
Co-authored-by: Sh_Cby <cby@live.cn>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: bene toffix <benetoffix@gmail.com>
Co-authored-by: hoanghuy309 <hoanghuy309@gmail.com>
Co-authored-by: stanol <stanol777@gmail.com>
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/ca/
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/cs/
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/nl/
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/pl/
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/tr/
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/uk/
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/vi/
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/zh_Hans/
Translation: Jellyfin Vue/Jellyfin Vue
2024-01-17 11:27:46 -05:00
Fernando Fernández
a040d3324c
fix: previous playback button and repeatall mode
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-16 16:45:10 +01:00
Fernando Fernández
d6da6cdb2f
fix(playback): minor
* Queue menu was impossible to close
* Previous button was wrongfully disabled

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-16 15:46:23 +01:00
Fernando Fernández
693a2c3218
chore: downgrade to vue@3.4.8
There are patching issues with Suspense from 3.4.9-3.4.14

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-16 15:39:37 +01:00
Fernando Fernández
8da6ca0a91
refactor: remove redundant anonymous string
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-16 15:33:44 +01:00
Fernando Fernández
fd0c62af7d
feat: use hls.js worker
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-16 15:32:27 +01:00
renovate[bot]
e7823faeae
chore(deps): lock file maintenance (#2207) 2024-01-11 13:01:47 +01:00
renovate[bot]
c56c6b1609
chore(deps): update npm development dependencies (#2206) 2024-01-11 12:44:33 +01:00
renovate[bot]
02520f3712
chore(deps): update npm dependencies (#2204) 2024-01-11 11:32:11 +00:00
EffakT
94c8090340
fix: add immediate tag to MediaSources watcher (#2205)
Co-authored-by: Fernando <ferferga.fer@gmail.com>
2024-01-10 23:26:01 +01:00
Fernando Fernández
ff9f91ed68
fix: caching conditions in library view
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 12:27:03 +01:00
Weblate
cefe3f7140 chore(i18n): translate terms
Co-authored-by: Achim Walz <achim@aalso-walz.de>
Co-authored-by: Fernando <ferferga.fer@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: hoanghuy309 <hoanghuy309@gmail.com>
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/de/
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/vi/
Translation: Jellyfin Vue/Jellyfin Vue
2024-01-10 05:01:14 -05:00
Fernando Fernández
61f4e701bf
chore: remove unnecessary option & automatic fix
* Since Vue's defineModel has been promoted to stable, vue-eslint-parser included support for it in 9.4.0, so there's
no need for us to specify the macro manually

* Automatic eslint fix for @stylistic new fixes

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:30:38 +01:00
renovate[bot]
189336d25a
chore(deps): update npm development dependencies (#2185) 2024-01-10 09:26:42 +00:00
renovate[bot]
8332e28e8b
chore(deps): update dependency eslint-plugin-jsdoc to v48 (#2193) 2024-01-10 09:16:03 +00:00
Fernando Fernández
5371a67e9b fix: login with incorrect credentials stuck in endless loop
* Also removed unnecessary setting from VSCode settings.json (reported by Volar)

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00
Fernando Fernández
75cfd7bab6 fix: appropiate callback flush timers for watchers
* Do a first pass on playback's manager watchers. The lack of sync was causing playback reporting to miss updates
* Set post as flush timer for stores cleanup

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00
Fernando Fernández
304131dbe8 feat: show wait cursor while loading
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00
Fernando Fernández
5836585a2c perf: separate reactive items into different collections
This is probably better than having a giant collection with another level of nesting

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00
Fernando Fernández
96af2db953 refactor: simplify previous request handling and error state
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00
Fernando Fernández
94666c564d fix(composables/api): offlineparams promise
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00
Fernando Fernández
3a9d94fa76 refactor: migrate playback related stuff and add lazy loading to library page
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00
Fernando Fernández
d6e5cff1b2 fix: properly block navigation when changing pages
We've never been using Suspense to blcok navigation properly (which wasn't so relevant, since we didn't have many long promises like we have now)

We were wrongly swapping the key prop in the div, which effectively killed the inner suspense, not taking into account the async dependency tree

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00
Fernando Fernández
3cd3abde09 refactor: migrate search and some settings pages to api composables
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00
Fernando Fernández
b92ebfeaef feat(composables): always return previous data when there is a request in progress
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00
Fernando Fernández
134b3a9811 perf: optimize baseitem adding performance
Do a single loop instead of 2

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00
Fernando Fernández
5877c6ce5c refactor: use useBaseItem composable in library pages
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00
Fernando Fernández
88904dc64c refactor: improve splashscreen
* Remove the animation, showing only the Vuetify's background colors for each color scheme.
* Move all the splashscreen logic to App.vue, so we can hide the splashscreen only when suspense has finished resolving everything

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00
Fernando Fernández
13639d745c chore: disable vite chunk warnings
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00
Fernando Fernández
20fad93d21 fix: correct type signature for *QueryResult responses
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00
Fernando Fernández
9a98d7455f feat: handle loading state in api composables instead of axios
Allows for fine-grained control over the loading state. Merge skipCache with it.

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00
Fernando Fernández
8a0d2ecb65 feat: handle offline state in apis composable
When there's no connection, the request will be saved so it gets executed as soon as the connection to the server is recovered

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00
Fernando Fernández
39af077b3a refactor: remove router import from auth plugin
This was the main thing that lead to ReferenceErrors and circular dependencies.
Wasn't refactored before to at least get the client working in production (although with quite a lot of reference errors)

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00
Fernando Fernández
f34a07167e refactor: extract sortBy into defaultSortOrder
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00
Fernando Fernández
a252615f56 perf: remove useless structuredClone
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00
Fernando Fernández
2f3fbad706 fix: markplayedbutton and likebutton in endless loading and loops
* Endless loading was fixed by initializing the loading ref to false. resolveAndAdd has full control now.
* Requests loops were happening because the watcher could fire. Given the passed objects are getters,
it was difficult for it to determine if the args really changed.
Now, we map toValue and check for equality

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00
Fernando Fernández
c20d89147f refactor: add userId automatically in composables, improve typing
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00
Fernando Fernández
951b4b3b18 refactor: migrate markplayedbutton and relateditems to new composable
* Ensure reactivity by not destructuring itemId in most places
* Removed placeholder for Vuetify skeletons, we're not going to use them anymore with the refactors

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00