update chain logic
This commit is contained in:
parent
243f7cb1f7
commit
4786cbcc45
|
|
@ -6,6 +6,7 @@ interface ChainState {
|
|||
setChains: (chains: Chain[]) => void;
|
||||
addChain: (chain: Chain) => void;
|
||||
getChain: (id: string) => Chain | null;
|
||||
updateChain: (chain: Chain) => void;
|
||||
}
|
||||
|
||||
export const useChainState = create<ChainState>((set, get) => ({
|
||||
|
|
@ -26,4 +27,20 @@ export const useChainState = create<ChainState>((set, get) => ({
|
|||
|
||||
return chain;
|
||||
},
|
||||
|
||||
updateChain: (chain) =>
|
||||
set((state) => {
|
||||
const chains = state.chains;
|
||||
if (!chains) return { chains: [chain] };
|
||||
const chainIndex = chains.findIndex((value) => value._id === chain._id);
|
||||
|
||||
if (!chainIndex) return { chains: [...chains, chain] };
|
||||
return {
|
||||
chains: [
|
||||
...chains.slice(0, chainIndex),
|
||||
chain,
|
||||
...chains.slice(chainIndex + 1),
|
||||
],
|
||||
};
|
||||
}),
|
||||
}));
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user