tighten / onramp

Easing the onramp for new or non-PHP developers to become Laravel devs.
https://onramp.dev/
MIT License
157 stars 56 forks source link

Upgrade to Vue3 #589

Open JasonTame opened 2 weeks ago

JasonTame commented 2 weeks ago

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

MarcyLina commented 2 weeks ago

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 commented 2 weeks ago

@MarcyLina Great! I'll get started then 😁

JasonTame commented 6 days ago

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.