(Reactive) A Evolução do OutsystemsUI ⭕️
Oi seus lindos, dessa vez vim falar um pouco da evolução do OutsystemUI.
Pois tivemos uma situação em um cliente cujo desenvolvemos uma aplicação em uma versão da nossa plataforma Outsystems que estava atualizada, contudo tivemos que fazer o deploy em um novo ambiente que estava desatualizado. E tivemos que fazer uma compatibilização para um funcionalidade de um dos componentes do OutsystemsUI.
Accordion
Fizemos uma simples customização no Accordion utilizando os recursos dos novos componentes, que, sem sombra de duvida tiveram uma atualização significativa que permite uma customização / interação um pouco mais a gosto do freguês.
Contudo, após nosso downgrade de versão nos deparamos com esse erro :
Isso porque nas versões mais atualizadas do OutsystemsUI, foram implementadas APIS de acesso aos componentes do OutsystemsUI utilizando o sistema de módulos do Javascript. Essas APIS são acessíveis através do objeto Outsystem, que é gerado no contexto da página. Um exemplo disso é o código da nossa solução para reabrir o accordion após um interação de Modal.
Para resolvermos essa situação, tivemos que analisar a versão antiga do OutsystemsUI e para minha tristeza era um código totalmente diferente do atual.
Tivemos que copiar toda a implementação para manter o funcionamento sem maiores problema. Resumindo as duas linhas magica de cima se tornaram em duas client Actions :
Action 1 — Comportamento do opção de acessibilidade
Action 2 — Comportamento de abrir o Accordion
Então, depois que duplicamos o código o problema foi resolvido, pois como vocês puderam ver, essa implementação altera varias propriedades do DOM para o accordion.
E trata isso de forma pontual não valeria a pena, devido a possibilidade de gerar outros erros.
Contudo não só de CTRL+C / CTRL+V vive um programador.
No código onde abre o accordion foi adicionado as duas versões uma para chamar o código duplicado da versão desatualizada e um para chamar API da versão atual. Para isso apenas foi verificado se a variável Outsystems existia no contexto da página.
Conclusão
Não tenho nem o que falar, se você ainda não migrou para versão mais nova do style guide da Outsystem, pois está perdendo a oportunidade de escrever menos e deixar seu código limpo, além de aprender novas formas de encapsular comportamento usando API internas.
Eiiiii me ajuda ai vai !? deixa uma palminhaaaa 👋🏻 e clica em seguir para mais conteúdos legais.