Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade to Vue3 #589

Open
5 tasks
JasonTame opened this issue Jun 14, 2024 · 4 comments
Open
5 tasks

Upgrade to Vue3 #589

JasonTame opened this issue Jun 14, 2024 · 4 comments

Comments

@JasonTame
Copy link
Contributor

JasonTame commented Jun 14, 2024

Vue2 was marked as End of Life on December 31st, 2023.

Looking through the existing components, it shouldn't be too much work to move to Vue3. There is one dependency that would probably need to be replaced or removed - vue-notification. A fork of the dependency that is compatible with Vue3 is available though.

I'd be happy to work on this if Tighten aren't planning on tackling it already 🫡

Tasks

  • Install Vue migration build alongside Vue3
  • Replace deprecated features with Vue3 alternatives
  • Resolve any package incompatibilities
  • Resolve migration build warnings
  • Uninstall migration build
@MarcyLina
Copy link
Contributor

MarcyLina commented Jun 14, 2024

Hi @JasonTame !

You must be a psychic because that's very high on my list of to-dos. It would be a huge help if you wanted to tackle that! 😁

@JasonTame
Copy link
Contributor Author

@MarcyLina Great! I'll get started then 😁

@JasonTame
Copy link
Contributor Author

JasonTame commented Jun 26, 2024

Hi @MarcyLina

This upgrade is unfortunately trickier than I expected. It will require some refactoring of the UI and replacing some dependencies. The main challenges are:

  1. The vue-select dependency has a 'beta' release which states it has Vue3 support, but after following the update steps, it is broken. It doesn't look like it's being actively maintained anymore so it's probably best to choose an alternative select field solution or build a custom component.
  2. The way tabs work will need to be completely refactored to use template refs, as the $children API has been removed

There are also a couple smaller things that need to be done, but aren't major blockers:

  1. The capitalize and slug filters will need to be replaced by computed props or methods as filters have been removed in Vue3
  2. The vue-notification dependency needs to be replaced with a Vue3 compatible version. After trying a couple options, this one seems to work. I'm not sure if it's being actively maintained anymore though.

I didn't want to get too deep into solving the above challenges without consulting you, as it would mean making significant changes.

@MarcyLina
Copy link
Contributor

Hey @JasonTame

Thank you for looking into this so thoroughly!

This is quite a heavy lift! Your game plan is thoughtfully considered and sounds great to me as long as we can keep style consistency as close as possible to the current UI. If this is still something you'd like to work on, you have my green light! However, if this seems like more than you would like to take on, I COMPLETELY understand. No pressure, no worries. 😁

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants