0
0
mirror of https://github.com/jellyfin/jellyfin-vue.git synced 2025-05-30 17:02:51 +00:00
Commit Graph

79 Commits

Author SHA1 Message Date
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
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
717af1817a refactor(meta): put layout-related properties under layout object
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-05-08 03:05:49 +02:00
646da43cb2 feat(jApp): initial implementation
* JApp is the main wrapper that will set all the scripted CSS vars for the whole application. It will also handle all the theming.
* Remove class-based approach in splashscreen and use CSS vars instead

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-05-06 00:02:13 +02:00
6e43f60871 chore: update components.d.ts
The generation pattern of this file changed after an update to unplugin-vue-components.

The prettier-ignore statement changed its position basically.

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-05-05 11:14:10 +02:00
fb672c6643 refactor(JTransition): avoid double mounting after splash, remove JNoop
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-05-01 17:46:54 +02:00
97bd97ce2c refactor(JSplashscreen): move control to Vue after its load
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-05-01 17:46:54 +02:00
3149266062 feat(JSafeHtml): create and use component () 2024-04-18 10:32:25 +00:00
f816728e05 style: automatic eslint fix
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-04-16 11:25:09 +02:00
8fbc3addde style: manual lint fix
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-04-16 10:56:42 +02:00
62fa3eb146 chore: update comments
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-04-16 09:46:00 +02:00
3cf776d7e9 feat: switch from VImg to JImg
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-04-11 16:15:45 +02:00
1d20465bbf feat: implement JTransition across the app
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-04-11 16:15:45 +02:00
451b0d8cef feat: create initial JTransition component
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-04-11 16:15:45 +02:00
c25f047388 perf&fix: avoid multiple backdrop rerenders, backdrop persistent after login page
Meta handling was reverted so it happens
again at any time, regardless of query or param changes.
The extra logic is negligible and we avoid edge cases where the path might be the same (like the first navigation)

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-04-02 02:52:21 +02:00
a379e25b01 feat(ui): switch to Radix and Inter, cleanups ()
* Inter is going to be one of the brand Jellyfin fonts, as discussed in Matrix's UI/UX channels. Check this: https://matrix.to/#/!xrSDQsdjElWFYUAMoG:matrix.org/$_ZCxjEgHmaYdFo6aiCfqdXSnhEvg8UAksk0NG5PUhZg?via=bonifacelabs.ca&via=t2bot.io&via=matrix.org (Previous messages are also relevant)

* Add radix-vue to use their components as base. There is only one modification I would like to have to their components (the ability to pass arbitrary props to Primitive) but it's something that's likely to be accepted upstream

* Minor cleanup in Carousel styles

* Use the client font as Jassub's font

* Install UnoCSS and it's resets (not enabled yet due to Vuetify inconsistencies)

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-03-07 10:12:44 +01:00
29851e1e8a chore(types): update unplugin-vue-router types
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-02-26 09:46:21 +01:00
7f8bd1a0f6 fix(vuetify): remove defaultRtl handling
With [3.5.0](https://github.com/vuetifyjs/vuetify/releases/tag/v3.5.0),
the defaultRtl information is hardcoded in the package and can't be treeshaken with our method.

Signed-off-by: GitHub <noreply@github.com>
2024-02-26 09:09:05 +01:00
da85617e92 refactor(BlurhashImage): migrate to JImg
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-02-22 16:25:08 +01:00
8c11462bc9 refactor(Identify): use GenericCard
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-02-22 16:25:08 +01:00
bdcbc1e362 refactor(Card): rename to ItemCard and GenericItemCard
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-02-22 16:25:08 +01:00
9ec14829a3 refactor(Card): extract to GenericCard
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-02-22 16:25:08 +01:00
4d2b2a7fa7 feat(JSlot): create JSlot component
Imported from radix-vue with some modifications to use it as SFC

Signed-off-by: GitHub <noreply@github.com>
2024-02-22 01:59:04 +01:00
e52d31444d fix: lost socket reactivity ()
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-19 10:10:04 +00:00
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
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
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
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
d8d1b35821 refactor: remove suspenseview
Rely only on axios interceptor to report the loading state

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00
cd55ecea0a refactor: deprecate userLibraries store
With the new composables the store is indeed obsolete
Also remove audios from the resume section

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-10 10:07:12 +01:00
cc6b6eb4b4 refactor(i18n): remove variants from en-US and fr-FR
We don't have other variants for those languages, so it makes sense to not make assumptions and use them generically

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-02 14:34:11 +01:00
2b67af3506 chore: automatic eslint fix
For annotating type imports

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2024-01-02 02:23:46 +01:00
be808a3a26 chore(types): fix datefns imports
After the update to datefns v3.0, these paths had to be updated

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2023-12-30 18:34:16 +01:00
52676faee8 chore: move some vue-router imports to vue-router/auto
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2023-12-16 13:33:34 +01:00
9959dc5af4 feat(types): strict layout type checking
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2023-12-06 17:18:31 +01:00
cdea1beafe refactor: update locations to match unplugin-vue-router structure
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2023-12-06 17:18:31 +01:00
353fbd45d3 feat(settings): user 2023-12-06 17:18:31 +01:00
96a6833dd3 revert: f68f807
In Vite 4, a simple regex was used to replace the variable,
which would lead to undefined at runtime.

That commit was a temporary fix until Vite 5 landed in stable, since supposedly it would
improved upon this: https://vitejs.dev/guide/migration.html#rework-define-and-import-meta-env-replacement-strategy

However, Vite's 5 behaviour it's still pure AST replacement (but consistent between dev and prod this time!)

In order to avoid having the same constant repeated multiple times and increasing our bundle size,
we are using the virtual modules to achieve the same behaviour. This way, we also have:

* Proper TypeScript support
* No need to configure the global in multiple places (like eslint config),
* No need for an environment.d.ts file anymore.
* The commit hash is a pure JavaScript const, we don't need to think about it differently
and workaround the mismatches from Vite that lead us to refactor the commit hash stamping
multiple times already.

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2023-12-05 18:36:17 +01:00
3aaf8066a1 refactor: await unawaited marked, type improvements
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2023-12-05 17:13:12 +01:00
325d4aac58 refactor: update page folder tree
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2023-12-05 16:38:09 +01:00
a8a46d5c8e chore: update vue-router imports
To vue-router/auto imports, as per unplugin-vue-router docs

Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2023-12-05 16:38:09 +01:00
6b563bc321 refactor: remove vite-plugin-pages
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2023-12-05 16:38:09 +01:00
1716da7d96 style: automatic eslint fix
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2023-12-05 13:39:30 +01:00
a95962fbfd refactor: layout system
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2023-11-09 16:46:19 +01:00
1f642b45d6 refactor: remove vite-plugin-vue-layouts
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
2023-11-09 16:46:19 +01:00
f68f807c0f fix: referenceerror on undefined commit hash
Signed-off-by: GitHub <noreply@github.com>
2023-11-09 15:00:10 +00:00
43eb9777df chore: updates of
* @typescript-eslint fixed a false positive
* Fix @typescript-eslint/no-redundant-type-constituents issues
* .editorconfig is no longer necessary after the lint refactor
2023-08-16 19:20:56 +02:00
47761a3a3e chore: automatic eslint fix 2023-08-16 19:03:44 +02:00
28e1a789e1 refactor: adjust how media info looked
- Also generalize the modal dialog for both media info and identify.
- Removed copy code for mediainfo
- Use single content component for all media stream type

Right now, it's using normal Yes/No for boolean with i18n translation key since it would be easier to copy the text.
2023-08-16 14:11:37 +02:00
fbba151095 feat: add Media Info, download, and copy to context menu
Split from the following PR: https://github.com/jellyfin/jellyfin-vue/pull/1951
2023-08-16 14:11:37 +02:00