Skip to content
Snippets Groups Projects
Select Git revision
  • issue-364/FIX-empty-collection-name
  • issue/361-statistics
  • issue-361/HOTXFIX-remove-resources-confirm-button
  • develop default protected
  • issue/358-fix-new-biblioteca
  • issue/356-fix-new-changes
  • issue/271.3-update-routes-new-backend
  • issue/332-resource-edit
  • issue-299/FIX-change-name-share-button-profile-page
  • issue/271.gus
  • 289-tela-de-perfil-inserir-icones-no-cabecalho
11 results

ShareButton.js

Blame
  • ShareButton.js 1.54 KiB
    import { useState } from 'react';
    import ShareOutlinedIcon from '@mui/icons-material/ShareOutlined';
    import ShareModal from './ShareModal';
    import { usePathname } from 'next/navigation';
    
    /**
     * Botão de Compartilhamento que abre o modal e compartilha o link corretamente
     * @param {Object} props
     * @param {String} props.type Tipo do item a ser compartilhado (ex: "colecao", "recurso", "perfil")
     * @param {Number} props.id ID do item a ser compartilhado
     */
    export default function ShareButton({ type, id }) {
        const [shareOpen, setShareOpen] = useState(false);
        
        const baseUrl = typeof window !== 'undefined' ? window.location.origin : '';
        const link = `${baseUrl}/${type}/${id}`; // Gera o link dinâmico baseado no tipo e ID
        
        return (
            <>
                <button
                    className="p-2 text-sm rounded-[10px] max-md:w-44 w-48 h-11  hover:bg-darkGray-HC-white hover:text-darkGray-HC-dark outline outline-1 outline-lightGray-HC-white text-darkGray-HC-white-underline hover:text-white-HC-dark-underline font-bold normal-case flex justify-center items-center gap-2"
                    onClick={() => setShareOpen(true)}
                    aria-label="Compartilhar"
                >
                    <ShareOutlinedIcon fontSize="small" />
                    <span className="hidden md:inline">Compartilhar</span>
                </button>
                <ShareModal
                    open={shareOpen}
                    onClose={() => setShareOpen(false)}
                    title={`Compartilhando ${type}`}
                    link={link}
                />
            </>
        );
    }