"use client"; import React, { useEffect, useState } from "react"; import style from "./orgheader.module.css"; import { MyOranizationsView } from "@core/Models/Company.model"; import IconButton from "@mui/material/IconButton"; import MoreVertIcon from "@mui/icons-material/MoreVert"; import ResizeIcon from "@mui/icons-material/AspectRatio"; import PaletteIcon from "@mui/icons-material/Palette"; import { useMenuStore } from "@core/Store/Menu.Store"; import { ORGANIZATION_HEADER_MODES, useOrganizationHeaderStore, } from "@store/OrganizationHeader.Store"; import SettingsIcon from "@mui/icons-material/Settings"; import NotificationsIcon from "@mui/icons-material/Notifications"; import classNames from "classnames"; import { useNavigation } from "@core/app/hooks/goto"; import ShareOutlinedIcon from "@mui/icons-material/ShareOutlined"; import OpenInNewIcon from "@mui/icons-material/OpenInNew"; import Dialog from "@mui/material/Dialog"; import DialogContent from "@mui/material/DialogContent"; import DialogTitle from "@mui/material/DialogTitle"; import CloseIcon from "@mui/icons-material/Close"; import { getSlug } from "@core/app/helpers/Slug"; import { FacebookShareButton, WhatsappShareButton, TwitterShareButton, EmailShareButton, TelegramShareButton, FacebookIcon, WhatsappIcon as WhatsAppShareIcon, TwitterIcon, EmailIcon, TelegramIcon } from "react-share"; export interface OrganizationHeaderParams { data: MyOranizationsView; } export default function OrganizationHeader(props: OrganizationHeaderParams): React.ReactElement { const menu = useMenuStore(); const organizationHeader = useOrganizationHeaderStore(); const { goTo } = useNavigation(); const [headerColor, setHeaderColor] = useState(props.data.headerColor); const [headerFontColor, setHeaderFontColor] = useState(props.data.headerFontColor); const [headerFontShadowColor, setHeaderFontShadowColor] = useState( props.data.headerFontShadowColor ); const [showSharePopup, setShowSharePopup] = useState(false); useEffect(() => { menu.clear(); menu.add({ text: "Perzonalizar", onClick: () => { goTo("/admin/org/profile/" + props.data.id + "/customize"); }, icon: , }); menu.add({ text: "Compartir", onClick: () => { setShowSharePopup(true); }, icon: , }); menu.add({ text: "Ver perfil", onClick: () => { goTo(`/landing/org/${props.data.id}`); }, icon: , }); menu.add({ text: "Notificaciones", onClick: () => { goTo("/admin/org/profile/" + props.data.id + "/notifications"); }, icon: , }); menu.divider(); menu.add({ text: "Configuración Avanzada", onClick: () => { goTo("/admin/org/profile/" + props.data.id + "/advanced"); }, icon: , }); }, []); useEffect(() => { setHeaderColor(organizationHeader.headerColor); setHeaderFontColor(organizationHeader.headerFontColor); setHeaderFontShadowColor(organizationHeader.headerFontShadowColor); }, [ organizationHeader.headerColor, organizationHeader.headerFontColor, organizationHeader.headerFontShadowColor, ]); const getClassNames = () => { const classList: classNames.ArgumentArray = []; classList.push(style.organizationHeader); if (organizationHeader.state === ORGANIZATION_HEADER_MODES.LARGE) { classList.push(style.organizationHeaderLarge); } else if (organizationHeader.state === ORGANIZATION_HEADER_MODES.SMALL) { classList.push(style.organizationHeaderSmall); } return classNames(classList); }; const getToggleClassNames = () => { const classList: classNames.ArgumentArray = []; if (organizationHeader.state === ORGANIZATION_HEADER_MODES.LARGE) { classList.push(style.buttonTogleSizeLarge); } else if (organizationHeader.state === ORGANIZATION_HEADER_MODES.SMALL) { classList.push(style.buttonTogleSizeSmall); } return classNames(classList); }; return ( <>

{props.data.name}

{props.data.description}
 
{ menu.setAnchorEl(document.getElementById("button-menu")!); menu.show(); }} sx={{ color: headerFontColor, textShadow: `1px 1px 2px ${headerFontShadowColor}`, opacity: 0.8, }} >
{ organizationHeader.toggleState(); }} sx={{ color: headerFontColor, textShadow: `1px 1px 2px ${headerFontShadowColor}`, opacity: 0.8, }} >
setShowSharePopup(false)} maxWidth="sm" fullWidth> Compartir Organización setShowSharePopup(false)} sx={{ color: (theme) => theme.palette.grey[500] }} >
Compartí el perfil de {props.data.name} para que tus clientes puedan sacar turnos fácilmente.
); }