@paro.io/expert-shared-components 1.14.24 → 1.14.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 (82) 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/DiscussionThread.d.ts +25 -25
  14. package/lib/components/DiscussionThread/DiscussionThread.js +137 -137
  15. package/lib/components/DiscussionThread/chat.d.ts +22 -22
  16. package/lib/components/DiscussionThread/chat.js +106 -106
  17. package/lib/components/DiscussionThread/index.d.ts +1 -1
  18. package/lib/components/DiscussionThread/index.js +5 -5
  19. package/lib/components/DocumentCenter/ClientDocumentsTable.d.ts +2 -1
  20. package/lib/components/DocumentCenter/ClientDocumentsTable.js +2 -4
  21. package/lib/components/DocumentCenter/DocumentCenter.d.ts +2 -1
  22. package/lib/components/DocumentCenter/DocumentCenter.js +44 -34
  23. package/lib/components/DocumentCenter/DocumentTable.d.ts +15 -15
  24. package/lib/components/DocumentCenter/DocumentTable.js +350 -350
  25. package/lib/components/DocumentCenter/DocumentUploadRow.d.ts +2 -1
  26. package/lib/components/DocumentCenter/DocumentUploadRow.js +2 -2
  27. package/lib/components/DocumentCenter/ParoDocumentsTable.d.ts +2 -1
  28. package/lib/components/DocumentCenter/ParoDocumentsTable.js +2 -2
  29. package/lib/components/DocumentCenter/UploadFilesButton.d.ts +6 -6
  30. package/lib/components/DocumentCenter/UploadFilesButton.js +29 -29
  31. package/lib/components/EarningsTracker/ActiveProjectCard.d.ts +52 -52
  32. package/lib/components/EarningsTracker/ActiveProjectCard.js +161 -161
  33. package/lib/components/EarningsTracker/CenterCardUI.d.ts +13 -13
  34. package/lib/components/EarningsTracker/CenterCardUI.js +134 -134
  35. package/lib/components/EarningsTracker/EarningsTracker.d.ts +52 -52
  36. package/lib/components/EarningsTracker/EarningsTracker.js +508 -508
  37. package/lib/components/EarningsTracker/EditDateModal.d.ts +22 -22
  38. package/lib/components/EarningsTracker/EditDateModal.js +149 -149
  39. package/lib/components/EarningsTracker/EmailModal.d.ts +14 -14
  40. package/lib/components/EarningsTracker/EmailModal.js +79 -79
  41. package/lib/components/EarningsTracker/EndProjectModal.d.ts +56 -56
  42. package/lib/components/EarningsTracker/EndProjectModal.js +221 -221
  43. package/lib/components/EarningsTracker/LeftCardUI.d.ts +18 -18
  44. package/lib/components/EarningsTracker/LeftCardUI.js +189 -189
  45. package/lib/components/EarningsTracker/LogTimeModalAuthenticated.d.ts +52 -52
  46. package/lib/components/EarningsTracker/LogTimeModalAuthenticated.js +358 -358
  47. package/lib/components/EarningsTracker/ProgressBar.d.ts +4 -4
  48. package/lib/components/EarningsTracker/ProgressBar.js +66 -66
  49. package/lib/components/EarningsTracker/ReviewRequestModal.d.ts +17 -17
  50. package/lib/components/EarningsTracker/ReviewRequestModal.js +135 -135
  51. package/lib/components/EarningsTracker/RightCardUI.d.ts +46 -46
  52. package/lib/components/EarningsTracker/RightCardUI.js +231 -231
  53. package/lib/components/EarningsTracker/index.d.ts +1 -1
  54. package/lib/components/EarningsTracker/index.js +5 -5
  55. package/lib/components/Escalations/CustomTag.d.ts +3 -3
  56. package/lib/components/Escalations/CustomTag.js +25 -25
  57. package/lib/components/Escalations/ViewReponseModal.d.ts +8 -8
  58. package/lib/components/Escalations/ViewReponseModal.js +27 -27
  59. package/lib/components/ExpertProfileHeader/ActionButtonSection.js +6 -6
  60. package/lib/components/ExpertProfileHeader/ProfileSection.js +7 -7
  61. package/lib/components/HeaderNavBar/index.js +3 -3
  62. package/lib/components/Invoices/TestDecisionSection.d.ts +1 -1
  63. package/lib/components/Invoices/TestDecisionSection.js +126 -126
  64. package/lib/components/OrganizationChart/OrganizationChart.d.ts +15 -15
  65. package/lib/components/OrganizationChart/OrganizationChart.js +312 -312
  66. package/lib/components/OrganizationChart/PersonCard.js +5 -5
  67. package/lib/components/OrganizationChart/utils.js +79 -79
  68. package/lib/components/ProjectCard/ProgressBar.js +4 -4
  69. package/lib/components/ProjectCard/ReviewRequestModal.js +5 -5
  70. package/lib/components/ProjectIntelligence/MissingInformation/index.js +1 -1
  71. package/lib/components/Reviews/Pagination.js +6 -6
  72. package/lib/components/ReviewsTab/RatingHeader.js +6 -6
  73. package/lib/components/ReviewsTab/expert-shared-components.code-workspace +20 -20
  74. package/lib/components/ReviewsTab/reviewRequestModal.js +5 -5
  75. package/lib/components/shared/Image.js +13 -13
  76. package/lib/components/shared/ProfileTextField.d.ts +18 -18
  77. package/lib/components/shared/ProfileTextField.js +16 -16
  78. package/lib/components/shared/StyledActionButtons.d.ts +7 -7
  79. package/lib/components/shared/StyledActionButtons.js +15 -15
  80. package/lib/components/shared/ToastNotification.d.ts +10 -10
  81. package/lib/components/shared/ToastNotification.js +63 -63
  82. package/package.json +66 -66
@@ -1,22 +1,22 @@
1
- import React from "react";
2
- interface ChatProps {
3
- currentUser: {
4
- id: number;
5
- name: string;
6
- avatar: null;
7
- };
8
- initialThreads: {
9
- id: number;
10
- content: string;
11
- sender: {
12
- id: string;
13
- name: string;
14
- avatar: string | null;
15
- };
16
- timestamp: string;
17
- isCurrentUser: boolean;
18
- }[] | [];
19
- updateChatMutation: () => void;
20
- }
21
- export declare const Chat: ({ currentUser, initialThreads, updateChatMutation, }: ChatProps) => React.JSX.Element;
22
- export {};
1
+ import React from "react";
2
+ interface ChatProps {
3
+ currentUser: {
4
+ id: number;
5
+ name: string;
6
+ avatar: null;
7
+ };
8
+ initialThreads: {
9
+ id: number;
10
+ content: string;
11
+ sender: {
12
+ id: string;
13
+ name: string;
14
+ avatar: string | null;
15
+ };
16
+ timestamp: string;
17
+ isCurrentUser: boolean;
18
+ }[] | [];
19
+ updateChatMutation: () => void;
20
+ }
21
+ export declare const Chat: ({ currentUser, initialThreads, updateChatMutation, }: ChatProps) => React.JSX.Element;
22
+ export {};
@@ -1,106 +1,106 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.Chat = void 0;
27
- const base_ui_1 = require("@paro.io/base-ui");
28
- const react_1 = __importStar(require("react"));
29
- const Chat = ({ currentUser, initialThreads, updateChatMutation, }) => {
30
- const [messages, setMessages] = (0, react_1.useState)(initialThreads);
31
- const [comment, setComment] = (0, react_1.useState)("");
32
- const threadsEndRef = (0, react_1.useRef)(null);
33
- const [invalid, setInvalid] = (0, react_1.useState)(false);
34
- // Auto scroll to bottom when messages change
35
- (0, react_1.useEffect)(() => {
36
- var _a;
37
- (_a = threadsEndRef.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView({ behavior: "smooth" });
38
- }, [messages]);
39
- const handleSend = () => {
40
- setInvalid(false);
41
- if (comment) {
42
- updateChatMutation();
43
- handleSendMessage();
44
- setComment("");
45
- }
46
- else {
47
- setInvalid(true);
48
- }
49
- };
50
- // Handle sending a new message
51
- const handleSendMessage = () => {
52
- const newMsg = {
53
- id: Date.now(),
54
- content: comment,
55
- sender: Object.assign(Object.assign({}, currentUser), { id: currentUser.id.toString() }),
56
- timestamp: new Date().toISOString(),
57
- isCurrentUser: true
58
- };
59
- setMessages([...messages, newMsg]);
60
- setComment("");
61
- };
62
- // Handle key press (send on Enter)
63
- const handleKeyPress = (e) => {
64
- if (e.key === "Enter" && !e.shiftKey) {
65
- e.preventDefault();
66
- handleSend();
67
- }
68
- };
69
- // Format timestamp
70
- const formatTime = (timestamp) => {
71
- const date = new Date(timestamp);
72
- return date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }) +
73
- ' · ' + date.toLocaleDateString([], { month: 'short', day: 'numeric', year: 'numeric' });
74
- };
75
- // Get initials for avatar
76
- const getInitials = (name) => {
77
- return name
78
- .split(' ')
79
- .map(word => word[0])
80
- .join('')
81
- .toUpperCase()
82
- .substring(0, 2);
83
- };
84
- return (react_1.default.createElement("div", { className: "flex flex-col w-full rounded-lg bg-white px-4 h-auto" },
85
- react_1.default.createElement("div", { className: `py-3 flex items-center` },
86
- react_1.default.createElement("div", { className: "font-semibold text-gray-800 capitalize" }, "Discussion Thread")),
87
- react_1.default.createElement("div", { className: "flex-1 max-h-[30vh] overflow-y-auto border rounded-md p-2" },
88
- messages.map((message) => {
89
- var _a, _b, _c;
90
- return (react_1.default.createElement("div", { key: message.id, className: `flex mb-4 ${message.isCurrentUser ? 'justify-end' : 'justify-start'}` },
91
- !message.isCurrentUser && (react_1.default.createElement("div", { className: "flex-shrink-0 mr-2" }, ((_a = message.sender) === null || _a === void 0 ? void 0 : _a.avatar) ? (react_1.default.createElement("img", { src: message.sender.avatar, alt: message.sender.name, className: "h-8 w-8 rounded-full" })) : (react_1.default.createElement("div", { className: `h-8 w-8 rounded-full bg-gray-400 flex items-center justify-center text-white text-xs font-medium ${message.isCurrentUser ? 'bg-[#255b5c]' : 'bg-[#5f4508]'}` }, getInitials(((_b = message.sender) === null || _b === void 0 ? void 0 : _b.name) || 'User'))))),
92
- react_1.default.createElement("div", { className: `${message.isCurrentUser ? 'order-1' : 'order-2'} ml-1 min-w-min max-w-[75%]` },
93
- !message.isCurrentUser && (react_1.default.createElement("div", { className: "text-xs text-gray-500 font-medium mb-1" }, ((_c = message.sender) === null || _c === void 0 ? void 0 : _c.name) || 'Unknown User')),
94
- react_1.default.createElement("div", { className: `px-4 py-2 rounded-lg ${message.isCurrentUser
95
- ? 'bg-[#dbefef] rounded-br-none'
96
- : 'bg-[#f9d8a7] border rounded-bl-none'}` }, message.content),
97
- react_1.default.createElement("div", { className: "text-xs text-gray-500 mt-1" }, formatTime(message.timestamp))),
98
- message.isCurrentUser && (react_1.default.createElement("div", { className: "flex-shrink-0 ml-2" }, (currentUser === null || currentUser === void 0 ? void 0 : currentUser.avatar) ? (react_1.default.createElement("img", { src: currentUser.avatar, alt: currentUser.name, className: "h-8 w-8 rounded-full" })) : (react_1.default.createElement("div", { className: "h-8 w-8 rounded-full bg-blue-400 flex items-center justify-center text-white text-xs font-medium" }, getInitials((currentUser === null || currentUser === void 0 ? void 0 : currentUser.name) || 'You')))))));
99
- }),
100
- react_1.default.createElement("div", { ref: threadsEndRef })),
101
- react_1.default.createElement("div", { className: "py-3" },
102
- react_1.default.createElement("div", { className: "flex items-center" },
103
- react_1.default.createElement("textarea", { value: comment, onChange: (e) => setComment(e.target.value), onKeyDown: handleKeyPress, placeholder: "Type your message here...", className: "flex-1 border rounded-lg px-3 py-2 resize-none focus:outline-none focus:ring-2 focus:ring-blue-500", rows: 1 }),
104
- react_1.default.createElement(base_ui_1.Button, { label: "Send", onClick: handleSend, disabled: !comment.trim(), color: "primary", className: "ml-2 px-4 py-2" })))));
105
- };
106
- exports.Chat = Chat;
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
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.Chat = void 0;
27
+ const base_ui_1 = require("@paro.io/base-ui");
28
+ const react_1 = __importStar(require("react"));
29
+ const Chat = ({ currentUser, initialThreads, updateChatMutation, }) => {
30
+ const [messages, setMessages] = (0, react_1.useState)(initialThreads);
31
+ const [comment, setComment] = (0, react_1.useState)("");
32
+ const threadsEndRef = (0, react_1.useRef)(null);
33
+ const [invalid, setInvalid] = (0, react_1.useState)(false);
34
+ // Auto scroll to bottom when messages change
35
+ (0, react_1.useEffect)(() => {
36
+ var _a;
37
+ (_a = threadsEndRef.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView({ behavior: "smooth" });
38
+ }, [messages]);
39
+ const handleSend = () => {
40
+ setInvalid(false);
41
+ if (comment) {
42
+ updateChatMutation();
43
+ handleSendMessage();
44
+ setComment("");
45
+ }
46
+ else {
47
+ setInvalid(true);
48
+ }
49
+ };
50
+ // Handle sending a new message
51
+ const handleSendMessage = () => {
52
+ const newMsg = {
53
+ id: Date.now(),
54
+ content: comment,
55
+ sender: Object.assign(Object.assign({}, currentUser), { id: currentUser.id.toString() }),
56
+ timestamp: new Date().toISOString(),
57
+ isCurrentUser: true
58
+ };
59
+ setMessages([...messages, newMsg]);
60
+ setComment("");
61
+ };
62
+ // Handle key press (send on Enter)
63
+ const handleKeyPress = (e) => {
64
+ if (e.key === "Enter" && !e.shiftKey) {
65
+ e.preventDefault();
66
+ handleSend();
67
+ }
68
+ };
69
+ // Format timestamp
70
+ const formatTime = (timestamp) => {
71
+ const date = new Date(timestamp);
72
+ return date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }) +
73
+ ' · ' + date.toLocaleDateString([], { month: 'short', day: 'numeric', year: 'numeric' });
74
+ };
75
+ // Get initials for avatar
76
+ const getInitials = (name) => {
77
+ return name
78
+ .split(' ')
79
+ .map(word => word[0])
80
+ .join('')
81
+ .toUpperCase()
82
+ .substring(0, 2);
83
+ };
84
+ return (react_1.default.createElement("div", { className: "flex flex-col w-full rounded-lg bg-white px-4 h-auto" },
85
+ react_1.default.createElement("div", { className: `py-3 flex items-center` },
86
+ react_1.default.createElement("div", { className: "font-semibold text-gray-800 capitalize" }, "Discussion Thread")),
87
+ react_1.default.createElement("div", { className: "flex-1 max-h-[30vh] overflow-y-auto border rounded-md p-2" },
88
+ messages.map((message) => {
89
+ var _a, _b, _c;
90
+ return (react_1.default.createElement("div", { key: message.id, className: `flex mb-4 ${message.isCurrentUser ? 'justify-end' : 'justify-start'}` },
91
+ !message.isCurrentUser && (react_1.default.createElement("div", { className: "flex-shrink-0 mr-2" }, ((_a = message.sender) === null || _a === void 0 ? void 0 : _a.avatar) ? (react_1.default.createElement("img", { src: message.sender.avatar, alt: message.sender.name, className: "h-8 w-8 rounded-full" })) : (react_1.default.createElement("div", { className: `h-8 w-8 rounded-full bg-gray-400 flex items-center justify-center text-white text-xs font-medium ${message.isCurrentUser ? 'bg-[#255b5c]' : 'bg-[#5f4508]'}` }, getInitials(((_b = message.sender) === null || _b === void 0 ? void 0 : _b.name) || 'User'))))),
92
+ react_1.default.createElement("div", { className: `${message.isCurrentUser ? 'order-1' : 'order-2'} ml-1 min-w-min max-w-[75%]` },
93
+ !message.isCurrentUser && (react_1.default.createElement("div", { className: "text-xs text-gray-500 font-medium mb-1" }, ((_c = message.sender) === null || _c === void 0 ? void 0 : _c.name) || 'Unknown User')),
94
+ react_1.default.createElement("div", { className: `px-4 py-2 rounded-lg ${message.isCurrentUser
95
+ ? 'bg-[#dbefef] rounded-br-none'
96
+ : 'bg-[#f9d8a7] border rounded-bl-none'}` }, message.content),
97
+ react_1.default.createElement("div", { className: "text-xs text-gray-500 mt-1" }, formatTime(message.timestamp))),
98
+ message.isCurrentUser && (react_1.default.createElement("div", { className: "flex-shrink-0 ml-2" }, (currentUser === null || currentUser === void 0 ? void 0 : currentUser.avatar) ? (react_1.default.createElement("img", { src: currentUser.avatar, alt: currentUser.name, className: "h-8 w-8 rounded-full" })) : (react_1.default.createElement("div", { className: "h-8 w-8 rounded-full bg-blue-400 flex items-center justify-center text-white text-xs font-medium" }, getInitials((currentUser === null || currentUser === void 0 ? void 0 : currentUser.name) || 'You')))))));
99
+ }),
100
+ react_1.default.createElement("div", { ref: threadsEndRef })),
101
+ react_1.default.createElement("div", { className: "py-3" },
102
+ react_1.default.createElement("div", { className: "flex items-center" },
103
+ react_1.default.createElement("textarea", { value: comment, onChange: (e) => setComment(e.target.value), onKeyDown: handleKeyPress, placeholder: "Type your message here...", className: "flex-1 border rounded-lg px-3 py-2 resize-none focus:outline-none focus:ring-2 focus:ring-blue-500", rows: 1 }),
104
+ react_1.default.createElement(base_ui_1.Button, { label: "Send", onClick: handleSend, disabled: !comment.trim(), color: "primary", className: "ml-2 px-4 py-2" })))));
105
+ };
106
+ exports.Chat = Chat;
@@ -1 +1 @@
1
- export { DiscussionThread } from './DiscussionThread';
1
+ export { DiscussionThread } from './DiscussionThread';
@@ -1,5 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DiscussionThread = void 0;
4
- var DiscussionThread_1 = require("./DiscussionThread");
5
- Object.defineProperty(exports, "DiscussionThread", { enumerable: true, get: function () { return DiscussionThread_1.DiscussionThread; } });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DiscussionThread = void 0;
4
+ var DiscussionThread_1 = require("./DiscussionThread");
5
+ Object.defineProperty(exports, "DiscussionThread", { enumerable: true, get: function () { return DiscussionThread_1.DiscussionThread; } });
@@ -17,6 +17,7 @@ interface ClientDocumentTableProps {
17
17
  downloadDocumentUrl?: string;
18
18
  clientId?: number;
19
19
  stage?: string;
20
+ showAsPage: boolean;
20
21
  }
21
- export declare const ClientDocumentsTable: ({ legacyFreelancerId, expertFiles, setExpertClientFiles, clientAndProjectsList, uploadExpertClientFiles, paroDocuments, freelancerName, freelancerEmail, updateFileLastViewed, deleteExpertClientFile, getFileLazyQuery, expertClientFilesLazyQuery, isClientPortal, documentUploadUrl, downloadDocumentUrl, clientId, stage }: ClientDocumentTableProps) => JSX.Element;
22
+ export declare const ClientDocumentsTable: ({ legacyFreelancerId, expertFiles, setExpertClientFiles, clientAndProjectsList, uploadExpertClientFiles, paroDocuments, freelancerName, freelancerEmail, updateFileLastViewed, deleteExpertClientFile, getFileLazyQuery, expertClientFilesLazyQuery, isClientPortal, documentUploadUrl, downloadDocumentUrl, clientId, stage, showAsPage, }: ClientDocumentTableProps) => JSX.Element;
22
23
  export {};
@@ -135,7 +135,7 @@ const getKeyByValue = (object, value) => {
135
135
  }
136
136
  return Object.keys(object).find(key => object[key] === value);
137
137
  };
138
- const ClientDocumentsTable = ({ legacyFreelancerId, expertFiles, setExpertClientFiles, clientAndProjectsList, uploadExpertClientFiles, paroDocuments, freelancerName, freelancerEmail, updateFileLastViewed, deleteExpertClientFile, getFileLazyQuery, expertClientFilesLazyQuery, isClientPortal, documentUploadUrl, downloadDocumentUrl, clientId, stage }) => {
138
+ const ClientDocumentsTable = ({ legacyFreelancerId, expertFiles, setExpertClientFiles, clientAndProjectsList, uploadExpertClientFiles, paroDocuments, freelancerName, freelancerEmail, updateFileLastViewed, deleteExpertClientFile, getFileLazyQuery, expertClientFilesLazyQuery, isClientPortal, documentUploadUrl, downloadDocumentUrl, clientId, stage, showAsPage, }) => {
139
139
  const classes = (0, exports.useStyles)();
140
140
  const [order, setOrder] = react_1.default.useState('desc');
141
141
  const [orderBy, setOrderBy] = react_1.default.useState('lastViewed');
@@ -339,10 +339,8 @@ const ClientDocumentsTable = ({ legacyFreelancerId, expertFiles, setExpertClient
339
339
  }
340
340
  fileId && setFileId(fileId);
341
341
  };
342
- console.log("files here are", files);
343
- console.log("expertFiles here are", expertFiles);
344
342
  return (react_1.default.createElement(react_1.default.Fragment, null,
345
- react_1.default.createElement(DocumentUploadRow_1.DocumentUploadRow, { clientAndProject: clientAndProject, setClientAndProject: setClientAndProject, clientAndProjectsList: clientAndProjectsList, docType: docType, setDocType: setDocType, paroDocuments: paroDocuments, uploadExpertClientFiles: uploadExpertClientFiles, refetchFiles: refetchFiles, legacyFreelancerId: legacyFreelancerId, freelancerName: freelancerName, freelancerEmail: freelancerEmail, isClientPortal: isClientPortal, documentUploadUrl: documentUploadUrl }),
343
+ react_1.default.createElement(DocumentUploadRow_1.DocumentUploadRow, { clientAndProject: clientAndProject, setClientAndProject: setClientAndProject, clientAndProjectsList: clientAndProjectsList, docType: docType, setDocType: setDocType, paroDocuments: paroDocuments, uploadExpertClientFiles: uploadExpertClientFiles, refetchFiles: refetchFiles, legacyFreelancerId: legacyFreelancerId, freelancerName: freelancerName, freelancerEmail: freelancerEmail, isClientPortal: isClientPortal, documentUploadUrl: documentUploadUrl, showAsPage: showAsPage }),
346
344
  react_1.default.createElement(utils_1.CustomPaper, { style: { height: `${(files === null || files === void 0 ? void 0 : files.length) === 0 ? '30vh' : 'auto'}` } },
347
345
  react_1.default.createElement("div", { className: 'w-1/3', "data-tut": "search_button", id: "search_button" },
348
346
  react_1.default.createElement(base_ui_1.Input, { placeholder: "Search Documents", type: "text", value: searchText, onChange: (e) => setSearchText(e.target.value) })),
@@ -24,6 +24,7 @@ interface DocumentCenterProps {
24
24
  loading?: boolean;
25
25
  clientId?: number;
26
26
  stage?: string;
27
+ showAsPage?: boolean;
27
28
  }
28
- export declare const DocumentCenter: ({ legacyFreelancerId, openModal, setOpenModal, expertClientFilesLazyQuery, getClientAndProjectsLazyQuery, clientFilesData, uploadExpertClientFiles, uploadFileData, deleteFileMutation, updateFreelancerExpiryMutation, foldername, getFilesLazyQuery, getFileLazyQuery, freelancerName, freelancerEmail, updateFileLastViewed, deleteExpertClientFile, isClientPortal, expertProjectsList, getFreelancerLazyQuery, documentUploadUrl, downloadDocumentUrl, clientId, loading, stage, }: DocumentCenterProps) => JSX.Element;
29
+ export declare const DocumentCenter: ({ legacyFreelancerId, openModal, setOpenModal, expertClientFilesLazyQuery, getClientAndProjectsLazyQuery, clientFilesData, uploadExpertClientFiles, uploadFileData, deleteFileMutation, updateFreelancerExpiryMutation, foldername, getFilesLazyQuery, getFileLazyQuery, freelancerName, freelancerEmail, updateFileLastViewed, deleteExpertClientFile, isClientPortal, expertProjectsList, getFreelancerLazyQuery, documentUploadUrl, downloadDocumentUrl, clientId, loading, stage, showAsPage, }: DocumentCenterProps) => JSX.Element;
29
30
  export {};
@@ -80,7 +80,7 @@ const CustomDialogContent = (0, core_1.styled)(core_1.DialogContent)(({ theme })
80
80
  background: '#707070',
81
81
  },
82
82
  }));
83
- const DocumentCenter = ({ legacyFreelancerId, openModal, setOpenModal, expertClientFilesLazyQuery, getClientAndProjectsLazyQuery, clientFilesData, uploadExpertClientFiles, uploadFileData, deleteFileMutation, updateFreelancerExpiryMutation, foldername, getFilesLazyQuery, getFileLazyQuery, freelancerName, freelancerEmail, updateFileLastViewed, deleteExpertClientFile, isClientPortal = false, expertProjectsList, getFreelancerLazyQuery, documentUploadUrl, downloadDocumentUrl, clientId, loading = false, stage = 'dev', }) => {
83
+ const DocumentCenter = ({ legacyFreelancerId, openModal, setOpenModal, expertClientFilesLazyQuery, getClientAndProjectsLazyQuery, clientFilesData, uploadExpertClientFiles, uploadFileData, deleteFileMutation, updateFreelancerExpiryMutation, foldername, getFilesLazyQuery, getFileLazyQuery, freelancerName, freelancerEmail, updateFileLastViewed, deleteExpertClientFile, isClientPortal = false, expertProjectsList, getFreelancerLazyQuery, documentUploadUrl, downloadDocumentUrl, clientId, loading = false, stage = 'dev', showAsPage = false, }) => {
84
84
  var _a;
85
85
  const [value, setValue] = (0, react_1.useState)(0);
86
86
  const [expertClientFiles, setExpertClientFiles] = (0, react_1.useState)(clientFilesData !== null && clientFilesData !== void 0 ? clientFilesData : []);
@@ -143,41 +143,51 @@ const DocumentCenter = ({ legacyFreelancerId, openModal, setOpenModal, expertCli
143
143
  'Streamline document sharing and collaboration between you and the Experts you work with. <br /> Easily upload, download, organize, and exchange financial documents, contracts, and project materials in a secure, centralized hub.'
144
144
  :
145
145
  'Streamline document sharing and collaboration between you the Expert, Clients you work with, and Paro. <br /> Easily upload, download, organize, and exchange financial documents, contracts, and project materials in a secure, centralized hub.';
146
- return (react_1.default.createElement(CustomDialog, { open: openModal, onClose: () => setOpenModal(false), fullScreen: true, scroll: 'paper' },
147
- react_1.default.createElement(react_1.default.Fragment, null,
148
- react_1.default.createElement(core_1.Grid, { item: true, container: true, direction: "row", justify: "space-between", alignItems: "center" },
149
- react_1.default.createElement(core_1.Box, { p: 2, style: { paddingBottom: '0px' } },
150
- react_1.default.createElement(core_1.Typography, { variant: "h6" },
151
- react_1.default.createElement(core_1.Box, { style: { color: 'white', fontWeight: 'bold' } }, "Document Center")),
152
- react_1.default.createElement(core_1.Typography, { variant: "caption" },
153
- react_1.default.createElement(core_1.Box, { style: { color: 'white', fontSize: '15px' }, dangerouslySetInnerHTML: { __html: headerText } }))),
154
- react_1.default.createElement(core_1.Box, { style: { position: 'absolute', top: 0, right: 0 } },
155
- react_1.default.createElement(core_1.IconButton, { onClick: () => setOpenModal(false) },
156
- react_1.default.createElement(core_1.Box, { style: { backgroundColor: 'white', width: 40, height: 40, borderRadius: '4px' } },
157
- react_1.default.createElement(Close_1.default, null))))),
158
- react_1.default.createElement(CustomDialogContent, { style: { width: '100%' } }, loading || expertLoading
159
- ?
160
- react_1.default.createElement(core_1.CircularProgress, { size: 24 })
161
- :
162
- react_1.default.createElement(lab_1.TabContext, { value: value + '' },
163
- react_1.default.createElement(core_1.Grid, { item: true, container: true, direction: "row", justify: "space-between", alignItems: "baseline" },
164
- react_1.default.createElement(core_1.Box, null,
146
+ const textColor = showAsPage ? 'black' : 'white';
147
+ const content = (react_1.default.createElement(react_1.default.Fragment, null,
148
+ react_1.default.createElement(core_1.Grid, { item: true, container: true, direction: "row", justify: "space-between", alignItems: "center" },
149
+ react_1.default.createElement(core_1.Box, { p: 2, style: { paddingBottom: '0px' } },
150
+ react_1.default.createElement(core_1.Typography, { variant: "h6" },
151
+ react_1.default.createElement(core_1.Box, { style: { color: textColor, fontWeight: 'bold' } }, "Document Center")),
152
+ react_1.default.createElement(core_1.Typography, { variant: "caption" },
153
+ react_1.default.createElement(core_1.Box, { style: { color: textColor, fontSize: '15px' }, dangerouslySetInnerHTML: { __html: headerText } }))),
154
+ !showAsPage && react_1.default.createElement(core_1.Box, { style: { position: 'absolute', top: 0, right: 0 } },
155
+ react_1.default.createElement(core_1.IconButton, { onClick: () => setOpenModal(false) },
156
+ react_1.default.createElement(core_1.Box, { style: { backgroundColor: 'white', width: 40, height: 40, borderRadius: '4px' } },
157
+ react_1.default.createElement(Close_1.default, null))))),
158
+ react_1.default.createElement(CustomDialogContent, { style: { width: '100%' } }, loading || expertLoading
159
+ ?
160
+ react_1.default.createElement(core_1.CircularProgress, { size: 24 })
161
+ :
162
+ react_1.default.createElement(lab_1.TabContext, { value: value + '' },
163
+ react_1.default.createElement(core_1.Grid, { item: true, container: true, direction: "row", justify: "space-between", alignItems: "baseline" },
164
+ react_1.default.createElement(core_1.Box, null, showAsPage
165
+ ?
166
+ react_1.default.createElement(core_1.Tabs, { TabIndicatorProps: { style: { background: '#248384' } }, value: value, onChange: handleChange, variant: "scrollable", scrollButtons: "on" },
167
+ react_1.default.createElement(core_1.Tab, { label: react_1.default.createElement("div", { className: `text-${textColor} flex flex-row self-center` }, isClientPortal ? 'Expert Documents' : 'Client Documents') }),
168
+ !isClientPortal && react_1.default.createElement(core_1.Tab, { label: react_1.default.createElement("div", { className: `text-${textColor} flex flex-row self-center` }, "Paro Documents") }))
169
+ :
165
170
  react_1.default.createElement(core_1.AppBar, { position: 'static', color: 'inherit', style: { backgroundColor: 'transparent' } },
166
171
  react_1.default.createElement(core_1.Tabs, { TabIndicatorProps: { style: { background: '#248384' } }, value: value, onChange: handleChange, variant: "scrollable", scrollButtons: "on" },
167
- react_1.default.createElement(core_1.Tab, { label: react_1.default.createElement("div", { className: "flex flex-row self-center text-white" }, isClientPortal ? 'Expert Documents' : 'Client Documents') }),
168
- !isClientPortal && react_1.default.createElement(core_1.Tab, { label: react_1.default.createElement("div", { className: "flex flex-row self-center text-white" }, "Paro Documents") })))),
169
- react_1.default.createElement(core_1.Box, { p: 1 },
170
- react_1.default.createElement(core_1.Grid, { item: true, container: true, direction: "row-reverse", justify: "space-evenly", alignItems: "center", style: { display: 'flex', flexDirection: 'column' } },
171
- react_1.default.createElement(core_1.Typography, { style: { color: 'white', marginLeft: '12px', fontSize: '14px' } },
172
- react_1.default.createElement("b", null, value === 0 ? expertClientFiles === null || expertClientFiles === void 0 ? void 0 : expertClientFiles.length : expertFiles === null || expertFiles === void 0 ? void 0 : expertFiles.length),
173
- " Documents Total"),
174
- value === 0 && react_1.default.createElement(core_1.Typography, { style: { color: 'white', fontSize: '14px' } },
175
- react_1.default.createElement("b", null, value === 0 ? ((expertClientFiles === null || expertClientFiles === void 0 ? void 0 : expertClientFiles.length) ? (_a = expertClientFiles === null || expertClientFiles === void 0 ? void 0 : expertClientFiles.filter((file) => !(file === null || file === void 0 ? void 0 : file.lastViewed))) === null || _a === void 0 ? void 0 : _a.length : 0) : expertFiles === null || expertFiles === void 0 ? void 0 : expertFiles.length),
176
- " Documents Unread")))),
177
- react_1.default.createElement(lab_1.TabPanel, { value: '0', style: { paddingTop: '0px' } },
178
- react_1.default.createElement(ClientDocumentsTable_1.ClientDocumentsTable, { legacyFreelancerId: legacyFreelancerId, expertFiles: expertClientFiles, setExpertClientFiles: setExpertClientFiles, clientAndProjectsList: clientAndProjects, uploadExpertClientFiles: uploadExpertClientFiles, updateFileLastViewed: updateFileLastViewed, deleteExpertClientFile: deleteExpertClientFile, paroDocuments: false, freelancerName: freelancerName !== null && freelancerName !== void 0 ? freelancerName : '', freelancerEmail: freelancerEmail !== null && freelancerEmail !== void 0 ? freelancerEmail : '', getFileLazyQuery: getFileLazyQuery, expertClientFilesLazyQuery: expertClientFilesLazyQuery, isClientPortal: isClientPortal, documentUploadUrl: documentUploadUrl, downloadDocumentUrl: downloadDocumentUrl, clientId: clientId, stage: stage })),
179
- react_1.default.createElement(lab_1.TabPanel, { value: '1' },
180
- react_1.default.createElement(ParoDocumentsTable_1.ParoDocumentsTable, { legacyFreelancerId: legacyFreelancerId, expiryDate: insuranceExpiryDate !== null && insuranceExpiryDate !== void 0 ? insuranceExpiryDate : '', setExpiryDate: setInsuranceExpiryDate, expertFiles: expertFiles, setExpertFiles: setExpertFiles, uploadExpertClientFiles: uploadExpertClientFiles, uploadFileData: uploadFileData, deleteFileMutation: deleteFileMutation, updateFreelancerExpiryMutation: updateFreelancerExpiryMutation, foldername: foldername !== null && foldername !== void 0 ? foldername : '', paroDocuments: true, getFileLazyQuery: getFileLazyQuery, getFilesLazyQuery: getFilesLazyQuery }))))),
172
+ react_1.default.createElement(core_1.Tab, { label: react_1.default.createElement("div", { className: `text-${textColor} flex flex-row self-center` }, isClientPortal ? 'Expert Documents' : 'Client Documents') }),
173
+ !isClientPortal && react_1.default.createElement(core_1.Tab, { label: react_1.default.createElement("div", { className: `text-${textColor} flex flex-row self-center` }, "Paro Documents") })))),
174
+ react_1.default.createElement(core_1.Box, { p: 1 },
175
+ react_1.default.createElement(core_1.Grid, { item: true, container: true, direction: "row-reverse", justify: "space-evenly", alignItems: "center", style: { display: 'flex', flexDirection: 'column' } },
176
+ react_1.default.createElement(core_1.Typography, { style: { color: textColor, marginLeft: '12px', fontSize: '14px' } },
177
+ react_1.default.createElement("b", null, value === 0 ? expertClientFiles === null || expertClientFiles === void 0 ? void 0 : expertClientFiles.length : expertFiles === null || expertFiles === void 0 ? void 0 : expertFiles.length),
178
+ " Documents Total"),
179
+ value === 0 && react_1.default.createElement(core_1.Typography, { style: { color: textColor, fontSize: '14px' } },
180
+ react_1.default.createElement("b", null, value === 0 ? ((expertClientFiles === null || expertClientFiles === void 0 ? void 0 : expertClientFiles.length) ? (_a = expertClientFiles === null || expertClientFiles === void 0 ? void 0 : expertClientFiles.filter((file) => !(file === null || file === void 0 ? void 0 : file.lastViewed))) === null || _a === void 0 ? void 0 : _a.length : 0) : expertFiles === null || expertFiles === void 0 ? void 0 : expertFiles.length),
181
+ " Documents Unread")))),
182
+ react_1.default.createElement(lab_1.TabPanel, { value: '0', style: { paddingTop: '0px' } },
183
+ react_1.default.createElement(ClientDocumentsTable_1.ClientDocumentsTable, { legacyFreelancerId: legacyFreelancerId, expertFiles: expertClientFiles, setExpertClientFiles: setExpertClientFiles, clientAndProjectsList: clientAndProjects, uploadExpertClientFiles: uploadExpertClientFiles, updateFileLastViewed: updateFileLastViewed, deleteExpertClientFile: deleteExpertClientFile, paroDocuments: false, freelancerName: freelancerName !== null && freelancerName !== void 0 ? freelancerName : '', freelancerEmail: freelancerEmail !== null && freelancerEmail !== void 0 ? freelancerEmail : '', getFileLazyQuery: getFileLazyQuery, expertClientFilesLazyQuery: expertClientFilesLazyQuery, isClientPortal: isClientPortal, documentUploadUrl: documentUploadUrl, downloadDocumentUrl: downloadDocumentUrl, clientId: clientId, stage: stage, showAsPage: showAsPage })),
184
+ react_1.default.createElement(lab_1.TabPanel, { value: '1' },
185
+ react_1.default.createElement(ParoDocumentsTable_1.ParoDocumentsTable, { legacyFreelancerId: legacyFreelancerId, expiryDate: insuranceExpiryDate !== null && insuranceExpiryDate !== void 0 ? insuranceExpiryDate : '', setExpiryDate: setInsuranceExpiryDate, expertFiles: expertFiles, setExpertFiles: setExpertFiles, uploadExpertClientFiles: uploadExpertClientFiles, uploadFileData: uploadFileData, deleteFileMutation: deleteFileMutation, updateFreelancerExpiryMutation: updateFreelancerExpiryMutation, foldername: foldername !== null && foldername !== void 0 ? foldername : '', paroDocuments: true, getFileLazyQuery: getFileLazyQuery, getFilesLazyQuery: getFilesLazyQuery, showAsPage: showAsPage }))))));
186
+ if (showAsPage) {
187
+ return (react_1.default.createElement("div", { className: "w-full max-w-[80vw] bg-white rounded-lg" }, content));
188
+ }
189
+ return (react_1.default.createElement(CustomDialog, { open: openModal, onClose: () => setOpenModal(false), fullScreen: true, scroll: 'paper' },
190
+ content,
181
191
  react_1.default.createElement(react_hot_toast_1.Toaster, { position: "top-center", toastOptions: {
182
192
  style: {
183
193
  zIndex: 9999,
@@ -1,15 +1,15 @@
1
- interface DocumentTableProps {
2
- legacyFreelancerId: number;
3
- paroProjectsData: any;
4
- expiryDate: string;
5
- expertFiles: any[];
6
- uploadExpertClientFiles: any;
7
- uploadFileData: any;
8
- deleteFileMutation: any;
9
- updateFreelancerExpiryMutation: any;
10
- GetFilesDocument: any;
11
- foldername: string;
12
- paroDocuments: boolean;
13
- }
14
- export declare const DocumentTable: ({ legacyFreelancerId, paroProjectsData, expiryDate, expertFiles, uploadExpertClientFiles, uploadFileData, deleteFileMutation, updateFreelancerExpiryMutation, GetFilesDocument, foldername, paroDocuments }: DocumentTableProps) => JSX.Element;
15
- export {};
1
+ interface DocumentTableProps {
2
+ legacyFreelancerId: number;
3
+ paroProjectsData: any;
4
+ expiryDate: string;
5
+ expertFiles: any[];
6
+ uploadExpertClientFiles: any;
7
+ uploadFileData: any;
8
+ deleteFileMutation: any;
9
+ updateFreelancerExpiryMutation: any;
10
+ GetFilesDocument: any;
11
+ foldername: string;
12
+ paroDocuments: boolean;
13
+ }
14
+ export declare const DocumentTable: ({ legacyFreelancerId, paroProjectsData, expiryDate, expertFiles, uploadExpertClientFiles, uploadFileData, deleteFileMutation, updateFreelancerExpiryMutation, GetFilesDocument, foldername, paroDocuments }: DocumentTableProps) => JSX.Element;
15
+ export {};