From 61f9bb74b48020e3b889b1535c5b77ac1ee4a9ec Mon Sep 17 00:00:00 2001 From: Zoe Date: Thu, 8 Oct 2026 14:04:29 -0500 Subject: [PATCH] feat: complete onboarding flow --- app/components/Dialog/CreateInvite.vue | 141 ++++++++++++ app/components/Dialog/index.vue | 2 + app/components/Onboarding/ProviderForm.vue | 237 +++++++++++++++++++++ app/components/Onboarding/SetupSteps.vue | 28 +++ app/composables/useDialog.ts | 1 + app/pages/auth/register.vue | 7 +- app/pages/auth/setup.vue | 11 +- app/pages/settings/instance/index.vue | 43 ++-- app/pages/settings/instance/users.vue | 48 +---- app/pages/setup/instance.vue | 152 +++++++++++++ app/pages/setup/provider.vue | 46 ++++ app/pages/welcome.vue | 213 +----------------- app/utils/time.ts | 15 ++ server/api/admin/invites/index.post.ts | 28 ++- server/api/setup/index.post.ts | 8 +- server/utils/invites.ts | 1 - 16 files changed, 684 insertions(+), 297 deletions(-) create mode 100644 app/components/Dialog/CreateInvite.vue create mode 100644 app/components/Onboarding/ProviderForm.vue create mode 100644 app/components/Onboarding/SetupSteps.vue create mode 100644 app/pages/setup/instance.vue create mode 100644 app/pages/setup/provider.vue create mode 100644 app/utils/time.ts diff --git a/app/components/Dialog/CreateInvite.vue b/app/components/Dialog/CreateInvite.vue new file mode 100644 index 0000000..2ece5ea --- /dev/null +++ b/app/components/Dialog/CreateInvite.vue @@ -0,0 +1,141 @@ + + + diff --git a/app/components/Dialog/index.vue b/app/components/Dialog/index.vue index f7bbdf9..f6447c0 100644 --- a/app/components/Dialog/index.vue +++ b/app/components/Dialog/index.vue @@ -6,6 +6,7 @@ import TwoFactor from './TwoFactor.vue'; import DeleteAccount from './DeleteAccount.vue'; import Confirm from './Confirm.vue'; import CreateUser from './CreateUser.vue'; +import CreateInvite from './CreateInvite.vue'; import { DialogType } from '~/composables/useDialog'; @@ -72,6 +73,7 @@ onUnmounted(() => { @cancel="close" /> + diff --git a/app/components/Onboarding/ProviderForm.vue b/app/components/Onboarding/ProviderForm.vue new file mode 100644 index 0000000..9a08a5d --- /dev/null +++ b/app/components/Onboarding/ProviderForm.vue @@ -0,0 +1,237 @@ + + + diff --git a/app/components/Onboarding/SetupSteps.vue b/app/components/Onboarding/SetupSteps.vue new file mode 100644 index 0000000..c42e795 --- /dev/null +++ b/app/components/Onboarding/SetupSteps.vue @@ -0,0 +1,28 @@ + + + diff --git a/app/composables/useDialog.ts b/app/composables/useDialog.ts index bc1eb8d..4553615 100644 --- a/app/composables/useDialog.ts +++ b/app/composables/useDialog.ts @@ -8,6 +8,7 @@ export enum DialogType { TwoFactor = 'two-factor', DeleteAccount = 'delete-account', CreateUser = 'create-user', + CreateInvite = 'create-invite', } interface DialogOptions { diff --git a/app/pages/auth/register.vue b/app/pages/auth/register.vue index 73f2470..033c77b 100644 --- a/app/pages/auth/register.vue +++ b/app/pages/auth/register.vue @@ -1,5 +1,6 @@ @@ -160,6 +163,8 @@ const submit = async () => {