Hoje temos um bloco de useEffect na home.tsx do app que verifica se existem accounts e, não tenha, ele faz uma request de busca de contas.
Isso não é nem tão bom e nem muito eficiente e precisamos refatorar.
Use Case
A ideia desse bloco de código é que seja buscado contas caso não haja nenhuma, mas existe um gap lógico aqui, se o usuário não tiver de fato contas cadastradas isso ficará sendo disparado constantemente oque não é oque queremos.
Outro problema é onde isso ta posicionado e como ta posicionado, provavelmente podemos mover essa lógica e condição para dentro do proprio zustand deixando de usar isso direto no react, mas usar no nosso orquestrador.
Implementation Details
Precisamos que o objeto accounts do zustand seja um requester com loading, data e error, o valor inicial do data deve ser null e caso a lista de contas ativas do usuário seja de fato uma lista vazia o accounts deverá ser [], assim temos como diferenciar a falta da informação para a lista vazia.
Outro ponto importante é mover a chamada do getAllAccounts para dentro do proprio zustand e verificar a possibilidade de ele ter um "setup inicial" onde ele faz as requests desejadas já com as verificações que precisamos sem envolver isso no useEffect, acredito que da pra fazer isso no setup inicial do useSocialMediaStore, mas precisa verificar tanto se funciona, como verificar se isso não prejudica a tipagem do nosso hook.
Describe the feature
Hoje temos um bloco de
useEffect
nahome.tsx
do app que verifica se existem accounts e, não tenha, ele faz uma request de busca de contas.Isso não é nem tão bom e nem muito eficiente e precisamos refatorar.
Use Case
A ideia desse bloco de código é que seja buscado contas caso não haja nenhuma, mas existe um gap lógico aqui, se o usuário não tiver de fato contas cadastradas isso ficará sendo disparado constantemente oque não é oque queremos.
Outro problema é onde isso ta posicionado e como ta posicionado, provavelmente podemos mover essa lógica e condição para dentro do proprio zustand deixando de usar isso direto no
react
, mas usar no nosso orquestrador.Implementation Details
Precisamos que o objeto
accounts
do zustand seja um requester comloading
,data
eerror
, o valor inicial do data deve sernull
e caso a lista de contas ativas do usuário seja de fato uma lista vazia oaccounts
deverá ser[]
, assim temos como diferenciar a falta da informação para a lista vazia.Outro ponto importante é mover a chamada do
getAllAccounts
para dentro do proprio zustand e verificar a possibilidade de ele ter um "setup inicial" onde ele faz as requests desejadas já com as verificações que precisamos sem envolver isso nouseEffect
, acredito que da pra fazer isso no setup inicial douseSocialMediaStore
, mas precisa verificar tanto se funciona, como verificar se isso não prejudica a tipagem do nosso hook.Visual Concepts