From 053ba6c3ce01264dcdcfbba0bac72d659a1bdeb3 Mon Sep 17 00:00:00 2001 From: kassem Date: Tue, 21 Oct 2025 15:12:07 +0300 Subject: [PATCH] feat: add terms and conditions dialog with checkbox requirement for signup --- .../kubecloud/src/components/TermsDialog.vue | 140 ++++++++++++++++++ frontend/kubecloud/src/views/SignUpView.vue | 31 +++- 2 files changed, 170 insertions(+), 1 deletion(-) create mode 100644 frontend/kubecloud/src/components/TermsDialog.vue diff --git a/frontend/kubecloud/src/components/TermsDialog.vue b/frontend/kubecloud/src/components/TermsDialog.vue new file mode 100644 index 00000000..2b78fc35 --- /dev/null +++ b/frontend/kubecloud/src/components/TermsDialog.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/frontend/kubecloud/src/views/SignUpView.vue b/frontend/kubecloud/src/views/SignUpView.vue index b38a01e0..ed12f08a 100644 --- a/frontend/kubecloud/src/views/SignUpView.vue +++ b/frontend/kubecloud/src/views/SignUpView.vue @@ -61,13 +61,32 @@ :rules="[RULES.confirmPassword(form.confirmPassword, form.password)]" required /> + + + {{ 'Create Account' }} @@ -90,6 +109,9 @@ Back to Home + + + @@ -99,6 +121,7 @@ import { useRouter } from 'vue-router' import { useUserStore } from '../stores/user' import { RULES } from '../utils/validation' import LoadingComponent from '../components/LoadingComponent.vue' +import TermsDialog from '../components/TermsDialog.vue' const router = useRouter() const userStore = useUserStore() @@ -109,10 +132,12 @@ const form = reactive({ email: '', password: '', confirmPassword: '', + acceptTerms: false }) const showPassword = ref(false) const showConfirmPassword = ref(false) +const showTermsDialog = ref(false) const handleSignUp = async () => { @@ -135,6 +160,10 @@ const handleSignUp = async () => { } } +const openTermsDialog = () => { + showTermsDialog.value = true +} +