mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-20 13:32:00 +00:00
Merge branch 'fix/daily-checklist' into 'development'
[FIX/FE] Daily Checklist See merge request mbugroup/lti-web-client!483
This commit is contained in:
@@ -20,6 +20,7 @@ interface DatePickerProps {
|
|||||||
disabled?: boolean;
|
disabled?: boolean;
|
||||||
placeholder?: string;
|
placeholder?: string;
|
||||||
formatDisplay?: (date: string) => string;
|
formatDisplay?: (date: string) => string;
|
||||||
|
hasError?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function DatePicker({
|
export function DatePicker({
|
||||||
@@ -28,6 +29,7 @@ export function DatePicker({
|
|||||||
disabled = false,
|
disabled = false,
|
||||||
placeholder = 'Select date',
|
placeholder = 'Select date',
|
||||||
formatDisplay,
|
formatDisplay,
|
||||||
|
hasError = false,
|
||||||
}: DatePickerProps) {
|
}: DatePickerProps) {
|
||||||
const [open, setOpen] = useState(false);
|
const [open, setOpen] = useState(false);
|
||||||
const [currentMonth, setCurrentMonth] = useState(() => {
|
const [currentMonth, setCurrentMonth] = useState(() => {
|
||||||
@@ -154,7 +156,7 @@ export function DatePicker({
|
|||||||
<Button
|
<Button
|
||||||
variant='outline'
|
variant='outline'
|
||||||
disabled={disabled}
|
disabled={disabled}
|
||||||
className='w-full justify-start text-left font-normal border-gray-200 hover:bg-gray-50'
|
className={`w-full justify-start text-left font-normal hover:bg-gray-50 ${hasError ? 'border-red-500 focus:ring-red-500' : 'border-gray-200'}`}
|
||||||
>
|
>
|
||||||
<CalendarIcon className='mr-2 h-4 w-4 text-gray-500' />
|
<CalendarIcon className='mr-2 h-4 w-4 text-gray-500' />
|
||||||
{date ? (
|
{date ? (
|
||||||
|
|||||||
@@ -181,6 +181,8 @@ export function DailyChecklistContent() {
|
|||||||
const [initialLoading, setInitialLoading] = useState(!!checklistIdFromUrl);
|
const [initialLoading, setInitialLoading] = useState(!!checklistIdFromUrl);
|
||||||
|
|
||||||
const [emptyKandangEndDate, setEmptyKandangEndDate] = useState<string>('');
|
const [emptyKandangEndDate, setEmptyKandangEndDate] = useState<string>('');
|
||||||
|
const [emptyKandangEndDateError, setEmptyKandangEndDateError] =
|
||||||
|
useState<string>('');
|
||||||
|
|
||||||
const [existingDocuments, setExistingDocuments] = useState<Document[]>([]);
|
const [existingDocuments, setExistingDocuments] = useState<Document[]>([]);
|
||||||
const [documents, setDocuments] = useState<File[]>([]);
|
const [documents, setDocuments] = useState<File[]>([]);
|
||||||
@@ -788,6 +790,11 @@ export function DailyChecklistContent() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (emptyKandang && !emptyKandangEndDate) {
|
||||||
|
setEmptyKandangEndDateError('Tanggal akhir kandang kosong wajib diisi');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
setIsLoadingDraft(true);
|
setIsLoadingDraft(true);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -865,6 +872,11 @@ export function DailyChecklistContent() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (emptyKandang && !emptyKandangEndDate) {
|
||||||
|
setEmptyKandangEndDateError('Tanggal akhir kandang kosong wajib diisi');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!isKandangEmpty) {
|
if (!isKandangEmpty) {
|
||||||
if (selectedEmployees.length === 0) {
|
if (selectedEmployees.length === 0) {
|
||||||
toast.error('Pilih minimal 1 ABK');
|
toast.error('Pilih minimal 1 ABK');
|
||||||
@@ -1224,11 +1236,20 @@ export function DailyChecklistContent() {
|
|||||||
<div className='mt-1.5'>
|
<div className='mt-1.5'>
|
||||||
<DatePicker
|
<DatePicker
|
||||||
date={emptyKandangEndDate}
|
date={emptyKandangEndDate}
|
||||||
onDateChange={setEmptyKandangEndDate}
|
onDateChange={(val) => {
|
||||||
|
setEmptyKandangEndDate(val);
|
||||||
|
if (val) setEmptyKandangEndDateError('');
|
||||||
|
}}
|
||||||
disabled={!isChecklistStatusDraft}
|
disabled={!isChecklistStatusDraft}
|
||||||
placeholder='Pilih tanggal'
|
placeholder='Pilih tanggal'
|
||||||
formatDisplay={formatDateForDisplay}
|
formatDisplay={formatDateForDisplay}
|
||||||
|
hasError={!!emptyKandangEndDateError}
|
||||||
/>
|
/>
|
||||||
|
{emptyKandangEndDateError && (
|
||||||
|
<p className='text-xs text-red-500 mt-1'>
|
||||||
|
{emptyKandangEndDateError}
|
||||||
|
</p>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user