perbaikan upload file maks 2mb dan perbaikan input jumlah anggota keluarga
This commit is contained in:
@@ -2,6 +2,7 @@ import { useId, useMemo, type ChangeEvent } from "react";
|
||||
import { Button } from "@/components/ui/button";
|
||||
import { Label } from "@/components/ui/label";
|
||||
import { FileUp, FileText, Image as ImageIcon, X } from "lucide-react";
|
||||
import { toast } from "sonner";
|
||||
|
||||
type DocumentUploadFieldProps = {
|
||||
label: string;
|
||||
@@ -45,6 +46,13 @@ export function DocumentUploadField({
|
||||
const file = event.target.files?.[0];
|
||||
event.target.value = "";
|
||||
if (!file || !onChange) return;
|
||||
|
||||
const MAX_SIZE = 2 * 1024 * 1024; // 2MB
|
||||
if (file.size > MAX_SIZE) {
|
||||
toast.error("Pastikan gambar tidak lebih besar dari 2mb");
|
||||
return;
|
||||
}
|
||||
|
||||
const dataUrl = await readFileAsDataUrl(file);
|
||||
onChange(dataUrl);
|
||||
};
|
||||
|
||||
@@ -98,7 +98,7 @@ export default function RecipientsPage() {
|
||||
gender: "male" as "male" | "female",
|
||||
address: "",
|
||||
phone: "",
|
||||
familyMembers: 1,
|
||||
familyMembers: 1 as number | "",
|
||||
incomePerMonth: 0,
|
||||
placeOfWorshipId: 0,
|
||||
notes: "",
|
||||
@@ -228,7 +228,7 @@ export default function RecipientsPage() {
|
||||
gender: formData.gender,
|
||||
address: formData.address || undefined,
|
||||
phone: formData.phone || undefined,
|
||||
familyMembers: formData.familyMembers,
|
||||
familyMembers: Number(formData.familyMembers) || 1,
|
||||
incomePerMonth: formData.incomePerMonth,
|
||||
placeOfWorshipId: resolvedPlaceOfWorshipId,
|
||||
notes: formData.notes || undefined,
|
||||
@@ -292,7 +292,7 @@ export default function RecipientsPage() {
|
||||
gender: formData.gender,
|
||||
address: formData.address || undefined,
|
||||
phone: formData.phone || undefined,
|
||||
familyMembers: formData.familyMembers,
|
||||
familyMembers: Number(formData.familyMembers) || 1,
|
||||
incomePerMonth: formData.incomePerMonth,
|
||||
placeOfWorshipId: resolvedPlaceOfWorshipId,
|
||||
notes: formData.notes || undefined,
|
||||
@@ -415,7 +415,7 @@ export default function RecipientsPage() {
|
||||
value={formData.ktpDocument}
|
||||
onChange={(value) => updateFormData({ ktpDocument: value ?? "" })}
|
||||
required
|
||||
helperText="JPG, PNG, PDF - Maks 5MB"
|
||||
helperText="JPG, PNG, PDF - Maks 2MB"
|
||||
/>
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-3">
|
||||
<DocumentUploadField
|
||||
@@ -440,7 +440,7 @@ export default function RecipientsPage() {
|
||||
</div>
|
||||
<div className="space-y-1.5">
|
||||
<Label className="text-xs">Jumlah Anggota Keluarga</Label>
|
||||
<Input type="number" min={1} value={formData.familyMembers} onChange={(e) => updateFormData({ familyMembers: parseInt(e.target.value) || 1 })} className="h-9" />
|
||||
<Input type="number" min={1} value={formData.familyMembers} onChange={(e) => updateFormData({ familyMembers: e.target.value === "" ? "" : parseInt(e.target.value) })} className="h-9" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="grid grid-cols-2 gap-3">
|
||||
@@ -648,7 +648,7 @@ export default function RecipientsPage() {
|
||||
value={formData.ktpDocument}
|
||||
onChange={(value) => updateFormData({ ktpDocument: value ?? "" })}
|
||||
required
|
||||
helperText="JPG, PNG, PDF - Maks 5MB"
|
||||
helperText="JPG, PNG, PDF - Maks 2MB"
|
||||
/>
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-3">
|
||||
<DocumentUploadField
|
||||
@@ -673,7 +673,7 @@ export default function RecipientsPage() {
|
||||
</div>
|
||||
<div className="space-y-1.5">
|
||||
<Label className="text-xs">Jumlah Anggota Keluarga</Label>
|
||||
<Input type="number" value={formData.familyMembers} onChange={(e) => updateFormData({ familyMembers: parseInt(e.target.value) || 1 })} className="h-9" />
|
||||
<Input type="number" min={1} value={formData.familyMembers} onChange={(e) => updateFormData({ familyMembers: e.target.value === "" ? "" : parseInt(e.target.value) })} className="h-9" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="grid grid-cols-1 gap-3">
|
||||
|
||||
Reference in New Issue
Block a user