Closed mesqueeb closed 2 years ago
Is there an estimate on when this might be available? Or, alternatively, any insight into what needs to be done to migrate to Vue 3?
This is a great question!
Currently Blitzar uses QForm and QTable under the hood. I plan to make the library way more Framework Agnostic by removing the dependencies on QForm and QTable.
I have nothing against QForm and QTable, but the issue is: using those as dependency introduces a lot of global CSS pollution in projects. So currently it's really annoying when using Blitzar in Non-Quasar projects...
Planned steps:
Upgrading to Vue3:
I do not mind the QForm and QTable dependencies; Quasar v2 beta appears to be very stable and I am using Quasar for my application. So my preference is for movement to Vue 3 first. I looked at the Blitzar code and thought that there would not be too many changes but I was not confident in my doing it myself.
@Peter-Gabel the thing is, I rather wait until Quasar's official Vue 3 release. If you want to help out and try using the current Quasar Vue 3 beta, you can help me out on a new branch. Do you want to try? We can have a short zoom session if you'd like where I show you how to best do it if you're still new to contributing on Github.
Yes. I'd love to get right on it but it will take me about a week to find the time in my schedule. If you could propose when might be convenient for you, I would be grateful for guidance including any insights that you could share about migrating the code to Vue 3. I'm still getting up to speed on Vue 3 - I keep dropping into Vue 2 idioms and then need to remind myself of the differences. I am in the eastern US time zone but can be very flexible.
what's your discord tag?
@mesqueeb Seeing as quasar already updated to Vue3, is there any issue updating now?
@Am3ra I will do my best to try to find the time to work on it!! Your support is much appreciated! : )
ps: WIP on this branch https://github.com/CyCraft/blitzar/tree/v1.0.0
Finished BlitzForm and BlitzListForm.
Now working on BlitzTable. Looking at vue-dataset
and vuejs-smart-table
.
I'm anxious to use in quasar v2, thanks from Brazil.
Loving what I'm seeing so far with Blitzar. Looking forward to the updates to support the latest version of Quasar.
Thanks guys. I will try to host the new docs and release beta version this week. BlitzForm and BlitzListForm are already done and usable in beta in Vue 3 projects.
Thanks, Luca. I'm using BlitzTable in a new Quasar project and had to drop back to v1 because this library is helpful enough to make it worth doing that. Personally, I'd rather see it working with QForm and QTables than wait for the non-Quasar refactoring.
I was able to deploy the docs for Vue 3 here: https://blitzar-next.web.app/blitz-form/
You can install the Vue 3 compatible BlitzForm by
npm i @blitzar/form@next
and use it according to the new docs.
Also check out the breaking changes documented in the first post of this thread.
I will continue to update here once I make progress hosting the new docs and also updates on the Vue 3 compatible BlitzTable.
I was able to deploy the docs for Vue 3 here: https://blitzar-next.web.app/blitz-form/
@WaltiDev did you globally register CodeBlock?
I think yes: My "quasar boot file" has filename "blitzar.js" and is located in the /src/boot/ folder. _import { boot } from 'quasar/wrappers' import { BlitzForm } from '@blitzar/form'
export default boot(async ({ app }) => { app.component('BlitzForm', { BlitzForm }) app.component('CodeBlock', { BlitzForm }) })_
And in quasar.conf.js I added "blitzar" into boot: boot: [ 'blitzar' ],
**Now I get the warning:**
_[Vue warn]: Component is missing template or render function. at <BlitzForm schema= Array [ {β¦}, {β¦} ] modelValue= Object { } onUpdate:modelValue=fn ... >_
your code seems wrong.
First of all, you need to globally register BlitzForm like so:
app.component('BlitzForm', BlitzForm)
app.component('BlitzForm', { BlitzForm })
And second of all, I think you have a typo for CodeBlock. Where are you getting this component from?
app.component('CodeBlock', CodeBlock)
(but you need to import it from somewhere)app.component('CodeBlock', { BlitzForm })
I hope that helps!
PS: for more assistance with this, please open a new issue. I wanna keep this thread clean and only about upgrading the Blitzar source code.
Hi,
Is there a timeline for when BlitzTable will work with Vue 3? I migrated to quasar v2 recently and would love to implement Blitzar.
@phineas629 yes I've been working on it this week and hopefully have something out next week.
@mesqueeb sweet! I really want to try Blitzar out. If it's a fit then you got my support.
I have released the official Vue 3 Blitzar! π
Will continue to improve Blitzar heavily into 2022.
Blitzar does not use Quasar anymore and is now usable with any Vue framework.
(still need to test SSR and Nuxt though, might not be compatible with SSR just yet)
Thanks!
Sent from my T-Mobile 4G LTE Device Get Outlook for Androidhttps://aka.ms/AAb9ysg
From: Luca Ban @.> Sent: Saturday, December 18, 2021 4:08:16 AM To: CyCraft/blitzar @.> Cc: Phineas Vang @.>; Mention @.> Subject: Re: [CyCraft/blitzar] Vue 3 support (#55)
I have released the official Vue 3 Blitzar! π
Will continue to improve Blitzar heavily into 2022.
β Reply to this email directly, view it on GitHubhttps://github.com/CyCraft/blitzar/issues/55#issuecomment-997180152, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AHDA6JVHW2VRKJFHKXTSAPTURRMRBANCNFSM4V2CJVCQ. Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub. You are receiving this because you were mentioned.Message ID: @.***>
To everyone here: Vue 3 release of Blitzar is getting quite stable! Closing this issue for now.
I still plan to:
Let me know if anything's up!
--
Blitzar was made with π by Luca Ban.
You cannot sponsor every project, but next time you do, think of this one for its prolonged maintenance.
HI Luca,
Can you meet online for consulting? I have questions about blitzar integration with quasar.
Thanks, Phineas
On Jan 8, 2022, at 11:13 PM, Luca Ban @.**@.>> wrote:
To everyone here: Vue 3 release of Blitzar is getting quite stable! Closing this issue for now.
I still plan to:
Let me know if anything's up!
-- Blitzar was made with π by Luca Ban. You cannot sponsor every project, but next time you do, think of this onehttps://github.com/sponsors/mesqueeb for its prolonged maintenance.
β Reply to this email directly, view it on GitHubhttps://github.com/CyCraft/blitzar/issues/55#issuecomment-1008232044, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AHDA6JWALEK3QSM65I3E3ZLUVEKODANCNFSM4V2CJVCQ. Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub. You are receiving this because you were mentioned.Message ID: @.***>
Is continued support for Blitzar still ongoing?
I have released the official Vue 3 Blitzar! π
--
-- Breaking Changes For Blitzar + Vue 3
BlitzTable
BlitzTable was completely rewritten and has changed a lot.
BlitzForm
renamed terminology
@input
to@update:modelValue
@field-input
to@updateField
update-field
makes sense with Vue 3 terminology (because Vue 3 doesn't rely on@input
anymore)@input-cell
to@updateCell
fieldInput
(the function) toupdateField
evaluatedProps
todynamicProps
mode: 'view'
tomode: 'readonly'
upgrade strategy for the above:
Deprecated props
rules
validation array per fieldrules
was only used because Quasar's QField uses it for Validationerror
where you can simple pass a validation function much like therules
prop before. The difference is, it's a single function (to be marked asdynamicProps: ['error']
) and you make it a single function that returnsnull
if there's no error, or the error you want to display when there is one.deprecate prop
internalErrorsFor
array of field-namesinternalErrors: true
to the fields you need thisdeprecate prop
validator
global validation functiondeprecate
mode: 'add'
mode: 'add'
by doing a global search foradd
mode: 'add'
andmode: 'edit'