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: '' });
};
const RewardType = {
'Daily Check in': 'D',
Referal: 'R'
} as const;
type RewardTypeValue = (typeof RewardType)[keyof typeof RewardType];
const doCreateReward = useCallback(
async (e: React.FormEvent<HTMLFormElement>) => {
e.preventDefault();
@ -140,15 +147,25 @@ const AddDialog = () => {
Type<span className="text-red-500">*</span>
</label>
<Input
className="input col-span-6"
type="text"
autoComplete="off"
value={formField.type}
onChange={({ target }) =>
setFormField((prev) => ({ ...prev, type: target.value }))
}
/>
<div className="col-span-6">
<Select
value={formField.type}
onValueChange={(value) => setFormField((prev) => ({ ...prev, type: 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 className="grid grid-cols-8 gap-2 w-full items-center">
<label className="form-label flex items-center gap-1 col-span-2">

View File

@ -55,6 +55,13 @@ const EditDialog = () => {
setAlert({ show: false, message: '' });
};
const RewardType = {
'Daily Check in': 'D',
Referal: 'R'
} as const;
type RewardTypeValue = (typeof RewardType)[keyof typeof RewardType];
const doUpdateReward = useCallback(
async (e: React.FormEvent<HTMLFormElement>) => {
e.preventDefault();
@ -161,12 +168,25 @@ const EditDialog = () => {
Type<span className="text-red-500">*</span>
</label>
<Input
className="input col-span-6"
type="text"
value={formField.type}
onChange={(e) => setFormField({ ...formField, type: e.target.value })}
/>
<div className="col-span-6">
<Select
value={formField.type}
onValueChange={(value) => setFormField((prev) => ({ ...prev, type: 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 className="grid grid-cols-8 gap-2 w-full items-center">
<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',
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);
setRewards(response?.data.list);
return { data: response?.data.list, totalCount: response?.data.total_count };

View File

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

View File

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