@@ -5,18 +5,38 @@ import Filters from '@/components/Filters'
|
||||
import RefreshButton from '@/components/RefreshButton'
|
||||
import Table from '@/components/Table'
|
||||
import { Eye, Add, Edit2 } from 'iconsax-react'
|
||||
import { Link } from 'react-router-dom'
|
||||
import { Link, useSearchParams } from 'react-router-dom'
|
||||
import { Paths } from '@/config/Paths'
|
||||
import moment from 'moment-jalaali'
|
||||
import type { FilterValues } from '@/components/Filters'
|
||||
import { useGetInvoice } from './hooks/useInvoiceData'
|
||||
import type { InvoiceType } from './types/Types'
|
||||
|
||||
const isValidInvoiceTab = (value: string | null): value is ProformaInvoiceStatusEnum =>
|
||||
Object.values(ProformaInvoiceStatusEnum).includes(value as ProformaInvoiceStatusEnum)
|
||||
|
||||
const ProformaInvoice: FC = () => {
|
||||
const [activeTab, setActiveTab] = useState<ProformaInvoiceStatusEnum>(ProformaInvoiceStatusEnum.ALL)
|
||||
const [searchParams, setSearchParams] = useSearchParams()
|
||||
const tabParam = searchParams.get('tab')
|
||||
const activeTab = isValidInvoiceTab(tabParam) ? tabParam : ProformaInvoiceStatusEnum.ALL
|
||||
const [page, setPage] = useState(1)
|
||||
const [filters, setFilters] = useState<FilterValues>({})
|
||||
|
||||
const setActiveTab = (tab: ProformaInvoiceStatusEnum) => {
|
||||
setSearchParams(
|
||||
(current) => {
|
||||
const next = new URLSearchParams(current)
|
||||
if (tab === ProformaInvoiceStatusEnum.ALL) {
|
||||
next.delete('tab')
|
||||
} else {
|
||||
next.set('tab', tab)
|
||||
}
|
||||
return next
|
||||
},
|
||||
{ replace: true },
|
||||
)
|
||||
}
|
||||
|
||||
const { data, isLoading, refetch, isFetching } = useGetInvoice(page)
|
||||
|
||||
const meta = data?.meta
|
||||
|
||||
Reference in New Issue
Block a user