Commit Graph

4335 Commits

Author SHA1 Message Date
Thibault Nocchi
7d22b1cf66 refactor(taskmanagerbutton): migrated to composition 2023-04-03 12:52:57 +02:00
Thibault Nocchi
e4dd8380d9 ui: fix task manager not opening 2023-04-03 12:52:57 +02:00
Thibault Nocchi
8277b4a502 feat: add 0.0.0.0 as vite host 2023-04-03 12:52:57 +02:00
Thibault Nocchi
ec4742e3a7 fix: remove requestIdleCallback as not supported by Safari 2023-04-03 12:52:57 +02:00
Fernando Fernández
14b5d33ead fix(vue3): change references to new playbackManager
During the Pinia deprecation, some properties from playbackManager were changed. Update those references throughout the code
2023-04-03 12:52:57 +02:00
Fernando Fernández
9ef68e3fef chore(vue3): add temporal .gitignore for components.d.ts
components.d.ts provides type support for components imported by unplugin-vue-components.

It needs to be commited to version control. However, any minor modification to components or moving files around modifies it.
As the Vue 3 branch is evolving so quickly, having it committed means that almost every commit will have modifications for it.

In order to keep a clear commit history, it's better to leave it ignored until before the Vue 3 migration's PR is merged
2023-04-03 12:52:57 +02:00
Fernando Fernández
b8430d8bf8 chore(vue3): replace ~ with @ for imports
Adding @ as an import alias is something that was done in the project scaffolding.
Using @ it's easier in the keyboard than ~, as ~ typically requires double key taps, while @ is inputted directly in most keyboard layouts.

Replacing the imports was something left for the last moment, as it implied modifying a lot of files at once, which is something I wanted to keep for the final stages of the Vue 3 migration
2023-04-03 12:52:57 +02:00
Fernando Fernández
bbc143cd1b chore(vue3): update plugin imports
With the pinia deprecation, there's no need to distinguish between vue and store plugins
2023-04-03 12:52:57 +02:00
Fernando Fernández
dcdb2d5e89 chore(vue3): deprecate pinia
Pinia was great in Vue 2. However, since in Vue 3 there's no longer a global instance,
doing reactivity and watching outside the app context is much easier and simplifies tremendously
our app initialization context (for things like playback watchers) and persistence.

Also, Pinia didn't allow us to be explicit with what we wanted to expose and, by default,
all the methods, state properties and getters were accessible by everyone. With TypeScript classes,
we have full control of the external visibility of every property and
how we want to expose everything (readonly or not readonly?)

We lose the ability to have DevTools support, but it's not like we used it that much anyway
2023-04-03 12:52:57 +02:00
Thibault Nocchi
cc4bf128a0 refactor: remove custom icon component as given PR has been merged to Vuetify 2023-04-03 12:52:57 +02:00
Thibault Nocchi
c32c705df2 ui: fix other server layouts vertical centering 2023-04-03 12:52:57 +02:00
Thibault Nocchi
69c0f60ba2 ui: fix server selection page 2023-04-03 12:52:57 +02:00
Thibault Nocchi
671e2bdf31 fix: use recommended method to find best server 2023-04-03 12:52:57 +02:00
Thibault Nocchi
3a64a22370 deps: updating JF sdk to unstable 2023-04-03 12:52:57 +02:00
Fernando Fernández
c0aa557a1b chore(vue3): move router history config to JSON 2023-04-03 12:52:57 +02:00
Fernando Fernández
704e58842a chore(vue3): update thai language in i18n and add sort-keys rule to language map 2023-04-03 12:52:57 +02:00
Fernando Fernández
8106b2fc17 perf(vue3): implement virtual scroller for item grid
Based on the implementation at https://github.com/rocwang/vue-virtual-scroll-grid. MIT licensed.
2023-04-03 12:52:57 +02:00
Fernando Fernández
ce4aa6ccf0 perf(vue3): fix image popping on load and cache blurhashes 2023-04-03 12:52:57 +02:00
Fernando Fernández
93419c7838 fix(vue3): prop watching
* Removed the need for returning something in computed property
2023-04-03 12:52:57 +02:00
Fernando Fernández
2fcf093b6a chore/perf(vue3): cleanup and minor performance improvements
* Wrap all the DOM population inside requestIdleCallback and requestAnimationFrame
* Fix slow scrolling
* Move types under a subdirectory
* Fix missing class in useResponsiveClasses JSDOC
2023-04-03 12:52:57 +02:00
Fernando Fernández
8aa14552d0 chore(vue3): router, main and lint improvements
* Remove useless rules from eslintrc
* Remove v-text usage
* Rework layout so the entire app is wrapped around v-app
* Remove useless script declaration in ItemCols
* Migrate PeopleList (previously named PersonList) to Composition API
* Migrate index page to Composition API
* Fix z-indexes of BlurhashImage
* Remove unnecessary computed propierties from app-bar-button-layout
* Migrate HomeSection to Composition API (fixes as well item popping)
* Migrate RelatedItems to Composition API, fixing a crash
2023-04-03 12:52:57 +02:00
Fernando Fernández
366beda5ad feat(vue3): make time runtime reactive
* Also migrate MediaInfo to Composition API
2023-04-03 12:52:57 +02:00
Fernando Fernández
5d41d5ddec chore(vue3): replace ~icons/ with virtual:icons/ imports
* Also run automatic lint fixing
2023-04-03 12:52:57 +02:00
Fernando Fernández
60e6be032f feat(vue3): improvements pass
* Update packages
* Allow the use of data-* attributes with strict template checking
* Use OverlayScrollbars for a consistent scrollbar experience
* Refactor ItemMenu to reduce function complexity
* Refactor Vuetify colors and styles to match Vuetify 3
* Fix color in WatchedIndicator
* Remove unused props in Card
* Add rgb use to all the CSS variables as Vuetify requests it
* Icon fixes
* Fix search bar styling
* Migrate ArtistTab to Composition API
* Reliability and logic improvements to BlurhashImage and fallback behaviour
* Fix order of main app bar and navigation drawer
* Add app bar to music playback page
* Migrate login page to Composition API
* Fix logic error in app-wide api availability
2023-04-03 12:52:57 +02:00
Fernando Fernández
9b643e92f6 fix(tauri): icon paths 2023-04-03 12:52:57 +02:00
Fernando Fernández
a347202d29 chore(vue3): first reimplementation of music playback's swiper 2023-04-03 12:52:57 +02:00
Fernando Fernández
25fd93d528 chore(vue3): plug all the styling rules together 2023-04-03 12:52:57 +02:00
Fernando Fernández
cfb1230a17 chore(vue3): minor fixes 2023-04-03 12:52:57 +02:00
Fernando Fernández
a45cc9cf94 chore(vue3): remove nuxt remnants and fix typechecking in some options API components 2023-04-03 12:52:57 +02:00
Fernando Fernández
ba6b6ccf51 chore(vue3): start bug bashing and minor improvements
* Update v-menu activator for itemmenu
* Fix app bar icons
* Fix user views
* Migrate swiper
* Fix CORS issues with Vite
* Improve UserImage size handling (TODO: size in UserCard)
* Migrate more minor components to Composition API
2023-04-03 12:52:57 +02:00
Fernando Fernández
4d9a5de8d5 chore(vue3): update $api usage to new SDK
* Migrate more minor components to Composition API
2023-04-03 12:52:57 +02:00
Fernando Fernández
af97c2a0b6 chore(vue3): generate route typings using unplugin-vue-router
For pages, we will still use vite-plugin-pages as it's stable and
unplugin-vue-router had issues with layouts. Using both won't increase the bundle
size, as unplugin-vue-router is not imported anywhere in the bundle.

We should keep a close track to both projects and just stick with one in the future.
2023-04-03 12:52:57 +02:00
Fernando Fernández
3615828fa3 chore(vue3): remove mapStores and use setup for stores 2023-04-03 12:52:57 +02:00
Fernando Fernández
7cb6f36025 chore(vue3): migrate NavigationDrawer to composition API 2023-04-03 12:52:57 +02:00
Fernando Fernández
59eb208e4f chore(vue3): migrate Blurhash to composition API 2023-04-03 12:52:57 +02:00
Fernando Fernández
68d73eb453 chore(vue3): migrate DraggableQueue to composition API 2023-04-03 12:52:57 +02:00
Fernando Fernández
022e56ee65 chore(vite): remove unnecessary @types dependencies 2023-04-03 12:52:57 +02:00
Fernando Fernández
a0c5c641cd chore(vite): use lodash-es instead of lodash
* In Nuxt, lodash-es rendered a bigger bundle size than lodash, so we kept it. With full complete of our building tools, we can switch back to lodash-es and remove the eslint plugin
2023-04-03 12:52:57 +02:00
Fernando Fernández
7b3302f42a chore(vue3): migrate VolumeSlider to composition API 2023-04-03 12:52:57 +02:00
Fernando Fernández
2af6d3dfba chore(vue3): migrate ItemMenu to composition API 2023-04-03 12:52:57 +02:00
Fernando Fernández
c9a2096386 chore(vue3): remove asyncData usage 2023-04-03 12:52:57 +02:00
Fernando Fernández
91c2cefbc1 chore(vue3): adapt date-fns and time utils
* Migrated more small components to Composition API
2023-04-03 12:52:57 +02:00
Fernando Fernández
4860978a21 chore(vue3): minor lint fixes 2023-04-03 12:52:57 +02:00
Fernando Fernández
0c8135a34a chore(vue3): remove nuxt error layout 2023-04-03 12:52:57 +02:00
Fernando Fernández
10bb74038c chore(vue3): replace all v-icon usage with Icon custom component
* Allow us to use unplugin-icons
* Migrated more components to Composition API
2023-04-03 12:52:57 +02:00
Fernando Fernández
7f0c0cf5fe feat(vue3): login flow
* Fix transitions not playing
* Remove vee-validate and use Vuetify validation
* Create icon component while waiting for https://github.com/vuetifyjs/vuetify/pull/16168
* Fix Vuetify themes
2023-04-03 12:52:57 +02:00
Fernando Fernández
77793fb7b3 chore(vue3-i18n): prepare vue-i18n-extract and add missing locales in runtime
* Estonian (et)
* Mongolian (mn)
* Burmese (my)

Also, disable unicorn/no-await-expression-member rule for convenience
2023-04-03 12:52:57 +02:00
Fernando Fernández
c43bb66d8c chore(vue3-i18n): add language map to match language codes with language names
* Rename language files according to the code specification
2023-04-03 12:52:57 +02:00
Fernando Fernández
0c0bd147ef chore(vue3): migrate CommitLink to composition API
* Fix security advisory issue
2023-04-03 12:52:57 +02:00
Fernando Fernández
834a9ce0cd chore(vue3): rework vue router meta handling to comply with vite-plugin-layouts
* vite-plugin-layouts requires the layout of the route to be defined at meta.layout, so our custom structure didn't work.
Here's another data structure that tackles the problem and keeps the functionality we want.
2023-04-03 12:52:57 +02:00