Merge branch 'fix/dateinput' into 'development'

[FIX/FE] Fixing Dateinput Component

See merge request mbugroup/lti-web-client!209
This commit is contained in:
Rivaldi A N S
2026-01-19 09:04:19 +00:00
7 changed files with 28 additions and 19 deletions
+18 -2
View File
@@ -113,7 +113,15 @@ const DateInput = ({
}; };
const handleSelectSingle = (selectedDate?: Date) => { const handleSelectSingle = (selectedDate?: Date) => {
if (!selectedDate) return; if (!selectedDate) {
setSelected(undefined);
setDisplayValue('');
const syntheticEvent = {
target: { name, value: '' },
} as unknown as React.ChangeEvent<HTMLInputElement>;
onChange?.(syntheticEvent);
return;
}
if (minDate && selectedDate < minDate) { if (minDate && selectedDate < minDate) {
setInternalError(`Tanggal tidak boleh sebelum ${min}`); setInternalError(`Tanggal tidak boleh sebelum ${min}`);
return; return;
@@ -136,7 +144,15 @@ const DateInput = ({
}; };
const handleSelectRange = (range?: { from?: Date; to?: Date }) => { const handleSelectRange = (range?: { from?: Date; to?: Date }) => {
if (!range) return; if (!range) {
setSelectedRange({});
setDisplayValue('');
const syntheticEvent = {
target: { name, value: { from: '', to: '' } },
} as unknown as React.ChangeEvent<HTMLInputElement>;
onChange?.(syntheticEvent);
return;
}
setSelectedRange(range); setSelectedRange(range);
const fromStr = range.from ? formatDate(range.from, 'DD/MM/YYYY') : ''; const fromStr = range.from ? formatDate(range.from, 'DD/MM/YYYY') : '';
@@ -253,7 +253,6 @@ export const generateDashboardPDF = async ({
toast.success('PDF exported successfully!', { id: 'export-pdf' }); toast.success('PDF exported successfully!', { id: 'export-pdf' });
} catch (error) { } catch (error) {
console.error('Error generating PDF:', error);
toast.error('Failed to export PDF. Please try again.', { toast.error('Failed to export PDF. Please try again.', {
id: 'export-pdf', id: 'export-pdf',
}); });
@@ -7,6 +7,7 @@ import { formatDate, formatNumber, formatVechicleNumber } from '@/lib/helper';
import { format } from 'path'; import { format } from 'path';
import { date } from 'yup'; import { date } from 'yup';
import pdfStyles from '@/components/pages/marketing/pdf/styles/MarketingPDFStyles'; import pdfStyles from '@/components/pages/marketing/pdf/styles/MarketingPDFStyles';
import toast from 'react-hot-toast';
interface DeliveryOrderExportProps { interface DeliveryOrderExportProps {
data?: Marketing; data?: Marketing;
@@ -23,7 +24,7 @@ const DeliveryOrderExport = ({
const handleDownloadPDF = async () => { const handleDownloadPDF = async () => {
if (!salesData) { if (!salesData) {
alert('No sales order data available'); toast.error('No sales order data available');
return; return;
} }
setIsGeneratingPDF(true); setIsGeneratingPDF(true);
@@ -40,8 +41,7 @@ const DeliveryOrderExport = ({
document.body.removeChild(link); document.body.removeChild(link);
URL.revokeObjectURL(url); URL.revokeObjectURL(url);
} catch (error) { } catch (error) {
console.error('Error generating PDF:', error); toast.error('Failed to generate PDF. Please try again.');
alert('Failed to generate PDF. Please try again.');
} finally { } finally {
setIsGeneratingPDF(false); setIsGeneratingPDF(false);
} }
@@ -5,6 +5,7 @@ import { Document, Image, Page, pdf, Text, View } from '@react-pdf/renderer';
import { useMemo, useState } from 'react'; import { useMemo, useState } from 'react';
import { formatDate, formatNumber } from '@/lib/helper'; import { formatDate, formatNumber } from '@/lib/helper';
import pdfStyles from '@/components/pages/marketing/pdf/styles/MarketingPDFStyles'; import pdfStyles from '@/components/pages/marketing/pdf/styles/MarketingPDFStyles';
import toast from 'react-hot-toast';
interface SalesOrderExportProps { interface SalesOrderExportProps {
data?: Marketing; data?: Marketing;
@@ -17,7 +18,7 @@ const SalesOrderExport = ({ data }: SalesOrderExportProps) => {
const handleDownloadPDF = async () => { const handleDownloadPDF = async () => {
if (!salesData) { if (!salesData) {
alert('No sales order data available'); toast.error('No sales order data available');
return; return;
} }
setIsGeneratingPDF(true); setIsGeneratingPDF(true);
@@ -32,8 +33,7 @@ const SalesOrderExport = ({ data }: SalesOrderExportProps) => {
document.body.removeChild(link); document.body.removeChild(link);
URL.revokeObjectURL(url); URL.revokeObjectURL(url);
} catch (error) { } catch (error) {
console.error('Error generating PDF:', error); toast.error('Failed to generate PDF. Please try again.');
alert('Failed to generate PDF. Please try again.');
} finally { } finally {
setIsGeneratingPDF(false); setIsGeneratingPDF(false);
} }
+3 -6
View File
@@ -48,8 +48,7 @@ export class SalesOrderService extends BaseApiService<
}, },
}); });
} catch (error) { } catch (error) {
console.error('Error approve marketing:', error); throw error;
return undefined;
} }
} }
@@ -72,8 +71,7 @@ export class SalesOrderService extends BaseApiService<
}, },
}); });
} catch (error) { } catch (error) {
console.error('Error bulk approve marketing:', error); throw error;
return undefined;
} }
} }
@@ -95,8 +93,7 @@ export class SalesOrderService extends BaseApiService<
}, },
}); });
} catch (error) { } catch (error) {
console.error('Error delivery marketing:', error); throw error;
return undefined;
} }
} }
} }
+1 -2
View File
@@ -35,8 +35,7 @@ export class ChickinService extends BaseApiService<
}, },
}); });
} catch (error) { } catch (error) {
console.error('Error approve chickin:', error); throw error;
return undefined;
} }
} }
} }
@@ -25,8 +25,6 @@ export const createDashboardFilterSlice: StateCreator<
setFilterValues: (values) => set({ filterValues: values }), setFilterValues: (values) => set({ filterValues: values }),
resetFilterValues: () => { resetFilterValues: () => {
alert('reset filter values');
return set({ return set({
filterValues: { filterValues: {
startDate: '', startDate: '',