sh3-sistemas / components

Biblioteca de componentes compartilhada baseada em PrimeVue
MIT License
0 stars 0 forks source link

[TASK][#3] Sidebar: implementação #5

Open mariana-castro-sh3 opened 1 month ago

mariana-castro-sh3 commented 1 month ago

Descrição

Essa tarefa contempla a refatoração do componente ToggleSidebar, referente à issue #3.


Etapas

Escopo: O componente atualizado deve utilizar os recursos fornecidos pela biblioteca PrimeVue (já instalada na aplicação). Além disso, deve possibilitar que o usuário tenha maior espaço de tela para o conteúdo principal, caso deseje. As etapas são:


Tarefas

Correção de bugs de funcionamento

Correção de bugs de estilização

Implementação: responsividade

Implementação de componente: sh3Button

Outras tarefas


Débitos técnicos

mariana-castro-sh3 commented 1 month ago

Destaque dos menus

Image

Etapas

  1. Qual menu colorir com base na rota atual 1.1 Caso rota atual seja um menu root

    • Comparação direta se:

      • o menu está ativo; e
      • se é root retorna a cor ROOT

      1.2 Caso rota atual seja um submenu e possua submenus

    • Comparação direta se:

      • o menu está ativo;
      • NÂO é root; e
      • possui submenu; retorna a cor SUBMENU.

      1.3 Caso a rota atual seja um submenu e NÃO possua submenus (possuindo ou não abas)

    • Comparação direta se:

      • uma das abas do menu está ativa (comparação indireta);
      • NÃO é root; e
      • NÃO possui submenu retorna font-color ACTIVE (fonte colorida)

      1.4 Caso rota atual seja uma aba

    • Comparação direta se:
      • a aba está ativa (comparação direta);
      • NÃO é root; e
      • NÃO possui submenu retorna font-color ACTIVE (fonte colorida)

Estratégia

 {
        dptoPessoalCadastro: {
          dptoPessoalOrgao: {
            dptoPessoalOrgaoEsocial: { meta: { isTab: true } }
          },
          dptoPessoalEstabelecimento: {
            ...
          }
        }
      }

Como obter as tabs de um menu-item?

  1. Quebra da chave utilizando o marcador _ Exemplo 1. key -> dptoPessoalCadastro

    • Ao realizar operação de split pelo separador '_': Retorno ['dptoPessoalCadastro']
    • Ao acessar o objeto de todas as tabs com a chave splitada, qual o retorno? Retorno { dptoPessoalOrgao: { ... }, dptoPessoalEstabelecimento: { ... } }

    Exemplo 2. key -> dptoPessoalCadastro_dptoPessoalOrgao

    • Ao realizar operação de split pelo separador '_': Retorno ['dptoPessoalCadastro', 'dptoPessoalOrgao']
    • Ao acessar o objeto de todas as tabs com a chave splitada, qual o retorno? O acesso precisa ser por via de um algoritmo que tenta utilizar o array de chaves splitadas para descer na árvore/objeto de todas as tabs Algoritmo desce na árvore chave a chave 1 retorno com a chave 'dptoPessoalCadastro' { dptoPessoalOrgao: { ... }, dptoPessoalEstabelecimento: { ... } }

      2 retorno com a chave 'dptoPessoalOrgao' { dptoPessoalOrgaoEsocial: { meta: { isTab: true } } // dptoPessoalOrgaoEsocial: true }