fixing update type reward & user

This commit is contained in:
Raja Oktafrianto
2025-04-11 10:12:33 +07:00
parent 59d74d4304
commit a1572ae9c8
5 changed files with 64 additions and 21 deletions

View File

@ -55,6 +55,13 @@ const AddDialog = () => {
setAlert({ show: false, message: '' }); setAlert({ show: false, message: '' });
}; };
const RewardType = {
'Daily Check in': 'D',
Referal: 'R'
} as const;
type RewardTypeValue = (typeof RewardType)[keyof typeof RewardType];
const doCreateReward = useCallback( const doCreateReward = useCallback(
async (e: React.FormEvent<HTMLFormElement>) => { async (e: React.FormEvent<HTMLFormElement>) => {
e.preventDefault(); e.preventDefault();
@ -140,15 +147,25 @@ const AddDialog = () => {
Type<span className="text-red-500">*</span> Type<span className="text-red-500">*</span>
</label> </label>
<Input <div className="col-span-6">
className="input col-span-6" <Select
type="text" value={formField.type}
autoComplete="off" onValueChange={(value) => setFormField((prev) => ({ ...prev, type: value }))}
value={formField.type} >
onChange={({ target }) => <SelectTrigger className="w-full">
setFormField((prev) => ({ ...prev, type: target.value })) <SelectValue placeholder="Select Type" />
} </SelectTrigger>
/> <SelectContent>
{Object.entries(RewardType).map(
([label, value]: [string, RewardTypeValue]) => (
<SelectItem key={value} value={value}>
{label}
</SelectItem>
)
)}
</SelectContent>
</Select>
</div>
</div> </div>
<div className="grid grid-cols-8 gap-2 w-full items-center"> <div className="grid grid-cols-8 gap-2 w-full items-center">
<label className="form-label flex items-center gap-1 col-span-2"> <label className="form-label flex items-center gap-1 col-span-2">

View File

@ -55,6 +55,13 @@ const EditDialog = () => {
setAlert({ show: false, message: '' }); setAlert({ show: false, message: '' });
}; };
const RewardType = {
'Daily Check in': 'D',
Referal: 'R'
} as const;
type RewardTypeValue = (typeof RewardType)[keyof typeof RewardType];
const doUpdateReward = useCallback( const doUpdateReward = useCallback(
async (e: React.FormEvent<HTMLFormElement>) => { async (e: React.FormEvent<HTMLFormElement>) => {
e.preventDefault(); e.preventDefault();
@ -161,12 +168,25 @@ const EditDialog = () => {
Type<span className="text-red-500">*</span> Type<span className="text-red-500">*</span>
</label> </label>
<Input <div className="col-span-6">
className="input col-span-6" <Select
type="text" value={formField.type}
value={formField.type} onValueChange={(value) => setFormField((prev) => ({ ...prev, type: value }))}
onChange={(e) => setFormField({ ...formField, type: e.target.value })} >
/> <SelectTrigger className="w-full">
<SelectValue placeholder="Select Type" />
</SelectTrigger>
<SelectContent>
{Object.entries(RewardType).map(
([label, value]: [string, RewardTypeValue]) => (
<SelectItem key={value} value={value}>
{label}
</SelectItem>
)
)}
</SelectContent>
</Select>
</div>
</div> </div>
<div className="grid grid-cols-8 gap-2 w-full items-center"> <div className="grid grid-cols-8 gap-2 w-full items-center">
<label className="form-label flex items-center gap-1 col-span-2"> <label className="form-label flex items-center gap-1 col-span-2">

View File

@ -169,7 +169,7 @@ const ManageRewardContextProvider = ({ children }: { children: React.ReactNode }
order_direction: sorting[0].desc == false ? 'ASC' : 'DESC', order_direction: sorting[0].desc == false ? 'ASC' : 'DESC',
filter: JSON.stringify(filter) filter: JSON.stringify(filter)
}); });
// console.log('API Response:', response?.data.list); // Cek data dari API // console.log('API Response:', response?.data.list);
// console.log('reward list :', response); // console.log('reward list :', response);
setRewards(response?.data.list); setRewards(response?.data.list);
return { data: response?.data.list, totalCount: response?.data.total_count }; return { data: response?.data.list, totalCount: response?.data.total_count };

View File

@ -284,9 +284,11 @@ const AddDialog = () => {
<div className="grow"> <div className="grow">
<Select <Select
value={formField.id_role} value={formField.id_role}
onValueChange={(value) => { onValueChange={(id_role) => {
console.log('Role selected:', value); setTimeout(() => {
setFormField((prev) => ({ ...prev, id_role: value })); setFormField((prev) => ({ ...prev, id_role }));
}, 0);
// console.log('Role selected:', value);`
}} }}
> >
<SelectTrigger> <SelectTrigger>
@ -310,7 +312,11 @@ const AddDialog = () => {
<div className="grow"> <div className="grow">
<Select <Select
value={formField.status} value={formField.status}
onValueChange={(status) => setFormField((prev) => ({ ...prev, status }))} onValueChange={(status) => {
setTimeout(() => {
setFormField((prev) => ({ ...prev, status }));
}, 0);
}}
> >
<SelectTrigger> <SelectTrigger>
<SelectValue placeholder="Select" /> <SelectValue placeholder="Select" />

View File

@ -189,7 +189,7 @@ const ManageUserContextProvider = ({ children }: { children: React.ReactNode })
order_direction: sorting[0].desc == false ? 'ASC' : 'DESC', order_direction: sorting[0].desc == false ? 'ASC' : 'DESC',
filter: JSON.stringify(filter) filter: JSON.stringify(filter)
}); });
// console.log('response api:', response); console.log('response api:', response);
return { data: response?.data.list, totalCount: response?.data.total_count }; return { data: response?.data.list, totalCount: response?.data.total_count };
}; };