import { ref, computed, mergeProps, unref, useSSRContext } from 'vue'; import { ssrRenderAttrs, ssrRenderComponent, ssrRenderList, ssrInterpolate, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain } from 'vue/server-renderer'; import { Plus, Loader2, Globe, User, Calendar, Edit, Trash2, Newspaper, AlertCircle } from 'lucide-vue-next'; import { u as useAuthStore } from './server.mjs'; 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: "news", __ssrInlineRender: true, setup(__props) { const authStore = useAuthStore(); const isLoading = ref(true); const isSaving = ref(false); const news = ref([]); const showModal = ref(false); const editingNews = ref(null); const errorMessage = ref(""); const formData = ref({ title: "", content: "", isPublic: false }); const canWrite = computed(() => { return authStore.role === "admin" || authStore.role === "vorstand"; }); const formatDate = (dateString) => { if (!dateString) return ""; const date = new Date(dateString); return date.toLocaleDateString("de-DE", { year: "numeric", month: "long", day: "numeric", hour: "2-digit", minute: "2-digit" }); }; useHead({ title: "Interne News - Harheimer TC" }); return (_ctx, _push, _parent, _attrs) => { _push(`

Interne News

`); if (canWrite.value) { _push(``); } else { _push(``); } _push(`
`); if (isLoading.value) { _push(`
`); _push(ssrRenderComponent(unref(Loader2), { size: 40, class: "animate-spin text-primary-600" }, null, _parent)); _push(`
`); } else { _push(`
`); ssrRenderList(news.value, (item) => { _push(`

${ssrInterpolate(item.title)}

`); if (item.isPublic) { _push(``); _push(ssrRenderComponent(unref(Globe), { size: 14, class: "mr-1" }, null, _parent)); _push(` Öffentlich `); } else { _push(``); } _push(`
`); _push(ssrRenderComponent(unref(User), { size: 16, class: "mr-1" }, null, _parent)); _push(` ${ssrInterpolate(item.author)}
`); _push(ssrRenderComponent(unref(Calendar), { size: 16, class: "mr-1" }, null, _parent)); _push(` ${ssrInterpolate(formatDate(item.created))}
`); if (item.updated !== item.created) { _push(`
`); _push(ssrRenderComponent(unref(Edit), { size: 16, class: "mr-1" }, null, _parent)); _push(` Aktualisiert: ${ssrInterpolate(formatDate(item.updated))}
`); } else { _push(``); } _push(`
`); if (canWrite.value) { _push(`
`); } else { _push(``); } _push(`
${ssrInterpolate(item.content)}
`); }); _push(``); if (news.value.length === 0) { _push(`
`); _push(ssrRenderComponent(unref(Newspaper), { size: 48, class: "mx-auto text-gray-400 mb-4" }, null, _parent)); _push(`

Noch keine internen News vorhanden.

`); if (canWrite.value) { _push(`

Klicken Sie auf "News erstellen", um die erste News zu veröffentlichen.

`); } else { _push(``); } _push(`
`); } else { _push(``); } _push(`
`); } if (showModal.value) { _push(`

${ssrInterpolate(editingNews.value ? "News bearbeiten" : "News erstellen")}

`); if (errorMessage.value) { _push(`
`); _push(ssrRenderComponent(unref(AlertCircle), { size: 20, class: "mr-2" }, null, _parent)); _push(` ${ssrInterpolate(errorMessage.value)}
`); } else { _push(``); } _push(`
`); } else { _push(``); } _push(`
`); }; } }; const _sfc_setup = _sfc_main.setup; _sfc_main.setup = (props, ctx) => { const ssrContext = useSSRContext(); (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/mitgliederbereich/news.vue"); return _sfc_setup ? _sfc_setup(props, ctx) : void 0; }; export { _sfc_main as default }; //# sourceMappingURL=news-C8krCg9b.mjs.map