diff --git a/src/features/add-chain/ui/AddChainButton.tsx b/src/features/add-chain/ui/AddChainButton.tsx index d8a23c9..f60afa8 100644 --- a/src/features/add-chain/ui/AddChainButton.tsx +++ b/src/features/add-chain/ui/AddChainButton.tsx @@ -10,13 +10,10 @@ import DialogActions from "@mui/material/DialogActions"; import DialogContent from "@mui/material/DialogContent"; import DialogTitle from "@mui/material/DialogTitle"; import { TextField } from "@mui/material"; -import { Button } from "@mui/material"; +import { IconButton, Button } from "@mui/material"; +import AddIcon from "@mui/icons-material/Add"; -interface AddChainButtonProps { - children?: React.ReactNode; -} - -export default function AddChainButton({ children }: AddChainButtonProps) { +export default function AddChainButton() { const [isOpen, setIsOpen] = useState(false); const [loading, setLoading] = useState(false); const [isError, setIsError] = useState(false); @@ -50,13 +47,14 @@ export default function AddChainButton({ children }: AddChainButtonProps) { return ( <> - setIsOpen(true)} - variant="outlined" - sx={{ width: "100%", fontWeight: "semibold" }} > - {children} - + + diff --git a/src/shared/ui/List/Root.tsx b/src/shared/ui/List/Root.tsx index 037437e..fa84849 100644 --- a/src/shared/ui/List/Root.tsx +++ b/src/shared/ui/List/Root.tsx @@ -11,14 +11,15 @@ export default function Root({ children, className }: RootProps) { return ( - {Children.map(children, (child, index) => ( + {Children.map(children, (child) => ( {child} diff --git a/src/widgets/sidebar/ui/Sidebar.tsx b/src/widgets/sidebar/ui/Sidebar.tsx index efe4a3c..92633c0 100644 --- a/src/widgets/sidebar/ui/Sidebar.tsx +++ b/src/widgets/sidebar/ui/Sidebar.tsx @@ -1,34 +1,55 @@ +import { useMemo } from "react"; +import { useState } from "react"; import { useParams } from "@tanstack/react-router"; import { useChainState } from "@/entities/chain/model"; import List from "@/shared/ui/List"; +import { TextField } from "@mui/material"; import { AddChainButton } from "@/features/add-chain"; export default function Sidebar() { const params = useParams({ strict: false }); const chains = useChainState((state) => state.chains || []); + const [query, setQuery] = useState(""); + + const filteredChains = useMemo( + () => + chains.filter((value) => + value.name?.toLowerCase().includes(query.toLocaleLowerCase()), + ), + [query, chains], + ); // @ts-expect-error because i don't know why const chainId: string | undefined = params.chainId; return ( - - - {chains.map((chain, index) => ( - - {chain.name} - - ))} - + + + setQuery(e.target.value)} + /> + + - - - +Добавить - + + + {filteredChains.map((chain) => ( + + {chain.name} + + ))} + );