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
- Método
- 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
- Uso:
- Novo componente de UI HasAnyAuthority (Foundation):
- Uso:
<HasAnyAuthority value={['role1', 'role2']} Denied={DeniedComponentFunction}> {children} </HasAnyAuthority>
- Protege os elementos filtros contra acesso não autorizado
- Uso:
- 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