-
-
Notifications
You must be signed in to change notification settings - Fork 11
Refactor XView components to share code with other platforms #594
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
Conversation
…kWizardBuildOptionsPage, and FacebookWizardDeleteOptionsPage to use the new useWizardPage composable and BaseWizardPage component
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have taken a quick look and like the approach here. I do feel we can refactor even more and make parts of the pages more reusable. For example, some of the forms and the options shown are very similar, so we can move them out to a separate component and then reuse them in the wizard pages with correct props depending on the page.
I wonder if we can even make FacebookWizardBuildOptionsPage and XWizardBuildOptionsPage into a single reusable wizard page that gets implemented based on props. This may be going too far (especially if the UX flow for the other platforms are very different, but I am thinking from a perspective, where we can add platform support with almost not writing any component and just some settings/config stuff)
|
Did some exploratory testing, checked the following work as advertised:
I haven't tested deletion or migration to Bluesky yet |
|
I did some testing of the deletion functionalities and looks good to me. |
Fixes #586
I did this refactoring with heavy use of Claude Code (very supervised, of course).
I haven't written tests for it all (none of it was tested before), so it will require manual testing of every single feature of Cyd. Once this is merged, the #587 issue is for writing tests.
Here are the main changes:
usePlatformViewcomposable, andPlatformView.vue, which both platforms (X and Facebook) share.useWizardPagecomposable and aBaseWizardPage.vuecomponent which all wizard pages use.PlatformConfig(whichXPlatformConfigandFacebookPlatformConfiginherit from), that defines specific things about that platform. We pass a platform config intousePlatformView.I haven't done a ton of manual testing of the Facebook platform because it isn't stable and will probably be rewritten anyway. So I think the real thing we should do is thoroughly test that this doesn't break anything in the X platform.