diff --git a/packages/nextjs/app/pools/page.tsx b/packages/nextjs/app/pools/page.tsx index 786fb455..33e9885b 100644 --- a/packages/nextjs/app/pools/page.tsx +++ b/packages/nextjs/app/pools/page.tsx @@ -10,14 +10,10 @@ import { usePoolContract } from "~~/hooks/balancer"; import scaffoldConfig from "~~/scaffold.config"; /** - * + * Page for viewing custom pool data and performing actions (swap, join, exit) on a pool */ const Pools: NextPage = () => { - const [poolAddressInput, setPoolAddressInput] = useState
(""); - const [isDropdownOpen, setIsDropdownOpen] = useState(false); - - const isValidAddress = isAddress(poolAddressInput); - + // Grab custom pool contract info for pools deployed through scaffold-eth const scaffoldPoolsRawData = deployedContractsData[scaffoldConfig.targetNetworks[0].id]; const scaffoldPools = Object.entries(scaffoldPoolsRawData).map(([name, details]) => ({ name, @@ -25,7 +21,6 @@ const Pools: NextPage = () => { })); const [selectedPool, setSelectedPool] = useState
(scaffoldPools[0].address); - const { data: pool } = usePoolContract(selectedPool); return ( @@ -42,62 +37,8 @@ const Pools: NextPage = () => {

-
-
-
setIsDropdownOpen(!isDropdownOpen)} - > -
Choose custom pool
-
-
    - {scaffoldPools.map(pool => ( -
  • - -
  • - ))} -
-
-
OR
-
{ - event.preventDefault(); - setSelectedPool(poolAddressInput); - setPoolAddressInput(""); - }} - > -
- setPoolAddressInput(e.target.value)} - className="input input-bordered bg-base-200 w-96 text-center pr-16" - placeholder="Search by contract addresss" - /> - -
-
-
+ +

{pool?.name} @@ -124,3 +65,67 @@ const Pools: NextPage = () => { }; export default Pools; + +/** + * The dropdown selector for internal custom pool and the external pool address input + */ +const PoolSelector = ({ scaffoldPools, setSelectedPool }: { scaffoldPools: any; setSelectedPool: any }) => { + const [poolAddressInput, setPoolAddressInput] = useState
(""); + const [isDropdownOpen, setIsDropdownOpen] = useState(false); + + const isValidAddress = isAddress(poolAddressInput); + return ( +
+
+
setIsDropdownOpen(!isDropdownOpen)} + > +
Choose custom pool
+
+
    + {scaffoldPools.map((pool: any) => ( +
  • + +
  • + ))} +
+
+
OR
+
{ + event.preventDefault(); + setSelectedPool(poolAddressInput); + setPoolAddressInput(""); + }} + > +
+ setPoolAddressInput(e.target.value)} + className="input input-bordered bg-base-200 w-96 text-center pr-16" + placeholder="Search by contract addresss" + /> + +
+
+
+ ); +};