import { PencilSquareIcon, TrashIcon } from '@heroicons/react/20/solid' import type { ConfigColumns } from 'datatables.net-dt' import type { DataTableSlots } from 'datatables.net-react' import { useEffect, useState } from 'react' import toast from 'react-hot-toast' import { Link, useFetcher, useRouteLoaderData } from 'react-router' import type { TAdResponse } from '~/apis/common/get-ads' import { Button } from '~/components/ui/button' import { UiTable } from '~/components/ui/table' import { TitleDashboard } from '~/components/ui/title-dashboard' import type { loader } from '~/routes/_admin.lg-admin._dashboard.advertisements._index' import { DialogDelete } from './dialog-delete' export const AdvertisementsPage = () => { const loaderData = useRouteLoaderData( 'routes/_admin.lg-admin._dashboard.advertisements._index', ) const { adsData: dataTable } = loaderData || {} const [selectedAds, setSelectedAds] = useState() const fetcher = useFetcher() useEffect(() => { if (fetcher.data?.success === false) { toast.error(fetcher.data?.message) return } if (fetcher.data?.success === true) { setSelectedAds(undefined) toast.success('Banner iklan berhasil dihapus!') return } // eslint-disable-next-line react-hooks/exhaustive-deps }, [fetcher.data]) const dataColumns: ConfigColumns[] = [ { title: 'No', render: ( _data: unknown, _type: unknown, _row: unknown, meta: { row: number }, ) => { return meta.row + 1 }, }, { title: 'Banner', data: 'image_url' }, { title: 'Link', data: 'url' }, { title: 'Action', data: 'id', }, ] const dataSlot: DataTableSlots = { 1: (value: string) => { return ( {value} ) }, 3: (value: string, _type: unknown, data: TAdResponse) => (
), } return (
{/* TODO: Filter */}
) }