@appcorp/stellar-solutions-invoice-module 0.1.73 → 0.1.75

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 (89) hide show
  1. package/base-modules/invoice/add-service-product-section.d.ts +1 -5
  2. package/base-modules/invoice/add-service-product-section.js +3 -3
  3. package/base-modules/invoice/cache.d.ts +15 -0
  4. package/base-modules/invoice/cache.js +50 -0
  5. package/base-modules/invoice/calculate-subtotal.d.ts +6 -1
  6. package/base-modules/invoice/calculate-subtotal.js +2 -2
  7. package/base-modules/invoice/calculate-total.d.ts +1 -1
  8. package/base-modules/invoice/calculate-total.js +8 -8
  9. package/base-modules/invoice/company-form-section.d.ts +1 -5
  10. package/base-modules/invoice/company-form-section.js +25 -22
  11. package/base-modules/invoice/constants.d.ts +2 -3
  12. package/base-modules/invoice/constants.js +2 -3
  13. package/base-modules/invoice/context.d.ts +556 -20
  14. package/base-modules/invoice/context.js +542 -340
  15. package/base-modules/invoice/customer-form-section.d.ts +1 -5
  16. package/base-modules/invoice/customer-form-section.js +25 -9
  17. package/base-modules/invoice/form.d.ts +1 -5
  18. package/base-modules/invoice/form.js +9 -9
  19. package/base-modules/invoice/page.d.ts +8 -0
  20. package/base-modules/invoice/page.js +171 -0
  21. package/base-modules/invoice/pricing-form-section.d.ts +1 -5
  22. package/base-modules/invoice/pricing-form-section.js +16 -11
  23. package/base-modules/invoice/products-form-section.d.ts +1 -5
  24. package/base-modules/invoice/products-form-section.js +49 -41
  25. package/base-modules/invoice/services-form-section.d.ts +1 -5
  26. package/base-modules/invoice/services-form-section.js +10 -9
  27. package/base-modules/invoice/validate.d.ts +83 -25
  28. package/base-modules/invoice/validate.js +4 -4
  29. package/base-modules/payment/cache.d.ts +15 -0
  30. package/base-modules/payment/cache.js +52 -0
  31. package/base-modules/payment/constants.d.ts +1 -14
  32. package/base-modules/payment/constants.js +2 -15
  33. package/base-modules/payment/context.d.ts +214 -48
  34. package/base-modules/payment/context.js +312 -240
  35. package/base-modules/payment/drawer.d.ts +0 -6
  36. package/base-modules/payment/drawer.js +89 -44
  37. package/base-modules/payment/form.js +3 -2
  38. package/base-modules/payment/{payment.js → page.js} +2 -5
  39. package/base-modules/payment/types.d.ts +0 -85
  40. package/base-modules/payment/types.js +74 -21
  41. package/base-modules/payment/validate.d.ts +12 -0
  42. package/base-modules/payment/validate.js +19 -8
  43. package/base-modules/payment/view.d.ts +1 -5
  44. package/base-modules/payment/view.js +4 -3
  45. package/base-modules/quote/add-service-product-section.js +1 -1
  46. package/base-modules/quote/cache.d.ts +15 -0
  47. package/base-modules/quote/cache.js +50 -0
  48. package/base-modules/quote/company-form-section.d.ts +1 -1
  49. package/base-modules/quote/company-form-section.js +14 -12
  50. package/base-modules/quote/constants.js +1 -0
  51. package/base-modules/quote/context.d.ts +656 -46
  52. package/base-modules/quote/context.js +431 -293
  53. package/base-modules/quote/customer-form-section.d.ts +1 -1
  54. package/base-modules/quote/customer-form-section.js +24 -9
  55. package/base-modules/quote/form.d.ts +1 -5
  56. package/base-modules/quote/form.js +8 -9
  57. package/base-modules/quote/page.d.ts +8 -0
  58. package/base-modules/quote/page.js +163 -0
  59. package/base-modules/quote/pricing-form-section.js +9 -8
  60. package/base-modules/quote/products-form-section.js +2 -3
  61. package/base-modules/quote/services-form-section.js +1 -1
  62. package/base-modules/quote/types.d.ts +0 -127
  63. package/base-modules/quote/types.js +92 -35
  64. package/base-modules/quote/validate.d.ts +82 -25
  65. package/base-modules/quote/validate.js +3 -4
  66. package/package.json +12 -11
  67. package/base-modules/invoice/actions.d.ts +0 -215
  68. package/base-modules/invoice/actions.js +0 -38
  69. package/base-modules/invoice/drawer.d.ts +0 -13
  70. package/base-modules/invoice/drawer.js +0 -46
  71. package/base-modules/invoice/invoice.d.ts +0 -8
  72. package/base-modules/invoice/invoice.js +0 -69
  73. package/base-modules/invoice/reducer.d.ts +0 -4
  74. package/base-modules/invoice/reducer.js +0 -180
  75. package/base-modules/invoice/types.d.ts +0 -211
  76. package/base-modules/invoice/types.js +0 -43
  77. package/base-modules/payment/actions.d.ts +0 -203
  78. package/base-modules/payment/actions.js +0 -50
  79. package/base-modules/payment/reducer.d.ts +0 -29
  80. package/base-modules/payment/reducer.js +0 -215
  81. package/base-modules/quote/actions.d.ts +0 -215
  82. package/base-modules/quote/actions.js +0 -38
  83. package/base-modules/quote/drawer.d.ts +0 -13
  84. package/base-modules/quote/drawer.js +0 -46
  85. package/base-modules/quote/quote.d.ts +0 -8
  86. package/base-modules/quote/quote.js +0 -69
  87. package/base-modules/quote/reducer.d.ts +0 -4
  88. package/base-modules/quote/reducer.js +0 -181
  89. /package/base-modules/payment/{payment.d.ts → page.d.ts} +0 -0
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Invoice State Context
2
+ * Invoice State Context - Using Generic Module Factory
3
3
  *
4
4
  * This module provides comprehensive state management for the Invoice feature including:
5
5
  * - CRUD operations (create, read, update, delete)
@@ -15,36 +15,572 @@
15
15
  * - Theme-aware toast notifications
16
16
  *
17
17
  * Organization:
18
- * - Types & Interfaces
19
- * - Main Hook (useInvoiceState)
20
- * - State & Core Hooks
21
- * - Theme Support
18
+ * - Module Configuration & Factory Setup
19
+ * - Enhanced Invoice Hook (useInvoiceModule)
20
+ * - State via factory context
22
21
  * - Toast Helpers
23
22
  * - Debounced Values
24
23
  * - Tax & Currency Defaults
25
24
  * - API Parameters (memoized)
26
- * - API Callbacks (with error handling)
25
+ * - API Callbacks
27
26
  * - Module Entity Hook
28
- * - Effects (list refresh, defaults, calculations)
27
+ * - Effects (list refresh, calculations)
28
+ * - Item Management Handlers
29
29
  * - Drawer & Modal Handlers
30
30
  * - CRUD Operation Handlers
31
31
  * - Form Handlers (products, services, pricing)
32
- * - Calculation Handlers
33
32
  * - Pagination Handlers
34
33
  * - Search Handlers
35
34
  * - Table Actions (memoized)
36
35
  * - Return State
37
- * - Context Setup
38
- * - Provider Component
39
- * - Custom Hook
36
+ * - Backward-Compatible Exports
40
37
  */
41
- import React, { FC, ReactNode } from "react";
42
- import { InvoiceContextType, InvoiceState } from "./types";
43
- type State = InvoiceContextType & InvoiceState;
44
- interface StateProviderProps {
45
- children: ReactNode;
38
+ import { QUOTE_INVOICE_CATEGORY, INVOICE_STATUS, DISCOUNT_UNIT, QUOTE_STATUS } from "@react-pakistan/util-functions";
39
+ export declare const invoiceReducer: (state: {
40
+ items: never[];
41
+ count: number;
42
+ currentPage: number;
43
+ pageLimit: number;
44
+ searchQuery: string;
45
+ disableSaveButton: boolean;
46
+ drawer: null;
47
+ invoiceMode: null;
48
+ modal: null;
49
+ loading: boolean;
50
+ afterDiscount: number;
51
+ category: QUOTE_INVOICE_CATEGORY;
52
+ companiesList: never[];
53
+ companyId: string;
54
+ companyQuery: string;
55
+ contactsList: never[];
56
+ countryQuery: string;
57
+ currency: string;
58
+ customerId: string;
59
+ date: string;
60
+ discount: number;
61
+ discountUnit: DISCOUNT_UNIT;
62
+ errors: Record<string, string>;
63
+ expiryDate: string;
64
+ id: string;
65
+ invoiceStatus: INVOICE_STATUS;
66
+ mode: "Create" | "Edit";
67
+ netTotal: string;
68
+ note: string;
69
+ payments: never[];
70
+ productQuery: string;
71
+ productList: {
72
+ id: string;
73
+ mode: "Create" | "Edit" | "";
74
+ price: string;
75
+ quantity: string;
76
+ rowTotal: string;
77
+ }[];
78
+ quoteStatus: QUOTE_STATUS;
79
+ ref: string;
80
+ serviceList: {
81
+ description: string;
82
+ mode: "Create" | "Edit" | "";
83
+ name: string;
84
+ price: string;
85
+ quantity: string;
86
+ rowTotal: string;
87
+ }[];
88
+ subTotal: string;
89
+ tax: string;
90
+ taxQuery: string;
91
+ taxRate: string;
92
+ taxes: never[];
93
+ total: string;
94
+ customer: {
95
+ address: string;
96
+ city: string;
97
+ country: string;
98
+ createdAt: string;
99
+ email: string;
100
+ firstName: string;
101
+ id: string;
102
+ lastName: string;
103
+ phone: string;
104
+ quotesInvoices: never[];
105
+ updatedAt: string;
106
+ };
107
+ company: {
108
+ contacts: never[];
109
+ country: string;
110
+ createdAt: string;
111
+ email: string;
112
+ id: string;
113
+ name: string;
114
+ phone: string;
115
+ quotesInvoices: never[];
116
+ updatedAt: string;
117
+ website: string;
118
+ };
119
+ }, action: any) => {
120
+ items: never[];
121
+ count: number;
122
+ currentPage: number;
123
+ pageLimit: number;
124
+ searchQuery: string;
125
+ disableSaveButton: boolean;
126
+ drawer: null;
127
+ invoiceMode: null;
128
+ modal: null;
129
+ loading: boolean;
130
+ afterDiscount: number;
131
+ category: QUOTE_INVOICE_CATEGORY;
132
+ companiesList: never[];
133
+ companyId: string;
134
+ companyQuery: string;
135
+ contactsList: never[];
136
+ countryQuery: string;
137
+ currency: string;
138
+ customerId: string;
139
+ date: string;
140
+ discount: number;
141
+ discountUnit: DISCOUNT_UNIT;
142
+ errors: Record<string, string>;
143
+ expiryDate: string;
144
+ id: string;
145
+ invoiceStatus: INVOICE_STATUS;
146
+ mode: "Create" | "Edit";
147
+ netTotal: string;
148
+ note: string;
149
+ payments: never[];
150
+ productQuery: string;
151
+ productList: {
152
+ id: string;
153
+ mode: "Create" | "Edit" | "";
154
+ price: string;
155
+ quantity: string;
156
+ rowTotal: string;
157
+ }[];
158
+ quoteStatus: QUOTE_STATUS;
159
+ ref: string;
160
+ serviceList: {
161
+ description: string;
162
+ mode: "Create" | "Edit" | "";
163
+ name: string;
164
+ price: string;
165
+ quantity: string;
166
+ rowTotal: string;
167
+ }[];
168
+ subTotal: string;
169
+ tax: string;
170
+ taxQuery: string;
171
+ taxRate: string;
172
+ taxes: never[];
173
+ total: string;
174
+ customer: {
175
+ address: string;
176
+ city: string;
177
+ country: string;
178
+ createdAt: string;
179
+ email: string;
180
+ firstName: string;
181
+ id: string;
182
+ lastName: string;
183
+ phone: string;
184
+ quotesInvoices: never[];
185
+ updatedAt: string;
186
+ };
187
+ company: {
188
+ contacts: never[];
189
+ country: string;
190
+ createdAt: string;
191
+ email: string;
192
+ id: string;
193
+ name: string;
194
+ phone: string;
195
+ quotesInvoices: never[];
196
+ updatedAt: string;
197
+ website: string;
198
+ };
199
+ }, InvoiceProvider: import("react").FC<{
200
+ children: React.ReactNode;
201
+ }>, useInvoiceCoreContext: () => import("@react-pakistan/util-functions/factory/generic-module-factory").GenericModuleContext<{
202
+ items: never[];
203
+ count: number;
204
+ currentPage: number;
205
+ pageLimit: number;
206
+ searchQuery: string;
207
+ disableSaveButton: boolean;
208
+ drawer: null;
209
+ invoiceMode: null;
210
+ modal: null;
211
+ loading: boolean;
212
+ afterDiscount: number;
213
+ category: QUOTE_INVOICE_CATEGORY;
214
+ companiesList: never[];
215
+ companyId: string;
216
+ companyQuery: string;
217
+ contactsList: never[];
218
+ countryQuery: string;
219
+ currency: string;
220
+ customerId: string;
221
+ date: string;
222
+ discount: number;
223
+ discountUnit: DISCOUNT_UNIT;
224
+ errors: Record<string, string>;
225
+ expiryDate: string;
226
+ id: string;
227
+ invoiceStatus: INVOICE_STATUS;
228
+ mode: "Create" | "Edit";
229
+ netTotal: string;
230
+ note: string;
231
+ payments: never[];
232
+ productQuery: string;
233
+ productList: {
234
+ id: string;
235
+ mode: "Create" | "Edit" | "";
236
+ price: string;
237
+ quantity: string;
238
+ rowTotal: string;
239
+ }[];
240
+ quoteStatus: QUOTE_STATUS;
241
+ ref: string;
242
+ serviceList: {
243
+ description: string;
244
+ mode: "Create" | "Edit" | "";
245
+ name: string;
246
+ price: string;
247
+ quantity: string;
248
+ rowTotal: string;
249
+ }[];
250
+ subTotal: string;
251
+ tax: string;
252
+ taxQuery: string;
253
+ taxRate: string;
254
+ taxes: never[];
255
+ total: string;
256
+ customer: {
257
+ address: string;
258
+ city: string;
259
+ country: string;
260
+ createdAt: string;
261
+ email: string;
262
+ firstName: string;
263
+ id: string;
264
+ lastName: string;
265
+ phone: string;
266
+ quotesInvoices: never[];
267
+ updatedAt: string;
268
+ };
269
+ company: {
270
+ contacts: never[];
271
+ country: string;
272
+ createdAt: string;
273
+ email: string;
274
+ id: string;
275
+ name: string;
276
+ phone: string;
277
+ quotesInvoices: never[];
278
+ updatedAt: string;
279
+ website: string;
280
+ };
281
+ }>, invoiceModuleConfig: import("@react-pakistan/util-functions/factory/generic-module-factory").ModuleConfig<{
282
+ items: never[];
283
+ count: number;
284
+ currentPage: number;
285
+ pageLimit: number;
286
+ searchQuery: string;
287
+ disableSaveButton: boolean;
288
+ drawer: null;
289
+ invoiceMode: null;
290
+ modal: null;
291
+ loading: boolean;
292
+ afterDiscount: number;
293
+ category: QUOTE_INVOICE_CATEGORY;
294
+ companiesList: never[];
295
+ companyId: string;
296
+ companyQuery: string;
297
+ contactsList: never[];
298
+ countryQuery: string;
299
+ currency: string;
300
+ customerId: string;
301
+ date: string;
302
+ discount: number;
303
+ discountUnit: DISCOUNT_UNIT;
304
+ errors: Record<string, string>;
305
+ expiryDate: string;
306
+ id: string;
307
+ invoiceStatus: INVOICE_STATUS;
308
+ mode: "Create" | "Edit";
309
+ netTotal: string;
310
+ note: string;
311
+ payments: never[];
312
+ productQuery: string;
313
+ productList: {
314
+ id: string;
315
+ mode: "Create" | "Edit" | "";
316
+ price: string;
317
+ quantity: string;
318
+ rowTotal: string;
319
+ }[];
320
+ quoteStatus: QUOTE_STATUS;
321
+ ref: string;
322
+ serviceList: {
323
+ description: string;
324
+ mode: "Create" | "Edit" | "";
325
+ name: string;
326
+ price: string;
327
+ quantity: string;
328
+ rowTotal: string;
329
+ }[];
330
+ subTotal: string;
331
+ tax: string;
332
+ taxQuery: string;
333
+ taxRate: string;
334
+ taxes: never[];
335
+ total: string;
336
+ customer: {
337
+ address: string;
338
+ city: string;
339
+ country: string;
340
+ createdAt: string;
341
+ email: string;
342
+ firstName: string;
343
+ id: string;
344
+ lastName: string;
345
+ phone: string;
346
+ quotesInvoices: never[];
347
+ updatedAt: string;
348
+ };
349
+ company: {
350
+ contacts: never[];
351
+ country: string;
352
+ createdAt: string;
353
+ email: string;
354
+ id: string;
355
+ name: string;
356
+ phone: string;
357
+ quotesInvoices: never[];
358
+ updatedAt: string;
359
+ website: string;
360
+ };
361
+ }>, INVOICE_ACTION_TYPES: {
362
+ readonly RESET_FORM: "RESET_FORM";
363
+ readonly SET_CURRENT_PAGE: "SET_CURRENT_PAGE";
364
+ readonly SET_PAGE_LIMIT: "SET_PAGE_LIMIT";
365
+ readonly SET_SEARCH_QUERY: "SET_SEARCH_QUERY";
366
+ readonly SET_DRAWER: "SET_DRAWER";
367
+ readonly SET_ITEMS: "SET_ITEMS";
368
+ readonly SET_FORM_DATA: "SET_FORM_DATA";
369
+ readonly SET_DISABLE_SAVE_BUTTON: "SET_DISABLE_SAVE_BUTTON";
370
+ readonly SET_INPUT_FIELD: "SET_INPUT_FIELD";
371
+ readonly SET_ERRORS: "SET_ERRORS";
372
+ }, initialInvoiceState: {
373
+ items: never[];
374
+ count: number;
375
+ currentPage: number;
376
+ pageLimit: number;
377
+ searchQuery: string;
378
+ disableSaveButton: boolean;
379
+ drawer: null;
380
+ invoiceMode: null;
381
+ modal: null;
382
+ loading: boolean;
383
+ afterDiscount: number;
384
+ category: QUOTE_INVOICE_CATEGORY;
385
+ companiesList: never[];
386
+ companyId: string;
387
+ companyQuery: string;
388
+ contactsList: never[];
389
+ countryQuery: string;
390
+ currency: string;
391
+ customerId: string;
392
+ date: string;
393
+ discount: number;
394
+ discountUnit: DISCOUNT_UNIT;
395
+ errors: Record<string, string>;
396
+ expiryDate: string;
397
+ id: string;
398
+ invoiceStatus: INVOICE_STATUS;
399
+ mode: "Create" | "Edit";
400
+ netTotal: string;
401
+ note: string;
402
+ payments: never[];
403
+ productQuery: string;
404
+ productList: {
405
+ id: string;
406
+ mode: "Create" | "Edit" | "";
407
+ price: string;
408
+ quantity: string;
409
+ rowTotal: string;
410
+ }[];
411
+ quoteStatus: QUOTE_STATUS;
412
+ ref: string;
413
+ serviceList: {
414
+ description: string;
415
+ mode: "Create" | "Edit" | "";
416
+ name: string;
417
+ price: string;
418
+ quantity: string;
419
+ rowTotal: string;
420
+ }[];
421
+ subTotal: string;
422
+ tax: string;
423
+ taxQuery: string;
424
+ taxRate: string;
425
+ taxes: never[];
426
+ total: string;
427
+ customer: {
428
+ address: string;
429
+ city: string;
430
+ country: string;
431
+ createdAt: string;
432
+ email: string;
433
+ firstName: string;
434
+ id: string;
435
+ lastName: string;
436
+ phone: string;
437
+ quotesInvoices: never[];
438
+ updatedAt: string;
439
+ };
440
+ company: {
441
+ contacts: never[];
442
+ country: string;
443
+ createdAt: string;
444
+ email: string;
445
+ id: string;
446
+ name: string;
447
+ phone: string;
448
+ quotesInvoices: never[];
449
+ updatedAt: string;
450
+ website: string;
451
+ };
452
+ };
453
+ export interface ServiceParams {
454
+ index: number;
455
+ key: string;
456
+ value: string | number;
46
457
  }
47
- export declare const InvoiceStateContext: React.Context<State>;
48
- export declare const InvoiceStateContextProvider: FC<StateProviderProps>;
49
- export declare const useInvoiceStateContext: () => State;
50
- export {};
458
+ export interface ProductParams {
459
+ index: number;
460
+ key: string;
461
+ value: string | number;
462
+ }
463
+ export declare const useInvoiceModule: () => {
464
+ clearSearch: () => void;
465
+ closeDrawer: () => void;
466
+ handleAddItemProduct: () => void;
467
+ handleAddItemService: () => void;
468
+ handleChange: (key: string, value: string) => void;
469
+ handleCloseDrawer: () => void;
470
+ handleCreate: (text: "customer" | "company") => void;
471
+ handleDelete: (row: unknown) => void;
472
+ handleDeleteProductRow: (i: number) => void;
473
+ handleDeleteServiceRow: (i: number) => void;
474
+ handleEdit: (row: unknown) => void;
475
+ handleItemChangeProducts: ({ index, key, value }: ProductParams) => void;
476
+ handleItemChangeServices: ({ index, key, value }: ServiceParams) => void;
477
+ handleNextClick: () => void;
478
+ handlePageChange: (page: number) => void;
479
+ handlePageLimit: (k: string, value: object) => void;
480
+ handlePageLimitChange: (limit: number) => void;
481
+ handlePreviousClick: () => void;
482
+ handleRecordPayment: (row: unknown) => void;
483
+ handleSearch: (query: string) => void;
484
+ handleSubmit: () => void;
485
+ handleTaxSearch: (searchQuery: string) => void;
486
+ handleView: (row: unknown) => void;
487
+ headerActions: {
488
+ enabled: boolean;
489
+ handleOnClick: () => void;
490
+ label: string;
491
+ order: number;
492
+ }[];
493
+ rowActions: {
494
+ enabled: boolean;
495
+ handleAction: (row: unknown) => void;
496
+ label: string;
497
+ order: number;
498
+ }[];
499
+ listError: Error | undefined;
500
+ listFetchNow: (url?: string, config?: import("@react-pakistan/util-functions").FetchConfig) => void;
501
+ listLoading: boolean;
502
+ updateLoading: boolean;
503
+ searchOnChange: (k: string, v: string) => void;
504
+ state: {
505
+ items: never[];
506
+ count: number;
507
+ currentPage: number;
508
+ pageLimit: number;
509
+ searchQuery: string;
510
+ disableSaveButton: boolean;
511
+ drawer: null;
512
+ invoiceMode: null;
513
+ modal: null;
514
+ loading: boolean;
515
+ afterDiscount: number;
516
+ category: QUOTE_INVOICE_CATEGORY;
517
+ companiesList: never[];
518
+ companyId: string;
519
+ companyQuery: string;
520
+ contactsList: never[];
521
+ countryQuery: string;
522
+ currency: string;
523
+ customerId: string;
524
+ date: string;
525
+ discount: number;
526
+ discountUnit: DISCOUNT_UNIT;
527
+ errors: Record<string, string>;
528
+ expiryDate: string;
529
+ id: string;
530
+ invoiceStatus: INVOICE_STATUS;
531
+ mode: "Create" | "Edit";
532
+ netTotal: string;
533
+ note: string;
534
+ payments: never[];
535
+ productQuery: string;
536
+ productList: {
537
+ id: string;
538
+ mode: "Create" | "Edit" | "";
539
+ price: string;
540
+ quantity: string;
541
+ rowTotal: string;
542
+ }[];
543
+ quoteStatus: QUOTE_STATUS;
544
+ ref: string;
545
+ serviceList: {
546
+ description: string;
547
+ mode: "Create" | "Edit" | "";
548
+ name: string;
549
+ price: string;
550
+ quantity: string;
551
+ rowTotal: string;
552
+ }[];
553
+ subTotal: string;
554
+ tax: string;
555
+ taxQuery: string;
556
+ taxRate: string;
557
+ taxes: never[];
558
+ total: string;
559
+ customer: {
560
+ address: string;
561
+ city: string;
562
+ country: string;
563
+ createdAt: string;
564
+ email: string;
565
+ firstName: string;
566
+ id: string;
567
+ lastName: string;
568
+ phone: string;
569
+ quotesInvoices: never[];
570
+ updatedAt: string;
571
+ };
572
+ company: {
573
+ contacts: never[];
574
+ country: string;
575
+ createdAt: string;
576
+ email: string;
577
+ id: string;
578
+ name: string;
579
+ phone: string;
580
+ quotesInvoices: never[];
581
+ updatedAt: string;
582
+ website: string;
583
+ };
584
+ };
585
+ dispatch: React.Dispatch<any>;
586
+ };