Changelog do Cloudsupport for React

Versão 1.6.0

  • Novos hooks (Foundation):
      useMountEffect
      useUpdateEffect
      useInterval
      useQueue
    
  • Uso do hook useQueue:
      const queue = useQueue();
    
    • Método queue.enqueue(asyncFunction): Adiciona a tarefa em uma fila FIFO de processamento sequencial
    • Método queue.enqueueIfIdle(asyncFunction): Adiciona a tarefa na fila se não houver tarefa em processamento ou agendada
    • Método queue.setNextTask(asyncFunction): Remove todas as tarefas pendentes de início de processamento e adiciona a tarefa informada na fila
  • Uso do hook useInterval:
      useInterval(function, delayInMillis, boolExpression);
    

    Exemplo:

      useInterval(reloadData, 5000, filterSelected && isForeground);
    
  • Uso do hook useMountEffect:
      useMountEffect(function); // runs once
    

    Exemplo:

      useInterval(loadPage);
    
  • Usage of useUpdateEffect Hook:
      useUpdateEffect(function, [dependencies]); // runs after the dependencies change
    

    Exemplo:

      useUpdateEffect(syncTree, [items, childItems]);
    

Versão 1.5.0

  • Melhoramentos no contexto AuthProvider (Foundation):
    • Rotina de renovação automática do access token agora continua mesmo após expiração do token, até que o IdP retorne um erro
    • Erros retornados pelo IdP são interpretados como recusa explícita da renovação do token
    • O valor do contexto (capturado via hook useAuth()) agora é atualizado se a o valor encapsulado de ‘oidc-client-ts’ mudar
  • Melhoramentos no componente de UI SessionExpiredBanner (Prime):
    • A sessão é considerada ativa enquanto o usuário estiver autenticado e o access token for válido (não expirado)
    • Se o access token expirar, o aviso (banner) de sessão expirada será exibido após um pequeno atraso, pois o browser/computador poderia ter retornado do estado “dormindo” e a renovação automática demora até 5s para surtir efeito
    • O aviso de sessão expirada agora é removido após renovação bem sucedida do access token

Versão 1.4.1

  • Pequenos ajustes na documentação

Versão 1.4.0

  • Novos hooks hasAuthority e hasAnyAuthority (Foundation):
    • const permitted = hasAuthority(‘roleName’);
    • const permitted = hasAnyAuthority([‘role1’, ‘role2’]);
    • Retorna booleano indicando se usuário autenticado possui a permissão informada
    • É feita a busca no claim roles do ID Token e do UserInfo
  • Novo componente de UI HasAuthority (Foundation):
    • Uso: <HasAuthority value='roleName' Denied={DeniedComponentFunction}> {children} </HasAuthority>
    • Protege os elementos filtros contra acesso não autorizado
  • Novo componente de UI HasAnyAuthority (Foundation):
    • Uso: <HasAnyAuthority value={['role1', 'role2']} Denied={DeniedComponentFunction}> {children} </HasAnyAuthority>
    • Protege os elementos filtros contra acesso não autorizado
  • Corrigido erro no componente AuthProvider do Nexto: “Cannot read properties of undefined (reading ‘post_logout_redirect_uri’)”
  • Corrigido loop na página de logout em caso de mais de uma aba aberta

Versão 1.3.0

  • Melhoramentos no componente de UI LoggedOut (Prime):
    • Adicionadas propriedades message e label

Versão 1.2.0

  • Novo componente EnableCloudsupport (Mixed):
    • Atalho que inclui todos os providers e configurators da arquitetura
  • Novo hook useGlobal (Foundation):
    • const [global, updateGlobal] = useGlobal();
  • Novo componente DefaultConfiguredNetworking (Foundation)
  • Melhoramentos nos componentes ProfileAwareNetworking e AuthAwareNetworking (Foundation):
    • Não mais encapsulam componentes filhos
  • Melhoramentos nos contextos ProfileProvider, GlobalProvider e ProcessingProvider (Foundation):
    • Otimização para evitar rerenders desnecessários
  • Melhoramentos no hook useToast (Prime), que tem nova API:
    • showInfo(title, message, duration)
    • showWarn(title, message)
    • showError(title, message)
    • showError(error)
    • showError(title, error)
    • show(ToastMessage ToastMessage[])
  • Componente de UI NextErrorBoundary (Prime) movido para o grupo ‘/mixed’
  • Removidos exports abaixo (utilizar os hooks equivalentes):
    • ToastConsumer
    • ToastContext
    • GlobalConsumer
    • GlobalContext
    • ProcessingConsumer
    • ProcessingContext
    • ProfileConsumer
    • ProfileContext
  • Corrigido botão de login no componente de UI SessionExpiredBanner (Prime)

Versão 1.1.0

  • Novo componente de contexto Processing (Foundation):
    • Contexto que expõe um status de processamento com suporte a eventos concorrentes de start/stop
    • Recomendado para tratar status de processamento de requests webservice
  • Novo componente de UI ProcessingIndicator (Foundation):
    • Indicador de processamento que trata os eventos do contexto Processing / hook useProcessing
    • Baseado no nprogress.js
    • Adicionada variável de estilo ‘nprogress-color’ (cor padrão: branca)
  • Novo componente de UI ProcessingIndicator (Prime):
    • Indicador de processamento que trata os eventos do contexto Processing / hook useProcessing
    • Por padrão a UI é o componente LoadingBar do Cloudsupport
    • Zindex ajustado para que o indicador fique acima dos componentes PrimeReact (ref: https://primereact.org/configuration/#zindex)
    • Adicionada classe de estilo cs-processing-indicator
  • Novo componente de UI MenuButton (Prime):
    • Versão estilizada do Button para uso em céculas de tabelas
  • Melhoramentos no componente de UI Field (Prime):
    • Adicionado suporte a responsividade (empilha label e content em celulares e tablets)
    • Adicionada propriedade responsive (default is true)
    • Adicionadas classes de estilo cs-field-label, cs-field-content e cs-field-error
  • Melhoramentos no componente de UI ErrorMessage (Prime):
    • Renderizado apenas se a mensagem de erro existir
  • Melhoramentos no componente de contexto ToastProvider (Prime):
    • Otimização para evitar rerenders desnecessários
    • Nova assinatura dos métodos showInfo/Warn/Error(errorObject): A mensagem do erro será o título do Toast
    • Nova assinatura dos métodos showInfo/Warn/Error(title, errorObject): A mensagem do erro será o corpo do Toast
  • Melhoramentos no componente Objects (Foundation):
    • Adicionado método cleanNullUndefined (retorna novo objeto sem os atributos null e undefined, recursivamente)
  • Novo resource tweaks.css (alguns ajustes no tema PrimeReact)
  • Corrigido React “Warning: Invalid DOM property class” em RowExpansionBox

Versão 1.0.0

  • Primeira versão
  • Compatibilidade:
    • React 18
    • Next.js 14.0
    • PrimeReact 10.0
    • PrimeIcons 6.0
    • PrimeFlex 3.3