refactor: fix validation for add gacha roll item

- Pisahkan type dan schema untuk gacha roll item
- Perbaiki validasi gacha roll item
- Parsing angka pada component ControlledInputField
- Update type number untuk component Input dan InputField
This commit is contained in:
Hafid Nur
2025-04-05 07:39:57 +07:00
parent 885d156833
commit 3958ae1098
8 changed files with 58 additions and 27 deletions
+23
View File
@@ -0,0 +1,23 @@
import { z } from 'zod';
export const gachaRollItemSchema = z.object({
itemName: z
.string({
required_error: 'Nama item tidak boleh kosong',
invalid_type_error: 'Nama item harus berupa string',
})
.min(1, 'Nama item tidak boleh kosong'),
quantity: z
.number({
required_error: 'Quantity tidak boleh kosong',
invalid_type_error: 'Quantity harus berupa angka',
})
.min(1, 'Quantity paling sedikit adalah 1'),
chanceRate: z
.number({
required_error: 'Chance rate tidak boleh kosong',
invalid_type_error: 'Chance rate harus berupa angka',
})
.min(0.1, 'Chance rate paling sedikit adalah 0,1')
.max(1, 'Chance rate paling banyak adalah 1'),
});
+1
View File
@@ -1 +1,2 @@
export * from './auth';
export * from './gacha';
+5 -1
View File
@@ -1 +1,5 @@
export {};
export type TGachaRollItem = {
itemName: string;
quantity: number;
chanceRate: number;
};