@paro.io/expert-shared-components 1.8.3 → 1.8.5
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.
|
@@ -12,11 +12,10 @@ type ServiceLinesTemplateProps = {
|
|
|
12
12
|
isFirmProfile?: boolean;
|
|
13
13
|
serviceLineData?: any;
|
|
14
14
|
selectedServicesList?: any;
|
|
15
|
-
servicePricesList?: any;
|
|
16
15
|
isInternalProfile?: boolean;
|
|
17
16
|
updateFreelancerPreferences?: any;
|
|
18
17
|
getExpertVanityTitles?: any;
|
|
19
|
-
reactAppUrl
|
|
18
|
+
reactAppUrl?: string;
|
|
20
19
|
};
|
|
21
20
|
export declare const ServiceLinesTemplate: ({ getFreelancerDataResult, createOrUpdateRates, getRatesByExpertId, updateExpert, openServiceLinesTemplate, getServiceLines, legacyFreelancerId, expertId, isFirmProfile, serviceLineData, selectedServicesList, isInternalProfile, updateFreelancerPreferences, getExpertVanityTitles, reactAppUrl, }: ServiceLinesTemplateProps) => false | React.JSX.Element | undefined;
|
|
22
21
|
export {};
|
|
@@ -40,6 +40,15 @@ const ReviewsTab_1 = require("../ReviewsTab/ReviewsTab");
|
|
|
40
40
|
const base_ui_1 = require("@paro.io/base-ui");
|
|
41
41
|
const utils_1 = require("../shared/utils");
|
|
42
42
|
const react_hot_toast_1 = require("react-hot-toast");
|
|
43
|
+
const CustomTextField = (0, core_1.withStyles)({
|
|
44
|
+
root: {
|
|
45
|
+
'& .MuiOutlinedInput-input': {
|
|
46
|
+
width: '40px',
|
|
47
|
+
padding: '12px 6px !important',
|
|
48
|
+
fontFamily: 'Roboto',
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
})(core_1.TextField);
|
|
43
52
|
const ServiceLinesTemplate = ({ getFreelancerDataResult, createOrUpdateRates, getRatesByExpertId, updateExpert, openServiceLinesTemplate, getServiceLines, legacyFreelancerId, expertId, isFirmProfile, serviceLineData, selectedServicesList = [], isInternalProfile = false, updateFreelancerPreferences, getExpertVanityTitles, reactAppUrl, }) => {
|
|
44
53
|
const [selectedServices, dispatch] = (0, react_1.useReducer)(utils_1.selectedServicesReducer, selectedServicesList);
|
|
45
54
|
const [updateClicked, setUpdateClicked] = (0, react_1.useState)(false);
|
|
@@ -53,8 +62,6 @@ const ServiceLinesTemplate = ({ getFreelancerDataResult, createOrUpdateRates, ge
|
|
|
53
62
|
const [expandedServices, setExpandedServices] = (0, react_1.useState)(new Map());
|
|
54
63
|
const [currentFeatureStatus, setCurrentFeatureStatus] = (0, react_1.useState)({});
|
|
55
64
|
const [disablePublicProfile, setDisablePublicProfile] = (0, react_1.useState)(true);
|
|
56
|
-
const theme = (0, core_1.useTheme)();
|
|
57
|
-
const isSmallScreen = (0, core_1.useMediaQuery)(theme.breakpoints.down('sm'));
|
|
58
65
|
const handleExpandToggle = (serviceTitle) => {
|
|
59
66
|
setExpandedServices(prev => {
|
|
60
67
|
const updatedState = new Map(prev);
|
|
@@ -105,6 +112,9 @@ const ServiceLinesTemplate = ({ getFreelancerDataResult, createOrUpdateRates, ge
|
|
|
105
112
|
if (openServiceLinesTemplate && !isInternalProfile) {
|
|
106
113
|
fetchServiceLineData();
|
|
107
114
|
}
|
|
115
|
+
if (isInternalProfile) {
|
|
116
|
+
setLoading(false);
|
|
117
|
+
}
|
|
108
118
|
}, [openServiceLinesTemplate]);
|
|
109
119
|
const handlePriceChange = (serviceTitle, newPrice, currentService) => {
|
|
110
120
|
dispatch({
|
|
@@ -259,14 +269,14 @@ const ServiceLinesTemplate = ({ getFreelancerDataResult, createOrUpdateRates, ge
|
|
|
259
269
|
react_1.default.createElement(core_1.Grid, { item: true, direction: "column", justifyContent: "flex-start" },
|
|
260
270
|
react_1.default.createElement(core_1.Typography, { variant: "h6", style: { color: '#12756F', fontSize: '18px', fontWeight: 600, fontFamily: "Roboto" } }, "Expand Your Expertise"),
|
|
261
271
|
react_1.default.createElement(core_1.Typography, { variant: "body2", style: { color: '#1C1F2B', fontSize: '12px', fontWeight: 600, fontFamily: "Roboto" } }, "Step 1: Add more services to your profile to stand out")),
|
|
262
|
-
react_1.default.createElement(core_1.Grid, { item: true, style: { backgroundColor: '#0E3435', color: '#ffffff', borderRadius: '20px', padding: '4px 16px' } },
|
|
272
|
+
!isInternalProfile && react_1.default.createElement(core_1.Grid, { item: true, style: { backgroundColor: '#0E3435', color: '#ffffff', borderRadius: '20px', padding: '4px 16px' } },
|
|
263
273
|
react_1.default.createElement(core_1.Typography, { variant: "body2", style: { fontSize: '10px', fontWeight: 600, fontFamily: "Roboto" } },
|
|
264
274
|
"Step ",
|
|
265
275
|
value + 1,
|
|
266
276
|
" of 2"))),
|
|
267
277
|
react_1.default.createElement(core_1.Grid, { container: true, item: true, direction: "column", justifyContent: "center", alignItems: "center" },
|
|
268
278
|
react_1.default.createElement(core_1.Typography, { variant: "subtitle1", style: { textDecoration: 'underline', fontStyle: 'italic', fontSize: '14px', fontWeight: 400, marginTop: '8px', marginBottom: '8px', fontFamily: "Roboto" } }, "Why Add More Services?")),
|
|
269
|
-
react_1.default.createElement(core_1.Grid, { item: true, container: true, direction:
|
|
279
|
+
react_1.default.createElement(core_1.Grid, { item: true, container: true, direction: "row", justifyContent: "space-between", alignItems: "center", style: { margin: 'auto' } },
|
|
270
280
|
react_1.default.createElement(core_1.Box, { display: "flex", flexDirection: "row", alignItems: "center", width: '50%' },
|
|
271
281
|
react_1.default.createElement(icons_1.AdjustRounded, { style: {
|
|
272
282
|
marginRight: 8,
|
|
@@ -297,10 +307,10 @@ const ServiceLinesTemplate = ({ getFreelancerDataResult, createOrUpdateRates, ge
|
|
|
297
307
|
service.title,
|
|
298
308
|
(serviceExistsInArray === null || serviceExistsInArray === void 0 ? void 0 : serviceExistsInArray.currentService) && (react_1.default.createElement(core_1.Typography, { variant: "caption", style: { fontWeight: 400, fontSize: '12px', fontStyle: 'italic', fontFamily: "Roboto" } }, "\u00A0(current service line)")))),
|
|
299
309
|
react_1.default.createElement(core_1.Box, { display: 'flex', alignItems: 'center', ml: 4 },
|
|
300
|
-
react_1.default.createElement(
|
|
310
|
+
react_1.default.createElement(CustomTextField, { size: "small", variant: "outlined", value: (serviceExistsInArray === null || serviceExistsInArray === void 0 ? void 0 : serviceExistsInArray.rate) || '', onChange: (e) => handlePriceChange(service.title, e.target.value ? parseInt(e.target.value) : 0, serviceExistsInArray === null || serviceExistsInArray === void 0 ? void 0 : serviceExistsInArray.currentService), InputProps: {
|
|
301
311
|
startAdornment: react_1.default.createElement(core_1.Typography, null, "$\u00A0"),
|
|
302
312
|
endAdornment: react_1.default.createElement(core_1.Typography, null, "\u00A0/hr"),
|
|
303
|
-
},
|
|
313
|
+
}, required: serviceExistsInArray, error: serviceExistsInArray && !serviceExistsInArray.rate, label: "Rate" }),
|
|
304
314
|
react_1.default.createElement(core_1.IconButton, { onClick: () => handleExpandToggle(service.title) }, isExpanded ? react_1.default.createElement(icons_1.ExpandLess, null) : react_1.default.createElement(icons_1.ExpandMore, null)))))),
|
|
305
315
|
isExpanded && react_1.default.createElement(core_1.Box, { ml: 2 },
|
|
306
316
|
react_1.default.createElement(core_1.Typography, { variant: "caption", style: { fontWeight: 400, fontSize: '12px', fontFamily: "Roboto" } }, service.description))));
|
|
@@ -318,7 +328,7 @@ const ServiceLinesTemplate = ({ getFreelancerDataResult, createOrUpdateRates, ge
|
|
|
318
328
|
" of 2"))),
|
|
319
329
|
react_1.default.createElement(core_1.Grid, { container: true, item: true, direction: "column", justifyContent: "center", alignItems: "center" },
|
|
320
330
|
react_1.default.createElement(core_1.Typography, { variant: "subtitle1", style: { textDecoration: 'underline', fontStyle: 'italic', fontSize: '14px', fontWeight: 400, marginTop: '16px', marginBottom: '16px', fontFamily: "Roboto" } }, "Why Add a Job Title to Your Profile?")),
|
|
321
|
-
react_1.default.createElement(core_1.Grid, { container: true, item: true, direction:
|
|
331
|
+
react_1.default.createElement(core_1.Grid, { container: true, item: true, direction: "row", justifyContent: "space-between", alignItems: "center", spacing: 1, style: { margin: 'auto' } },
|
|
322
332
|
react_1.default.createElement(core_1.Box, { display: "flex", flexDirection: "row", alignItems: "center", width: '50%' },
|
|
323
333
|
react_1.default.createElement(icons_1.AdjustRounded, { style: {
|
|
324
334
|
marginRight: 8,
|