140 lines
8.8 KiB
JavaScript
140 lines
8.8 KiB
JavaScript
import { mergeProps, ref, createVNode, resolveDynamicComponent, unref, useSSRContext } from 'vue';
|
|
import { ssrRenderAttrs, ssrRenderComponent, ssrRenderList, ssrRenderClass, ssrRenderVNode, ssrInterpolate, ssrRenderStyle, ssrRenderAttr, ssrIncludeBooleanAttr } from 'vue/server-renderer';
|
|
import { MapPin, Phone, Mail, Clock, CheckCircle, AlertCircle, Send } from 'lucide-vue-next';
|
|
import { u as useHead } from './composables-CK-Mp9jS.mjs';
|
|
import './server.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$1 = {
|
|
__name: "Contact",
|
|
__ssrInlineRender: true,
|
|
setup(__props) {
|
|
const formData = ref({
|
|
name: "",
|
|
email: "",
|
|
phone: "",
|
|
subject: "",
|
|
message: ""
|
|
});
|
|
const isSubmitting = ref(false);
|
|
const submitStatus = ref(null);
|
|
const submitMessage = ref("");
|
|
const contactInfo = [
|
|
{
|
|
icon: MapPin,
|
|
title: "Trainingsort",
|
|
content: ["Sporthalle der Grundschule Harheim", "In den Schafgärten 25", "60437 Frankfurt/Main"],
|
|
color: "from-red-500 to-pink-500"
|
|
},
|
|
{
|
|
icon: Phone,
|
|
title: "Telefon",
|
|
content: ["06101-4992227"],
|
|
color: "from-green-500 to-emerald-500"
|
|
},
|
|
{
|
|
icon: Mail,
|
|
title: "E-Mail",
|
|
content: ["j.dichmann@gmx.de"],
|
|
color: "from-blue-500 to-cyan-500"
|
|
},
|
|
{
|
|
icon: Clock,
|
|
title: "Trainingszeiten",
|
|
content: ["Dienstag: 19:30 - 22:30 Uhr", "Donnerstag: 19:30 - 22:30 Uhr"],
|
|
color: "from-purple-500 to-indigo-500"
|
|
}
|
|
];
|
|
return (_ctx, _push, _parent, _attrs) => {
|
|
_push(`<section${ssrRenderAttrs(mergeProps({
|
|
id: "contact",
|
|
class: "py-16 sm:py-20 bg-white"
|
|
}, _attrs))}><div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"><div class="text-center mb-16"><h2 class="text-4xl sm:text-5xl font-display font-bold text-gray-900 mb-4"> Kontakt </h2><div class="w-24 h-1 bg-primary-600 mx-auto mb-6"></div><p class="text-xl text-gray-600 max-w-3xl mx-auto"> Wir freuen uns auf Ihre Nachricht - Kontaktieren Sie uns! </p></div><div class="grid lg:grid-cols-2 gap-12 items-start"><div class="space-y-6"><!--[-->`);
|
|
ssrRenderList(contactInfo, (info) => {
|
|
_push(`<div class="flex items-start space-x-4 bg-gray-50 p-6 rounded-xl hover:shadow-lg transition-shadow"><div class="${ssrRenderClass(["flex-shrink-0 w-12 h-12 bg-gradient-to-br rounded-lg flex items-center justify-center", info.color])}">`);
|
|
ssrRenderVNode(_push, createVNode(resolveDynamicComponent(info.icon), {
|
|
size: 24,
|
|
class: "text-white"
|
|
}, null), _parent);
|
|
_push(`</div><div><h3 class="font-display font-bold text-gray-900 mb-2">${ssrInterpolate(info.title)}</h3><!--[-->`);
|
|
ssrRenderList(info.content, (line, i) => {
|
|
_push(`<p class="text-gray-600">${ssrInterpolate(line)}</p>`);
|
|
});
|
|
_push(`<!--]--></div></div>`);
|
|
});
|
|
_push(`<!--]--><div class="space-y-4"><div class="rounded-2xl overflow-hidden shadow-xl h-64"><iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2554.5!2d8.660947!3d50.187044!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x47bd0e5e5e5e5e5e%3A0x5e5e5e5e5e5e5e5e!2sIn%20den%20Schafg%C3%A4rten%2025%2C%2060437%20Frankfurt%20am%20Main!5e0!3m2!1sde!2sde!4v1234567890" width="100%" height="100%" style="${ssrRenderStyle({ "border": "0" })}" loading="lazy" allowfullscreen referrerpolicy="no-referrer-when-downgrade" title="Sporthalle der Grundschule Harheim"></iframe></div><a href="https://www.google.com/maps/search/?api=1&query=In+den+Schafgärten+25+60437+Frankfurt" target="_blank" class="block text-center px-4 py-3 bg-primary-600 hover:bg-primary-700 text-white font-medium rounded-lg transition-colors"> In Google Maps öffnen </a></div></div><div class="bg-gradient-to-br from-primary-50 to-primary-100/50 rounded-2xl p-8 shadow-xl"><h3 class="text-2xl font-display font-bold text-gray-900 mb-6"> Senden Sie uns eine Nachricht </h3><form class="space-y-4"><div><label for="name" class="block text-sm font-medium text-gray-700 mb-1"> Name * </label><input type="text" id="name"${ssrRenderAttr("value", formData.value.name)} required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary-500 focus:border-transparent transition-all" placeholder="Ihr Name"></div><div><label for="email" class="block text-sm font-medium text-gray-700 mb-1"> E-Mail * </label><input type="email" id="email"${ssrRenderAttr("value", formData.value.email)} required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary-500 focus:border-transparent transition-all" placeholder="ihre@email.de"></div><div><label for="phone" class="block text-sm font-medium text-gray-700 mb-1"> Telefon </label><input type="tel" id="phone"${ssrRenderAttr("value", formData.value.phone)} class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary-500 focus:border-transparent transition-all" placeholder="+49 123 456789"></div><div><label for="subject" class="block text-sm font-medium text-gray-700 mb-1"> Betreff * </label><input type="text" id="subject"${ssrRenderAttr("value", formData.value.subject)} required class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary-500 focus:border-transparent transition-all" placeholder="Worum geht es?"></div><div><label for="message" class="block text-sm font-medium text-gray-700 mb-1"> Nachricht * </label><textarea id="message" required rows="5" class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary-500 focus:border-transparent transition-all resize-none" placeholder="Ihre Nachricht...">${ssrInterpolate(formData.value.message)}</textarea></div>`);
|
|
if (submitStatus.value) {
|
|
_push(`<div class="${ssrRenderClass([submitStatus.value === "success" ? "bg-green-50 border border-green-200" : "bg-red-50 border border-red-200", "p-4 rounded-lg"])}"><div class="flex items-center">`);
|
|
if (submitStatus.value === "success") {
|
|
_push(ssrRenderComponent(unref(CheckCircle), {
|
|
size: 20,
|
|
class: "text-green-600 mr-2"
|
|
}, null, _parent));
|
|
} else {
|
|
_push(ssrRenderComponent(unref(AlertCircle), {
|
|
size: 20,
|
|
class: "text-red-600 mr-2"
|
|
}, null, _parent));
|
|
}
|
|
_push(`<p class="${ssrRenderClass([submitStatus.value === "success" ? "text-green-800" : "text-red-800", "text-sm font-medium"])}">${ssrInterpolate(submitMessage.value)}</p></div></div>`);
|
|
} else {
|
|
_push(`<!---->`);
|
|
}
|
|
_push(`<button type="submit"${ssrIncludeBooleanAttr(isSubmitting.value) ? " disabled" : ""} class="w-full px-6 py-4 bg-primary-600 hover:bg-primary-700 disabled:bg-gray-400 disabled:cursor-not-allowed text-white font-semibold rounded-lg shadow-lg hover:shadow-xl transition-all duration-300 flex items-center justify-center">`);
|
|
if (!isSubmitting.value) {
|
|
_push(ssrRenderComponent(unref(Send), {
|
|
size: 20,
|
|
class: "mr-2"
|
|
}, null, _parent));
|
|
} else {
|
|
_push(`<div class="animate-spin rounded-full h-5 w-5 border-b-2 border-white mr-2"></div>`);
|
|
}
|
|
_push(` ${ssrInterpolate(isSubmitting.value ? "Wird gesendet..." : "E-Mail senden")}</button><p class="text-sm text-gray-600 text-center"> * Pflichtfelder </p></form><p class="mt-4 text-sm text-gray-600 text-center"> Ihre Nachricht wird direkt an j.dichmann@gmx.de gesendet </p></div></div></div></section>`);
|
|
};
|
|
}
|
|
};
|
|
const _sfc_setup$1 = _sfc_main$1.setup;
|
|
_sfc_main$1.setup = (props, ctx) => {
|
|
const ssrContext = useSSRContext();
|
|
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/Contact.vue");
|
|
return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
|
|
};
|
|
const _sfc_main = {
|
|
__name: "kontakt",
|
|
__ssrInlineRender: true,
|
|
setup(__props) {
|
|
useHead({
|
|
title: "Kontakt - Harheimer TC"
|
|
});
|
|
return (_ctx, _push, _parent, _attrs) => {
|
|
_push(`<div${ssrRenderAttrs(mergeProps({ class: "min-h-screen" }, _attrs))}>`);
|
|
_push(ssrRenderComponent(_sfc_main$1, null, null, _parent));
|
|
_push(`</div>`);
|
|
};
|
|
}
|
|
};
|
|
const _sfc_setup = _sfc_main.setup;
|
|
_sfc_main.setup = (props, ctx) => {
|
|
const ssrContext = useSSRContext();
|
|
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/kontakt.vue");
|
|
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
|
};
|
|
|
|
export { _sfc_main as default };
|
|
//# sourceMappingURL=kontakt-DXDMYVtx.mjs.map
|