@paro.io/expert-shared-components 1.14.9 → 1.14.11

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 (76) 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/Escalations/AccountSuspensionBanner.js +9 -4
  44. package/lib/components/Escalations/CustomTag.d.ts +3 -3
  45. package/lib/components/Escalations/CustomTag.js +25 -25
  46. package/lib/components/Escalations/ViewReponseModal.d.ts +8 -8
  47. package/lib/components/Escalations/ViewReponseModal.js +27 -27
  48. package/lib/components/ExpertProfileHeader/ActionButtonSection.js +6 -6
  49. package/lib/components/ExpertProfileHeader/ProfileSection.js +7 -7
  50. package/lib/components/Invoices/DiscussionSection.js +22 -2
  51. package/lib/components/Invoices/TestDecisionSection.d.ts +1 -1
  52. package/lib/components/Invoices/TestDecisionSection.js +126 -126
  53. package/lib/components/OrganizationChart/OrganizationChart.js +7 -7
  54. package/lib/components/OrganizationChart/PersonCard.js +5 -5
  55. package/lib/components/OrganizationChart/utils.js +79 -79
  56. package/lib/components/ProjectCard/ProgressBar.js +4 -4
  57. package/lib/components/ProjectCard/ReviewRequestModal.js +5 -5
  58. package/lib/components/ProjectIntelligence/EngagementHeader/index.js +5 -1
  59. package/lib/components/ProjectIntelligence/FocusAreas/index.d.ts +1 -1
  60. package/lib/components/ProjectIntelligence/FocusAreas/index.js +5 -5
  61. package/lib/components/ProjectIntelligence/MissingInformation/index.d.ts +1 -1
  62. package/lib/components/ProjectIntelligence/MissingInformation/index.js +3 -3
  63. package/lib/components/ProjectIntelligence/index.d.ts +2 -2
  64. package/lib/components/ProjectIntelligence/index.js +110 -23
  65. package/lib/components/Reviews/Pagination.js +6 -6
  66. package/lib/components/ReviewsTab/RatingHeader.js +6 -6
  67. package/lib/components/ReviewsTab/expert-shared-components.code-workspace +20 -20
  68. package/lib/components/ReviewsTab/reviewRequestModal.js +5 -5
  69. package/lib/components/shared/Image.js +13 -13
  70. package/lib/components/shared/ProfileTextField.d.ts +18 -18
  71. package/lib/components/shared/ProfileTextField.js +16 -16
  72. package/lib/components/shared/StyledActionButtons.d.ts +7 -7
  73. package/lib/components/shared/StyledActionButtons.js +15 -15
  74. package/lib/components/shared/ToastNotification.d.ts +10 -10
  75. package/lib/components/shared/ToastNotification.js +63 -63
  76. package/package.json +67 -67
@@ -1,22 +1,22 @@
1
- import React from "react";
2
- interface EditDateModalProps {
3
- freelancerId: number;
4
- freelancerEmail: string;
5
- project: any;
6
- previousDate: any;
7
- editDate: any;
8
- setEditDate: (editDate: any) => void;
9
- isDateInvalid: boolean;
10
- setIsDateInvalid: (isDateInvalid: boolean) => void;
11
- validateDate: any;
12
- changeType: string;
13
- expertName: string;
14
- isAuthenticated: boolean;
15
- selectedTab: number;
16
- createChangeRequestMutation?: any;
17
- GetAllProjectIrprDetailsForFreelancerDocument: any;
18
- createChangeRequest?: any;
19
- isTestEnv: boolean;
20
- }
21
- export declare const EditDateModal: ({ freelancerId, freelancerEmail, project, previousDate, editDate, setEditDate, setIsDateInvalid, validateDate, isDateInvalid, changeType, expertName, isAuthenticated, selectedTab, createChangeRequestMutation, GetAllProjectIrprDetailsForFreelancerDocument, createChangeRequest, isTestEnv }: EditDateModalProps) => React.JSX.Element;
22
- export {};
1
+ import React from "react";
2
+ interface EditDateModalProps {
3
+ freelancerId: number;
4
+ freelancerEmail: string;
5
+ project: any;
6
+ previousDate: any;
7
+ editDate: any;
8
+ setEditDate: (editDate: any) => void;
9
+ isDateInvalid: boolean;
10
+ setIsDateInvalid: (isDateInvalid: boolean) => void;
11
+ validateDate: any;
12
+ changeType: string;
13
+ expertName: string;
14
+ isAuthenticated: boolean;
15
+ selectedTab: number;
16
+ createChangeRequestMutation?: any;
17
+ GetAllProjectIrprDetailsForFreelancerDocument: any;
18
+ createChangeRequest?: any;
19
+ isTestEnv: boolean;
20
+ }
21
+ export declare const EditDateModal: ({ freelancerId, freelancerEmail, project, previousDate, editDate, setEditDate, setIsDateInvalid, validateDate, isDateInvalid, changeType, expertName, isAuthenticated, selectedTab, createChangeRequestMutation, GetAllProjectIrprDetailsForFreelancerDocument, createChangeRequest, isTestEnv }: EditDateModalProps) => React.JSX.Element;
22
+ export {};
@@ -1,149 +1,149 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __importDefault = (this && this.__importDefault) || function (mod) {
35
- return (mod && mod.__esModule) ? mod : { "default": mod };
36
- };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.EditDateModal = void 0;
39
- const react_1 = __importStar(require("react"));
40
- const react_hot_toast_1 = __importDefault(require("react-hot-toast"));
41
- const base_ui_1 = require("@paro.io/base-ui");
42
- const LogTimeModalAuthenticated_1 = require("./LogTimeModalAuthenticated");
43
- const dayjs_1 = __importDefault(require("dayjs"));
44
- const utc_1 = __importDefault(require("dayjs/plugin/utc"));
45
- const timezone_1 = __importDefault(require("dayjs/plugin/timezone"));
46
- dayjs_1.default.extend(utc_1.default);
47
- dayjs_1.default.extend(timezone_1.default);
48
- const options = [
49
- {
50
- label: 'Select a Reason',
51
- value: '',
52
- },
53
- {
54
- label: 'The client has delayed the project',
55
- value: 'The client has delayed the project',
56
- },
57
- {
58
- label: 'The expert has delayed the project',
59
- value: 'The expert has delayed the project',
60
- },
61
- {
62
- label: 'Extension of the previous phase',
63
- value: 'Extension of the previous phase',
64
- },
65
- {
66
- label: 'Other',
67
- value: 'Other',
68
- }
69
- ];
70
- const EditDateModal = ({ freelancerId, freelancerEmail, project, previousDate, editDate, setEditDate, setIsDateInvalid, validateDate, isDateInvalid, changeType, expertName, isAuthenticated, selectedTab, createChangeRequestMutation, GetAllProjectIrprDetailsForFreelancerDocument, createChangeRequest, isTestEnv }) => {
71
- const [date, setDate] = (0, react_1.useState)(null);
72
- const [loading, setLoading] = (0, react_1.useState)(false);
73
- const [reason, setReason] = (0, react_1.useState)('');
74
- const [inputReason, setInputReason] = (0, react_1.useState)('');
75
- const todayDate = new Date();
76
- const dateToUse = (project === null || project === void 0 ? void 0 : project.endDate) ? new Date(project === null || project === void 0 ? void 0 : project.endDate) : todayDate;
77
- const maxDate = changeType === 'start' ? dateToUse : todayDate.setMonth((todayDate).getMonth() + 12);
78
- const minDate = changeType === 'start' ? new Date(project === null || project === void 0 ? void 0 : project.startDate).setMonth((todayDate).getMonth() - 3) : project === null || project === void 0 ? void 0 : project.startDate;
79
- const handleSubmitDate = () => __awaiter(void 0, void 0, void 0, function* () {
80
- var _a;
81
- setLoading(true);
82
- const projectTypes = ["ACTIVE", "ADHOC", "UPCOMING", "INACTIVE", "COMPLETED"];
83
- try {
84
- const changeRequestDetails = {
85
- dateSubmitted: (0, dayjs_1.default)(new Date()).format('MM/DD/YYYY'),
86
- changeReason: reason !== null && reason !== void 0 ? reason : inputReason,
87
- changeType: `${changeType.charAt(0).toUpperCase() + changeType.slice(1)} Date`,
88
- entityName: project === null || project === void 0 ? void 0 : project.name,
89
- freelancerId: Number(freelancerId),
90
- oldValue: (0, dayjs_1.default)(previousDate).format('MM/DD/YYYY'),
91
- newValue: (0, dayjs_1.default)(date).format('MM/DD/YYYY'),
92
- status: 'New',
93
- projectType: projectTypes[selectedTab],
94
- freelancerName: expertName,
95
- email: freelancerEmail,
96
- csmEmail: isTestEnv ? "admin@paro.io" : project === null || project === void 0 ? void 0 : project.csmEmail,
97
- amEmail: isTestEnv ? "admin@paro.io" : (_a = project === null || project === void 0 ? void 0 : project.paroContact) === null || _a === void 0 ? void 0 : _a.email,
98
- entityId: Number(project === null || project === void 0 ? void 0 : project.id),
99
- };
100
- isAuthenticated ? createChangeRequestMutation({
101
- variables: {
102
- input: changeRequestDetails
103
- },
104
- refetchQueries: [
105
- { query: GetAllProjectIrprDetailsForFreelancerDocument, variables: { freelancerId, projectType: 3, activeTabId: selectedTab } }
106
- ]
107
- }) : yield createChangeRequest(changeRequestDetails);
108
- (0, react_hot_toast_1.default)(react_1.default.createElement(base_ui_1.Alert, { color: "success", icon: "success", label: `Succesfully submitted ${changeType.charAt(0).toUpperCase() + changeType.slice(1)} Date Change Request` }), {
109
- position: 'bottom-right',
110
- style: { borderRadius: '8px' },
111
- });
112
- setLoading(false);
113
- setDate(null);
114
- setEditDate(false);
115
- setReason('');
116
- setInputReason('');
117
- }
118
- catch (error) {
119
- setLoading(false);
120
- console.log(`Error updating ${changeType} date`, error);
121
- (0, react_hot_toast_1.default)(react_1.default.createElement(base_ui_1.Alert, { color: "danger", icon: "danger", label: `Failed to update ${changeType.charAt(0).toUpperCase() + changeType.slice(1)} Date` }), {
122
- position: 'bottom-right',
123
- style: { borderRadius: '8px' },
124
- });
125
- }
126
- });
127
- const onCloseModal = () => {
128
- setLoading(false);
129
- setDate(null);
130
- setEditDate(false);
131
- setReason('');
132
- setInputReason('');
133
- };
134
- return (react_1.default.createElement(base_ui_1.Modal, { open: editDate, onClose: () => onCloseModal(), size: "sm", className: "z-[100]" },
135
- react_1.default.createElement("div", { className: "flex flex-col gap-y-2" },
136
- react_1.default.createElement("h1", { className: "font-bold text-xl" }, `Change the ${changeType === 'start' ? 'Start' : 'End'} Date`),
137
- react_1.default.createElement("p", { className: "text-md mb-6" }, `To make changes to the ${changeType === 'start' ? 'start' : 'end'} date please fill out the fields below.`),
138
- react_1.default.createElement("p", { className: "font-bold" }, `What is the new ${changeType === 'start' ? 'start' : 'end'} date?`),
139
- react_1.default.createElement(LogTimeModalAuthenticated_1.SelectDate, { timeLogDate: date, setTimeLogDate: setDate, isInvalid: false, setIsDateInvalid: setIsDateInvalid, validateDate: validateDate, maxDate: (0, dayjs_1.default)(maxDate).format('MM/DD/YYYY'), minDate: (0, dayjs_1.default)(minDate).format('MM/DD/YYYY') }),
140
- isDateInvalid && react_1.default.createElement("div", { className: "text-red-800 text-xs" }, "Please enter a valid date"),
141
- react_1.default.createElement("p", { className: "font-bold mt-2" }, "Please select a reason for change:"),
142
- react_1.default.createElement("div", { className: "w-full sm:w-2/3 flex flex-col gap-y-2" },
143
- react_1.default.createElement(base_ui_1.Autocomplete, { label: "", name: 'reason-select', value: reason, onSelect: (value) => setReason(value), options: options, isInvalid: reason === '', isInvalidText: "Reason can't be empty", size: 'md' }),
144
- reason === 'Other' && (react_1.default.createElement(base_ui_1.Input, { type: "select", placeholder: `Please enter your reason for ${changeType === 'start' ? 'start' : 'end'} date change`, value: inputReason, onChange: (e) => setInputReason(e.target.value) }))),
145
- react_1.default.createElement("div", { className: "flex flex-row gap-x-2 mt-12 mb-4" },
146
- react_1.default.createElement(base_ui_1.Button, { type: "button", onClick: () => onCloseModal(), label: "CANCEL", className: "mt-4" }),
147
- react_1.default.createElement(base_ui_1.Button, { type: "button", onClick: () => handleSubmitDate(), label: "SAVE", className: "mt-4", color: "primary", disabled: isDateInvalid || !reason || !date, isLoading: loading })))));
148
- };
149
- exports.EditDateModal = EditDateModal;
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.EditDateModal = void 0;
39
+ const react_1 = __importStar(require("react"));
40
+ const react_hot_toast_1 = __importDefault(require("react-hot-toast"));
41
+ const base_ui_1 = require("@paro.io/base-ui");
42
+ const LogTimeModalAuthenticated_1 = require("./LogTimeModalAuthenticated");
43
+ const dayjs_1 = __importDefault(require("dayjs"));
44
+ const utc_1 = __importDefault(require("dayjs/plugin/utc"));
45
+ const timezone_1 = __importDefault(require("dayjs/plugin/timezone"));
46
+ dayjs_1.default.extend(utc_1.default);
47
+ dayjs_1.default.extend(timezone_1.default);
48
+ const options = [
49
+ {
50
+ label: 'Select a Reason',
51
+ value: '',
52
+ },
53
+ {
54
+ label: 'The client has delayed the project',
55
+ value: 'The client has delayed the project',
56
+ },
57
+ {
58
+ label: 'The expert has delayed the project',
59
+ value: 'The expert has delayed the project',
60
+ },
61
+ {
62
+ label: 'Extension of the previous phase',
63
+ value: 'Extension of the previous phase',
64
+ },
65
+ {
66
+ label: 'Other',
67
+ value: 'Other',
68
+ }
69
+ ];
70
+ const EditDateModal = ({ freelancerId, freelancerEmail, project, previousDate, editDate, setEditDate, setIsDateInvalid, validateDate, isDateInvalid, changeType, expertName, isAuthenticated, selectedTab, createChangeRequestMutation, GetAllProjectIrprDetailsForFreelancerDocument, createChangeRequest, isTestEnv }) => {
71
+ const [date, setDate] = (0, react_1.useState)(null);
72
+ const [loading, setLoading] = (0, react_1.useState)(false);
73
+ const [reason, setReason] = (0, react_1.useState)('');
74
+ const [inputReason, setInputReason] = (0, react_1.useState)('');
75
+ const todayDate = new Date();
76
+ const dateToUse = (project === null || project === void 0 ? void 0 : project.endDate) ? new Date(project === null || project === void 0 ? void 0 : project.endDate) : todayDate;
77
+ const maxDate = changeType === 'start' ? dateToUse : todayDate.setMonth((todayDate).getMonth() + 12);
78
+ const minDate = changeType === 'start' ? new Date(project === null || project === void 0 ? void 0 : project.startDate).setMonth((todayDate).getMonth() - 3) : project === null || project === void 0 ? void 0 : project.startDate;
79
+ const handleSubmitDate = () => __awaiter(void 0, void 0, void 0, function* () {
80
+ var _a;
81
+ setLoading(true);
82
+ const projectTypes = ["ACTIVE", "ADHOC", "UPCOMING", "INACTIVE", "COMPLETED"];
83
+ try {
84
+ const changeRequestDetails = {
85
+ dateSubmitted: (0, dayjs_1.default)(new Date()).format('MM/DD/YYYY'),
86
+ changeReason: reason !== null && reason !== void 0 ? reason : inputReason,
87
+ changeType: `${changeType.charAt(0).toUpperCase() + changeType.slice(1)} Date`,
88
+ entityName: project === null || project === void 0 ? void 0 : project.name,
89
+ freelancerId: Number(freelancerId),
90
+ oldValue: (0, dayjs_1.default)(previousDate).format('MM/DD/YYYY'),
91
+ newValue: (0, dayjs_1.default)(date).format('MM/DD/YYYY'),
92
+ status: 'New',
93
+ projectType: projectTypes[selectedTab],
94
+ freelancerName: expertName,
95
+ email: freelancerEmail,
96
+ csmEmail: isTestEnv ? "admin@paro.io" : project === null || project === void 0 ? void 0 : project.csmEmail,
97
+ amEmail: isTestEnv ? "admin@paro.io" : (_a = project === null || project === void 0 ? void 0 : project.paroContact) === null || _a === void 0 ? void 0 : _a.email,
98
+ entityId: Number(project === null || project === void 0 ? void 0 : project.id),
99
+ };
100
+ isAuthenticated ? createChangeRequestMutation({
101
+ variables: {
102
+ input: changeRequestDetails
103
+ },
104
+ refetchQueries: [
105
+ { query: GetAllProjectIrprDetailsForFreelancerDocument, variables: { freelancerId, projectType: 3, activeTabId: selectedTab } }
106
+ ]
107
+ }) : yield createChangeRequest(changeRequestDetails);
108
+ (0, react_hot_toast_1.default)(react_1.default.createElement(base_ui_1.Alert, { color: "success", icon: "success", label: `Succesfully submitted ${changeType.charAt(0).toUpperCase() + changeType.slice(1)} Date Change Request` }), {
109
+ position: 'bottom-right',
110
+ style: { borderRadius: '8px' },
111
+ });
112
+ setLoading(false);
113
+ setDate(null);
114
+ setEditDate(false);
115
+ setReason('');
116
+ setInputReason('');
117
+ }
118
+ catch (error) {
119
+ setLoading(false);
120
+ console.log(`Error updating ${changeType} date`, error);
121
+ (0, react_hot_toast_1.default)(react_1.default.createElement(base_ui_1.Alert, { color: "danger", icon: "danger", label: `Failed to update ${changeType.charAt(0).toUpperCase() + changeType.slice(1)} Date` }), {
122
+ position: 'bottom-right',
123
+ style: { borderRadius: '8px' },
124
+ });
125
+ }
126
+ });
127
+ const onCloseModal = () => {
128
+ setLoading(false);
129
+ setDate(null);
130
+ setEditDate(false);
131
+ setReason('');
132
+ setInputReason('');
133
+ };
134
+ return (react_1.default.createElement(base_ui_1.Modal, { open: editDate, onClose: () => onCloseModal(), size: "sm", className: "z-[100]" },
135
+ react_1.default.createElement("div", { className: "flex flex-col gap-y-2" },
136
+ react_1.default.createElement("h1", { className: "font-bold text-xl" }, `Change the ${changeType === 'start' ? 'Start' : 'End'} Date`),
137
+ react_1.default.createElement("p", { className: "text-md mb-6" }, `To make changes to the ${changeType === 'start' ? 'start' : 'end'} date please fill out the fields below.`),
138
+ react_1.default.createElement("p", { className: "font-bold" }, `What is the new ${changeType === 'start' ? 'start' : 'end'} date?`),
139
+ react_1.default.createElement(LogTimeModalAuthenticated_1.SelectDate, { timeLogDate: date, setTimeLogDate: setDate, isInvalid: false, setIsDateInvalid: setIsDateInvalid, validateDate: validateDate, maxDate: (0, dayjs_1.default)(maxDate).format('MM/DD/YYYY'), minDate: (0, dayjs_1.default)(minDate).format('MM/DD/YYYY') }),
140
+ isDateInvalid && react_1.default.createElement("div", { className: "text-red-800 text-xs" }, "Please enter a valid date"),
141
+ react_1.default.createElement("p", { className: "font-bold mt-2" }, "Please select a reason for change:"),
142
+ react_1.default.createElement("div", { className: "w-full sm:w-2/3 flex flex-col gap-y-2" },
143
+ react_1.default.createElement(base_ui_1.Autocomplete, { label: "", name: 'reason-select', value: reason, onSelect: (value) => setReason(value), options: options, isInvalid: reason === '', isInvalidText: "Reason can't be empty", size: 'md' }),
144
+ reason === 'Other' && (react_1.default.createElement(base_ui_1.Input, { type: "select", placeholder: `Please enter your reason for ${changeType === 'start' ? 'start' : 'end'} date change`, value: inputReason, onChange: (e) => setInputReason(e.target.value) }))),
145
+ react_1.default.createElement("div", { className: "flex flex-row gap-x-2 mt-12 mb-4" },
146
+ react_1.default.createElement(base_ui_1.Button, { type: "button", onClick: () => onCloseModal(), label: "CANCEL", className: "mt-4" }),
147
+ react_1.default.createElement(base_ui_1.Button, { type: "button", onClick: () => handleSubmitDate(), label: "SAVE", className: "mt-4", color: "primary", disabled: isDateInvalid || !reason || !date, isLoading: loading })))));
148
+ };
149
+ exports.EditDateModal = EditDateModal;
@@ -1,14 +1,14 @@
1
- import React from "react";
2
- interface EmailModalProps {
3
- emailModal: boolean;
4
- setEmailModal: (emailModal: boolean) => void;
5
- emailText: string;
6
- setEmailText: (emailText: string) => void;
7
- setTicketModal: (ticketModal: boolean) => void;
8
- project: any;
9
- expertName: string;
10
- sendParoSupportEmail: any;
11
- isTestEnv: boolean;
12
- }
13
- export declare const EmailModal: ({ emailModal, setEmailModal, emailText, setEmailText, setTicketModal, project, expertName, sendParoSupportEmail, isTestEnv }: EmailModalProps) => React.JSX.Element;
14
- export {};
1
+ import React from "react";
2
+ interface EmailModalProps {
3
+ emailModal: boolean;
4
+ setEmailModal: (emailModal: boolean) => void;
5
+ emailText: string;
6
+ setEmailText: (emailText: string) => void;
7
+ setTicketModal: (ticketModal: boolean) => void;
8
+ project: any;
9
+ expertName: string;
10
+ sendParoSupportEmail: any;
11
+ isTestEnv: boolean;
12
+ }
13
+ export declare const EmailModal: ({ emailModal, setEmailModal, emailText, setEmailText, setTicketModal, project, expertName, sendParoSupportEmail, isTestEnv }: EmailModalProps) => React.JSX.Element;
14
+ export {};
@@ -1,79 +1,79 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __importDefault = (this && this.__importDefault) || function (mod) {
35
- return (mod && mod.__esModule) ? mod : { "default": mod };
36
- };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.EmailModal = void 0;
39
- const react_1 = __importStar(require("react"));
40
- const react_hot_toast_1 = __importDefault(require("react-hot-toast"));
41
- const base_ui_1 = require("@paro.io/base-ui");
42
- const EmailModal = ({ emailModal, setEmailModal, emailText, setEmailText, setTicketModal, project, expertName, sendParoSupportEmail, isTestEnv }) => {
43
- const [loading, setLoading] = (0, react_1.useState)(false);
44
- const handleSubmit = () => __awaiter(void 0, void 0, void 0, function* () {
45
- var _a, _b;
46
- setLoading(true);
47
- try {
48
- yield sendParoSupportEmail({
49
- csm_email: isTestEnv ? "admin@paro.io" : "projectsupport@paro.io",
50
- am_email: isTestEnv ? "admin@paro.io" : (_a = project === null || project === void 0 ? void 0 : project.paroContact) === null || _a === void 0 ? void 0 : _a.email,
51
- expert_name: expertName,
52
- client_name: (_b = project === null || project === void 0 ? void 0 : project.client) === null || _b === void 0 ? void 0 : _b.name,
53
- project_name: project === null || project === void 0 ? void 0 : project.name,
54
- problem_description: emailText
55
- });
56
- (0, react_hot_toast_1.default)(react_1.default.createElement(base_ui_1.Alert, { color: "success", icon: "success", label: `Email sent successful` }), {
57
- position: 'bottom-right',
58
- style: { borderRadius: '8px' },
59
- });
60
- setTicketModal(true);
61
- setEmailModal(false);
62
- setEmailText("");
63
- setLoading(false);
64
- }
65
- catch (error) {
66
- setLoading(false);
67
- console.log(`Error sending email`, error);
68
- (0, react_hot_toast_1.default)(react_1.default.createElement(base_ui_1.Alert, { color: "danger", icon: "danger", label: `Failed to send email` }), {
69
- position: 'bottom-right',
70
- style: { borderRadius: '8px' },
71
- });
72
- }
73
- });
74
- return (react_1.default.createElement(base_ui_1.Modal, { open: emailModal, onClose: () => setEmailModal(false), size: "sm", className: "z-[100]" },
75
- react_1.default.createElement("h1", { className: "font-bold text-lg mb-2" }, "Please describe your problem or issue"),
76
- react_1.default.createElement(base_ui_1.Input, { value: emailText, type: "text", placeholder: "Please describe your problem or issue", onChange: (e) => setEmailText(e.target.value) }),
77
- react_1.default.createElement(base_ui_1.Button, { type: "button", onClick: () => { handleSubmit(); }, label: "SUBMIT", className: "mt-4", color: "primary", isLoading: loading })));
78
- };
79
- exports.EmailModal = EmailModal;
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.EmailModal = void 0;
39
+ const react_1 = __importStar(require("react"));
40
+ const react_hot_toast_1 = __importDefault(require("react-hot-toast"));
41
+ const base_ui_1 = require("@paro.io/base-ui");
42
+ const EmailModal = ({ emailModal, setEmailModal, emailText, setEmailText, setTicketModal, project, expertName, sendParoSupportEmail, isTestEnv }) => {
43
+ const [loading, setLoading] = (0, react_1.useState)(false);
44
+ const handleSubmit = () => __awaiter(void 0, void 0, void 0, function* () {
45
+ var _a, _b;
46
+ setLoading(true);
47
+ try {
48
+ yield sendParoSupportEmail({
49
+ csm_email: isTestEnv ? "admin@paro.io" : "projectsupport@paro.io",
50
+ am_email: isTestEnv ? "admin@paro.io" : (_a = project === null || project === void 0 ? void 0 : project.paroContact) === null || _a === void 0 ? void 0 : _a.email,
51
+ expert_name: expertName,
52
+ client_name: (_b = project === null || project === void 0 ? void 0 : project.client) === null || _b === void 0 ? void 0 : _b.name,
53
+ project_name: project === null || project === void 0 ? void 0 : project.name,
54
+ problem_description: emailText
55
+ });
56
+ (0, react_hot_toast_1.default)(react_1.default.createElement(base_ui_1.Alert, { color: "success", icon: "success", label: `Email sent successful` }), {
57
+ position: 'bottom-right',
58
+ style: { borderRadius: '8px' },
59
+ });
60
+ setTicketModal(true);
61
+ setEmailModal(false);
62
+ setEmailText("");
63
+ setLoading(false);
64
+ }
65
+ catch (error) {
66
+ setLoading(false);
67
+ console.log(`Error sending email`, error);
68
+ (0, react_hot_toast_1.default)(react_1.default.createElement(base_ui_1.Alert, { color: "danger", icon: "danger", label: `Failed to send email` }), {
69
+ position: 'bottom-right',
70
+ style: { borderRadius: '8px' },
71
+ });
72
+ }
73
+ });
74
+ return (react_1.default.createElement(base_ui_1.Modal, { open: emailModal, onClose: () => setEmailModal(false), size: "sm", className: "z-[100]" },
75
+ react_1.default.createElement("h1", { className: "font-bold text-lg mb-2" }, "Please describe your problem or issue"),
76
+ react_1.default.createElement(base_ui_1.Input, { value: emailText, type: "text", placeholder: "Please describe your problem or issue", onChange: (e) => setEmailText(e.target.value) }),
77
+ react_1.default.createElement(base_ui_1.Button, { type: "button", onClick: () => { handleSubmit(); }, label: "SUBMIT", className: "mt-4", color: "primary", isLoading: loading })));
78
+ };
79
+ exports.EmailModal = EmailModal;