Commit 4add4ee7 authored by Natalia Stus's avatar Natalia Stus

fix

parent cb7f22e6
import React from 'react'; import React, { useCallback } from 'react';
import { import {
Tag, Tag,
...@@ -17,11 +17,19 @@ import WatchListAddressItem from './WatchListAddressItem'; ...@@ -17,11 +17,19 @@ import WatchListAddressItem from './WatchListAddressItem';
interface Props { interface Props {
item: TWatchlistItem; item: TWatchlistItem;
onEditClick: () => void; onEditClick: (data: TWatchlistItem) => void;
onDeleteClick: () => void; onDeleteClick: (data: TWatchlistItem) => void;
} }
const WatchlistTableItem = ({ item, onEditClick, onDeleteClick }: Props) => { const WatchlistTableItem = ({ item, onEditClick, onDeleteClick }: Props) => {
const onItemEditClick = useCallback(() => {
return onEditClick(item);
}, [ item, onEditClick ]);
const onItemDeleteClick = useCallback(() => {
return onDeleteClick(item);
}, [ item, onDeleteClick ]);
return ( return (
<Tr alignItems="top" key={ item.address }> <Tr alignItems="top" key={ item.address }>
<Td><WatchListAddressItem item={ item }/></Td> <Td><WatchListAddressItem item={ item }/></Td>
...@@ -29,8 +37,8 @@ const WatchlistTableItem = ({ item, onEditClick, onDeleteClick }: Props) => { ...@@ -29,8 +37,8 @@ const WatchlistTableItem = ({ item, onEditClick, onDeleteClick }: Props) => {
<Td><Switch colorScheme="green" size="md" isChecked={ item.notification }/></Td> <Td><Switch colorScheme="green" size="md" isChecked={ item.notification }/></Td>
<Td> <Td>
<HStack spacing="30px"> <HStack spacing="30px">
<Icon as={ FaEdit } w="20px" h="20px" cursor="pointer" color="blue.500" onClick={ onEditClick }/> <Icon as={ FaEdit } w="20px" h="20px" cursor="pointer" color="blue.500" onClick={ onItemEditClick }/>
<Icon as={ FaTrash } w="20px" h="20px" cursor="pointer" color="red.200" onClick={ onDeleteClick }/> <Icon as={ FaTrash } w="20px" h="20px" cursor="pointer" color="red.200" onClick={ onItemDeleteClick }/>
</HStack> </HStack>
</Td> </Td>
</Tr> </Tr>
......
...@@ -9,14 +9,14 @@ import { ...@@ -9,14 +9,14 @@ import {
TableContainer, TableContainer,
} from '@chakra-ui/react' } from '@chakra-ui/react'
import type { TWatchlist } from '../../data/watchlist'; import type { TWatchlist, TWatchlistItem } from '../../data/watchlist';
import WatchlistTableItem from './WatchListTableItem'; import WatchlistTableItem from './WatchListTableItem';
interface Props { interface Props {
data: TWatchlist; data: TWatchlist;
onEditClick: (index: number) => () => void; onEditClick: (data: TWatchlistItem) => void;
onDeleteClick: (index: number) => () => void; onDeleteClick: (data: TWatchlistItem) => void;
} }
const WatchlistTable = ({ data, onDeleteClick, onEditClick }: Props) => { const WatchlistTable = ({ data, onDeleteClick, onEditClick }: Props) => {
...@@ -32,12 +32,12 @@ const WatchlistTable = ({ data, onDeleteClick, onEditClick }: Props) => { ...@@ -32,12 +32,12 @@ const WatchlistTable = ({ data, onDeleteClick, onEditClick }: Props) => {
</Tr> </Tr>
</Thead> </Thead>
<Tbody> <Tbody>
{ data.map((item, index) => ( { data.map((item) => (
<WatchlistTableItem <WatchlistTableItem
item={ item } item={ item }
key={ item.address } key={ item.address }
onDeleteClick={ onDeleteClick(index) } onDeleteClick={ onDeleteClick }
onEditClick={ onEditClick(index) } onEditClick={ onEditClick }
/> />
)) } )) }
</Tbody> </Tbody>
......
...@@ -19,8 +19,8 @@ const WatchList: NextPage = () => { ...@@ -19,8 +19,8 @@ const WatchList: NextPage = () => {
const [ addressModalData, setAddressModalData ] = useState<TWatchlistItem>(); const [ addressModalData, setAddressModalData ] = useState<TWatchlistItem>();
const [ deleteModalData, setDeleteModalData ] = useState<string>(); const [ deleteModalData, setDeleteModalData ] = useState<string>();
const onEditClick = useCallback((index: number) => () => { const onEditClick = useCallback((data: TWatchlistItem) => {
setAddressModalData(watchlist[index]); setAddressModalData(data);
addressModalProps.onOpen(); addressModalProps.onOpen();
}, [ addressModalProps ]) }, [ addressModalProps ])
...@@ -29,8 +29,8 @@ const WatchList: NextPage = () => { ...@@ -29,8 +29,8 @@ const WatchList: NextPage = () => {
addressModalProps.onClose(); addressModalProps.onClose();
}, [ addressModalProps ]); }, [ addressModalProps ]);
const onDeleteClick = useCallback((index: number) => () => { const onDeleteClick = useCallback((data: TWatchlistItem) => {
setDeleteModalData(watchlist[index]?.address); setDeleteModalData(data.address);
deleteModalProps.onOpen(); deleteModalProps.onOpen();
}, [ deleteModalProps ]) }, [ deleteModalProps ])
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment