fix field Wallet and Wallet Rule

- sync form field with response field
- sync group with wallet on create Wallet Rule
This commit is contained in:
Wikzyy
2025-04-10 13:55:00 +07:00
parent 07dfcf6074
commit 0c049086e9
3 changed files with 39 additions and 19 deletions

View File

@ -73,7 +73,7 @@ const ManageWalletContextProvider = ({ children }: { children: React.ReactNode }
const columns = useMemo<ColumnDef<any>[]>(
() => [
{
accessorFn: (row) => row.Wallet_name,
accessorFn: (row) => row.name,
id: 'name',
header: ({ column }) => <DataGridColumnHeader title="Name" column={column} />,
enableSorting: true,
@ -83,7 +83,7 @@ const ManageWalletContextProvider = ({ children }: { children: React.ReactNode }
}
},
{
accessorFn: (row) => row.Wallet_description,
accessorFn: (row) => row.description,
id: 'description',
header: ({ column }) => <DataGridColumnHeader title="Description" column={column} />,
enableSorting: true,
@ -93,13 +93,13 @@ const ManageWalletContextProvider = ({ children }: { children: React.ReactNode }
}
},
{
accessorFn: (row) => row.Wallet_status,
accessorFn: (row) => row.status,
id: 'status',
header: ({ column }) => <DataGridColumnHeader title="Status" column={column} />,
enableSorting: true,
enableHiding: false,
cell: ({ row }) => {
const isActive = row.original.Wallet_status === 'Y';
const isActive = row.original.status === 'Y';
return (
<span
@ -155,7 +155,7 @@ const ManageWalletContextProvider = ({ children }: { children: React.ReactNode }
order_direction: sorting[0].desc == false ? 'ASC' : 'DESC',
filter: JSON.stringify(filter)
});
// console.log(response?.data);
console.log(response?.data);
setWallets(response?.data.list);
return { data: response?.data.list, totalCount: response?.data.total_count };
} catch (error) {
@ -183,7 +183,7 @@ const ManageWalletContextProvider = ({ children }: { children: React.ReactNode }
pagination={{ size: 25 }}
toolbar={<ListToolbar />}
layout={{ card: true }}
sorting={[{ id: 'created_at', desc: true }]}
sorting={[{ id: 'wallets.created_at', desc: true }]}
serverSide={true}
onFetchData={({ pageIndex, pageSize, sorting, columnFilters }) =>
getWalletLists(pageIndex, pageSize, sorting, columnFilters)

View File

@ -40,14 +40,24 @@ interface GroupProps {
status: string;
}
interface WalletProps {
ID: string;
interface WalletGroupProps {
id: string;
name: string;
id_currency: string;
description: string;
status: string;
}
interface WalletProps {
id: string;
name: string;
id_currency: string;
status: string;
group: WalletGroupProps[];
}
const API_URL_WALLET = apiConfig.service_wallet;
const API_URL_MASTERDATA = apiConfig.service_master_data;
const AddDialog = () => {
const { showAddDialog, handleAddDialog, selectedWalletRule } = useManageWalletRuleContext();
const { reload } = useDataGrid();
@ -143,7 +153,7 @@ const AddDialog = () => {
const getWalletLists = async (sorting: any) => {
try {
const response = await GetData(`${API_URL_WALLET}/dashboard/wallet`, {
const response = await GetData(`${API_URL_MASTERDATA}/wallet/list`, {
limit: 100,
page: 1,
with_deleted: false,
@ -158,8 +168,11 @@ const AddDialog = () => {
}
};
const selectedWallet = wallets.find((wallet) => wallet.id === formField.id_wallet);
const filteredGroups = selectedWallet ? selectedWallet.group : [];
useEffect(() => {
getWalletLists([{ id: 'name', desc: false }]);
getWalletLists([{ id: 'wallets.name', desc: false }]);
getGroupLists([{ id: 'name', desc: false }]);
}, []);
@ -193,14 +206,16 @@ const AddDialog = () => {
</label>
<Select
value={formField.id_wallet}
onValueChange={(value) => setFormField({ ...formField, id_wallet: value })}
onValueChange={(value) =>
setFormField({ ...formField, id_wallet: value, id_group: '' })
}
>
<SelectTrigger>
<SelectValue placeholder="Select Wallet Type" />
</SelectTrigger>
<SelectContent>
{wallets.map((wallet) => (
<SelectItem key={wallet.ID} value={wallet.ID}>
<SelectItem key={wallet.id} value={wallet.id}>
{wallet.name}
</SelectItem>
))}
@ -217,16 +232,21 @@ const AddDialog = () => {
<Select
value={formField.id_group}
onValueChange={(value) => setFormField({ ...formField, id_group: value })}
disabled={filteredGroups.length === 0}
>
<SelectTrigger>
<SelectValue placeholder="Select Group Type" />
</SelectTrigger>
<SelectContent>
{groups.map((group) => (
<SelectItem key={group.ID} value={group.ID}>
{group.name}
</SelectItem>
))}
{filteredGroups.length > 0 ? (
filteredGroups.map((group) => (
<SelectItem key={group.id} value={group.id}>
{group.name}
</SelectItem>
))
) : (
<SelectItem value="empty">No groups available</SelectItem>
)}
</SelectContent>
</Select>
</div>

View File

@ -222,7 +222,7 @@ const ManageWalletRuleContextProvider = ({ children }: { children: React.ReactNo
order_direction: sorting[0].desc == false ? 'ASC' : 'DESC',
filter: JSON.stringify(filter)
});
console.log(response?.data);
// console.log(response?.data);
setWalletRules(response?.data.list);
return { data: response?.data.list, totalCount: response?.data.total_count };
} catch (error) {