"use client"; import { useEffect, useState } from "react"; import { useRouter } from "next/navigation"; import HeaderEditPopup from "./HeaderEditPopup"; import { useSessionStore } from "@core/Store/Sesion.Store"; import { checkOrgAdmin } from "@services/Header.Edit.Service"; interface OrganizationHeaderEditProps { companyId: string; headerColor?: string; headerFontColor?: string; headerFontShadowColor?: string; headerImage?: string; } export default function OrganizationHeaderEdit({ companyId, headerColor = "", headerFontColor = "", headerFontShadowColor = "", headerImage = "", }: OrganizationHeaderEditProps) { const router = useRouter(); const SessionInfo = useSessionStore(); const [isOrgAdmin, setIsOrgAdmin] = useState(false); const [showEditPopup, setShowEditPopup] = useState(false); useEffect(() => { if (!SessionInfo.userId || !companyId) { setIsOrgAdmin(false); const existing = document.getElementById("edit-header-btn"); if (existing) existing.remove(); return; } let cancelled = false; checkOrgAdmin(companyId, SessionInfo.userId) .then((isAdmin) => { if (cancelled) return; setIsOrgAdmin(isAdmin); const wrapper = document.getElementById("header-wrapper"); if (!wrapper) return; if (isAdmin) { const existingBtn = document.getElementById("edit-header-btn"); if (existingBtn) existingBtn.remove(); const btn = document.createElement("div"); btn.id = "edit-header-btn"; btn.innerHTML = ` `; btn.querySelector("button")!.addEventListener("click", () => setShowEditPopup(true), ); wrapper.appendChild(btn); } else { const existingBtn = document.getElementById("edit-header-btn"); if (existingBtn) existingBtn.remove(); } }) .catch(() => { if (cancelled) return; setIsOrgAdmin(false); const existingBtn = document.getElementById("edit-header-btn"); if (existingBtn) existingBtn.remove(); }); return () => { cancelled = true; const existing = document.getElementById("edit-header-btn"); if (existing) existing.remove(); }; }, [SessionInfo.userId, companyId]); return ( <> {isOrgAdmin && ( setShowEditPopup(false)} companyId={companyId} headerColor={headerColor} headerFontColor={headerFontColor} headerFontShadowColor={headerFontShadowColor} headerImage={headerImage} onSaved={() => { setShowEditPopup(false); }} onRefresh={() => router.refresh()} /> )} ); }