import { useState, type FC } from 'react' import { useGetIcons, useDeleteIcon } from '../hooks/useIconData' import { useTranslation } from 'react-i18next' import Button from '../../../components/Button' import { Add } from 'iconsax-react' import CreateIcon from './components/CreateIcon' import Td from '../../../components/Td' import Input from '../../../components/Input' import PageLoading from '../../../components/PageLoading' import TrashWithConfrim from '../../../components/TrashWithConfrim' import { toast } from '../../../components/Toast'; import { ErrorType } from '../../../helpers/types' import { IconType } from '../types/Types' import moment from 'moment-jalaali' const IconsList: FC = () => { const { t } = useTranslation('global') const [showModal, setShowModal] = useState(false) const [search, setSearch] = useState('') const { data: iconsData, isLoading, refetch } = useGetIcons() const deleteIcon = useDeleteIcon() const handleCloseModal = () => { setShowModal(false) refetch() } const handleDelete = (id: string) => { deleteIcon.mutate(id, { onSuccess: () => { refetch() toast(t('success'), 'success') }, onError: (error: ErrorType) => { toast(error.response?.data?.error?.message[0], 'error') } }) } const icons = (iconsData as unknown as { data?: IconType[] })?.data || [] const filteredIcons = icons.filter((icon: IconType) => icon.url.toLowerCase().includes(search.toLowerCase()) || icon.group?.name?.toLowerCase().includes(search.toLowerCase()) ) return (
{t('icon.list_icon')}
setSearch(value)} />
{ isLoading ? :
{ filteredIcons.map((item: IconType) => { return ( ) }) }
{item.url} { const target = e.target as HTMLImageElement target.style.display = 'none' }} />
{item.url}
handleDelete(item.id)} isLoading={deleteIcon.isPending} />
}
) } export default IconsList