--- tags: Product --- # Bank UI Code Review ### UI example https://app.daohaus.club/dao/0x64/0x27ff866544bdef14071533439f8b1a8a469a80fb/vaults https://app.daohaus.club/dao/0x64/0x27ff866544bdef14071533439f8b1a8a469a80fb/vaults/treasury http://localhost:3000/dao/0x64/0x27ff866544bdef14071533439f8b1a8a469a80fb/vaults/minion/0x7aaa3a5e9b7dc46c6bebb78a69bcbad03b4de657 ### Data fetching/context Getting the data from a new vault data endpoint and loading into dao context: https://github.com/HausDAO/daohaus-app/blob/develop/src/contexts/DaoContext.jsx#L84 https://github.com/HausDAO/daohaus-app/blob/develop/src/utils/theGraph.js#L134 ### Pages #### Vaults https://github.com/HausDAO/daohaus-app/blob/develop/src/pages/Vaults.jsx bank chart now works with minion vault data. the parent component passes it a chunk of vault data to toggle vaults (single or combines data sources). - used on vaults/treasury/minionvaults pages - our data cache layer formats the data identical to treasury data https://github.com/HausDAO/daohaus-app/blob/develop/src/components/bankChart.jsx https://github.com/HausDAO/daohaus-app/blob/develop/src/components/vaultCard.jsx https://github.com/HausDAO/daohaus-app/blob/develop/src/components/vaultCardTokenList.jsx - this displays up to 3 token icons and a count after that #### Treasury https://github.com/HausDAO/daohaus-app/blob/develop/src/pages/Treasury.jsx balanceList/balanceCard components now work for guildbank tokens, erc20s and native/network token https://github.com/HausDAO/daohaus-app/blob/develop/src/components/balanceList.jsx https://github.com/HausDAO/daohaus-app/blob/develop/src/components/balanceCard.jsx = treasury loads withdraw and sync tokenbutton components with new lego-d forms/transactions #### MinionVault https://github.com/HausDAO/daohaus-app/blob/develop/src/pages/MinionVault.jsx if a minion vault the balanceCard loads a minionTransfer component: https://github.com/HausDAO/daohaus-app/blob/develop/src/components/minionTransfer.jsx ### nftcard with some lego-ing https://github.com/HausDAO/daohaus-app/blob/96fab888a5b38879e4bfad6480b40eb6116a9b49/src/components/nftCard.jsx https://github.com/HausDAO/daohaus-app/blob/develop/src/utils/nftVaults.js#L25 - this config lego hydrates the nft data with display values and actions specific to the nft platform - has defaults as well - the config tells the hydrate function how to get display fields with a function and adds actions that are menu items that open new form legos - example: ```javascript const nftConfig = { '0xcf964c89f509a8c0ac36391c5460df94b91daba5': { platform: 'nifty ink', fields: { creator: 'getNiftyCreator', }, actions: { ...defaultConfig.actions, sellNifty: { menuLabel: 'Sell Nifty', tooltTipLabel: 'Make a proposal to set the price of the nft on nifty.ink', modalName: 'sellNifty', formLego: FORM.MINION_SELL_NIFTY, localValues: ['tokenId', 'contractAddress'], }, }, }, }; ``` ### Other components Reworked minion execute with txlegos and contract calls with single contract service: https://github.com/HausDAO/daohaus-app/blob/develop/src/components/minionExecute.jsx Reworkes the cross dao internal balance list and card - used in the hub and in the minion vault - and added a menu for the withdraw tx: https://github.com/HausDAO/daohaus-app/blob/96fab888a5b38879e4bfad6480b40eb6116a9b49/src/components/crossDaoInternalBalanceListCard.jsx https://github.com/HausDAO/daohaus-app/blob/96fab888a5b38879e4bfad6480b40eb6116a9b49/src/components/minionInternalBalanceActionMenu.jsx ### Forms and tx legos https://github.com/HausDAO/daohaus-app/blob/develop/src/data/forms.js#L148 https://github.com/HausDAO/daohaus-app/blob/develop/src/data/forms.js#L158 https://github.com/HausDAO/daohaus-app/blob/develop/src/data/forms.js#L168 https://github.com/HausDAO/daohaus-app/blob/develop/src/data/forms.js#L178 https://github.com/HausDAO/daohaus-app/blob/develop/src/data/fields.js#L174 - nft price field https://github.com/HausDAO/daohaus-app/blob/develop/src/data/contractTX.js#L359 https://github.com/HausDAO/daohaus-app/blob/develop/src/data/contractTX.js#L377 https://github.com/HausDAO/daohaus-app/blob/develop/src/data/contractTX.js#L404 https://github.com/HausDAO/daohaus-app/blob/develop/src/data/contractTX.js#L427 https://github.com/HausDAO/daohaus-app/blob/develop/src/data/contractTX.js#L436 https://github.com/HausDAO/daohaus-app/blob/develop/src/data/contractTX.js#L445