146 lines
7.0 KiB
JavaScript
146 lines
7.0 KiB
JavaScript
import { _ as __nuxt_component_0$1 } from './server.mjs';
|
|
import { ref, computed, mergeProps, withCtx, unref, createVNode, useSSRContext } from 'vue';
|
|
import { ssrRenderAttrs, ssrInterpolate, ssrRenderComponent } from 'vue/server-renderer';
|
|
import { Users, Newspaper, UserCog } 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: "index",
|
|
__ssrInlineRender: true,
|
|
setup(__props) {
|
|
const user = ref(null);
|
|
const roleLabel = computed(() => {
|
|
const labels = {
|
|
admin: "Administrator",
|
|
vorstand: "Vorstand",
|
|
mitglied: "Mitglied"
|
|
};
|
|
return labels[user.value?.role] || "Mitglied";
|
|
});
|
|
const lastLoginFormatted = computed(() => {
|
|
if (!user.value?.lastLogin) return "Erste Anmeldung";
|
|
return new Date(user.value.lastLogin).toLocaleString("de-DE");
|
|
});
|
|
useHead({
|
|
title: "Mitgliederbereich - Harheimer TC"
|
|
});
|
|
return (_ctx, _push, _parent, _attrs) => {
|
|
const _component_NuxtLink = __nuxt_component_0$1;
|
|
_push(`<div${ssrRenderAttrs(mergeProps({ class: "min-h-full py-16 bg-gray-50" }, _attrs))}><div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"><h1 class="text-4xl sm:text-5xl font-display font-bold text-gray-900 mb-6"> Mitgliederbereich </h1><div class="w-24 h-1 bg-primary-600 mb-8"></div><div class="bg-white rounded-xl shadow-lg p-8 mb-8"><h2 class="text-2xl font-display font-bold text-gray-900 mb-4"> Willkommen, ${ssrInterpolate(user.value?.name)}! </h2><p class="text-gray-600 mb-4"> Sie sind als <span class="font-semibold text-primary-600">${ssrInterpolate(roleLabel.value)}</span> angemeldet. </p><p class="text-sm text-gray-500"> Letzter Login: ${ssrInterpolate(lastLoginFormatted.value)}</p></div><div class="grid md:grid-cols-2 lg:grid-cols-3 gap-6">`);
|
|
_push(ssrRenderComponent(_component_NuxtLink, {
|
|
to: "/mitgliederbereich/mitglieder",
|
|
class: "bg-white p-6 rounded-xl shadow-lg hover:shadow-xl transition-shadow border border-gray-100"
|
|
}, {
|
|
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
if (_push2) {
|
|
_push2(`<div class="flex items-center mb-4"${_scopeId}><div class="w-12 h-12 bg-primary-100 rounded-lg flex items-center justify-center mr-4"${_scopeId}>`);
|
|
_push2(ssrRenderComponent(unref(Users), {
|
|
size: 24,
|
|
class: "text-primary-600"
|
|
}, null, _parent2, _scopeId));
|
|
_push2(`</div><h3 class="text-lg font-semibold text-gray-900"${_scopeId}>Mitgliederliste</h3></div><p class="text-gray-600 text-sm"${_scopeId}> Kontaktdaten aller Vereinsmitglieder </p>`);
|
|
} else {
|
|
return [
|
|
createVNode("div", { class: "flex items-center mb-4" }, [
|
|
createVNode("div", { class: "w-12 h-12 bg-primary-100 rounded-lg flex items-center justify-center mr-4" }, [
|
|
createVNode(unref(Users), {
|
|
size: 24,
|
|
class: "text-primary-600"
|
|
})
|
|
]),
|
|
createVNode("h3", { class: "text-lg font-semibold text-gray-900" }, "Mitgliederliste")
|
|
]),
|
|
createVNode("p", { class: "text-gray-600 text-sm" }, " Kontaktdaten aller Vereinsmitglieder ")
|
|
];
|
|
}
|
|
}),
|
|
_: 1
|
|
}, _parent));
|
|
_push(ssrRenderComponent(_component_NuxtLink, {
|
|
to: "/mitgliederbereich/news",
|
|
class: "bg-white p-6 rounded-xl shadow-lg hover:shadow-xl transition-shadow border border-gray-100"
|
|
}, {
|
|
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
if (_push2) {
|
|
_push2(`<div class="flex items-center mb-4"${_scopeId}><div class="w-12 h-12 bg-primary-100 rounded-lg flex items-center justify-center mr-4"${_scopeId}>`);
|
|
_push2(ssrRenderComponent(unref(Newspaper), {
|
|
size: 24,
|
|
class: "text-primary-600"
|
|
}, null, _parent2, _scopeId));
|
|
_push2(`</div><h3 class="text-lg font-semibold text-gray-900"${_scopeId}>Interne News</h3></div><p class="text-gray-600 text-sm"${_scopeId}> Neuigkeiten nur für Mitglieder </p>`);
|
|
} else {
|
|
return [
|
|
createVNode("div", { class: "flex items-center mb-4" }, [
|
|
createVNode("div", { class: "w-12 h-12 bg-primary-100 rounded-lg flex items-center justify-center mr-4" }, [
|
|
createVNode(unref(Newspaper), {
|
|
size: 24,
|
|
class: "text-primary-600"
|
|
})
|
|
]),
|
|
createVNode("h3", { class: "text-lg font-semibold text-gray-900" }, "Interne News")
|
|
]),
|
|
createVNode("p", { class: "text-gray-600 text-sm" }, " Neuigkeiten nur für Mitglieder ")
|
|
];
|
|
}
|
|
}),
|
|
_: 1
|
|
}, _parent));
|
|
_push(ssrRenderComponent(_component_NuxtLink, {
|
|
to: "/mitgliederbereich/profil",
|
|
class: "bg-white p-6 rounded-xl shadow-lg hover:shadow-xl transition-shadow border border-gray-100"
|
|
}, {
|
|
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
if (_push2) {
|
|
_push2(`<div class="flex items-center mb-4"${_scopeId}><div class="w-12 h-12 bg-primary-100 rounded-lg flex items-center justify-center mr-4"${_scopeId}>`);
|
|
_push2(ssrRenderComponent(unref(UserCog), {
|
|
size: 24,
|
|
class: "text-primary-600"
|
|
}, null, _parent2, _scopeId));
|
|
_push2(`</div><h3 class="text-lg font-semibold text-gray-900"${_scopeId}>Mein Profil</h3></div><p class="text-gray-600 text-sm"${_scopeId}> Profil bearbeiten und Passwort ändern </p>`);
|
|
} else {
|
|
return [
|
|
createVNode("div", { class: "flex items-center mb-4" }, [
|
|
createVNode("div", { class: "w-12 h-12 bg-primary-100 rounded-lg flex items-center justify-center mr-4" }, [
|
|
createVNode(unref(UserCog), {
|
|
size: 24,
|
|
class: "text-primary-600"
|
|
})
|
|
]),
|
|
createVNode("h3", { class: "text-lg font-semibold text-gray-900" }, "Mein Profil")
|
|
]),
|
|
createVNode("p", { class: "text-gray-600 text-sm" }, " Profil bearbeiten und Passwort ändern ")
|
|
];
|
|
}
|
|
}),
|
|
_: 1
|
|
}, _parent));
|
|
_push(`</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/mitgliederbereich/index.vue");
|
|
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
|
};
|
|
|
|
export { _sfc_main as default };
|
|
//# sourceMappingURL=index-YkMqKAlL.mjs.map
|