import { Field, Input, Label } from '@headlessui/react' import { useState } from 'react' import { twMerge } from 'tailwind-merge' import { PlusIcon } from '~/components/icons/plus' import { Button } from '~/components/ui/button' import { UiTable } from '~/components/ui/table' import { TitleDashboard } from '~/components/ui/title-dashboard' import { BANNER } from '~/data/contents' type BannerUploadProperties = { onBannerChange?: (file: File | undefined) => void onLinkChange?: (link: string) => void } type TStatusColors = 'draft' | 'active' | 'inactive' export const AdvertisementsPage = ({ onBannerChange, onLinkChange, }: BannerUploadProperties) => { const [banner, setBanner] = useState() const [link, setLink] = useState('') const [listAdvertisement, setListAdvertisement] = useState(true) const handleFileChange = (event: React.ChangeEvent) => { const file = event.target.files?.[0] || undefined setBanner(file) onBannerChange?.(file) } const handleLinkChange = (event: React.ChangeEvent) => { const newLink = event.target.value setLink(newLink) onLinkChange?.(newLink) } const dataBanner = BANNER const dataColumns = [ { title: 'No', data: 'id' }, { title: 'Banner', data: 'urlImage' }, { title: 'Link', data: 'link' }, { title: 'Tgl Create', data: 'createdAt' }, { title: 'Status', data: 'status' }, ] const dataSlot = { 1: (value: string) => { return (
{`banner
) }, 4: (value: string) => { const statusColors = { draft: 'bg-gray-300', active: 'bg-[#04D182]', inactive: 'bg-[#F96D19]', } const status = value as TStatusColors return ( {status} ) }, } const switchView = () => { setListAdvertisement(!listAdvertisement) } return (
{listAdvertisement && (
{banner && (
Banner Preview
)}
)} {!listAdvertisement && ( )}
) }