diff --git a/core/client/src/features/auth/index.ts b/core/client/src/features/auth/common/index.ts similarity index 100% rename from core/client/src/features/auth/index.ts rename to core/client/src/features/auth/common/index.ts diff --git a/core/client/src/features/auth/model/composables/useTextChanging.ts b/core/client/src/features/auth/common/model/composables/useTextChanging.ts similarity index 100% rename from core/client/src/features/auth/model/composables/useTextChanging.ts rename to core/client/src/features/auth/common/model/composables/useTextChanging.ts diff --git a/core/client/src/features/auth/model/fixtures/index.ts b/core/client/src/features/auth/common/model/fixtures/index.ts similarity index 100% rename from core/client/src/features/auth/model/fixtures/index.ts rename to core/client/src/features/auth/common/model/fixtures/index.ts diff --git a/core/client/src/features/auth/model/fixtures/reviews.ts b/core/client/src/features/auth/common/model/fixtures/reviews.ts similarity index 100% rename from core/client/src/features/auth/model/fixtures/reviews.ts rename to core/client/src/features/auth/common/model/fixtures/reviews.ts diff --git a/core/client/src/features/auth/model/types.ts b/core/client/src/features/auth/common/model/types.ts similarity index 100% rename from core/client/src/features/auth/model/types.ts rename to core/client/src/features/auth/common/model/types.ts diff --git a/core/client/src/features/auth/ui/BgPanel.vue b/core/client/src/features/auth/common/ui/BgPanel.vue similarity index 97% rename from core/client/src/features/auth/ui/BgPanel.vue rename to core/client/src/features/auth/common/ui/BgPanel.vue index 59e0f9da..87c5829c 100644 --- a/core/client/src/features/auth/ui/BgPanel.vue +++ b/core/client/src/features/auth/common/ui/BgPanel.vue @@ -1,8 +1,8 @@ @@ -17,7 +23,7 @@ const maxWidth = computed(() => { class="pt-2.5 text-sm text-center text-neutral-500 my-0 mx-auto select-none dark:text-neutral-400" :style="{ maxWidth }" > - {{ privacyItems[0] }} + {{ privacyChangingItem }} { class="cursor-pointer underline underline-offset-4 duration-100 ease-in hover:text-neutral-900 dark:hover:text-neutral-500" > - {{ privacyItems[1] }} + {{ privacyItems[2] }} - {{ privacyItems[2] }} + {{ privacyItems[3] }} { class="cursor-pointer underline underline-offset-4 duration-100 ease-in hover:text-neutral-900 dark:hover:text-neutral-500" > - {{ privacyItems[3] }} + {{ privacyItems[4] }}
diff --git a/core/client/src/features/auth/common/ui/index.ts b/core/client/src/features/auth/common/ui/index.ts new file mode 100644 index 00000000..270075ec --- /dev/null +++ b/core/client/src/features/auth/common/ui/index.ts @@ -0,0 +1,5 @@ +import BgPanel from './BgPanel.vue' +import LogoFile from './LogoFile.vue' +import PrivacyPolicy from './PrivacyPolicy.vue' + +export { BgPanel, LogoFile, PrivacyPolicy } diff --git a/core/client/src/features/auth/model/index.ts b/core/client/src/features/auth/model/index.ts deleted file mode 100644 index dc009e6c..00000000 --- a/core/client/src/features/auth/model/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './fixtures' -export * from './validation' diff --git a/core/client/src/features/auth/model/validation.ts b/core/client/src/features/auth/model/validation.ts deleted file mode 100644 index abae0fc3..00000000 --- a/core/client/src/features/auth/model/validation.ts +++ /dev/null @@ -1,12 +0,0 @@ -import * as z from 'zod' - -export const validationRules = z.object({ - email: z - .string({ required_error: 'Email is a required field' }) - .nonempty('Email is a required field') - .email('Email must be a valid'), - password: z - .string({ required_error: 'Password is a required field' }) - .nonempty('Password is a required field') - .min(8, 'Password must be at least 8 characters'), -}) diff --git a/core/client/src/features/auth/oauth/index.ts b/core/client/src/features/auth/oauth/index.ts new file mode 100644 index 00000000..ed584959 --- /dev/null +++ b/core/client/src/features/auth/oauth/index.ts @@ -0,0 +1 @@ +export * from './ui' diff --git a/core/client/src/features/auth/ui/GoogleOauth.vue b/core/client/src/features/auth/oauth/ui/GoogleOauth.vue similarity index 100% rename from core/client/src/features/auth/ui/GoogleOauth.vue rename to core/client/src/features/auth/oauth/ui/GoogleOauth.vue diff --git a/core/client/src/features/auth/oauth/ui/index.ts b/core/client/src/features/auth/oauth/ui/index.ts new file mode 100644 index 00000000..986d5abd --- /dev/null +++ b/core/client/src/features/auth/oauth/ui/index.ts @@ -0,0 +1 @@ +export { default as GoogleOauth } from './GoogleOauth.vue' diff --git a/core/client/src/features/auth/sign-in/index.ts b/core/client/src/features/auth/sign-in/index.ts new file mode 100644 index 00000000..ed584959 --- /dev/null +++ b/core/client/src/features/auth/sign-in/index.ts @@ -0,0 +1 @@ +export * from './ui' diff --git a/core/client/src/features/auth/ui/SignInForm.vue b/core/client/src/features/auth/sign-in/ui/SignInForm.vue similarity index 82% rename from core/client/src/features/auth/ui/SignInForm.vue rename to core/client/src/features/auth/sign-in/ui/SignInForm.vue index 830b4a82..59298ff0 100644 --- a/core/client/src/features/auth/ui/SignInForm.vue +++ b/core/client/src/features/auth/sign-in/ui/SignInForm.vue @@ -3,9 +3,20 @@ import { UiButton, UiInput } from '@/shared/ui' import { toTypedSchema } from '@vee-validate/zod' import { useField, useForm } from 'vee-validate' import { toast } from 'vue-sonner' -import { validationRules } from '../model' +import { z } from 'zod' -const validationSchema = toTypedSchema(validationRules) +const validationSchema = toTypedSchema( + z.object({ + email: z + .string({ required_error: 'Email is a required field' }) + .nonempty('Email is a required field') + .email('Email must be a valid'), + password: z + .string({ required_error: 'Password is a required field' }) + .nonempty('Password is a required field') + .min(8, 'Password must be at least 8 characters'), + }), +) const { handleSubmit, errors } = useForm({ validationSchema, @@ -55,7 +66,7 @@ const onLogin = handleSubmit((values) => {
diff --git a/core/client/src/features/auth/sign-in/ui/index.ts b/core/client/src/features/auth/sign-in/ui/index.ts
new file mode 100644
index 00000000..48744dd8
--- /dev/null
+++ b/core/client/src/features/auth/sign-in/ui/index.ts
@@ -0,0 +1,3 @@
+import SignInForm from './SignInForm.vue'
+
+export { SignInForm }
diff --git a/core/client/src/features/auth/sign-up/index.ts b/core/client/src/features/auth/sign-up/index.ts
new file mode 100644
index 00000000..ed584959
--- /dev/null
+++ b/core/client/src/features/auth/sign-up/index.ts
@@ -0,0 +1 @@
+export * from './ui'
diff --git a/core/client/src/features/auth/sign-up/ui/ConfirmForm.vue b/core/client/src/features/auth/sign-up/ui/ConfirmForm.vue
new file mode 100644
index 00000000..994c4017
--- /dev/null
+++ b/core/client/src/features/auth/sign-up/ui/ConfirmForm.vue
@@ -0,0 +1,80 @@
+
+
+
+
+
diff --git a/core/client/src/features/auth/sign-up/ui/HandleLogo.vue b/core/client/src/features/auth/sign-up/ui/HandleLogo.vue
new file mode 100644
index 00000000..ad951104
--- /dev/null
+++ b/core/client/src/features/auth/sign-up/ui/HandleLogo.vue
@@ -0,0 +1,18 @@
+
+
+
+
diff --git a/core/client/src/features/auth/sign-up/ui/WorkspaceForm.vue b/core/client/src/features/auth/sign-up/ui/WorkspaceForm.vue
new file mode 100644
index 00000000..d6751306
--- /dev/null
+++ b/core/client/src/features/auth/sign-up/ui/WorkspaceForm.vue
@@ -0,0 +1,81 @@
+
+
+
+
+
diff --git a/core/client/src/features/auth/sign-up/ui/index.ts b/core/client/src/features/auth/sign-up/ui/index.ts
new file mode 100644
index 00000000..830fe02c
--- /dev/null
+++ b/core/client/src/features/auth/sign-up/ui/index.ts
@@ -0,0 +1,6 @@
+import ConfirmForm from './ConfirmForm.vue'
+import HandleLogo from './HandleLogo.vue'
+import SignUpForm from './SignUpForm.vue'
+import WorkspaceForm from './WorkspaceForm.vue'
+
+export { ConfirmForm, HandleLogo, SignUpForm, WorkspaceForm }
diff --git a/core/client/src/features/auth/ui/ConfirmForm.vue b/core/client/src/features/auth/ui/ConfirmForm.vue
deleted file mode 100644
index ec8bdbe9..00000000
--- a/core/client/src/features/auth/ui/ConfirmForm.vue
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
-
diff --git a/core/client/src/features/auth/ui/index.ts b/core/client/src/features/auth/ui/index.ts
deleted file mode 100644
index 8998edba..00000000
--- a/core/client/src/features/auth/ui/index.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import BgPanel from './BgPanel.vue'
-import ConfirmForm from './ConfirmForm.vue'
-import GoogleOauth from './GoogleOauth.vue'
-import LogoFile from './LogoFile.vue'
-import PrivacyPolicy from './PrivacyPolicy.vue'
-import SignInForm from './SignInForm.vue'
-import SignUpForm from './SignUpForm.vue'
-
-export { BgPanel, ConfirmForm, GoogleOauth, LogoFile, PrivacyPolicy, SignInForm, SignUpForm }
diff --git a/core/client/src/layouts/ui/AuthLayout.vue b/core/client/src/layouts/ui/AuthLayout.vue
index 79c67d15..4c2a8bdd 100644
--- a/core/client/src/layouts/ui/AuthLayout.vue
+++ b/core/client/src/layouts/ui/AuthLayout.vue
@@ -1,5 +1,5 @@
diff --git a/core/client/src/pages/auth/sign-in.vue b/core/client/src/pages/auth/sign-in.vue
index b175ea0d..31fdaa45 100644
--- a/core/client/src/pages/auth/sign-in.vue
+++ b/core/client/src/pages/auth/sign-in.vue
@@ -1,5 +1,5 @@
{{ $t('authentication.confirm.title') }}
diff --git a/core/client/src/widgets/auth/ui/WorkspaceLogoChooser.vue b/core/client/src/widgets/auth/ui/WorkspaceLogoChooser.vue
new file mode 100644
index 00000000..d66a23fb
--- /dev/null
+++ b/core/client/src/widgets/auth/ui/WorkspaceLogoChooser.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+ {{ $t('authentication.workspace.title') }}
+
+