NavbarDropdowns

src/layouts/components/navbar/
Navigation high 2 usos

Grupo de componentes da área de perfil na base do sidebar vertical. O orchestrator ProfileDropDown é o único usado externamente — instancia UserDropDown, ConnectedSwitch, NotificationDropDown, TrasferrerDropDown e UserDevicesDropDown (admin only) conforme o modo do sidebar (expandido ou reduzido).

ProfileDropDown — Sidebar Expandido

Layout horizontal: avatar (40px) + nome do usuário + ConnectedSwitch Online/Offline + ícones de sino e outros dropdowns. Fundo #f9f6f6, padding 20px 15px. Fixo na base do VerticalNavMenu.

Online

DA
Daniel Andrade
Online
3

Offline

DA
Daniel Andrade
Offline
Real src/layouts/components/vertical-nav-menu/VerticalNavMenu.vue:126
<profile-drop-down
  :verticalNavMenuItemsMin="verticalNavMenuItemsMin"
  :userStatus="userStatus"
  @mouseEnter="profileMouseEnter"
  @updateUserStatus="updateUserStatus"
/>

ProfileDropDown — Sidebar Reduzido

Quando verticalNavMenuItemsMin=true, o layout muda para coluna vertical de ícones empilhados. ConnectedSwitch usa vs-switch menor (16px) em vez do SwitchPedBot customizado.

3
DA
Real src/layouts/components/navbar/components/ProfileDropDown.vue:7
<!-- Código interno do ProfileDropDown.vue — modo reduzido -->
<div class="the-navbar__user-meta" v-if="verticalNavMenuItemsMin">
  <connected-switch
    :verticalNavMenuItemsMin="verticalNavMenuItemsMin"
    :userStatus="userStatus"
    @updateUserStatus="updateUserStatus"
  />
  <trasferrer-drop-down :verticalNavMenuItemsMin="verticalNavMenuItemsMin"/>
  <notification-drop-down :verticalNavMenuItemsMin="verticalNavMenuItemsMin"/>
  <user-devices-drop-down
    v-if="activeUserInfo.role && activeUserInfo.role.name === 'administrador'"
    :verticalNavMenuItemsMin="verticalNavMenuItemsMin"
  />
  <user-drop-down :verticalNavMenuItemsMin="verticalNavMenuItemsMin"/>
</div>

UserDropDown — Menu do Avatar

Dropdown do avatar com "Configurações" (oculto quando twoFactorActivated=true) e "Logout". Escuta evento logout no event bus para logout centralizado.

Normal

DA
Configurações
Logout

2FA ativo (Configurações oculto)

DA
Logout

NotificationDropDown — Sino de Notificações

BellIcon com badge numérico (max "9+"). Dropdown com header azul primário, lista scrollável (min-width 300px, max-width 365px) de notificações não-lidas. Clique em item abre vs-popup de detalhe com "Marcar Como Lida".

Com notificações

Notificações
Nova mensagem recebida
Cliente João Silva: "Olá, gostaria de saber mais..."
há 5 minutos
Atendimento transferido
Carlos transferiu o atendimento #1234 para você
há 12 minutos
Sistema atualizado
Versão 2.4.1 disponível — veja o changelog
há 1 hora

Sem notificações

Notificações
Nenhuma notificação

API

<!-- ProfileDropDown — único componente usado externamente. -->
<!-- Sub-componentes NUNCA são usados diretamente fora do ProfileDropDown. -->
<profile-drop-down
  :verticalNavMenuItemsMin="verticalNavMenuItemsMin"
  :userStatus="userStatus"
  @mouseEnter="profileMouseEnter"
  @updateUserStatus="updateUserStatus"
/>

Props — ProfileDropDown

NomeTipoObrig.Descrição
verticalNavMenuItemsMinBooleanSimModo reduzido (icons-only) do sidebar. Altera layout horizontal→vertical e tamanhos dos ícones.
userStatusBooleanSimStatus online (true) / offline (false) do usuário logado.

Eventos — ProfileDropDown

EventoPayloadDescrição
@mouseEnterHover na área de perfil — usado pelo VerticalNavMenu para expandir temporariamente o sidebar em modo reduzido.
@updateUserStatusBooleanRelay do ConnectedSwitch — novo status online/offline confirmado via API.

Sub-componentes

ComponenteProp chaveDescrição
UserDropDownverticalNavMenuItemsMinAvatar circular + dropdown Configurações / Logout. Item Configurações oculto com 2FA ativo.
ConnectedSwitchverticalNavMenuItemsMin, userStatusToggle Online/Offline. SwitchPedBot (expandido) ou vs-switch 16px (reduzido). Debounce 500ms + disabled 3s após mudança.
NotificationDropDownverticalNavMenuItemsMinSino com badge numérico (max "9+"). Lista scrollável via VuePerfectScrollbar. Popup de detalhe ao clicar.
TrasferrerDropDownverticalNavMenuItemsMinDropdown de transferência de atendimentos.
UserDevicesDropDownverticalNavMenuItemsMinDispositivos do usuário — visível apenas para role.name === 'administrador'.

Dependências

Vuesax: vs-dropdown, vs-dropdown-menu, vs-switch, vs-divider, vs-popup, vs-button
Custom: feather-icon, SwitchPedBot (ConnectedSwitch em modo expandido)
Ext: vue-perfect-scrollbar (NotificationDropDown)
Store: AppActiveUser, userNotification.userNotifications, auth/logout, userNotification/read
HTTP: user.connected(), user.disconnected() — status online/offline

Onde é usado

src/layouts/components/vertical-nav-menu/VerticalNavMenu.vue
src/layouts/components/navbar/TheNavbarVertical.vue — código morto (imports existem, template 100% comentado)