@tap-payments/auth-jsconnect 2.3.30-test → 2.3.32-test
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.
- package/build/@types/app.d.ts +70 -3
- package/build/features/app/brand/brandStore.js +3 -2
- package/build/features/app/tax/taxStore.js +3 -1
- package/build/features/brand/screens/BrandActivities/BrandActivities.js +13 -5
- package/build/features/brand/screens/BrandActivities/ExpectedCustomers.js +5 -5
- package/build/features/brand/screens/BrandInfo/BrandInfo.js +8 -5
- package/build/features/entity/screens/EntityCapital/EntityCapital.js +18 -18
- package/build/features/entity/screens/EntityName/EntityName.js +15 -3
- package/build/features/individual/screens/AdditionalIndividualInfo/AdditionalIndividualInfo.js +18 -5
- package/build/features/individual/screens/IndividualPersonalInfo/IndividualPersonalInfo.js +19 -3
- package/build/features/tax/screens/TaxDetails/TaxDetails.js +6 -3
- package/package.json +1 -1
package/build/@types/app.d.ts
CHANGED
|
@@ -351,12 +351,79 @@ export declare enum VerificationStatus {
|
|
|
351
351
|
NOT_ENTERED = "not_entered"
|
|
352
352
|
}
|
|
353
353
|
export declare type BankDataStatus = {
|
|
354
|
+
iban: FieldType;
|
|
354
355
|
account_number: FieldType;
|
|
356
|
+
swift_code: FieldType;
|
|
355
357
|
bank_name: FieldType;
|
|
356
|
-
bank_statement_file_id: FieldType;
|
|
357
358
|
beneficiary_name: FieldType;
|
|
358
|
-
|
|
359
|
+
bank_statement_file_id: FieldType;
|
|
359
360
|
is_acknowledged: FieldType;
|
|
360
|
-
|
|
361
|
+
};
|
|
362
|
+
export declare type EntityDataStatus = {
|
|
363
|
+
type: FieldType;
|
|
364
|
+
'license.status': FieldType;
|
|
365
|
+
'license.provider': FieldType;
|
|
366
|
+
'license.type': FieldType;
|
|
367
|
+
'license.number': FieldType;
|
|
368
|
+
'license.additional_info': FieldType;
|
|
369
|
+
'license.issuing_date': FieldType;
|
|
370
|
+
'license.expiry_date': FieldType;
|
|
371
|
+
'capital.paid': FieldType;
|
|
372
|
+
'capital.subscribed': FieldType;
|
|
373
|
+
'capital.announced': FieldType;
|
|
374
|
+
'capital.shares.count': FieldType;
|
|
375
|
+
'capital.shares.value': FieldType;
|
|
376
|
+
activities: FieldType;
|
|
377
|
+
documents: FieldType;
|
|
378
|
+
location: FieldType;
|
|
379
|
+
'legal_name.en': FieldType;
|
|
380
|
+
'legal_name.ar': FieldType;
|
|
381
|
+
country: FieldType;
|
|
382
|
+
not_for_profit: FieldType;
|
|
383
|
+
is_vat_acknowledged: FieldType;
|
|
384
|
+
tax_number: FieldType;
|
|
385
|
+
opened_by: FieldType;
|
|
386
|
+
signed_by: FieldType;
|
|
387
|
+
settlement_by: FieldType;
|
|
388
|
+
billing_address: FieldType;
|
|
389
|
+
AOA_file_id: FieldType;
|
|
390
|
+
};
|
|
391
|
+
export declare type IndividualDataStatus = {
|
|
392
|
+
status: FieldType;
|
|
393
|
+
name: FieldType;
|
|
394
|
+
'contact.email': FieldType;
|
|
395
|
+
'contact.phone.number': FieldType;
|
|
396
|
+
'contact.phone.country_code': FieldType;
|
|
397
|
+
nationality: FieldType;
|
|
398
|
+
'birth.date': FieldType;
|
|
399
|
+
'birth.city': FieldType;
|
|
400
|
+
'birth.country': FieldType;
|
|
401
|
+
'identification.id': FieldType;
|
|
402
|
+
'identification.type': FieldType;
|
|
403
|
+
'identification.expiry': FieldType;
|
|
404
|
+
'identification.issuer_country': FieldType;
|
|
405
|
+
role: FieldType;
|
|
406
|
+
relation: FieldType;
|
|
407
|
+
occupation: FieldType;
|
|
408
|
+
is_authorized: FieldType;
|
|
409
|
+
address: FieldType;
|
|
410
|
+
source_of_income: FieldType;
|
|
411
|
+
monthly_income: FieldType;
|
|
412
|
+
is_relative_PEP: FieldType;
|
|
413
|
+
is_influencer: FieldType;
|
|
414
|
+
};
|
|
415
|
+
export declare type BrandDataStatus = {
|
|
416
|
+
status: FieldType;
|
|
417
|
+
name: FieldType;
|
|
418
|
+
'operations.business_start_date': FieldType;
|
|
419
|
+
'operations.sales_range': FieldType;
|
|
420
|
+
'operations.customer_base': FieldType;
|
|
421
|
+
'operations.customer_base_location': FieldType;
|
|
422
|
+
terms: FieldType;
|
|
423
|
+
'segment.type': FieldType;
|
|
424
|
+
'segment.teams': FieldType;
|
|
425
|
+
'segment.sale': FieldType;
|
|
426
|
+
activities: FieldType;
|
|
427
|
+
channel_services: FieldType;
|
|
361
428
|
};
|
|
362
429
|
export {};
|
|
@@ -332,7 +332,7 @@ export var retrieveEntityList = createAsyncThunk('retrieveEntityList', function
|
|
|
332
332
|
});
|
|
333
333
|
}); });
|
|
334
334
|
export var updateBrandActivities = createAsyncThunk('brandUpdateBrandActivities', function (params, thunkApi) { return __awaiter(void 0, void 0, void 0, function () {
|
|
335
|
-
var _a, settings, brand, _b, data_status, id, isActivitiesNonEditable, isCustomerBaseLocationNonEditable, isCustomerBaseNonEditable, isSalesRangeNonEditable, activities, customerLocations, expectedCustomer, expectedSale, requestBody, customerLocation, customerBaseId, salesId, customerBase, brandData;
|
|
335
|
+
var _a, settings, brand, _b, data_status, id, isActivitiesNonEditable, isCustomerBaseLocationNonEditable, isCustomerBaseNonEditable, isTermsNonEditable, isSalesRangeNonEditable, activities, customerLocations, expectedCustomer, expectedSale, requestBody, customerLocation, customerBaseId, salesId, customerBase, brandData;
|
|
336
336
|
var _c, _d, _e;
|
|
337
337
|
return __generator(this, function (_f) {
|
|
338
338
|
switch (_f.label) {
|
|
@@ -342,12 +342,13 @@ export var updateBrandActivities = createAsyncThunk('brandUpdateBrandActivities'
|
|
|
342
342
|
isActivitiesNonEditable = hasNoneEditableValue(data_status, 'activities');
|
|
343
343
|
isCustomerBaseLocationNonEditable = hasNoneEditableValue(data_status === null || data_status === void 0 ? void 0 : data_status.operations, 'customer_base_location');
|
|
344
344
|
isCustomerBaseNonEditable = hasNoneEditableValue(data_status === null || data_status === void 0 ? void 0 : data_status.operations, 'customer_base');
|
|
345
|
+
isTermsNonEditable = hasNoneEditableValue(data_status, 'terms');
|
|
345
346
|
isSalesRangeNonEditable = hasNoneEditableValue(data_status === null || data_status === void 0 ? void 0 : data_status.operations, 'sales_range');
|
|
346
347
|
activities = params.activities, customerLocations = params.customerLocations, expectedCustomer = params.expectedCustomer, expectedSale = params.expectedSale;
|
|
347
348
|
requestBody = {
|
|
348
349
|
id: id,
|
|
349
350
|
activities: isActivitiesNonEditable ? undefined : activities,
|
|
350
|
-
term: ['general', 'refund', 'chargeback'],
|
|
351
|
+
term: isTermsNonEditable ? undefined : ['general', 'refund', 'chargeback'],
|
|
351
352
|
step_name: BRAND_STEP_NAMES.BRAND_ACTIVITIES
|
|
352
353
|
};
|
|
353
354
|
customerLocation = customerLocations.map(function (location) { return ({
|
|
@@ -298,10 +298,12 @@ export var taxSlice = createSlice({
|
|
|
298
298
|
state.error = null;
|
|
299
299
|
state.customLoading = false;
|
|
300
300
|
var _a = action.payload, data = _a.data, token = _a.token, boardResponse = _a.boardResponse;
|
|
301
|
-
var user = boardResponse.user, bank_account = boardResponse.bank_account, vatID = boardResponse.vatID, merchant = boardResponse.merchant, individuals = boardResponse.individuals;
|
|
301
|
+
var user = boardResponse.user, bank_account = boardResponse.bank_account, vatID = boardResponse.vatID, merchant = boardResponse.merchant, individuals = boardResponse.individuals, entity = boardResponse.entity;
|
|
302
302
|
state.data.verify.responseBody = __assign(__assign(__assign(__assign({}, data), boardResponse), state.data.verify.responseBody), { board_id: data.id, name: user === null || user === void 0 ? void 0 : user.names, bank_account: bank_account, vatID: vatID, merchant: merchant, individuals: individuals });
|
|
303
303
|
state.data.verify.token = token;
|
|
304
304
|
state.data.taxData.vatId = vatID;
|
|
305
|
+
if (entity === null || entity === void 0 ? void 0 : entity.is_vat_acknowledged)
|
|
306
|
+
state.data.taxData.confirmPolicy = entity === null || entity === void 0 ? void 0 : entity.is_vat_acknowledged;
|
|
305
307
|
})
|
|
306
308
|
.addCase(verifyLeadToken.pending, function (state) {
|
|
307
309
|
state.error = null;
|
|
@@ -11,15 +11,14 @@ var __assign = (this && this.__assign) || function () {
|
|
|
11
11
|
};
|
|
12
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
13
|
import React from 'react';
|
|
14
|
-
import { ScreenContainer } from '
|
|
14
|
+
import { ScreenContainer } from '../../../shared/Containers';
|
|
15
15
|
import { FormProvider, useForm } from 'react-hook-form';
|
|
16
16
|
import Form from '../../../../components/Form';
|
|
17
17
|
import { styled } from '@mui/material/styles';
|
|
18
|
-
import { useAppDispatch, useAppSelector, useLanguage, useSetFromDefaultValues } from '../../../../hooks';
|
|
18
|
+
import { useAppDispatch, useAppSelector, useDataNoneEditable, useFormReadOnly, useLanguage, useSetFromDefaultValues, useFormErrorAndUpdateReadOnly } from '../../../../hooks';
|
|
19
19
|
import { yupResolver } from '@hookform/resolvers/yup';
|
|
20
20
|
import { BrandActivitiesValidationSchema } from './validation';
|
|
21
21
|
import Button from '../../../shared/Button';
|
|
22
|
-
import { settingsSelector } from '../../../../app/settings';
|
|
23
22
|
import { brandSelector, updateBrandActivities } from '../../../app/brand/brandStore';
|
|
24
23
|
import { handlePrevScreenStep } from '../../../../app/settings';
|
|
25
24
|
import { useTranslation } from 'react-i18next';
|
|
@@ -38,7 +37,6 @@ var FormStyled = styled(Form)(function () { return ({
|
|
|
38
37
|
var BrandActivities = function (_a) {
|
|
39
38
|
var _b = React.useState(), listActive = _b[0], setListActive = _b[1];
|
|
40
39
|
var dispatch = useAppDispatch();
|
|
41
|
-
var settingData = useAppSelector(settingsSelector).data;
|
|
42
40
|
var _c = useAppSelector(brandSelector), data = _c.data, loading = _c.loading, error = _c.error;
|
|
43
41
|
var _d = data.brandActivities, activities = _d.activities, customerLocations = _d.customerLocations, expectedCustomer = _d.expectedCustomer, expectedSale = _d.expectedSale, termAndConditionChecked = _d.termAndConditionChecked, refundPolicy = _d.refundPolicy, transactionPolicy = _d.transactionPolicy;
|
|
44
42
|
var ListType;
|
|
@@ -62,6 +60,16 @@ var BrandActivities = function (_a) {
|
|
|
62
60
|
mode: 'onChange'
|
|
63
61
|
});
|
|
64
62
|
useSetFromDefaultValues(methods, data.brandActivities, true);
|
|
63
|
+
var brand = (data.verify.responseBody || {}).brand;
|
|
64
|
+
var originalReadOnly = useFormReadOnly(methods);
|
|
65
|
+
var noneEditable = useDataNoneEditable(brand === null || brand === void 0 ? void 0 : brand.data_status, [
|
|
66
|
+
'activities',
|
|
67
|
+
'operations.customer_base_location',
|
|
68
|
+
'operations.customer_base',
|
|
69
|
+
'operations.sales_range',
|
|
70
|
+
'terms'
|
|
71
|
+
]);
|
|
72
|
+
var readOnly = useFormErrorAndUpdateReadOnly(methods, originalReadOnly, noneEditable);
|
|
65
73
|
var onSubmit = function (data) {
|
|
66
74
|
dispatch(updateBrandActivities(data));
|
|
67
75
|
};
|
|
@@ -78,6 +86,6 @@ var BrandActivities = function (_a) {
|
|
|
78
86
|
var isCustomerBaseListActive = listActive === ListType.CustomerBaseList;
|
|
79
87
|
var isExpectedCustomerListActive = listActive === ListType.ExpectedCustomerList;
|
|
80
88
|
var isExpectedSalesListActive = listActive === ListType.ExpectedSalesList;
|
|
81
|
-
return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(ActivitiesList, { readOnly:
|
|
89
|
+
return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(ActivitiesList, { readOnly: readOnly['activities'] || noneEditable['activities'], show: !isCustomerBaseListActive && !isExpectedCustomerListActive && !isExpectedSalesListActive, onListOpen: function () { return handleMenuClick(ListType.ActivitiesList); }, onListClose: function () { return handleMenuClick(); } }), _jsx(CustomerBase, { readOnly: readOnly['customerLocations'] || noneEditable['operations.customer_base_location'], show: !isActivitiesListActive && !isExpectedCustomerListActive && !isExpectedSalesListActive, onListOpen: function () { return handleMenuClick(ListType.CustomerBaseList); }, onListClose: function () { return handleMenuClick(); } }), _jsx(ExpectedCustomers, { readOnly: readOnly['expectedCustomer'] || noneEditable['operations.customer_base'], show: !isActivitiesListActive && !isCustomerBaseListActive && !isExpectedSalesListActive, onListOpen: function () { return handleMenuClick(ListType.ExpectedCustomerList); }, onListClose: function () { return handleMenuClick(); } }), _jsx(ExpectedSalesRange, { readOnly: readOnly['expectedSale'] || noneEditable['operations.sales_range'], show: !isActivitiesListActive && !isCustomerBaseListActive && !isExpectedCustomerListActive, onListOpen: function () { return handleMenuClick(ListType.ExpectedSalesList); }, onListClose: function () { return handleMenuClick(); } }), _jsxs(Collapse, __assign({ in: !listActive }, { children: [_jsx(TAC, { show: true, readOnly: readOnly['termAndConditionChecked'] || noneEditable['terms'] }), _jsx(RefundPolicy, { readOnly: readOnly['refundPolicy'] || noneEditable['terms'] }), _jsx(TransactionPolicy, { readOnly: readOnly['transactionPolicy'] || noneEditable['terms'] }), _jsx(Button, __assign({ onBackClicked: function () { return onBack(); }, disabled: disabled, isAr: isAr, error: t(error || ''), loading: loading }, { children: t('next') }))] }))] })) })) }));
|
|
82
90
|
};
|
|
83
91
|
export default BrandActivities;
|
|
@@ -45,16 +45,16 @@ var SimpleListStyled = styled((SimpleList))(function () { return ({
|
|
|
45
45
|
height: 'fit-content'
|
|
46
46
|
}); });
|
|
47
47
|
var ExpectedCustomers = function (_a) {
|
|
48
|
-
var _b, _c;
|
|
48
|
+
var _b, _c, _d, _e;
|
|
49
49
|
var readOnly = _a.readOnly, props = __rest(_a, ["readOnly"]);
|
|
50
|
-
var
|
|
51
|
-
var
|
|
50
|
+
var _f = React.useState([]), expectedCustomersList = _f[0], setExpectedCustomersList = _f[1];
|
|
51
|
+
var _g = React.useState(null), anchorEl = _g[0], setAnchorEl = _g[1];
|
|
52
52
|
var t = useTranslation().t;
|
|
53
53
|
var isAr = useLanguage().isAr;
|
|
54
54
|
var dispatch = useAppDispatch();
|
|
55
55
|
var control = useFormContext().control;
|
|
56
56
|
var expectedCustomerControl = useController({ name: 'expectedCustomer', control: control });
|
|
57
|
-
var
|
|
57
|
+
var _h = useAppSelector(brandSelector), data = _h.data, error = _h.error;
|
|
58
58
|
var brandActivities = data.brandActivities;
|
|
59
59
|
var response = brandActivities.responseBody;
|
|
60
60
|
var onOpenList = function (event) {
|
|
@@ -93,7 +93,7 @@ var ExpectedCustomers = function (_a) {
|
|
|
93
93
|
};
|
|
94
94
|
var expectedCustomersValue = expectedCustomerControl.field.value;
|
|
95
95
|
var expectedCustomersSelected = expectedCustomersValue;
|
|
96
|
-
return (_jsx(Collapse, __assign({ in: props.show }, { children: _jsxs(ScreenContainer, { children: [_jsx(InputLabelStyled, { children: t('expected_customers_to_serve') }), _jsx(InputStyled, { readOnly: true, placeholder: t('choose_expected_sales'), value: isAr ? (_b = expectedCustomersSelected === null || expectedCustomersSelected === void 0 ? void 0 : expectedCustomersSelected.name.ar) !== null &&
|
|
96
|
+
return (_jsx(Collapse, __assign({ in: props.show }, { children: _jsxs(ScreenContainer, { children: [_jsx(InputLabelStyled, { children: t('expected_customers_to_serve') }), _jsx(InputStyled, { readOnly: true, placeholder: t('choose_expected_sales'), value: isAr ? (_c = (_b = expectedCustomersSelected === null || expectedCustomersSelected === void 0 ? void 0 : expectedCustomersSelected.name) === null || _b === void 0 ? void 0 : _b.ar) !== null && _c !== void 0 ? _c : '' : (_e = (_d = expectedCustomersSelected === null || expectedCustomersSelected === void 0 ? void 0 : expectedCustomersSelected.name) === null || _d === void 0 ? void 0 : _d.en) !== null && _e !== void 0 ? _e : '', onClick: !!anchorEl ? function () { return onCloseList(); } : onOpenList, endAdornment: _jsx(ExpandIcon, { anchorEl: !!anchorEl }) }), _jsxs(Collapse, __assign({ in: !!anchorEl, timeout: 300 }, { children: [_jsx(Search, { onSearchValue: handleSearch }), _jsx(SimpleListStyled, { searchKeyPath: 'name', list: expectedCustomersList, onSelectItem: onSelectItem, renderItem: function (item) {
|
|
97
97
|
return (_jsxs(_Fragment, { children: [_jsx(ListItemContainer, { children: _jsx(NameContainer, __assign({ isSelected: (item === null || item === void 0 ? void 0 : item.id) === (expectedCustomersValue === null || expectedCustomersValue === void 0 ? void 0 : expectedCustomersValue.id) }, { children: isAr ? item.name.ar : item.name.en })) }), item.id === (expectedCustomersSelected === null || expectedCustomersSelected === void 0 ? void 0 : expectedCustomersSelected.id) && _jsx(CheckIconStyled, {})] }));
|
|
98
98
|
} })] }))] }) })));
|
|
99
99
|
};
|
|
@@ -10,19 +10,19 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
-
import { ScreenContainer } from '
|
|
13
|
+
import { ScreenContainer } from '../../../shared/Containers';
|
|
14
14
|
import React from 'react';
|
|
15
15
|
import { FormProvider, useForm } from 'react-hook-form';
|
|
16
16
|
import Form from '../../../../components/Form';
|
|
17
17
|
import { styled } from '@mui/material/styles';
|
|
18
|
-
import { useAppDispatch, useAppSelector, useLanguage, useSetFromDefaultValues } from '../../../../hooks';
|
|
18
|
+
import { useAppDispatch, useAppSelector, useDataNoneEditable, useFormReadOnly, useLanguage, useSetFromDefaultValues, useFormErrorAndUpdateReadOnly } from '../../../../hooks';
|
|
19
19
|
import { yupResolver } from '@hookform/resolvers/yup';
|
|
20
20
|
import { BrandValidationSchema } from './validation';
|
|
21
21
|
import Button from '../../../shared/Button';
|
|
22
22
|
import { settingsSelector } from '../../../../app/settings';
|
|
23
23
|
import { clearError, brandSelector, updateBrand } from '../../../app/brand/brandStore';
|
|
24
24
|
import { useTranslation } from 'react-i18next';
|
|
25
|
-
import TeamSize from '
|
|
25
|
+
import TeamSize from '../../../brand/screens/BrandInfo/TeamSize';
|
|
26
26
|
import Collapse from '../../../../components/Collapse';
|
|
27
27
|
import { mapSalesChannel } from '../../../../utils';
|
|
28
28
|
import BrandName from './BrandName';
|
|
@@ -48,7 +48,7 @@ var BrandInfo = function (_a) {
|
|
|
48
48
|
var settingData = useAppSelector(settingsSelector).data;
|
|
49
49
|
var _e = useAppSelector(brandSelector), data = _e.data, loading = _e.loading, error = _e.error;
|
|
50
50
|
var _f = data.brandData, brandName = _f.brandName, segment = _f.segment, teamSize = _f.teamSize, salesChannels = _f.salesChannels, brandLogoId = _f.brandLogoId, responseBody = _f.responseBody;
|
|
51
|
-
var
|
|
51
|
+
var _g = ((_b = data.verify.responseBody) === null || _b === void 0 ? void 0 : _b.brand) || {}, logo_details = _g.logo_details, data_status = _g.data_status;
|
|
52
52
|
var methods = useForm({
|
|
53
53
|
resolver: yupResolver(BrandValidationSchema()),
|
|
54
54
|
defaultValues: {
|
|
@@ -62,6 +62,9 @@ var BrandInfo = function (_a) {
|
|
|
62
62
|
});
|
|
63
63
|
useSetFromDefaultValues(methods, __assign(__assign({}, data.brandData), { salesChannels: [] }), true);
|
|
64
64
|
var defaultBrandLogoFile = React.useMemo(function () { return logo_details && __assign(__assign({}, logo_details), { docId: '' }); }, [logo_details]);
|
|
65
|
+
var originalReadOnly = useFormReadOnly(methods, { brandLogoId: defaultBrandLogoFile });
|
|
66
|
+
var noneEditable = useDataNoneEditable(data_status, ['name', 'segment.type', 'segment.teams', 'channel_services']);
|
|
67
|
+
var readOnly = useFormErrorAndUpdateReadOnly(methods, originalReadOnly, noneEditable);
|
|
65
68
|
var onSubmit = function (data) {
|
|
66
69
|
dispatch(updateBrand(data));
|
|
67
70
|
};
|
|
@@ -84,6 +87,6 @@ var BrandInfo = function (_a) {
|
|
|
84
87
|
};
|
|
85
88
|
var isSegmentsListActive = listActive === ListType.SegmentsList;
|
|
86
89
|
var isTeamSizeListActive = listActive === ListType.TeamSizeList;
|
|
87
|
-
return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(BrandName, { readOnly:
|
|
90
|
+
return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(BrandName, { readOnly: readOnly['brandName'] || noneEditable['name'], show: !listActive, brandNameChecking: brandNameChecking, fetchingBrandName: setBrandNameChecking }), _jsx(BrandLogo, { defaultFile: defaultBrandLogoFile, readOnly: readOnly['brandLogoId'], show: !listActive }), _jsx(Segments, { readOnly: readOnly['segment'] || noneEditable['segment.type'], show: !isTeamSizeListActive, onListOpen: function () { return handleMenuClick(ListType.SegmentsList); }, onListClose: function () { return handleMenuClick(); } }), _jsx(TeamSize, { readOnly: readOnly['teamSize'] || noneEditable['segment.teams'], show: !isSegmentsListActive, onListOpen: function () { return handleMenuClick(ListType.TeamSizeList); }, onListClose: function () { return handleMenuClick(); } }), _jsxs(Collapse, __assign({ in: !listActive }, { children: [_jsx(SalesChannels, { readOnly: readOnly['salesChannels'] || noneEditable['channel_services'] }), _jsx(Button, __assign({ disableBack: true, disabled: disabled, isAr: isAr, error: t(error || ''), loading: loading }, { children: t('next') }))] }))] })) })) }));
|
|
88
91
|
};
|
|
89
92
|
export default BrandInfo;
|
|
@@ -9,25 +9,13 @@ var __assign = (this && this.__assign) || function () {
|
|
|
9
9
|
};
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
-
var t = {};
|
|
14
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
-
t[p] = s[p];
|
|
16
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
-
t[p[i]] = s[p[i]];
|
|
20
|
-
}
|
|
21
|
-
return t;
|
|
22
|
-
};
|
|
23
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
24
13
|
import * as React from 'react';
|
|
25
14
|
import { FormProvider, useForm } from 'react-hook-form';
|
|
26
15
|
import { useTranslation } from 'react-i18next';
|
|
27
16
|
import { styled } from '@mui/material/styles';
|
|
28
17
|
import Collapse from '@mui/material/Collapse';
|
|
29
|
-
import { useAppDispatch, useAppSelector, useLanguage, useSetFromDefaultValues } from '../../../../hooks';
|
|
30
|
-
import { settingsSelector } from '../../../../app/settings';
|
|
18
|
+
import { useAppDispatch, useAppSelector, useDataNoneEditable, useFormReadOnly, useLanguage, useSetFromDefaultValues, useFormErrorAndUpdateReadOnly } from '../../../../hooks';
|
|
31
19
|
import { clearError, entitySelector, updateEntityCapital } from '../../../app/entity/entityStore';
|
|
32
20
|
import { yupResolver } from '@hookform/resolvers/yup';
|
|
33
21
|
import { handlePrevScreenStep } from '../../../../app/settings';
|
|
@@ -45,19 +33,31 @@ var FormStyled = styled(Form)(function () { return ({
|
|
|
45
33
|
}); });
|
|
46
34
|
var EntityCapital = function (_a) {
|
|
47
35
|
var _b = React.useState(false), anchorEl = _b[0], setAnchorEl = _b[1];
|
|
48
|
-
var settingData = useAppSelector(settingsSelector).data;
|
|
49
36
|
var _c = useAppSelector(entitySelector), data = _c.data, loading = _c.loading, error = _c.error, uploading = _c.uploading;
|
|
50
37
|
var isAr = useLanguage().isAr;
|
|
51
38
|
var t = useTranslation().t;
|
|
52
39
|
var dispatch = useAppDispatch();
|
|
53
|
-
var _d = data.entityCapitalData, responseBody = _d.responseBody,
|
|
40
|
+
var _d = data.entityCapitalData, responseBody = _d.responseBody, capitalPaid = _d.capitalPaid, capitalShareCount = _d.capitalShareCount, capitalShareValue = _d.capitalShareValue, activities = _d.activities;
|
|
54
41
|
var entity = (data.verify.responseBody || {}).entity;
|
|
55
42
|
var methods = useForm({
|
|
56
43
|
resolver: yupResolver(EntityCapitalValidationSchema()),
|
|
57
|
-
defaultValues:
|
|
44
|
+
defaultValues: {
|
|
45
|
+
activities: activities,
|
|
46
|
+
capitalPaid: capitalPaid,
|
|
47
|
+
capitalShareCount: capitalShareCount,
|
|
48
|
+
capitalShareValue: capitalShareValue
|
|
49
|
+
},
|
|
58
50
|
mode: 'onChange'
|
|
59
51
|
});
|
|
60
|
-
useSetFromDefaultValues(methods,
|
|
52
|
+
useSetFromDefaultValues(methods, data.entityCapitalData, true);
|
|
53
|
+
var originalReadOnly = useFormReadOnly(methods);
|
|
54
|
+
var noneEditable = useDataNoneEditable(entity === null || entity === void 0 ? void 0 : entity.data_status, [
|
|
55
|
+
'activities',
|
|
56
|
+
'capital.paid',
|
|
57
|
+
'capital.shares.count',
|
|
58
|
+
'capital.shares.value'
|
|
59
|
+
]);
|
|
60
|
+
var readOnly = useFormErrorAndUpdateReadOnly(methods, originalReadOnly, noneEditable);
|
|
61
61
|
var onSubmit = function (data) {
|
|
62
62
|
dispatch(updateEntityCapital(data));
|
|
63
63
|
};
|
|
@@ -72,6 +72,6 @@ var EntityCapital = function (_a) {
|
|
|
72
72
|
setAnchorEl(flag);
|
|
73
73
|
};
|
|
74
74
|
var disabled = !methods.formState.isValid || !!error || uploading;
|
|
75
|
-
return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(ActivityList, { readOnly:
|
|
75
|
+
return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(ActivityList, { readOnly: readOnly['activities'] || noneEditable['activities'], onListOpen: function () { return handleActivitiesOpenClose(true); }, onListClose: function () { return handleActivitiesOpenClose(false); } }), _jsxs(Collapse, __assign({ in: !anchorEl }, { children: [_jsx(CapitalPaid, { readOnly: readOnly['capitalPaid'] || noneEditable['capital.paid'] }), _jsx(CapitalShareCount, { readOnly: readOnly['capitalShareCount'] || noneEditable['capital.shares.count'] }), _jsx(CapitalShareValue, { readOnly: readOnly['capitalShareValue'] || noneEditable['capital.shares.value'] }), _jsx(Button, __assign({ onBackClicked: function () { return onBack(); }, disabled: disabled, isAr: isAr, loading: loading, error: t(error || '') }, { children: t('next') }))] }))] })) })) }));
|
|
76
76
|
};
|
|
77
77
|
export default EntityCapital;
|
|
@@ -15,7 +15,7 @@ import { FormProvider, useForm } from 'react-hook-form';
|
|
|
15
15
|
import { useTranslation } from 'react-i18next';
|
|
16
16
|
import { yupResolver } from '@hookform/resolvers/yup';
|
|
17
17
|
import { styled } from '@mui/material/styles';
|
|
18
|
-
import { useAppDispatch, useAppSelector, useLanguage, useSetFromDefaultValues } from '../../../../hooks';
|
|
18
|
+
import { useAppDispatch, useAppSelector, useDataNoneEditable, useFormReadOnly, useLanguage, useSetFromDefaultValues, useFormErrorAndUpdateReadOnly } from '../../../../hooks';
|
|
19
19
|
import { settingsSelector } from '../../../../app/settings';
|
|
20
20
|
import { getFileDetailsFromDocument, isKW, isSA } from '../../../../utils';
|
|
21
21
|
import { BusinessType, DocumentPurpose } from '../../../../@types';
|
|
@@ -70,6 +70,19 @@ var EntityName = function (_a) {
|
|
|
70
70
|
useSetFromDefaultValues(methods, data.entityNameData, true);
|
|
71
71
|
var defaultCertificateFiles = React.useMemo(function () { return getFileDetailsFromDocument(entity === null || entity === void 0 ? void 0 : entity.documents, DocumentPurpose.CR); }, [entity === null || entity === void 0 ? void 0 : entity.documents]);
|
|
72
72
|
var defaultArticleFile = React.useMemo(function () { return (entity === null || entity === void 0 ? void 0 : entity.AOA_file) && __assign(__assign({}, entity === null || entity === void 0 ? void 0 : entity.AOA_file), { docId: entity.id }); }, [entity === null || entity === void 0 ? void 0 : entity.AOA_file]);
|
|
73
|
+
var originalReadOnly = useFormReadOnly(methods, { certificateId: defaultCertificateFiles, articleId: defaultArticleFile });
|
|
74
|
+
var noneEditable = useDataNoneEditable(entity === null || entity === void 0 ? void 0 : entity.data_status, [
|
|
75
|
+
'legal_name.en',
|
|
76
|
+
'legal_name.ar',
|
|
77
|
+
'type',
|
|
78
|
+
'license.number',
|
|
79
|
+
'license.additional_info',
|
|
80
|
+
'license.issuing_date',
|
|
81
|
+
'license.expiry_date',
|
|
82
|
+
'documents',
|
|
83
|
+
'AOA_file_id'
|
|
84
|
+
]);
|
|
85
|
+
var readOnly = useFormErrorAndUpdateReadOnly(methods, originalReadOnly, noneEditable);
|
|
73
86
|
var onSubmit = function (data) {
|
|
74
87
|
dispatch(updateEntityName(data));
|
|
75
88
|
};
|
|
@@ -89,7 +102,6 @@ var EntityName = function (_a) {
|
|
|
89
102
|
var disabled = !methods.formState.isValid || !!error || uploading || uploadingArticle;
|
|
90
103
|
var showLicenseNumber = !isSACountry ? isCR : true;
|
|
91
104
|
var showUnifiedNumber = isSACountry ? isCR : false;
|
|
92
|
-
|
|
93
|
-
return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(Collapse, __assign({ in: !expiryAnchorEl && !issueAnchorEl && !entityTypeAnchorEl }, { children: _jsx(LegalName, { readOnly: !settingsData.boardMaturity && !!legalName }) })), _jsx(Collapse, __assign({ in: !expiryAnchorEl && !issueAnchorEl }, { children: _jsx(EntityTypeList, { readOnly: !settingsData.boardMaturity && entityType.length > 0, onListOpen: function () { return handleEntityOpenClose(true); }, onListClose: function () { return handleEntityOpenClose(false); } }) })), _jsxs(Collapse, __assign({ in: !expiryAnchorEl && !issueAnchorEl && !entityTypeAnchorEl }, { children: [_jsx(LicenseNumber, { show: showLicenseNumber, readOnly: !settingsData.boardMaturity && !!licenseNumber }), _jsx(UnifiedNumber, { show: showUnifiedNumber, readOnly: !settingsData.boardMaturity && !!unifiedNumber })] })), _jsx(Collapse, __assign({ in: !expiryAnchorEl && !entityTypeAnchorEl }, { children: _jsx(IssuingDate, { onDateClicked: handleIssueDateOpenClose, readOnly: !settingsData.boardMaturity && !!issuingDate }) })), _jsx(Collapse, __assign({ in: !issueAnchorEl && !entityTypeAnchorEl }, { children: _jsx(ExpiryDate, { onDateClicked: handleExpiryDateOpenClose, readOnly: !settingsData.boardMaturity && !!expiryDate }) })), _jsxs(Collapse, __assign({ in: !expiryAnchorEl && !issueAnchorEl && !entityTypeAnchorEl }, { children: [_jsx(LicenseCertificate, { defaultFiles: defaultCertificateFiles, show: !(isKWCountry && !isCR), readOnly: !settingsData.boardMaturity && !!(defaultCertificateFiles === null || defaultCertificateFiles === void 0 ? void 0 : defaultCertificateFiles.length) }), _jsx(Article, { defaultFile: defaultArticleFile, show: true, readOnly: !settingsData.boardMaturity && !!defaultArticleFile })] })), _jsx(Collapse, __assign({ in: !expiryAnchorEl && !issueAnchorEl && !entityTypeAnchorEl }, { children: _jsx(Button, __assign({ disableBack: true, disabled: disabled, isAr: isAr, loading: loading, error: t(error || '') }, { children: t('next') })) }))] })) })) }));
|
|
105
|
+
return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(Collapse, __assign({ in: !expiryAnchorEl && !issueAnchorEl && !entityTypeAnchorEl }, { children: _jsx(LegalName, { readOnly: readOnly['legalName'] || (noneEditable['legal_name.en'] && noneEditable['legal_name.ar']) }) })), _jsx(Collapse, __assign({ in: !expiryAnchorEl && !issueAnchorEl }, { children: _jsx(EntityTypeList, { readOnly: readOnly['entityType'] || noneEditable['type'], onListOpen: function () { return handleEntityOpenClose(true); }, onListClose: function () { return handleEntityOpenClose(false); } }) })), _jsxs(Collapse, __assign({ in: !expiryAnchorEl && !issueAnchorEl && !entityTypeAnchorEl }, { children: [_jsx(LicenseNumber, { show: showLicenseNumber, readOnly: readOnly['licenseNumber'] || noneEditable['license.number'] }), _jsx(UnifiedNumber, { show: showUnifiedNumber, readOnly: readOnly['unifiedNumber'] || noneEditable['license.additional_info'] })] })), _jsx(Collapse, __assign({ in: !expiryAnchorEl && !entityTypeAnchorEl }, { children: _jsx(IssuingDate, { onDateClicked: handleIssueDateOpenClose, readOnly: readOnly['issuingDate'] || noneEditable['license.issuing_date'] }) })), _jsx(Collapse, __assign({ in: !issueAnchorEl && !entityTypeAnchorEl }, { children: _jsx(ExpiryDate, { onDateClicked: handleExpiryDateOpenClose, readOnly: readOnly['expiryDate'] || noneEditable['license.expiry_date'] }) })), _jsxs(Collapse, __assign({ in: !expiryAnchorEl && !issueAnchorEl && !entityTypeAnchorEl }, { children: [_jsx(LicenseCertificate, { defaultFiles: defaultCertificateFiles, show: !(isKWCountry && !isCR), readOnly: readOnly['certificateId'] || noneEditable['documents'] }), _jsx(Article, { defaultFile: defaultArticleFile, show: true, readOnly: readOnly['articleId'] || noneEditable['AOA_file_id'] })] })), _jsx(Collapse, __assign({ in: !expiryAnchorEl && !issueAnchorEl && !entityTypeAnchorEl }, { children: _jsx(Button, __assign({ disableBack: true, disabled: disabled, isAr: isAr, loading: loading, error: t(error || '') }, { children: t('next') })) }))] })) })) }));
|
|
94
106
|
};
|
|
95
107
|
export default EntityName;
|
package/build/features/individual/screens/AdditionalIndividualInfo/AdditionalIndividualInfo.js
CHANGED
|
@@ -17,7 +17,7 @@ import { useTranslation } from 'react-i18next';
|
|
|
17
17
|
import { handleCurrentActiveScreen, settingsSelector } from '../../../../app/settings';
|
|
18
18
|
import Box from '@mui/material/Box';
|
|
19
19
|
import { alpha, styled } from '@mui/material/styles';
|
|
20
|
-
import { useAppDispatch, useAppSelector, useSetFromDefaultValues, useLanguage } from '../../../../hooks';
|
|
20
|
+
import { useAppDispatch, useAppSelector, useSetFromDefaultValues, useLanguage, useFormReadOnly, useDataNoneEditable, useFormErrorAndUpdateReadOnly } from '../../../../hooks';
|
|
21
21
|
import { DocumentPurpose, IndividualType } from '../../../../@types';
|
|
22
22
|
import { isSA } from '../../../../utils';
|
|
23
23
|
import Form from '../../../../components/Form';
|
|
@@ -55,12 +55,10 @@ var AdditionalIndividualInfo = function (_a) {
|
|
|
55
55
|
var t = useTranslation().t;
|
|
56
56
|
var isAr = useLanguage().isAr;
|
|
57
57
|
var dispatch = useAppDispatch();
|
|
58
|
-
var settingData = useAppSelector(settingsSelector).data;
|
|
59
58
|
var _b = useAppSelector(individualSelector), data = _b.data, loading = _b.loading, error = _b.error;
|
|
60
59
|
var settingsData = useAppSelector(settingsSelector).data;
|
|
61
60
|
var verify = data.verify;
|
|
62
61
|
var user = (verify.responseBody || {}).user;
|
|
63
|
-
var isAuthorizedUser = user === null || user === void 0 ? void 0 : user.is_authorized;
|
|
64
62
|
var _c = data.individualData, occupation = _c.occupation, sourceIncome = _c.sourceIncome, monthlyIncome = _c.monthlyIncome, employerName = _c.employerName, employerLocation = _c.employerLocation, isPEP = _c.isPEP, isInfluencer = _c.isInfluencer, civilID = _c.civilID, signatureFileId = _c.signatureFileId, civilIDUploading = _c.civilIDUploading, signatureFileUploading = _c.signatureFileUploading, shareCount = _c.shareCount, shareValue = _c.shareValue;
|
|
65
63
|
var methods = useForm({
|
|
66
64
|
resolver: yupResolver(IndividualInfoValidationSchema(user === null || user === void 0 ? void 0 : user.type)),
|
|
@@ -108,7 +106,22 @@ var AdditionalIndividualInfo = function (_a) {
|
|
|
108
106
|
return t('type_board_member');
|
|
109
107
|
return t('type_user');
|
|
110
108
|
};
|
|
111
|
-
var
|
|
109
|
+
var defaultCivilIdFiles = React.useMemo(function () { return getFileDetailsFromDocument(user === null || user === void 0 ? void 0 : user.documents, DocumentPurpose.IDENTITY_DOCUMENT); }, [user === null || user === void 0 ? void 0 : user.documents]);
|
|
110
|
+
var defaultSignatureFiles = React.useMemo(function () { return getFileDetailsFromDocument(user === null || user === void 0 ? void 0 : user.documents, DocumentPurpose.CUSTOMER_SIGNATURE); }, [user === null || user === void 0 ? void 0 : user.documents]);
|
|
111
|
+
var originalReadOnly = useFormReadOnly(methods, {
|
|
112
|
+
isPEP: typeof isPEP === 'boolean',
|
|
113
|
+
isInfluencer: typeof isInfluencer === 'boolean',
|
|
114
|
+
civilID: defaultCivilIdFiles,
|
|
115
|
+
signatureFileId: defaultSignatureFiles
|
|
116
|
+
});
|
|
117
|
+
var noneEditable = useDataNoneEditable(user === null || user === void 0 ? void 0 : user.data_status, [
|
|
118
|
+
'occupation',
|
|
119
|
+
'source_of_income',
|
|
120
|
+
'monthly_income',
|
|
121
|
+
'is_relative_PEP',
|
|
122
|
+
'is_influencer'
|
|
123
|
+
]);
|
|
124
|
+
var readOnly = useFormErrorAndUpdateReadOnly(methods, originalReadOnly, noneEditable);
|
|
112
125
|
var showSignatureFile = (user === null || user === void 0 ? void 0 : user.type) === IndividualType.USER || (user === null || user === void 0 ? void 0 : user.type) === IndividualType.BUYER;
|
|
113
126
|
var showOccupationFile = (user === null || user === void 0 ? void 0 : user.type) === IndividualType.USER || (user === null || user === void 0 ? void 0 : user.type) === IndividualType.BUYER;
|
|
114
127
|
var showSourceOfIncome = (user === null || user === void 0 ? void 0 : user.type) === IndividualType.USER || (user === null || user === void 0 ? void 0 : user.type) === IndividualType.BUYER;
|
|
@@ -119,7 +132,7 @@ var AdditionalIndividualInfo = function (_a) {
|
|
|
119
132
|
var isMonthlyIncomeListActive = listActive === ListType.MonthlyIncomeList;
|
|
120
133
|
var isOccupationListActive = listActive === ListType.OccupationList;
|
|
121
134
|
var disabled = !methods.formState.isValid || civilIDUploading || signatureFileUploading;
|
|
122
|
-
return (_jsxs(ScreenContainer, { children: [_jsx(Collapse, __assign({ in: !listActive && !!(user === null || user === void 0 ? void 0 : user.is_authorized), timeout: 500 }, { children: _jsxs(TextBoxStyled, { children: [getUserName() || '', _jsx(RoleTextStyled, { children: getUserRole() || '' })] }) })), _jsx(FormProvider, __assign({}, methods, { children: _jsxs(Form, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsxs(Box, { children: [_jsx(Occupation, { readOnly:
|
|
135
|
+
return (_jsxs(ScreenContainer, { children: [_jsx(Collapse, __assign({ in: !listActive && !!(user === null || user === void 0 ? void 0 : user.is_authorized), timeout: 500 }, { children: _jsxs(TextBoxStyled, { children: [getUserName() || '', _jsx(RoleTextStyled, { children: getUserRole() || '' })] }) })), _jsx(FormProvider, __assign({}, methods, { children: _jsxs(Form, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsxs(Box, { children: [_jsx(Occupation, { readOnly: readOnly['occupation'] || noneEditable['occupation'], onListOpen: function () { return handleMenuClick(ListType.OccupationList); }, onListClose: function () { return handleMenuClick(); }, show: showOccupationFile && !isMonthlyIncomeListActive && !isSourceOfIncomeListActive }), _jsx(SourceOfIncome, { readOnly: readOnly['sourceIncome'] || noneEditable['source_of_income'], onListOpen: function () { return handleMenuClick(ListType.SourceOfIncomeList); }, onListClose: function () { return handleMenuClick(); }, show: showSourceOfIncome && !isMonthlyIncomeListActive && !isOccupationListActive }), _jsx(MonthlyIncome, { readOnly: readOnly['monthlyIncome'] || noneEditable['monthly_income'], show: showSourceOfIncome && !isSourceOfIncomeListActive && !isOccupationListActive, onListOpen: function () { return handleMenuClick(ListType.MonthlyIncomeList); }, onListClose: function () { return handleMenuClick(); } }), _jsx(ShareCount, { show: !listActive && showShares, readOnly: readOnly['shareCount'] }), _jsx(ShareValue, { show: !listActive && showShares, readOnly: readOnly['shareValue'] }), _jsxs(Collapse, __assign({ in: !listActive, timeout: 500 }, { children: [_jsx(CivilIDFile, { show: !isSACountry, readOnly: readOnly['civilID'], defaultFiles: defaultCivilIdFiles }), _jsx(SignatureFile, { show: (user === null || user === void 0 ? void 0 : user.is_authorized) && showSignatureFile, readOnly: readOnly['signatureFileId'], defaultFiles: defaultSignatureFiles })] })), _jsx(PEPSwitch, { show: showIsPEP && !listActive, readOnly: readOnly['isPEP'] || noneEditable['is_relative_PEP'] }), _jsx(InfluencerSwitch, { show: showIsInfluencer && !listActive, readOnly: readOnly['isInfluencer'] || noneEditable['is_influencer'] })] }), _jsx(Collapse, __assign({ in: !listActive, timeout: 500 }, { children: _jsx(Button, __assign({ onBackClicked: function () { return onBack(); }, isAr: isAr, disabled: disabled, loading: loading, error: t(error || '') }, { children: t('next') })) }))] })) }))] }));
|
|
123
136
|
};
|
|
124
137
|
export default React.memo(AdditionalIndividualInfo);
|
|
125
138
|
AdditionalIndividualInfo.defaultProps = {};
|
|
@@ -17,7 +17,7 @@ import { useTranslation } from 'react-i18next';
|
|
|
17
17
|
import { handleCurrentActiveScreen, settingsSelector } from '../../../../app/settings';
|
|
18
18
|
import Box from '@mui/material/Box';
|
|
19
19
|
import { alpha, styled } from '@mui/material/styles';
|
|
20
|
-
import { useAppDispatch, useAppSelector, useSetFromDefaultValues, useLanguage } from '../../../../hooks';
|
|
20
|
+
import { useAppDispatch, useAppSelector, useSetFromDefaultValues, useLanguage, useFormReadOnly, useDataNoneEditable, useFormErrorAndUpdateReadOnly } from '../../../../hooks';
|
|
21
21
|
import { IndividualType } from '../../../../@types';
|
|
22
22
|
import Form from '../../../../components/Form';
|
|
23
23
|
import Collapse from '../../../../components/Collapse';
|
|
@@ -85,6 +85,22 @@ var IndividualPersonalInfo = function (_a) {
|
|
|
85
85
|
var _c = React.useState(), listActive = _c[0], setListActive = _c[1];
|
|
86
86
|
var _d = React.useState(false), dobActive = _d[0], setDobActive = _d[1];
|
|
87
87
|
var _e = React.useState(false), expiryDateActive = _e[0], setExpiryDateActive = _e[1];
|
|
88
|
+
var originalReadOnly = useFormReadOnly(methods);
|
|
89
|
+
var noneEditable = useDataNoneEditable(user === null || user === void 0 ? void 0 : user.data_status, [
|
|
90
|
+
'name',
|
|
91
|
+
'contact.phone.number',
|
|
92
|
+
'contact.phone.country_code',
|
|
93
|
+
'contact.email',
|
|
94
|
+
'identification.id',
|
|
95
|
+
'identification.type',
|
|
96
|
+
'identification.issuer_country',
|
|
97
|
+
'identification.expiry',
|
|
98
|
+
'birth.date',
|
|
99
|
+
'birth.country',
|
|
100
|
+
'birth.city',
|
|
101
|
+
'nationality'
|
|
102
|
+
]);
|
|
103
|
+
var readOnly = useFormErrorAndUpdateReadOnly(methods, originalReadOnly, noneEditable);
|
|
88
104
|
var onSubmit = function (data) {
|
|
89
105
|
dispatch(updateIndividualPersonalInfo(data));
|
|
90
106
|
};
|
|
@@ -129,11 +145,11 @@ var IndividualPersonalInfo = function (_a) {
|
|
|
129
145
|
var isBirthCountryListActive = listActive === ListType.BirthCountryList;
|
|
130
146
|
var isBirthCityListActive = listActive === ListType.BirthCityList;
|
|
131
147
|
var isNationalityListActive = listActive === ListType.NationalityList;
|
|
132
|
-
return (_jsxs(ScreenContainer, { children: [_jsx(Collapse, __assign({ in: showField && !!(user === null || user === void 0 ? void 0 : user.is_authorized), timeout: 500 }, { children: _jsxs(TextBoxStyled, { children: [getUserName() || '', _jsx(RoleTextStyled, { children: getUserOccupation() || '' })] }) })), _jsx(FormProvider, __assign({}, methods, { children: _jsxs(Form, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsxs(Box, { children: [_jsx(Name, { show: showField, readOnly:
|
|
148
|
+
return (_jsxs(ScreenContainer, { children: [_jsx(Collapse, __assign({ in: showField && !!(user === null || user === void 0 ? void 0 : user.is_authorized), timeout: 500 }, { children: _jsxs(TextBoxStyled, { children: [getUserName() || '', _jsx(RoleTextStyled, { children: getUserOccupation() || '' })] }) })), _jsx(FormProvider, __assign({}, methods, { children: _jsxs(Form, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsxs(Box, { children: [_jsx(Name, { show: showField, readOnly: readOnly['name'] || noneEditable['name'] }), _jsx(MobileNumber, { readOnly: readOnly['mobile'] || noneEditable['contact.phone.number'] || noneEditable['contact.phone.country_code'], show: !isDateFieldActive && !isBirthCountryListActive && !isBirthCityListActive && !isNationalityListActive, countries: countries, onListOpen: function () { return handleMenuClick(ListType.MobileCountryList); }, onListClose: function () { return handleMenuClick(); } }), _jsx(Email, { show: showField, readOnly: readOnly['email'] || noneEditable['contact.email'] }), _jsx(Gender, { show: showField, readOnly: readOnly['gender'] }), _jsx(ID, { show: showField, readOnly: readOnly['nid'] || noneEditable['identification.id'] }), _jsx(IssuedCountry, { readOnly: readOnly['issuedCountry'] || noneEditable['identification.issuer_country'], show: !isMobileCountryListActive && !isDateFieldActive && !isBirthCountryListActive && !isBirthCityListActive && !isNationalityListActive, countries: countries, onListOpen: function () { return handleMenuClick(ListType.IssuedCountryList); }, onListClose: function () { return handleMenuClick(); } }), _jsx(ExpiryDate, { show: !listActive && !dobActive, onDateClicked: handleExpiryDateActive, readOnly: readOnly['expiryDate'] || noneEditable['identification.expiry'] }), _jsx(DOB, { show: !listActive && !expiryDateActive, onDateClicked: handleDobActive, readOnly: readOnly['dob'] || noneEditable['birth.date'] }), _jsx(BirthCountry, { readOnly: readOnly['placeOfBirthCountry'] || noneEditable['birth.country'], show: !isMobileCountryListActive && !isDateFieldActive && !isIssuedCountryListActive && !isBirthCityListActive && !isNationalityListActive, countries: countries, onListOpen: function () { return handleMenuClick(ListType.BirthCountryList); }, onListClose: function () { return handleMenuClick(); } }), _jsx(BirthCity, { readOnly: readOnly['placeOfBirthCity'] || noneEditable['birth.city'], show: !isMobileCountryListActive &&
|
|
133
149
|
!isDateFieldActive &&
|
|
134
150
|
!isIssuedCountryListActive &&
|
|
135
151
|
!isBirthCountryListActive &&
|
|
136
|
-
!isNationalityListActive, onListOpen: function () { return handleMenuClick(ListType.BirthCityList); }, onListClose: function () { return handleMenuClick(); } }), _jsx(Nationality, { readOnly:
|
|
152
|
+
!isNationalityListActive, onListOpen: function () { return handleMenuClick(ListType.BirthCityList); }, onListClose: function () { return handleMenuClick(); } }), _jsx(Nationality, { readOnly: readOnly['nationality'] || noneEditable['nationality'], show: !isMobileCountryListActive && !isDateFieldActive && !isIssuedCountryListActive && !isBirthCityListActive && !isBirthCountryListActive, countries: countries, onListOpen: function () { return handleMenuClick(ListType.NationalityList); }, onListClose: function () { return handleMenuClick(); } })] }), _jsx(Collapse, __assign({ in: showField, timeout: 500 }, { children: _jsx(Button, __assign({ onBackClicked: function () { return onBack(); }, isAr: isAr, disableBack: !(user === null || user === void 0 ? void 0 : user.is_authorized), disabled: disabled, loading: loading, error: t(error || '') }, { children: t('next') })) }))] })) }))] }));
|
|
137
153
|
};
|
|
138
154
|
IndividualPersonalInfo.defaultProps = {};
|
|
139
155
|
export default React.memo(IndividualPersonalInfo);
|
|
@@ -16,7 +16,7 @@ import { useForm, FormProvider } from 'react-hook-form';
|
|
|
16
16
|
import { yupResolver } from '@hookform/resolvers/yup';
|
|
17
17
|
import { styled } from '@mui/material/styles';
|
|
18
18
|
import Form from '../../../../components/Form';
|
|
19
|
-
import { useAppDispatch, useLanguage, useAppSelector, useSetFromDefaultValues } from '../../../../hooks';
|
|
19
|
+
import { useAppDispatch, useLanguage, useAppSelector, useSetFromDefaultValues, useFormReadOnly, useDataNoneEditable, useFormErrorAndUpdateReadOnly } from '../../../../hooks';
|
|
20
20
|
import { handleCurrentActiveScreen, settingsSelector } from '../../../../app/settings';
|
|
21
21
|
import { DocumentPurpose } from '../../../../@types';
|
|
22
22
|
import { getFileDetailsFromDocument, isSA } from '../../../../utils';
|
|
@@ -49,6 +49,10 @@ var TaxDetails = function () {
|
|
|
49
49
|
mode: 'onChange'
|
|
50
50
|
});
|
|
51
51
|
useSetFromDefaultValues(methods, data.taxData);
|
|
52
|
+
var defaultTaxFiles = React.useMemo(function () { return getFileDetailsFromDocument(entity === null || entity === void 0 ? void 0 : entity.documents, DocumentPurpose.TAX_DOCUMENT); }, [entity === null || entity === void 0 ? void 0 : entity.documents]);
|
|
53
|
+
var originalReadOnly = useFormReadOnly(methods, { documentId: defaultTaxFiles });
|
|
54
|
+
var noneEditable = useDataNoneEditable(entity === null || entity === void 0 ? void 0 : entity.data_status, ['tax_number', 'documents', 'is_vat_acknowledged']);
|
|
55
|
+
var readOnly = useFormErrorAndUpdateReadOnly(methods, originalReadOnly, noneEditable);
|
|
52
56
|
var t = useTranslation().t;
|
|
53
57
|
var isAr = useLanguage().isAr;
|
|
54
58
|
var isSACountry = React.useMemo(function () { return isSA(settingsData.businessCountry.iso2); }, [settingsData.businessCountry.iso2]);
|
|
@@ -58,7 +62,6 @@ var TaxDetails = function () {
|
|
|
58
62
|
var onBack = function () {
|
|
59
63
|
dispatch(handleCurrentActiveScreen('TAX_SUCCESS_FOUR_FLOWS_BUTTONS_STEP'));
|
|
60
64
|
};
|
|
61
|
-
|
|
62
|
-
return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(VATId, { readOnly: !settingsData.boardMaturity && !!vatId }), _jsx(TaxDocument, { show: isSACountry, defaultFiles: defaultTaxFiles, readOnly: !settingsData.boardMaturity && !!defaultTaxFiles.length }), _jsx(ConfirmPolicy, { readOnly: !settingsData.boardMaturity && confirmPolicy === true }), _jsx(Button, __assign({ onBackClicked: function () { return onBack(); }, isAr: isAr, disableBack: true, disabled: !methods.formState.isValid || uploading, loading: loading, error: t(error || '') }, { children: t('next') }))] })) })) }));
|
|
65
|
+
return (_jsx(ScreenContainer, { children: _jsx(FormProvider, __assign({}, methods, { children: _jsxs(FormStyled, __assign({ onSubmit: methods.handleSubmit(onSubmit) }, { children: [_jsx(VATId, { readOnly: readOnly['vatId'] || noneEditable['tax_number'] }), _jsx(TaxDocument, { show: isSACountry, defaultFiles: defaultTaxFiles, readOnly: readOnly['documentId'] || noneEditable['documents'] }), _jsx(ConfirmPolicy, { readOnly: readOnly['documentId'] || noneEditable['is_vat_acknowledged'] }), _jsx(Button, __assign({ onBackClicked: function () { return onBack(); }, isAr: isAr, disableBack: true, disabled: !methods.formState.isValid || uploading, loading: loading, error: t(error || '') }, { children: t('next') }))] })) })) }));
|
|
63
66
|
};
|
|
64
67
|
export default TaxDetails;
|