Account
This commit is contained in:
parent
5723d49090
commit
5def10dc64
@ -65,7 +65,7 @@ type AccountTypeWithAction = AccountType & {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Dummy Account Data
|
// Dummy Account Data
|
||||||
const accountsData: AccountType[] = [
|
export const accountsData: AccountType[] = [
|
||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
code: '1-10001',
|
code: '1-10001',
|
||||||
|
|||||||
@ -16,6 +16,9 @@ import CustomTextField from '@/@core/components/mui/TextField'
|
|||||||
import { getLocalizedUrl } from '@/utils/i18n'
|
import { getLocalizedUrl } from '@/utils/i18n'
|
||||||
import { Locale } from '@/configs/i18n'
|
import { Locale } from '@/configs/i18n'
|
||||||
import { useParams } from 'next/navigation'
|
import { useParams } from 'next/navigation'
|
||||||
|
import AccountFormDrawer, { AccountType } from '../account/AccountFormDrawer'
|
||||||
|
import { accountsData } from '../account/AccountListTable'
|
||||||
|
import { Button } from '@mui/material'
|
||||||
|
|
||||||
// Types
|
// Types
|
||||||
interface BankAccount {
|
interface BankAccount {
|
||||||
@ -250,10 +253,15 @@ const DebouncedInput = ({
|
|||||||
}
|
}
|
||||||
const CashBankList = () => {
|
const CashBankList = () => {
|
||||||
const [searchQuery, setSearchQuery] = useState('')
|
const [searchQuery, setSearchQuery] = useState('')
|
||||||
|
const [editingAccount, setEditingAccount] = useState<AccountType | null>(null)
|
||||||
|
const [addAccountOpen, setAddAccountOpen] = useState(false)
|
||||||
|
const [data, setData] = useState<AccountType[]>(accountsData)
|
||||||
const { lang: locale } = useParams()
|
const { lang: locale } = useParams()
|
||||||
|
|
||||||
// Handle button clicks
|
const handleCloseDrawer = () => {
|
||||||
const handleAccountAction = () => {}
|
setAddAccountOpen(false)
|
||||||
|
setEditingAccount(null)
|
||||||
|
}
|
||||||
|
|
||||||
// Filter and search logic
|
// Filter and search logic
|
||||||
const filteredAccounts = useMemo(() => {
|
const filteredAccounts = useMemo(() => {
|
||||||
@ -267,60 +275,80 @@ const CashBankList = () => {
|
|||||||
}, [searchQuery])
|
}, [searchQuery])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Box sx={{ p: 3 }}>
|
<>
|
||||||
{/* Search and Filters */}
|
<Box sx={{ p: 3 }}>
|
||||||
<Box sx={{ mb: 4 }}>
|
{/* Search and Filters */}
|
||||||
<Grid container spacing={2} sx={{ mb: 3 }}>
|
<Box sx={{ mb: 4 }}>
|
||||||
<Grid size={{ xs: 12, md: 6 }}>
|
<div className='flex justify-between items-center'>
|
||||||
<DebouncedInput
|
<DebouncedInput
|
||||||
value={searchQuery}
|
value={searchQuery}
|
||||||
onChange={value => setSearchQuery(value as string)}
|
onChange={value => setSearchQuery(value as string)}
|
||||||
placeholder='Cari '
|
placeholder='Cari '
|
||||||
className='max-sm:is-full'
|
className='max-sm:is-full'
|
||||||
/>
|
/>
|
||||||
</Grid>
|
<Box>
|
||||||
|
<Button
|
||||||
|
variant='contained'
|
||||||
|
className='max-sm:is-full is-auto'
|
||||||
|
startIcon={<i className='tabler-plus' />}
|
||||||
|
onClick={() => {
|
||||||
|
setEditingAccount(null)
|
||||||
|
setAddAccountOpen(true)
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Tambah Akun
|
||||||
|
</Button>
|
||||||
|
</Box>
|
||||||
|
</div>
|
||||||
|
</Box>
|
||||||
|
|
||||||
|
{/* Account Cards */}
|
||||||
|
<Grid container spacing={3}>
|
||||||
|
{filteredAccounts.length > 0 ? (
|
||||||
|
filteredAccounts.map(account => (
|
||||||
|
<Grid key={account.id} size={{ xs: 12, lg: 6, xl: 4 }}>
|
||||||
|
<CashBankCard
|
||||||
|
title={account.title}
|
||||||
|
accountNumber={account.accountNumber}
|
||||||
|
balances={account.balances}
|
||||||
|
chartData={account.chartData}
|
||||||
|
categories={account.categories}
|
||||||
|
chartColor={account.chartColor}
|
||||||
|
currency={account.currency}
|
||||||
|
showButton={account.accountType !== 'cash'}
|
||||||
|
href={getLocalizedUrl(`/apps/cash-bank/${account.accountNumber}/detail`, locale as Locale)}
|
||||||
|
/>
|
||||||
|
</Grid>
|
||||||
|
))
|
||||||
|
) : (
|
||||||
|
<Grid size={{ xs: 12 }}>
|
||||||
|
<Box
|
||||||
|
sx={{
|
||||||
|
textAlign: 'center',
|
||||||
|
py: 8,
|
||||||
|
backgroundColor: 'grey.50',
|
||||||
|
borderRadius: 2
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Typography variant='h6' color='text.secondary' gutterBottom>
|
||||||
|
Tidak ada akun yang ditemukan
|
||||||
|
</Typography>
|
||||||
|
<Typography variant='body2' color='text.secondary'>
|
||||||
|
Coba ubah kata kunci pencarian atau filter yang digunakan
|
||||||
|
</Typography>
|
||||||
|
</Box>
|
||||||
|
</Grid>
|
||||||
|
)}
|
||||||
</Grid>
|
</Grid>
|
||||||
</Box>
|
</Box>
|
||||||
|
<AccountFormDrawer
|
||||||
{/* Account Cards */}
|
open={addAccountOpen}
|
||||||
<Grid container spacing={3}>
|
handleClose={handleCloseDrawer}
|
||||||
{filteredAccounts.length > 0 ? (
|
accountData={data}
|
||||||
filteredAccounts.map(account => (
|
setData={setData}
|
||||||
<Grid key={account.id} size={{ xs: 12, lg: 6, xl: 4 }}>
|
editingAccount={editingAccount}
|
||||||
<CashBankCard
|
/>
|
||||||
title={account.title}
|
</>
|
||||||
accountNumber={account.accountNumber}
|
|
||||||
balances={account.balances}
|
|
||||||
chartData={account.chartData}
|
|
||||||
categories={account.categories}
|
|
||||||
chartColor={account.chartColor}
|
|
||||||
currency={account.currency}
|
|
||||||
showButton={account.accountType !== 'cash'}
|
|
||||||
href={getLocalizedUrl(`/apps/cash-bank/${account.accountNumber}/detail`, locale as Locale)}
|
|
||||||
/>
|
|
||||||
</Grid>
|
|
||||||
))
|
|
||||||
) : (
|
|
||||||
<Grid size={{ xs: 12 }}>
|
|
||||||
<Box
|
|
||||||
sx={{
|
|
||||||
textAlign: 'center',
|
|
||||||
py: 8,
|
|
||||||
backgroundColor: 'grey.50',
|
|
||||||
borderRadius: 2
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<Typography variant='h6' color='text.secondary' gutterBottom>
|
|
||||||
Tidak ada akun yang ditemukan
|
|
||||||
</Typography>
|
|
||||||
<Typography variant='body2' color='text.secondary'>
|
|
||||||
Coba ubah kata kunci pencarian atau filter yang digunakan
|
|
||||||
</Typography>
|
|
||||||
</Box>
|
|
||||||
</Grid>
|
|
||||||
)}
|
|
||||||
</Grid>
|
|
||||||
</Box>
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user