@paro.io/expert-shared-components 1.12.24 → 1.12.26

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 (70) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +2 -2
  3. package/lib/components/ClientReferencesSection/DeleteButton.js +11 -11
  4. package/lib/components/ClientReferencesSection/ParoError.js +10 -10
  5. package/lib/components/ClientReferencesSection/TagsSection.js +2 -2
  6. package/lib/components/ClientReferencesSection/styles/BrandedTypography.js +2 -2
  7. package/lib/components/ClientReferencesSection/styles/Buttons.js +15 -15
  8. package/lib/components/ClientReferencesSection/styles/Name.js +5 -5
  9. package/lib/components/ClientReferencesSection/styles/NullContentConditionalColor.js +4 -4
  10. package/lib/components/ClientReferencesSection/styles/SectionBody.js +11 -11
  11. package/lib/components/ClientReferencesSection/styles/SectionTitle.js +6 -6
  12. package/lib/components/ClientReferencesSection/styles/Tags.js +2 -2
  13. package/lib/components/DiscussionThread/chat.d.ts +22 -22
  14. package/lib/components/DiscussionThread/chat.js +106 -106
  15. package/lib/components/DocumentCenter/DocumentTable.d.ts +15 -15
  16. package/lib/components/DocumentCenter/DocumentTable.js +350 -350
  17. package/lib/components/DocumentCenter/UploadFilesButton.d.ts +6 -6
  18. package/lib/components/DocumentCenter/UploadFilesButton.js +29 -29
  19. package/lib/components/EarningsTracker/ActiveProjectCard.d.ts +52 -52
  20. package/lib/components/EarningsTracker/ActiveProjectCard.js +161 -161
  21. package/lib/components/EarningsTracker/CenterCardUI.d.ts +13 -13
  22. package/lib/components/EarningsTracker/CenterCardUI.js +134 -134
  23. package/lib/components/EarningsTracker/EarningsTracker.d.ts +52 -52
  24. package/lib/components/EarningsTracker/EarningsTracker.js +508 -508
  25. package/lib/components/EarningsTracker/EditDateModal.d.ts +22 -22
  26. package/lib/components/EarningsTracker/EditDateModal.js +149 -149
  27. package/lib/components/EarningsTracker/EmailModal.d.ts +14 -14
  28. package/lib/components/EarningsTracker/EmailModal.js +79 -79
  29. package/lib/components/EarningsTracker/EndProjectModal.d.ts +56 -56
  30. package/lib/components/EarningsTracker/EndProjectModal.js +221 -221
  31. package/lib/components/EarningsTracker/LeftCardUI.d.ts +18 -18
  32. package/lib/components/EarningsTracker/LeftCardUI.js +189 -189
  33. package/lib/components/EarningsTracker/LogTimeModalAuthenticated.d.ts +52 -52
  34. package/lib/components/EarningsTracker/LogTimeModalAuthenticated.js +358 -358
  35. package/lib/components/EarningsTracker/ProgressBar.d.ts +4 -4
  36. package/lib/components/EarningsTracker/ProgressBar.js +66 -66
  37. package/lib/components/EarningsTracker/ReviewRequestModal.d.ts +17 -17
  38. package/lib/components/EarningsTracker/ReviewRequestModal.js +135 -135
  39. package/lib/components/EarningsTracker/RightCardUI.d.ts +46 -46
  40. package/lib/components/EarningsTracker/RightCardUI.js +231 -231
  41. package/lib/components/EarningsTracker/index.d.ts +1 -1
  42. package/lib/components/EarningsTracker/index.js +5 -5
  43. package/lib/components/ExpertProfileHeader/ActionButtonSection.js +6 -6
  44. package/lib/components/ExpertProfileHeader/ProfileSection.js +7 -7
  45. package/lib/components/Invoices/DecisionSection.js +20 -14
  46. package/lib/components/Invoices/ProjectHoursAdjustmentModal.d.ts +1 -1
  47. package/lib/components/Invoices/ProjectHoursAdjustmentModal.js +14 -16
  48. package/lib/components/Invoices/TestDecisionSection.d.ts +1 -1
  49. package/lib/components/Invoices/TestDecisionSection.js +126 -126
  50. package/lib/components/OrganizationChart/OrganizationChart.d.ts +15 -15
  51. package/lib/components/OrganizationChart/OrganizationChart.js +312 -312
  52. package/lib/components/OrganizationChart/PersonCard.js +5 -5
  53. package/lib/components/OrganizationChart/utils.js +79 -79
  54. package/lib/components/ProjectCard/ActiveProjectCard.js +7 -23
  55. package/lib/components/ProjectCard/ProgressBar.js +4 -4
  56. package/lib/components/ProjectCard/ReviewRequestModal.js +5 -5
  57. package/lib/components/ProjectCard/RightCardUI.d.ts +1 -2
  58. package/lib/components/ProjectCard/RightCardUI.js +2 -2
  59. package/lib/components/Reviews/Pagination.js +6 -6
  60. package/lib/components/ReviewsTab/RatingHeader.js +6 -6
  61. package/lib/components/ReviewsTab/expert-shared-components.code-workspace +20 -20
  62. package/lib/components/ReviewsTab/reviewRequestModal.js +5 -5
  63. package/lib/components/shared/Image.js +13 -13
  64. package/lib/components/shared/ProfileTextField.d.ts +18 -18
  65. package/lib/components/shared/ProfileTextField.js +16 -16
  66. package/lib/components/shared/StyledActionButtons.d.ts +7 -7
  67. package/lib/components/shared/StyledActionButtons.js +15 -15
  68. package/lib/components/shared/ToastNotification.d.ts +10 -10
  69. package/lib/components/shared/ToastNotification.js +63 -63
  70. package/package.json +61 -61
@@ -97,25 +97,33 @@ const DecisionSection = ({ dispute, onUpdateDispute, updateInvoiceMutation, upda
97
97
  handleFinalSubmit(submissionData);
98
98
  };
99
99
  const handleFinalSubmit = (submissionData) => __awaiter(void 0, void 0, void 0, function* () {
100
- var _a, _b;
100
+ var _a, _b, _c;
101
101
  setIsSubmitting(true);
102
102
  try {
103
- const finalApprovedHours = getTotalApprovedHours();
104
- // Determine resolution type based on approval
105
- const isFullApproval = resolution === 'APPROVED' ||
106
- (resolution === 'PARTIAL' && Math.abs(finalApprovedHours - totalDisputeHours) <= 0.01);
107
- const resolutionType = isFullApproval ? 'Upheld' : 'Reduced';
108
- // Update dispute projects with resolution details
103
+ const resolutionType = resolution === 'APPROVED' ? 'Upheld' : 'Reduced';
109
104
  const disputeProjectUpdates = ((_a = dispute === null || dispute === void 0 ? void 0 : dispute.disputeProjects) === null || _a === void 0 ? void 0 : _a.map((project) => ({
110
105
  projectId: project.projectId,
111
106
  resolutionMode: 'Direct',
112
107
  resolutionType: resolution === 'DECLINED' ? 'Canceled' : resolutionType
113
108
  }))) || [];
114
- // Calculate approved amount based on dispute types
115
- const hasNonHourlyProjects = (_b = dispute === null || dispute === void 0 ? void 0 : dispute.disputeProjects) === null || _b === void 0 ? void 0 : _b.some((project) => project.disputeType !== 'Hourly');
116
- const calculatedApprovedAmount = hasNonHourlyProjects
117
- ? finalApprovedHours // For non-hourly projects, finalApprovedHours contains the dollar amount
118
- : finalApprovedHours * ((submissionData === null || submissionData === void 0 ? void 0 : submissionData.freelancerRate) || 0); // For hourly projects, multiply by rate
109
+ let calculatedApprovedAmount = 0;
110
+ const fullDisputeAmount = (_b = dispute === null || dispute === void 0 ? void 0 : dispute.disputeProjects) === null || _b === void 0 ? void 0 : _b.reduce((acc, project) => acc + project.disputeAmount, 0);
111
+ if (resolution === 'APPROVED') {
112
+ calculatedApprovedAmount = fullDisputeAmount;
113
+ }
114
+ else {
115
+ (_c = dispute === null || dispute === void 0 ? void 0 : dispute.disputeProjects) === null || _c === void 0 ? void 0 : _c.forEach((project) => {
116
+ var _a, _b;
117
+ const approvedForProject = projectApprovedHours[project.projectId] || 0;
118
+ if (project.disputeType === 'Hourly') {
119
+ const clientRate = ((_b = (_a = submissionData === null || submissionData === void 0 ? void 0 : submissionData.input) === null || _a === void 0 ? void 0 : _a.find((p) => p.projectId === project.projectId)) === null || _b === void 0 ? void 0 : _b.clientRate) || 0;
120
+ calculatedApprovedAmount += approvedForProject * clientRate;
121
+ }
122
+ else {
123
+ calculatedApprovedAmount += approvedForProject;
124
+ }
125
+ });
126
+ }
119
127
  const updateData = {
120
128
  disputeId: dispute.disputeId,
121
129
  status: "Resolved",
@@ -123,9 +131,7 @@ const DecisionSection = ({ dispute, onUpdateDispute, updateInvoiceMutation, upda
123
131
  finalDecisionOwnerId: (user === null || user === void 0 ? void 0 : user.userId) || null,
124
132
  projectDisputes: disputeProjectUpdates
125
133
  };
126
- // If we have adjusted hours, include them in the update
127
134
  if (submissionData) {
128
- // Call the updateInvoiceMutation with the submission data
129
135
  yield updateInvoiceMutation({
130
136
  variables: {
131
137
  input: submissionData.input,
@@ -33,5 +33,5 @@ interface ProjectHoursAdjustmentModalProps {
33
33
  };
34
34
  user: any;
35
35
  }
36
- export declare const ProjectHoursAdjustmentModal: ({ isOpen, onClose, disputeProjects, dispute, onSubmit, isSubmitting, getClientInvoiceSummaryByMonth, invoiceSummary, approvedHours, projectApprovedHours, user, }: ProjectHoursAdjustmentModalProps) => JSX.Element;
36
+ export declare const ProjectHoursAdjustmentModal: ({ isOpen, onClose, disputeProjects, dispute, onSubmit, isSubmitting, getClientInvoiceSummaryByMonth, invoiceSummary, projectApprovedHours, user, }: ProjectHoursAdjustmentModalProps) => JSX.Element;
37
37
  export {};
@@ -35,7 +35,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
35
35
  exports.ProjectHoursAdjustmentModal = void 0;
36
36
  const react_1 = __importStar(require("react"));
37
37
  const base_ui_1 = require("@paro.io/base-ui");
38
- const ProjectHoursAdjustmentModal = ({ isOpen, onClose, disputeProjects, dispute, onSubmit, isSubmitting, getClientInvoiceSummaryByMonth, invoiceSummary, approvedHours, projectApprovedHours, user, }) => {
38
+ const ProjectHoursAdjustmentModal = ({ isOpen, onClose, disputeProjects, dispute, onSubmit, isSubmitting, getClientInvoiceSummaryByMonth, invoiceSummary, projectApprovedHours, user, }) => {
39
39
  var _a, _b;
40
40
  const [adjustedHours, setAdjustedHours] = (0, react_1.useState)({});
41
41
  const [errors, setErrors] = (0, react_1.useState)({});
@@ -186,11 +186,7 @@ const ProjectHoursAdjustmentModal = ({ isOpen, onClose, disputeProjects, dispute
186
186
  const newProjectErrors = {};
187
187
  projectSections.forEach(section => {
188
188
  const projectId = section.projectId;
189
- const maxAllowedReduction = projectApprovedHours[projectId] !== undefined
190
- ? projectApprovedHours[projectId]
191
- : section.disputeType === 'Hourly'
192
- ? section.disputeHours
193
- : section.disputeAmount;
189
+ const maxAllowedReduction = getMaxAllowedReduction(section);
194
190
  section.tasks.forEach(task => {
195
191
  var _a, _b, _c, _d;
196
192
  const projectHourId = task.projectHourId;
@@ -287,14 +283,20 @@ const ProjectHoursAdjustmentModal = ({ isOpen, onClose, disputeProjects, dispute
287
283
  const areAllProjectsValid = () => {
288
284
  return projectSections.every(section => {
289
285
  const projectReduction = getProjectReduction(section.projectId);
290
- const maxAllowedReduction = projectApprovedHours[section.projectId] !== undefined
291
- ? projectApprovedHours[section.projectId]
292
- : section.disputeType === 'Hourly'
293
- ? section.disputeHours
294
- : section.disputeAmount;
286
+ const maxAllowedReduction = getMaxAllowedReduction(section);
295
287
  return Math.abs(projectReduction - maxAllowedReduction) <= 0.01;
296
288
  });
297
289
  };
290
+ const getMaxAllowedReduction = (section) => {
291
+ const isPartialApproval = projectApprovedHours[section.projectId] !== undefined;
292
+ const isHourly = section.disputeType === 'Hourly';
293
+ if (isPartialApproval) {
294
+ return isHourly
295
+ ? section.disputeHours - projectApprovedHours[section.projectId]
296
+ : section.disputeAmount - projectApprovedHours[section.projectId];
297
+ }
298
+ return isHourly ? section.disputeHours : section.disputeAmount;
299
+ };
298
300
  if (loading) {
299
301
  return (react_1.default.createElement(base_ui_1.Modal, { open: isOpen, onClose: onClose, size: "lg", className: "z-[100]" },
300
302
  react_1.default.createElement("div", { className: "flex justify-center items-center py-8" },
@@ -316,11 +318,7 @@ const ProjectHoursAdjustmentModal = ({ isOpen, onClose, disputeProjects, dispute
316
318
  react_1.default.createElement("div", { className: "space-y-8" }, projectSections.map((section) => {
317
319
  var _a, _b;
318
320
  const projectReduction = getProjectReduction(section.projectId) || 0;
319
- const maxAllowedReduction = projectApprovedHours[section.projectId] !== undefined
320
- ? projectApprovedHours[section.projectId]
321
- : section.disputeType === 'Hourly'
322
- ? section.disputeHours
323
- : section.disputeAmount;
321
+ const maxAllowedReduction = getMaxAllowedReduction(section);
324
322
  const isProjectValid = Math.abs(projectReduction - maxAllowedReduction) <= 0.01;
325
323
  const isPartialApproval = projectApprovedHours[section.projectId] !== undefined;
326
324
  return (react_1.default.createElement("div", { key: section.projectId, className: "border border-gray-200 rounded-lg p-6" },
@@ -1 +1 @@
1
- export declare const TestDecisionSection: () => JSX.Element;
1
+ export declare const TestDecisionSection: () => JSX.Element;
@@ -1,126 +1,126 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.TestDecisionSection = void 0;
16
- const react_1 = __importDefault(require("react"));
17
- const DecisionSection_1 = require("./DecisionSection");
18
- // Test data from the provided JSON
19
- const testDispute = {
20
- "__typename": "ClientInvoiceDispute",
21
- "disputeId": 35,
22
- "approvedAmount": 450,
23
- "chatEnabled": true,
24
- "disputeDate": "2025-05-22",
25
- "disputeUpdatedDate": "2025-05-23",
26
- "freelancerId": 8081,
27
- "freelancer": {
28
- "__typename": "User",
29
- "id": 8081,
30
- "email": "andpande@gmail.com",
31
- "firstName": "William",
32
- "lastName": "Annon"
33
- },
34
- "status": "Resolved",
35
- "finalDecisionOwnerId": 29005,
36
- "invoice": {
37
- "__typename": "ClientInvoice",
38
- "amount": 450,
39
- "balanceDue": 450,
40
- "clientId": 4433,
41
- "dateGenerated": "2025-04-14",
42
- "id": 175325,
43
- "month": "2025-04-01"
44
- },
45
- "disputeProjects": [
46
- {
47
- "__typename": "ClientInvoiceDisputeProject",
48
- "id": 37,
49
- "projectId": 19158,
50
- "disputeAmount": 450,
51
- "disputeHours": 30,
52
- "disputeType": "Hourly",
53
- "disputeReasonCode": "Incorrect Hours Logged",
54
- "clientExplanation": "I have a dispute over this expert for the current invoice 175325",
55
- "clientDocumentLinks": "https://expert-client-dispute-files.s3.amazonaws.com/project-19158%2Ftesting.pdf,https://expert-client-dispute-files.s3.amazonaws.com/project-19158%2F_Carmelita_Resume-Graduation__1_.docx",
56
- "expertDocumentLinks": "https://expert-client-dispute-files.s3.amazonaws.com/project-19158%2F0eb4b31b-b6d8-4cd1-b6ac-39b807ea4577.pdf",
57
- "resolutionMode": null,
58
- "resolutionType": null,
59
- "project": {
60
- "__typename": "Project",
61
- "name": "Ongoing Ad-Hoc Support",
62
- "freelancerRate": null,
63
- "clientRate": null,
64
- "projectHours": [
65
- {
66
- "__typename": "ProjectHour",
67
- "id": 136605,
68
- "date": "2022-02-11",
69
- "description": "Ate Tacos",
70
- "hours": 8
71
- },
72
- {
73
- "__typename": "ProjectHour",
74
- "id": 136606,
75
- "date": "2022-02-12",
76
- "description": "Worked on project analysis",
77
- "hours": 6
78
- },
79
- {
80
- "__typename": "ProjectHour",
81
- "id": 136607,
82
- "date": "2022-02-13",
83
- "description": "Client meeting and documentation",
84
- "hours": 4
85
- },
86
- {
87
- "__typename": "ProjectHour",
88
- "id": 136608,
89
- "date": "2022-02-14",
90
- "description": "Code review and testing",
91
- "hours": 7
92
- },
93
- {
94
- "__typename": "ProjectHour",
95
- "id": 136609,
96
- "date": "2022-02-15",
97
- "description": "Final deliverable preparation",
98
- "hours": 5
99
- }
100
- ]
101
- }
102
- }
103
- ],
104
- "lastMessageAt": "2025-05-23T10:56:53.000Z",
105
- "messageCount": 5,
106
- "client": {
107
- "__typename": "Client",
108
- "name": "Vessel Advisors"
109
- }
110
- };
111
- const testUser = {
112
- userId: 29005,
113
- firstName: "Test",
114
- lastName: "User"
115
- };
116
- const TestDecisionSection = () => {
117
- const mockOnUpdateDispute = (variables) => __awaiter(void 0, void 0, void 0, function* () {
118
- console.log('Mock update dispute called with:', variables);
119
- return Promise.resolve({ success: true });
120
- });
121
- const mockUpdateInvoiceMutation = {};
122
- return (react_1.default.createElement("div", { className: "p-8 max-w-4xl mx-auto" },
123
- react_1.default.createElement("h1", { className: "text-2xl font-bold mb-6" }, "Test Decision Section with Hours Modal"),
124
- react_1.default.createElement(DecisionSection_1.DecisionSection, { dispute: testDispute, onUpdateDispute: mockOnUpdateDispute, updateInvoiceMutation: mockUpdateInvoiceMutation, user: testUser })));
125
- };
126
- exports.TestDecisionSection = TestDecisionSection;
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.TestDecisionSection = void 0;
16
+ const react_1 = __importDefault(require("react"));
17
+ const DecisionSection_1 = require("./DecisionSection");
18
+ // Test data from the provided JSON
19
+ const testDispute = {
20
+ "__typename": "ClientInvoiceDispute",
21
+ "disputeId": 35,
22
+ "approvedAmount": 450,
23
+ "chatEnabled": true,
24
+ "disputeDate": "2025-05-22",
25
+ "disputeUpdatedDate": "2025-05-23",
26
+ "freelancerId": 8081,
27
+ "freelancer": {
28
+ "__typename": "User",
29
+ "id": 8081,
30
+ "email": "andpande@gmail.com",
31
+ "firstName": "William",
32
+ "lastName": "Annon"
33
+ },
34
+ "status": "Resolved",
35
+ "finalDecisionOwnerId": 29005,
36
+ "invoice": {
37
+ "__typename": "ClientInvoice",
38
+ "amount": 450,
39
+ "balanceDue": 450,
40
+ "clientId": 4433,
41
+ "dateGenerated": "2025-04-14",
42
+ "id": 175325,
43
+ "month": "2025-04-01"
44
+ },
45
+ "disputeProjects": [
46
+ {
47
+ "__typename": "ClientInvoiceDisputeProject",
48
+ "id": 37,
49
+ "projectId": 19158,
50
+ "disputeAmount": 450,
51
+ "disputeHours": 30,
52
+ "disputeType": "Hourly",
53
+ "disputeReasonCode": "Incorrect Hours Logged",
54
+ "clientExplanation": "I have a dispute over this expert for the current invoice 175325",
55
+ "clientDocumentLinks": "https://expert-client-dispute-files.s3.amazonaws.com/project-19158%2Ftesting.pdf,https://expert-client-dispute-files.s3.amazonaws.com/project-19158%2F_Carmelita_Resume-Graduation__1_.docx",
56
+ "expertDocumentLinks": "https://expert-client-dispute-files.s3.amazonaws.com/project-19158%2F0eb4b31b-b6d8-4cd1-b6ac-39b807ea4577.pdf",
57
+ "resolutionMode": null,
58
+ "resolutionType": null,
59
+ "project": {
60
+ "__typename": "Project",
61
+ "name": "Ongoing Ad-Hoc Support",
62
+ "freelancerRate": null,
63
+ "clientRate": null,
64
+ "projectHours": [
65
+ {
66
+ "__typename": "ProjectHour",
67
+ "id": 136605,
68
+ "date": "2022-02-11",
69
+ "description": "Ate Tacos",
70
+ "hours": 8
71
+ },
72
+ {
73
+ "__typename": "ProjectHour",
74
+ "id": 136606,
75
+ "date": "2022-02-12",
76
+ "description": "Worked on project analysis",
77
+ "hours": 6
78
+ },
79
+ {
80
+ "__typename": "ProjectHour",
81
+ "id": 136607,
82
+ "date": "2022-02-13",
83
+ "description": "Client meeting and documentation",
84
+ "hours": 4
85
+ },
86
+ {
87
+ "__typename": "ProjectHour",
88
+ "id": 136608,
89
+ "date": "2022-02-14",
90
+ "description": "Code review and testing",
91
+ "hours": 7
92
+ },
93
+ {
94
+ "__typename": "ProjectHour",
95
+ "id": 136609,
96
+ "date": "2022-02-15",
97
+ "description": "Final deliverable preparation",
98
+ "hours": 5
99
+ }
100
+ ]
101
+ }
102
+ }
103
+ ],
104
+ "lastMessageAt": "2025-05-23T10:56:53.000Z",
105
+ "messageCount": 5,
106
+ "client": {
107
+ "__typename": "Client",
108
+ "name": "Vessel Advisors"
109
+ }
110
+ };
111
+ const testUser = {
112
+ userId: 29005,
113
+ firstName: "Test",
114
+ lastName: "User"
115
+ };
116
+ const TestDecisionSection = () => {
117
+ const mockOnUpdateDispute = (variables) => __awaiter(void 0, void 0, void 0, function* () {
118
+ console.log('Mock update dispute called with:', variables);
119
+ return Promise.resolve({ success: true });
120
+ });
121
+ const mockUpdateInvoiceMutation = {};
122
+ return (react_1.default.createElement("div", { className: "p-8 max-w-4xl mx-auto" },
123
+ react_1.default.createElement("h1", { className: "text-2xl font-bold mb-6" }, "Test Decision Section with Hours Modal"),
124
+ react_1.default.createElement(DecisionSection_1.DecisionSection, { dispute: testDispute, onUpdateDispute: mockOnUpdateDispute, updateInvoiceMutation: mockUpdateInvoiceMutation, user: testUser })));
125
+ };
126
+ exports.TestDecisionSection = TestDecisionSection;
@@ -1,15 +1,15 @@
1
- interface OrgChartProps {
2
- openModal: boolean;
3
- setOpenModal: (openModal: boolean) => void;
4
- expertFirms: any;
5
- firstName: string;
6
- lastName: string;
7
- imageUrl?: string;
8
- primaryServiceLine: string;
9
- city: string;
10
- stateAbbreviation: string;
11
- paroTenure?: string;
12
- isPublicProfile?: boolean;
13
- }
14
- export declare const OrganizationChart: ({ openModal, setOpenModal, expertFirms, firstName, lastName, imageUrl, primaryServiceLine, city, stateAbbreviation, paroTenure, isPublicProfile }: OrgChartProps) => JSX.Element;
15
- export {};
1
+ interface OrgChartProps {
2
+ openModal: boolean;
3
+ setOpenModal: (openModal: boolean) => void;
4
+ expertFirms: any;
5
+ firstName: string;
6
+ lastName: string;
7
+ imageUrl?: string;
8
+ primaryServiceLine: string;
9
+ city: string;
10
+ stateAbbreviation: string;
11
+ paroTenure?: string;
12
+ isPublicProfile?: boolean;
13
+ }
14
+ export declare const OrganizationChart: ({ openModal, setOpenModal, expertFirms, firstName, lastName, imageUrl, primaryServiceLine, city, stateAbbreviation, paroTenure, isPublicProfile }: OrgChartProps) => JSX.Element;
15
+ export {};