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 @@ 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) => {
- + {{ $t('authentication.login.btn') }}

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/ui/SignUpForm.vue b/core/client/src/features/auth/sign-up/ui/SignUpForm.vue similarity index 82% rename from core/client/src/features/auth/ui/SignUpForm.vue rename to core/client/src/features/auth/sign-up/ui/SignUpForm.vue index 4ec8da25..cf5f71ab 100644 --- a/core/client/src/features/auth/ui/SignUpForm.vue +++ b/core/client/src/features/auth/sign-up/ui/SignUpForm.vue @@ -3,9 +3,20 @@ import { UiButton, UiInput } from '@/shared/ui' import { toTypedSchema } from '@vee-validate/zod' import { useField, useForm } from 'vee-validate' import { useRouter } from 'vue-router' -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, @@ -57,7 +68,7 @@ const onRegistration = handleSubmit((values) => {

- + {{ $t('authentication.registration.btn') }}

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 @@