Commit Graph

1236 Commits

Author SHA1 Message Date
Fernando Fernández
60160e2b66
refactor(JSafeHtml): use createVNode
This allows us to directly insert the HTML without adding any extra DOM element

Sources:
* https://discord.com/channels/325477692906536972/568037134968160256/1254047268441690182
* https://discord.com/channels/325477692906536972/568037134968160256/1254210953415753738

createVnode is internally used by createStaticVNode:
edf263847e/packages/runtime-core/src/vnode.ts (L742)

However, it requires a 2nd parameter, which is the number of nodes we want to insert,
which is unknown/not trivial to calculate at runtime.
According to the comment in the function, that's only needed for hydration (SSR),
so it should be safe for us as we're SPA only.

Here's a playground:
https://play.vuejs.org/#__PROD__eNp9UsFu2zAM/RVBGFAH9Zxs3S6eHaAbCqw9dEUz7GRgVW06divLgkRnGQL/eym5dhyg6E0i3yMfyXfgl1pHuw54zBObm1ojs4CdXmeqbnRrkB2YrYSU7b97KEOWt43uEArWs9K0DTsj7tmEvdmIEn5iI1+T0XKKuCYEzFTeKotUp1MIhqWz6sFqkSnqfu0yOyGDYMHS9QiNKNLB+XnIPq1Wq8W3sVLl2qWTsFfSQ/K4/nA4ofbJ8nH9QC2S5TApzUgfhEZLgUA/xpLjBLEvvKRwspxheMjRUuey3kZPtlW0uINjZtwpqCWYXxprUpbxmPmMy/kRb3wMTQfhGM8ryJ/fiD/ZvYtl/M6ApWVAxqccCrMFHNJXm1vY03tKNm3RSUK/k7wH28rOaRxg3ztVkOwZzqu99iet1fa3vdojKDsO5YQ6ZO/xGafD/nhn9KPci+iL52Wqpy2eOGNmPynUNiUaVZmbcIMC65wMaIAO8ee2LSBk1YkNyRJEcAcvRQ7szrTaDjrcKWNm0dA4hCIFo3uO905ZoB0jHojeRVUwaxeMEmhfUNYKipB5RuTKL0IS+Qz/41mM9c6mmTqOWqsKTI2XiMZSx1JICx4Cez8nFRadnMmi5MyutLa/OzDuFLSxi+hrtPoopK5E9Jn3L3UsSes=

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-06-23 01:25:35 +02:00
Fernando Fernández
6cf9bbd4ec
fix(LoginForm): don't show change user button when no public users exist (#2387)
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-06-22 21:47:13 +00:00
renovate[bot]
dc99ab4acb
chore(deps): update npm development dependencies (major) (#2375) 2024-06-22 23:36:40 +02:00
renovate[bot]
2fe6f99408
chore(deps): update dependency vue to v3.4.30 (#2379) 2024-06-22 21:03:47 +00:00
Fernando Fernández
70a406dc15 refactor(icon): replace with SVG
Use the icon from jellyfin-ux repository (https://github.com/jellyfin/jellyfin-ux/blob/master/branding/SVG/icon-transparent-vue.svg)

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-06-22 22:34:03 +02:00
Fernando Fernández
70ce3e64de
fix(time): ends at not taking current time into account (#2384)
Removed all the computed effects because all the time functions were (and will probably be) always used inside templates.

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-06-22 01:13:25 +00:00
Fernando Fernández
909886227f perf: skip transition on low FPS, improve input device detection
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-06-21 18:31:48 +02:00
Fernando Fernández
8166599310 fix(logout): delay api store cleanup
This also fixes crashes during logout

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-06-21 18:31:48 +02:00
Fernando Fernández
c6f8d7a62e perf(blurhash): draw canvas offscreen
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-06-21 18:31:48 +02:00
Fernando Fernández
16a8b88d60 refactor(vue-router): remove vue-router/auto usage
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-06-21 18:18:49 +02:00
Fernando Fernández
2158d2654d chore(deps): remove radix-vue, upgrade vue-router
We added Radix-Vue to use their Slot component, but we have our own which is functional and more performant. I'm also still not convinced they must be our way forward for replacing Vuetify.

Also upgrade vue-router dependencies given our lockfile is currently broken due to eslint v9 and we still need manual changes to remove all the `vue-router/auto` imports (they're in another commit)

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-06-21 18:18:49 +02:00
Fernando Fernández
c46af59856
fix(JSafeHtml): not correctly passing innerHTML
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-06-21 13:09:10 +02:00
Weblate
f331747733 chore(i18n): translate terms
Co-authored-by: AfmanS <andres.c.fernandes@gmail.com>
Co-authored-by: Blackspirits <blackspirits@gmail.com>
Co-authored-by: Emanuel Santos <emaeva4@gmail.com>
Co-authored-by: Jean Franz <franzjean37@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/pt/
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/pt_BR/
Translation: Jellyfin Vue/Jellyfin Vue
2024-06-18 02:36:47 -04:00
renovate[bot]
9f25a92bc5
chore(deps): update dependency eslint-plugin-unicorn to v54 (#2373) 2024-06-14 18:54:29 +02:00
renovate[bot]
9c9b56a96f
chore(deps): update dependency vue to v3.4.29 (#2374) 2024-06-14 18:51:03 +02:00
Fernando Fernández
9998e645cc
chore(tsc): increase type checking speed by reusing type graph between checks
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-06-14 18:23:17 +02:00
renovate[bot]
39104c88f6
chore(deps): update dependency vue to v3.4.28 (#2372) 2024-06-14 10:07:49 +00:00
Fernando Fernández
ea94171be1
chore(eslint): name anonymous configs, migrate i18n to flat config
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-06-14 00:55:33 +02:00
Fernando Fernández
48c8c7b31b
refactor(eslint): migrate to eslint-plugin-import-x
Looks like the original author is no longer as interested in maintaining the plugin: https://github.com/import-js/eslint-plugin-import/issues/2948

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-06-14 00:55:33 +02:00
renovate[bot]
ad817a34e7
chore(deps): update @vueuse to v10.11.0 (#2367) 2024-06-13 22:42:57 +00:00
Fernando Fernández
60cca0c07e
refactor(eslint): migrate from globify to eslint-config-glat-ignore
Much better to use a plugin explicitly aimed to work with ESLint. Is also maintained by antfu, which gives extra confidence

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-06-13 09:27:34 +02:00
Fernando Fernández
4257584677
refctor(tsconfig): force moduleDetection
As suggested in https://github.com/typescript-eslint/typescript-eslint/issues/6337

All our files are modules, there is no CJS, so this should be safe to enable regardless and might find in the future potential problems in case some CJS code is wrongly added

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-06-13 09:26:27 +02:00
renovate[bot]
eb5efcfdd4
chore(deps): update dependency marked to v13 (#2368) 2024-06-13 07:16:22 +00:00
Weblate
190fab9324 chore(i18n): translate terms
Co-authored-by: Turtleindeed <Turtleindeed@gmail.com>
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/nb_NO/
Translation: Jellyfin Vue/Jellyfin Vue
2024-06-11 16:30:42 -04:00
renovate[bot]
9baa61dc9c
chore(deps): update dependency vue-router to v4.3.3 (#2366) 2024-06-10 17:51:03 +00:00
renovate[bot]
3e62d8debc
chore(deps): update dependency uuid to v10 (#2363) 2024-06-10 19:41:14 +02:00
Fernando Fernández
259e633a4b
chore: automatic eslint fix
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-06-09 13:02:31 +02:00
Fernando Fernández
f00e53575a
refactor: finish eslint v9
There is still a missing plugin and typescript-eslint v8 needs to be published,
but this is already in a good enough state to be updated and there
are only minor things missing.

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-06-09 13:02:24 +02:00
renovate[bot]
cb6e71c268 chore(deps): update npm development dependencies 2024-06-09 12:50:05 +02:00
Fernando Fernández
91f8be0431 refactor: post dev-deps updates
* Add unicorn/explicit-length-check to disabled rules, so we can use the performant versions of length checking
* Add warn handler to Vite's analyze mode, so CIRCULAR_IMPORTS and other warnings can be picked quickly
* Remove the now unnecessary @ts-expect-error comment

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-06-09 11:42:56 +02:00
renovate[bot]
a331034199 chore(deps): update npm development dependencies 2024-06-09 11:42:56 +02:00
Fernando Fernández
e38f03576f fix(types): errors after SDK update
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-06-08 23:02:35 +02:00
renovate[bot]
17cfbef8da chore(deps): update npm dependencies 2024-06-08 23:02:35 +02:00
Fernando Fernández
9097349d0e perf: optimize collection length checking
Check https://jsperf.app/kopiro for  of the different algorithms

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-06-08 17:33:12 +02:00
Fernando Fernández
d2eeb92dd5 perf: JSafeHtml, JSlot, JView
* JSlot and JSafeHtml are now functional components
* JView is the new name of AppComp to be in par with other J* components

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-06-08 17:33:12 +02:00
Weblate
f8d483e138 chore(i18n): translate terms
Co-authored-by: Justin <derjustin05@gmail.com>
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/de/
Translation: Jellyfin Vue/Jellyfin Vue
2024-06-03 21:25:34 -04:00
Weblate
40065f0e81 chore(i18n): translate terms
Co-authored-by: Retrial <giwrgosmant@gmail.com>
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/el/
Translation: Jellyfin Vue/Jellyfin Vue
2024-06-02 12:39:42 -04:00
Weblate
b3bf3d8a56 chore(i18n): translate terms
Co-authored-by: Melissa Helena Tambs <melissa.tambs@gmail.com>
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/nb_NO/
Translation: Jellyfin Vue/Jellyfin Vue
2024-05-30 04:19:37 -04:00
Weblate
eb6979cf33 chore(i18n): translate terms
Co-authored-by: Melissa Helena Tambs <melissa.tambs@gmail.com>
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/nb_NO/
Translation: Jellyfin Vue/Jellyfin Vue
2024-05-30 02:28:58 -04:00
Weblate
bc7e289266 chore(i18n): translate terms
Co-authored-by: DJSweder <djsweder@gmail.com>
Co-authored-by: queeup <queeup@zoho.com>
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/cs/
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/tr/
Translation: Jellyfin Vue/Jellyfin Vue
2024-05-26 13:10:31 -04:00
Weblate
cbc36cb466 chore(i18n): translate terms
Co-authored-by: queeup <queeup@zoho.com>
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/tr/
Translation: Jellyfin Vue/Jellyfin Vue
2024-05-18 18:15:35 -04:00
Weblate
64983eeb66 chore(i18n): translate terms
Co-authored-by: Germán Pajarero <germanpajareropino@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
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/de/
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/eo/
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/es/
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/it/
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/nl/
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/sv/
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/tr/
Translation: Jellyfin Vue/Jellyfin Vue
2024-05-16 02:54:54 -04:00
Weblate
5dd5f18482 chore(i18n): translate terms
Co-authored-by: Elias Laursen <Elias.vejby@gmail.com>
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/da/
Translation: Jellyfin Vue/Jellyfin Vue
2024-05-14 17:43:08 -04:00
Fernando Fernández
2fe7aa8440
fix(AudioControls): downgrade Vuetify to fix persistent footer (#2350)
When all the queue is finished, the footer gets stuck in the middle of the page. Vuetify changed something that makes Vue's v-if not work properly.

Given I'm going to remove Vuetify from the app sooner than later, I'm removing it from renovate dependency updates

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-05-14 20:22:10 +02:00
Weblate
26345db6c9 chore(i18n): translate terms
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: queeup <queeup@zoho.com>
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/tr/
Translation: Jellyfin Vue/Jellyfin Vue
2024-05-13 12:26:48 -04:00
Fernando Fernández
9cdda6d3e4
feat(settings): remove deprecated fields from 10.9 (#2347)
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-05-12 18:18:17 +00:00
Weblate
4f7ac9249e chore(i18n): translate terms
Co-authored-by: mLgz0rn <mLgz0rn@gmail.com>
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/da/
Translation: Jellyfin Vue/Jellyfin Vue
2024-05-12 12:02:04 -04:00
renovate[bot]
f966909e57
chore(deps): update npm dependencies (#2339) 2024-05-11 18:15:09 +02:00
renovate[bot]
ce724c88e9
chore(deps): update npm development dependencies (#2342) 2024-05-11 10:38:50 +02:00
Fernando Fernández
94f6c6db70 refactor: remove lighter fonts
After the switch to Figtree, some texts appear really thin (given Figtree is a lighter font)

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-05-10 20:16:33 +02:00