mautourco-components 0.2.33 → 0.2.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/components/molecules/DialogContentPolicy/DialogCancellationAccom.js +1 -1
  2. package/dist/components/molecules/Toast/Toast.d.ts +2 -0
  3. package/dist/components/molecules/Toast/Toast.js +2 -2
  4. package/dist/components/organisms/DialogBookingAddItem/AddItemNewService.js +6 -1
  5. package/dist/components/organisms/DialogDeleteConfirm/DialogDeleteConfirm.d.ts +9 -8
  6. package/dist/components/organisms/DialogDeleteConfirm/DialogDeleteConfirm.js +12 -7
  7. package/dist/components/organisms/DialogDeleteConfirm/DialogDeleteConfirmMultiple/DialogDeleteConfirmMultiple.css +2103 -0
  8. package/dist/components/organisms/DialogDeleteConfirm/DialogDeleteConfirmMultiple/DialogDeleteConfirmMultiple.d.ts +12 -0
  9. package/dist/components/organisms/DialogDeleteConfirm/DialogDeleteConfirmMultiple/DialogDeleteConfirmMultiple.js +44 -0
  10. package/dist/components/organisms/DialogDeleteConfirm/DialogDeleteConfirmWrapper.d.ts +10 -0
  11. package/dist/components/organisms/DialogDeleteConfirm/DialogDeleteConfirmWrapper.js +6 -0
  12. package/dist/components/organisms/DialogDeleteConfirm/index.d.ts +3 -0
  13. package/dist/components/organisms/DialogDeleteConfirm/index.js +1 -0
  14. package/dist/components/organisms/DialogQuoteRename/DialogQuoteRename.d.ts +7 -0
  15. package/dist/components/organisms/DialogQuoteRename/DialogQuoteRename.js +14 -0
  16. package/dist/components/organisms/DialogSendingMail/DialogSendingMailContent.js +1 -1
  17. package/dist/components/organisms/DialogSendingMail/DialogSendingMailMultiple/DialogSendingMailMultiple.d.ts +30 -1
  18. package/dist/components/organisms/DialogSendingMail/DialogSendingMailMultiple/DialogSendingMailMultiple.js +36 -7
  19. package/dist/components/organisms/DialogSendingMail/index.d.ts +1 -0
  20. package/dist/components/organisms/QuoteHeader/QuoteHeader.d.ts +4 -2
  21. package/dist/components/organisms/QuoteHeader/QuoteHeader.js +1 -0
  22. package/dist/index.d.ts +3 -0
  23. package/dist/index.js +2 -0
  24. package/package.json +1 -1
  25. package/src/components/molecules/DialogContentPolicy/DialogCancellationAccom.tsx +2 -2
  26. package/src/components/molecules/Toast/Toast.tsx +8 -3
  27. package/src/components/organisms/DialogBookingAddItem/AddItemNewService.tsx +7 -1
  28. package/src/components/organisms/DialogDeleteConfirm/DialogDeleteConfirm.tsx +19 -37
  29. package/src/components/organisms/DialogDeleteConfirm/DialogDeleteConfirmMultiple/DialogDeleteConfirmMultiple.css +20 -0
  30. package/src/components/organisms/DialogDeleteConfirm/DialogDeleteConfirmMultiple/DialogDeleteConfirmMultiple.tsx +84 -0
  31. package/src/components/organisms/DialogDeleteConfirm/DialogDeleteConfirmWrapper.tsx +34 -0
  32. package/src/components/organisms/DialogDeleteConfirm/index.ts +4 -0
  33. package/src/components/organisms/DialogQuoteRename/DialogQuoteRename.tsx +48 -0
  34. package/src/components/organisms/DialogSendingMail/DialogSendingMailContent.tsx +1 -0
  35. package/src/components/organisms/DialogSendingMail/DialogSendingMailMultiple/DialogSendingMailMultiple.tsx +49 -7
  36. package/src/components/organisms/DialogSendingMail/index.ts +1 -0
  37. package/src/components/organisms/QuoteHeader/QuoteHeader.tsx +3 -2
@@ -97,6 +97,7 @@ export const DialogSendingMailContent: React.FC<DialogSendingMailContentProps> =
97
97
  </Button>
98
98
  </div>
99
99
  <Toast
100
+ showIcon={false}
100
101
  type="warning"
101
102
  className="mt-8"
102
103
  text="Disclaimer: Email formatting may appear distorted in certain older email clients (e.g Outlook Classic ). Content will remain intact, but the visual layout may differ from the original"
@@ -1,6 +1,6 @@
1
1
  import Checkbox from '@/src/components/atoms/Checkbox/Checkbox';
2
2
  import SelectedValue from '@/src/components/atoms/SelectedValue/SelectedValue';
3
- import React, { useEffect, useState } from 'react';
3
+ import React, { useEffect, useMemo, useState } from 'react';
4
4
  import {
5
5
  DialogSendingMailContent,
6
6
  DialogSendingMailContentProps,
@@ -15,20 +15,52 @@ export interface SelectedQuote {
15
15
 
16
16
  export interface DialogSendingMailMultipleProps extends Omit<
17
17
  DialogSendingMailContentProps,
18
- 'onSubmit'
18
+ 'onSubmit' | 'onPreviewAttachment'
19
19
  > {
20
+ /** Default data of the quotes */
20
21
  data: SelectedQuote[];
22
+
23
+ /** Function to call when a quote is selected */
21
24
  onSelected?: (selectedQuotes: SelectedQuote[]) => void;
25
+
26
+ /** Function to call when the form is submitted */
22
27
  onSubmit: (payload: {
23
28
  selectedQuotes: SelectedQuote[];
24
29
  formData: SendingMailSchema;
25
30
  }) => void;
31
+
32
+ /** Function to call when the preview attachment is clicked */
33
+ onPreviewAttachment?: (selectedQuotes: SelectedQuote[]) => void;
26
34
  }
27
35
 
36
+ /**
37
+ * Props for the DialogSendingMailMultiple component
38
+ *
39
+ * @example
40
+ * <DialogSendingMail>
41
+ * <DialogSendingMail.MultipleQuotes
42
+ * data={[
43
+ * { id: '1', name: 'Quote 1' },
44
+ * { id: '2', name: 'Quote 2' },
45
+ * { id: '3', name: 'Quote 3' },
46
+ * ]}
47
+ * onPreviewAttachment={() => {
48
+ * console.log('Preview attachment');
49
+ * }}
50
+ * onSubmit={(data) => {
51
+ * console.log(data);
52
+ * }}
53
+ * onSelected={(selectedQuotes) => {
54
+ * console.log(selectedQuotes);
55
+ * }} />
56
+ * </DialogSendingMail>
57
+ *
58
+ * @param props - The props of the component
59
+ */
28
60
  export const DialogSendingMailMultiple: React.FC<DialogSendingMailMultipleProps> = (
29
61
  props
30
62
  ) => {
31
- const { data, onSelected, onSubmit, ...rest } = props;
63
+ const { data, onSelected, onSubmit, onPreviewAttachment, ...rest } = props;
32
64
 
33
65
  const [isSelectAll, setIsSelectAll] = useState(false);
34
66
  const [remainingQuotes, setRemainingQuotes] = useState<SelectedQuote[]>(data);
@@ -61,7 +93,10 @@ export const DialogSendingMailMultiple: React.FC<DialogSendingMailMultipleProps>
61
93
  if (remainingQuotes.length > 1) {
62
94
  setSelectedQuotes((prev) => {
63
95
  if (prev.includes(id)) {
64
- return prev.filter((quoteId) => quoteId !== id);
96
+ if (prev.length > 1) {
97
+ return prev.filter((quoteId) => quoteId !== id);
98
+ }
99
+ return prev;
65
100
  }
66
101
  return [...prev, id];
67
102
  });
@@ -85,6 +120,14 @@ export const DialogSendingMailMultiple: React.FC<DialogSendingMailMultipleProps>
85
120
  }
86
121
  };
87
122
 
123
+ /**
124
+ * Get the remaining quotes filtered by the selected quotes
125
+ */
126
+ const remainingQuotesFiltered = useMemo(
127
+ () => remainingQuotes.filter((quote) => selectedQuotes.includes(quote.id)),
128
+ [remainingQuotes, selectedQuotes]
129
+ );
130
+
88
131
  useEffect(() => {
89
132
  // Select all quotes by default
90
133
  setSelectedQuotes(data.map((quote) => quote.id));
@@ -126,11 +169,10 @@ export const DialogSendingMailMultiple: React.FC<DialogSendingMailMultipleProps>
126
169
  </div>
127
170
  <DialogSendingMailContent
128
171
  {...rest}
172
+ onPreviewAttachment={() => onPreviewAttachment?.(remainingQuotesFiltered)}
129
173
  onSubmit={(data) =>
130
174
  onSubmit({
131
- selectedQuotes: remainingQuotes.filter((quote) =>
132
- selectedQuotes.includes(quote.id)
133
- ),
175
+ selectedQuotes: remainingQuotesFiltered,
134
176
  formData: data,
135
177
  })
136
178
  }
@@ -3,3 +3,4 @@ export * from './sending-mail-schema';
3
3
 
4
4
  export type { DialogSendingMailProps } from './DialogSendingMail';
5
5
  export type { DialogSendingMailContentProps } from './DialogSendingMailContent';
6
+ export type { DialogSendingMailMultipleProps } from './DialogSendingMailMultiple/DialogSendingMailMultiple';
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import Button from '../../atoms/Button/Button';
3
2
  import DropdownInput from '../../atoms/Inputs/DropdownInput/DropdownInput';
4
3
  import Input from '../../atoms/Inputs/Input/Input';
@@ -38,7 +37,7 @@ const filterConfig = {
38
37
  },
39
38
  };
40
39
 
41
- export const QuoteHeader: React.FC<QuoteHeaderProps> = (props) => {
40
+ export const QuoteHeader = (props: QuoteHeaderProps) => {
42
41
  const { current = 'quotation', onNavigate, onNewQuote, onFilterChange } = props;
43
42
 
44
43
  return (
@@ -91,3 +90,5 @@ export const QuoteHeader: React.FC<QuoteHeaderProps> = (props) => {
91
90
  </div>
92
91
  );
93
92
  };
93
+
94
+ QuoteHeader.displayName = 'QuoteHeader';