Add smart member list with manual+login merge and duplicate detection
This commit is contained in:
105
.output/server/chunks/build/registrieren-DS8LMhBE.mjs
Normal file
105
.output/server/chunks/build/registrieren-DS8LMhBE.mjs
Normal file
@@ -0,0 +1,105 @@
|
||||
import { _ as __nuxt_component_0$1 } from './server.mjs';
|
||||
import { ref, mergeProps, unref, withCtx, createTextVNode, useSSRContext } from 'vue';
|
||||
import { ssrRenderAttrs, ssrRenderAttr, ssrRenderComponent, ssrInterpolate, ssrIncludeBooleanAttr } from 'vue/server-renderer';
|
||||
import { AlertCircle, Check, Loader2, Info } from 'lucide-vue-next';
|
||||
import { u as useHead } from './composables-CK-Mp9jS.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/utils';
|
||||
import 'pinia';
|
||||
import 'vue-router';
|
||||
|
||||
const _sfc_main = {
|
||||
__name: "registrieren",
|
||||
__ssrInlineRender: true,
|
||||
setup(__props) {
|
||||
const formData = ref({
|
||||
name: "",
|
||||
email: "",
|
||||
phone: "",
|
||||
password: "",
|
||||
confirmPassword: ""
|
||||
});
|
||||
const isLoading = ref(false);
|
||||
const errorMessage = ref("");
|
||||
const successMessage = ref("");
|
||||
useHead({
|
||||
title: "Registrierung - Harheimer TC"
|
||||
});
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
const _component_NuxtLink = __nuxt_component_0$1;
|
||||
_push(`<div${ssrRenderAttrs(mergeProps({ class: "min-h-full flex items-center justify-center py-16 px-4 sm:px-6 lg:px-8 bg-gray-50" }, _attrs))}><div class="max-w-md w-full space-y-8"><div class="text-center"><h2 class="text-3xl font-display font-bold text-gray-900"> Registrierung </h2><p class="mt-2 text-sm text-gray-600"> Beantragen Sie Zugang zum Mitgliederbereich </p></div><div class="bg-white rounded-xl shadow-lg p-8"><form class="space-y-6"><div><label for="name" class="block text-sm font-medium text-gray-700 mb-2"> Vollständiger Name </label><input id="name"${ssrRenderAttr("value", formData.value.name)} type="text" required autocomplete="name" class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary-600 focus:border-transparent transition-all" placeholder="Max Mustermann"></div><div><label for="email" class="block text-sm font-medium text-gray-700 mb-2"> E-Mail-Adresse </label><input id="email"${ssrRenderAttr("value", formData.value.email)} type="email" required autocomplete="email" class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary-600 focus:border-transparent transition-all" placeholder="ihre-email@example.com"></div><div><label for="phone" class="block text-sm font-medium text-gray-700 mb-2"> Telefonnummer (optional) </label><input id="phone"${ssrRenderAttr("value", formData.value.phone)} type="tel" autocomplete="tel" class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary-600 focus:border-transparent transition-all" placeholder="069-12345678"></div><div><label for="password" class="block text-sm font-medium text-gray-700 mb-2"> Passwort </label><input id="password"${ssrRenderAttr("value", formData.value.password)} type="password" required autocomplete="new-password" class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary-600 focus:border-transparent transition-all" placeholder="••••••••"><p class="mt-1 text-xs text-gray-500"> Mindestens 8 Zeichen </p></div><div><label for="confirmPassword" class="block text-sm font-medium text-gray-700 mb-2"> Passwort bestätigen </label><input id="confirmPassword"${ssrRenderAttr("value", formData.value.confirmPassword)} type="password" required autocomplete="new-password" class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary-600 focus:border-transparent transition-all" placeholder="••••••••"></div>`);
|
||||
if (errorMessage.value) {
|
||||
_push(`<div class="bg-red-50 border border-red-200 rounded-lg p-4"><p class="text-sm text-red-800 flex items-center">`);
|
||||
_push(ssrRenderComponent(unref(AlertCircle), {
|
||||
size: 18,
|
||||
class: "mr-2"
|
||||
}, null, _parent));
|
||||
_push(` ${ssrInterpolate(errorMessage.value)}</p></div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
if (successMessage.value) {
|
||||
_push(`<div class="bg-green-50 border border-green-200 rounded-lg p-4"><p class="text-sm text-green-800 flex items-center">`);
|
||||
_push(ssrRenderComponent(unref(Check), {
|
||||
size: 18,
|
||||
class: "mr-2"
|
||||
}, null, _parent));
|
||||
_push(` ${ssrInterpolate(successMessage.value)}</p></div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`<button type="submit"${ssrIncludeBooleanAttr(isLoading.value) ? " disabled" : ""} class="w-full px-6 py-3 bg-primary-600 hover:bg-primary-700 disabled:bg-gray-400 text-white font-semibold rounded-lg transition-colors flex items-center justify-center">`);
|
||||
if (isLoading.value) {
|
||||
_push(ssrRenderComponent(unref(Loader2), {
|
||||
size: 20,
|
||||
class: "mr-2 animate-spin"
|
||||
}, null, _parent));
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`<span>${ssrInterpolate(isLoading.value ? "Wird gesendet..." : "Registrierung beantragen")}</span></button><div class="text-center">`);
|
||||
_push(ssrRenderComponent(_component_NuxtLink, {
|
||||
to: "/login",
|
||||
class: "text-sm text-primary-600 hover:text-primary-700 font-medium"
|
||||
}, {
|
||||
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
||||
if (_push2) {
|
||||
_push2(` Bereits registriert? Zum Login `);
|
||||
} else {
|
||||
return [
|
||||
createTextVNode(" Bereits registriert? Zum Login ")
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent));
|
||||
_push(`</div></form></div><div class="bg-yellow-50 border border-yellow-200 rounded-lg p-4"><p class="text-sm text-yellow-800">`);
|
||||
_push(ssrRenderComponent(unref(Info), {
|
||||
size: 16,
|
||||
class: "inline mr-1"
|
||||
}, null, _parent));
|
||||
_push(`<strong>Hinweis:</strong> Ihre Registrierung muss vom Vorstand freigegeben werden. Sie erhalten eine E-Mail, sobald Ihr Zugang aktiviert wurde. </p></div></div></div>`);
|
||||
};
|
||||
}
|
||||
};
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/registrieren.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
|
||||
export { _sfc_main as default };
|
||||
//# sourceMappingURL=registrieren-DS8LMhBE.mjs.map
|
||||
Reference in New Issue
Block a user