Merge branch 'development' of gitlab.com:mbugroup/lti-web-client into dev/hotfix/restu

This commit is contained in:
rstubryan
2026-01-19 16:04:40 +07:00
7 changed files with 28 additions and 19 deletions
+18 -2
View File
@@ -113,7 +113,15 @@ const DateInput = ({
};
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) {
setInternalError(`Tanggal tidak boleh sebelum ${min}`);
return;
@@ -136,7 +144,15 @@ const DateInput = ({
};
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);
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' });
} catch (error) {
console.error('Error generating PDF:', error);
toast.error('Failed to export PDF. Please try again.', {
id: 'export-pdf',
});
@@ -7,6 +7,7 @@ import { formatDate, formatNumber, formatVechicleNumber } from '@/lib/helper';
import { format } from 'path';
import { date } from 'yup';
import pdfStyles from '@/components/pages/marketing/pdf/styles/MarketingPDFStyles';
import toast from 'react-hot-toast';
interface DeliveryOrderExportProps {
data?: Marketing;
@@ -23,7 +24,7 @@ const DeliveryOrderExport = ({
const handleDownloadPDF = async () => {
if (!salesData) {
alert('No sales order data available');
toast.error('No sales order data available');
return;
}
setIsGeneratingPDF(true);
@@ -40,8 +41,7 @@ const DeliveryOrderExport = ({
document.body.removeChild(link);
URL.revokeObjectURL(url);
} catch (error) {
console.error('Error generating PDF:', error);
alert('Failed to generate PDF. Please try again.');
toast.error('Failed to generate PDF. Please try again.');
} finally {
setIsGeneratingPDF(false);
}
@@ -5,6 +5,7 @@ import { Document, Image, Page, pdf, Text, View } from '@react-pdf/renderer';
import { useMemo, useState } from 'react';
import { formatDate, formatNumber } from '@/lib/helper';
import pdfStyles from '@/components/pages/marketing/pdf/styles/MarketingPDFStyles';
import toast from 'react-hot-toast';
interface SalesOrderExportProps {
data?: Marketing;
@@ -17,7 +18,7 @@ const SalesOrderExport = ({ data }: SalesOrderExportProps) => {
const handleDownloadPDF = async () => {
if (!salesData) {
alert('No sales order data available');
toast.error('No sales order data available');
return;
}
setIsGeneratingPDF(true);
@@ -32,8 +33,7 @@ const SalesOrderExport = ({ data }: SalesOrderExportProps) => {
document.body.removeChild(link);
URL.revokeObjectURL(url);
} catch (error) {
console.error('Error generating PDF:', error);
alert('Failed to generate PDF. Please try again.');
toast.error('Failed to generate PDF. Please try again.');
} finally {
setIsGeneratingPDF(false);
}
+3 -6
View File
@@ -48,8 +48,7 @@ export class SalesOrderService extends BaseApiService<
},
});
} catch (error) {
console.error('Error approve marketing:', error);
return undefined;
throw error;
}
}
@@ -72,8 +71,7 @@ export class SalesOrderService extends BaseApiService<
},
});
} catch (error) {
console.error('Error bulk approve marketing:', error);
return undefined;
throw error;
}
}
@@ -95,8 +93,7 @@ export class SalesOrderService extends BaseApiService<
},
});
} catch (error) {
console.error('Error delivery marketing:', error);
return undefined;
throw error;
}
}
}
+1 -2
View File
@@ -35,8 +35,7 @@ export class ChickinService extends BaseApiService<
},
});
} catch (error) {
console.error('Error approve chickin:', error);
return undefined;
throw error;
}
}
}
@@ -25,8 +25,6 @@ export const createDashboardFilterSlice: StateCreator<
setFilterValues: (values) => set({ filterValues: values }),
resetFilterValues: () => {
alert('reset filter values');
return set({
filterValues: {
startDate: '',