Merge pull request #42 from rede5/codex/add-empresa-and-perfil-options-to-dropdown

Show company and user info in header dropdown
This commit is contained in:
Tiago Yamamoto 2025-12-23 11:45:17 -03:00 committed by GitHub
commit f2cdadb73f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -37,6 +37,24 @@ const Header = ({
const [isOpen, setIsOpen] = useState(false);
// const [showRegistroModal, setShowRegistroModal] = useState(false); // Removido - agora é controlado pelo dashboard
const dropdownRef = useRef<HTMLDivElement>(null);
const displayUserName =
user?.nome ||
user?.["nome-civil"] ||
user?.["nome-social"] ||
user?.name ||
"Usuário";
const displayCompanyName =
user?.empresa?.["nome-fantasia"] ||
user?.empresa?.["razao-social"] ||
user?.empresa?.nomeFantasia ||
user?.empresa?.razaoSocial ||
user?.empresaData?.["nome-fantasia"] ||
user?.empresaData?.["razao-social"] ||
user?.empresaData?.nomeFantasia ||
user?.empresaData?.razaoSocial ||
(Array.isArray(user?.empresas) ? user.empresas[0] : null) ||
(Array.isArray(user?.empresasDados) ? user.empresasDados[0] : null) ||
"Empresa não informada";
// Hook para verificar se o registro está completo
const { isCompleto, loading, dadosFaltantes } = useRegistroCompleto(user || null);
@ -184,12 +202,15 @@ const Header = ({
>
<div className="w-6 h-6 sm:w-8 sm:h-8 bg-gradient-to-r from-blue-500 to-green-500 rounded-full flex items-center justify-center flex-shrink-0">
<span className="text-white text-xs sm:text-sm font-semibold">
{(user?.nome || user?.["nome-civil"] || user?.["nome-social"] || user?.name || "U")?.charAt(0).toUpperCase()}
{displayUserName?.charAt(0).toUpperCase()}
</span>
</div>
<div className="hidden sm:block min-w-0">
<p className="text-sm font-medium text-gray-900 truncate">
{user?.nome || user?.["nome-civil"] || user?.["nome-social"] || user?.name || "Usuário"}
{displayUserName}
</p>
<p className="text-xs text-gray-500 truncate">
{displayCompanyName}
</p>
</div>
<svg
@ -209,13 +230,20 @@ const Header = ({
{isOpen && (
<ul className="absolute right-0 mt-2 w-48 bg-white rounded-lg shadow-lg z-10 border">
<li>
<Link
href="/perfil"
className="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 rounded-t-lg flex items-center"
>
<UserIcon className="w-4 h-4 mr-2 flex-shrink-0" />
Meu perfil
</Link>
<div className="px-4 py-3 border-b rounded-t-lg">
<div className="text-[10px] uppercase tracking-wide text-gray-400">
Empresa
</div>
<p className="text-sm font-semibold text-gray-900 truncate">
{displayCompanyName}
</p>
<div className="mt-2 text-[10px] uppercase tracking-wide text-gray-400">
Perfil do usuário
</div>
<p className="text-sm font-semibold text-gray-900 truncate">
{displayUserName}
</p>
</div>
</li>
<li>
<Link