@reltio/components 1.4.1861 → 1.4.1863

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 (51) hide show
  1. package/cjs/ConnectionEditor/ConnectionEditor.js +1 -1
  2. package/cjs/EntitySelector/EntitySelector.d.ts +1 -1
  3. package/cjs/EntitySelector/EntitySelector.js +3 -2
  4. package/cjs/EntitySelector/EntitySelector.test.js +19 -0
  5. package/cjs/InlineSimpleAttribute/InlineSimpleAttribute.d.ts +1 -1
  6. package/cjs/InlineSimpleAttribute/InlineSimpleAttribute.js +15 -4
  7. package/cjs/InlineSimpleAttribute/InlineSimpleAttribute.spec.js +98 -42
  8. package/cjs/InlineSimpleAttribute/styles.d.ts +2 -1
  9. package/cjs/InlineSimpleAttribute/styles.js +14 -5
  10. package/cjs/MaskingSwitcher/MaskingSwitcher.d.ts +2 -1
  11. package/cjs/MaskingSwitcher/MaskingSwitcher.js +5 -2
  12. package/cjs/ReferenceAttributeEditor/ReferenceAttributeEditor.js +1 -1
  13. package/cjs/ReferenceAttributeEditor/ReferenceAttributeEditor.test.js +1 -2
  14. package/cjs/SimpleAttribute/SimpleAttribute.js +1 -1
  15. package/cjs/components/RelationEditor/RelationEditor.js +1 -1
  16. package/cjs/contexts/MaskedAttributesContext/context.d.ts +18 -0
  17. package/cjs/contexts/MaskedAttributesContext/context.js +141 -0
  18. package/cjs/contexts/MaskedAttributesContext/hooks.d.ts +7 -3
  19. package/cjs/contexts/MaskedAttributesContext/hooks.js +18 -9
  20. package/cjs/contexts/MaskedAttributesContext/index.d.ts +2 -13
  21. package/cjs/contexts/MaskedAttributesContext/index.js +7 -104
  22. package/cjs/contexts/index.d.ts +1 -1
  23. package/cjs/contexts/index.js +2 -3
  24. package/cjs/hooks/useMaskedAttribute.d.ts +1 -0
  25. package/cjs/hooks/useMaskedAttribute.js +19 -17
  26. package/esm/ConnectionEditor/ConnectionEditor.js +1 -1
  27. package/esm/EntitySelector/EntitySelector.d.ts +1 -1
  28. package/esm/EntitySelector/EntitySelector.js +3 -2
  29. package/esm/EntitySelector/EntitySelector.test.js +19 -0
  30. package/esm/InlineSimpleAttribute/InlineSimpleAttribute.d.ts +1 -1
  31. package/esm/InlineSimpleAttribute/InlineSimpleAttribute.js +15 -4
  32. package/esm/InlineSimpleAttribute/InlineSimpleAttribute.spec.js +98 -42
  33. package/esm/InlineSimpleAttribute/styles.d.ts +2 -1
  34. package/esm/InlineSimpleAttribute/styles.js +14 -5
  35. package/esm/MaskingSwitcher/MaskingSwitcher.d.ts +2 -1
  36. package/esm/MaskingSwitcher/MaskingSwitcher.js +5 -2
  37. package/esm/ReferenceAttributeEditor/ReferenceAttributeEditor.js +1 -1
  38. package/esm/ReferenceAttributeEditor/ReferenceAttributeEditor.test.js +1 -2
  39. package/esm/SimpleAttribute/SimpleAttribute.js +1 -1
  40. package/esm/components/RelationEditor/RelationEditor.js +1 -1
  41. package/esm/contexts/MaskedAttributesContext/context.d.ts +18 -0
  42. package/esm/contexts/MaskedAttributesContext/context.js +114 -0
  43. package/esm/contexts/MaskedAttributesContext/hooks.d.ts +7 -3
  44. package/esm/contexts/MaskedAttributesContext/hooks.js +14 -6
  45. package/esm/contexts/MaskedAttributesContext/index.d.ts +2 -13
  46. package/esm/contexts/MaskedAttributesContext/index.js +2 -79
  47. package/esm/contexts/index.d.ts +1 -1
  48. package/esm/contexts/index.js +1 -1
  49. package/esm/hooks/useMaskedAttribute.d.ts +1 -0
  50. package/esm/hooks/useMaskedAttribute.js +20 -18
  51. package/package.json +1 -1
@@ -193,7 +193,7 @@ var RelationEditor = function (_a) {
193
193
  React.createElement(EntitySelector, { className: classnames(styles.item, (_b = {},
194
194
  _b[styles.dense] = errorMessage ||
195
195
  (connection.entity && isTempUri(connection.entity.entityUri)),
196
- _b)), entity: connection.entity || {}, entityTypesUris: getEntityTypesUris() || [], max: config.max || 20, globalSearchRequestOptions: globalSearchRequestOptions, mode: mode, onChange: onChangeEntity, onCreate: canCreateNewEntity ? onCreateEntity : undefined, metadata: metadata, attributeTypesSelectionStrategy: relationEditorAttributeTypesSelectionStrategy }))),
196
+ _b)), entity: connection.entity || {}, entityTypesUris: getEntityTypesUris() || [], globalSearchRequestOptions: globalSearchRequestOptions, mode: mode, onChange: onChangeEntity, onCreate: canCreateNewEntity ? onCreateEntity : undefined, metadata: metadata, attributeTypesSelectionStrategy: relationEditorAttributeTypesSelectionStrategy }))),
197
197
  React.createElement(EditModeAttributesList, { className: styles.item, attrTypes: firstLevelRelationAttrTypes, entity: attributeListEntity, showEmptyEditors: true, mode: mode, parentUri: relationUri, onAddAttributes: onAddAttributes, onChangeAttribute: onChangeAttribute, onDeleteAttribute: onDeleteAttribute })))),
198
198
  React.createElement("div", { className: styles.actionButtons },
199
199
  React.createElement(Button, { onClick: onCancel }, i18n.text('Cancel')),
@@ -0,0 +1,18 @@
1
+ import { ReactNode } from 'react';
2
+ import { SimpleAttributeValue } from '@reltio/mdm-sdk';
3
+ type UnmaskedAttributes = Record<string, {
4
+ attributeValue?: SimpleAttributeValue;
5
+ loading?: boolean;
6
+ isUnmasked?: boolean;
7
+ }>;
8
+ export type MaskedAttributesContextType = {
9
+ unmaskedAttributes: UnmaskedAttributes;
10
+ unmaskAttributeValue: (attributeValueUri: string) => Promise<SimpleAttributeValue>;
11
+ maskAttributeValue: (attributeValueUri: string) => void;
12
+ };
13
+ export declare const MaskedAttributesContext: import("@fluentui/react-context-selector").Context<MaskedAttributesContextType>;
14
+ type Props = {
15
+ children: ReactNode;
16
+ };
17
+ export declare const MaskedAttributesProvider: ({ children }: Props) => JSX.Element;
18
+ export {};
@@ -0,0 +1,114 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ import React, { useState, useCallback, useEffect, useRef } from 'react';
49
+ import { createContext } from '@fluentui/react-context-selector';
50
+ import { getUnmaskedAttributeValue } from '@reltio/mdm-sdk';
51
+ import { showErrorMessage } from '../../core';
52
+ import { useMdmProfileLastLoadedTime } from '../MdmModuleContext';
53
+ export var MaskedAttributesContext = createContext({
54
+ unmaskedAttributes: {},
55
+ unmaskAttributeValue: undefined,
56
+ maskAttributeValue: undefined
57
+ });
58
+ export var MaskedAttributesProvider = function (_a) {
59
+ var children = _a.children;
60
+ var _b = useState({}), unmaskedAttributes = _b[0], setUnmaskedAttributes = _b[1];
61
+ var profileLastLoadedTime = useMdmProfileLastLoadedTime();
62
+ var unmaskedAttributesRef = useRef(unmaskedAttributes);
63
+ //performance optimization to avoid unnecessary re-renders
64
+ unmaskedAttributesRef.current = unmaskedAttributes;
65
+ useEffect(function () {
66
+ setUnmaskedAttributes({});
67
+ }, [profileLastLoadedTime]);
68
+ var unmaskAttributeValue = useCallback(function (attributeValueUri) { return __awaiter(void 0, void 0, void 0, function () {
69
+ var unmaskedAttributes_1, unmaskedAttributeValue_1, error_1;
70
+ return __generator(this, function (_a) {
71
+ switch (_a.label) {
72
+ case 0:
73
+ _a.trys.push([0, 4, , 5]);
74
+ unmaskedAttributes_1 = unmaskedAttributesRef.current;
75
+ if (!!unmaskedAttributes_1[attributeValueUri]) return [3 /*break*/, 2];
76
+ setUnmaskedAttributes(function (prev) {
77
+ var _a;
78
+ return (__assign(__assign({}, prev), (_a = {}, _a[attributeValueUri] = __assign(__assign({}, prev[attributeValueUri]), { loading: true }), _a)));
79
+ });
80
+ return [4 /*yield*/, getUnmaskedAttributeValue(attributeValueUri)];
81
+ case 1:
82
+ unmaskedAttributeValue_1 = _a.sent();
83
+ setUnmaskedAttributes(function (prev) {
84
+ var _a;
85
+ return (__assign(__assign({}, prev), (_a = {}, _a[attributeValueUri] = {
86
+ attributeValue: unmaskedAttributeValue_1,
87
+ isUnmasked: true,
88
+ loading: false
89
+ }, _a)));
90
+ });
91
+ return [2 /*return*/, unmaskedAttributeValue_1];
92
+ case 2:
93
+ setUnmaskedAttributes(function (prev) {
94
+ var _a;
95
+ return (__assign(__assign({}, prev), (_a = {}, _a[attributeValueUri] = __assign(__assign({}, prev[attributeValueUri]), { isUnmasked: true }), _a)));
96
+ });
97
+ return [2 /*return*/, unmaskedAttributes_1[attributeValueUri].attributeValue];
98
+ case 3: return [3 /*break*/, 5];
99
+ case 4:
100
+ error_1 = _a.sent();
101
+ showErrorMessage(error_1);
102
+ return [2 /*return*/, null];
103
+ case 5: return [2 /*return*/];
104
+ }
105
+ });
106
+ }); }, []);
107
+ var maskAttributeValue = useCallback(function (attributeValueUri) {
108
+ setUnmaskedAttributes(function (prev) {
109
+ var _a;
110
+ return (__assign(__assign({}, prev), (_a = {}, _a[attributeValueUri] = __assign(__assign({}, prev[attributeValueUri]), { isUnmasked: false }), _a)));
111
+ });
112
+ }, []);
113
+ return (React.createElement(MaskedAttributesContext.Provider, { value: { unmaskedAttributes: unmaskedAttributes, unmaskAttributeValue: unmaskAttributeValue, maskAttributeValue: maskAttributeValue } }, children));
114
+ };
@@ -1,3 +1,7 @@
1
- import { SimpleAttributeValue } from '@reltio/mdm-sdk';
2
- export declare const useUnmaskedAttributeValue: (attributeValue: SimpleAttributeValue) => SimpleAttributeValue;
3
- export declare const useAddUnmaskedAttributeValue: () => (attributeValue: SimpleAttributeValue) => Promise<void>;
1
+ export declare const useUnmaskedAttributeValue: (attributeValueUri: string) => {
2
+ attributeValue?: import("@reltio/mdm-sdk").SimpleAttributeValue;
3
+ loading?: boolean;
4
+ isUnmasked?: boolean;
5
+ };
6
+ export declare const useUnmaskAttributeValue: () => (attributeValueUri: string) => Promise<import("@reltio/mdm-sdk").SimpleAttributeValue>;
7
+ export declare const useMaskAttributeValue: () => (attributeValueUri: string) => void;
@@ -1,13 +1,21 @@
1
1
  import { useContextSelector } from '@fluentui/react-context-selector';
2
- import { MaskedAttributesContext } from '.';
2
+ import { MaskedAttributesContext } from './context';
3
3
  var useMaskedAttributesContext = function (selector) {
4
4
  return useContextSelector(MaskedAttributesContext, selector);
5
5
  };
6
- export var useUnmaskedAttributeValue = function (attributeValue) {
7
- return useMaskedAttributesContext(function (context) {
8
- return context ? context.unmaskedAttributesValues[attributeValue.uri] : attributeValue;
6
+ export var useUnmaskedAttributeValue = function (attributeValueUri) {
7
+ return useMaskedAttributesContext(function (_a) {
8
+ var unmaskedAttributes = _a.unmaskedAttributes;
9
+ return unmaskedAttributes[attributeValueUri];
9
10
  });
10
11
  };
11
- export var useAddUnmaskedAttributeValue = function () {
12
- return useMaskedAttributesContext(function (context) { return (context ? context.addUnmaskedAttributeValue : Promise.resolve); });
12
+ export var useUnmaskAttributeValue = function () {
13
+ return useMaskedAttributesContext(function (_a) {
14
+ var unmaskAttributeValue = _a.unmaskAttributeValue;
15
+ return unmaskAttributeValue;
16
+ });
13
17
  };
18
+ export var useMaskAttributeValue = function () { return useMaskedAttributesContext(function (_a) {
19
+ var maskAttributeValue = _a.maskAttributeValue;
20
+ return maskAttributeValue;
21
+ }); };
@@ -1,13 +1,2 @@
1
- import { ReactNode } from 'react';
2
- import { SimpleAttributeValue } from '@reltio/mdm-sdk';
3
- type UnmaskedAttributesValues = Record<string, SimpleAttributeValue>;
4
- export type MaskedAttributesContextType = {
5
- unmaskedAttributesValues: UnmaskedAttributesValues;
6
- addUnmaskedAttributeValue: (attributeValue: SimpleAttributeValue) => Promise<void>;
7
- };
8
- export declare const MaskedAttributesContext: import("@fluentui/react-context-selector").Context<MaskedAttributesContextType>;
9
- type Props = {
10
- children: ReactNode;
11
- };
12
- export declare const MaskedAttributesProvider: ({ children }: Props) => JSX.Element;
13
- export {};
1
+ export { MaskedAttributesProvider } from './context';
2
+ export { useUnmaskedAttributeValue, useUnmaskAttributeValue, useMaskAttributeValue } from './hooks';
@@ -1,79 +1,2 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
- return new (P || (P = Promise))(function (resolve, reject) {
15
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
- step((generator = generator.apply(thisArg, _arguments || [])).next());
19
- });
20
- };
21
- var __generator = (this && this.__generator) || function (thisArg, body) {
22
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
- function verb(n) { return function (v) { return step([n, v]); }; }
25
- function step(op) {
26
- if (f) throw new TypeError("Generator is already executing.");
27
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
- if (y = 0, t) op = [op[0] & 2, t.value];
30
- switch (op[0]) {
31
- case 0: case 1: t = op; break;
32
- case 4: _.label++; return { value: op[1], done: false };
33
- case 5: _.label++; y = op[1]; op = [0]; continue;
34
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
- default:
36
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
- if (t[2]) _.ops.pop();
41
- _.trys.pop(); continue;
42
- }
43
- op = body.call(thisArg, _);
44
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
- }
47
- };
48
- import React, { useState, useCallback } from 'react';
49
- import { createContext } from '@fluentui/react-context-selector';
50
- import { getUnmaskedAttributeValue } from '@reltio/mdm-sdk';
51
- import { showErrorMessage } from '../../core/errors';
52
- export var MaskedAttributesContext = createContext(null);
53
- export var MaskedAttributesProvider = function (_a) {
54
- var children = _a.children;
55
- var _b = useState({}), unmaskedAttributesValues = _b[0], setUnmaskedAttributesValues = _b[1];
56
- var addUnmaskedAttributeValue = useCallback(function (attributeValue) { return __awaiter(void 0, void 0, void 0, function () {
57
- var unmaskedAttributeValue_1, error_1;
58
- return __generator(this, function (_a) {
59
- switch (_a.label) {
60
- case 0:
61
- _a.trys.push([0, 2, , 3]);
62
- return [4 /*yield*/, getUnmaskedAttributeValue(attributeValue.uri)];
63
- case 1:
64
- unmaskedAttributeValue_1 = _a.sent();
65
- setUnmaskedAttributesValues(function (prev) {
66
- var _a;
67
- return (__assign(__assign({}, prev), (_a = {}, _a[attributeValue.uri] = unmaskedAttributeValue_1, _a)));
68
- });
69
- return [3 /*break*/, 3];
70
- case 2:
71
- error_1 = _a.sent();
72
- showErrorMessage(error_1);
73
- return [3 /*break*/, 3];
74
- case 3: return [2 /*return*/];
75
- }
76
- });
77
- }); }, []);
78
- return (React.createElement(MaskedAttributesContext.Provider, { value: { unmaskedAttributesValues: unmaskedAttributesValues, addUnmaskedAttributeValue: addUnmaskedAttributeValue } }, children));
79
- };
1
+ export { MaskedAttributesProvider } from './context';
2
+ export { useUnmaskedAttributeValue, useUnmaskAttributeValue, useMaskAttributeValue } from './hooks';
@@ -34,4 +34,4 @@ export { ConfigPermissionsContext, ConfigPermissionsContextProvider, useAttribut
34
34
  export * from './MdmModuleContext';
35
35
  export { ReloadDataProvider, useReloadData } from './ReloadDataContext';
36
36
  export { SegmentationContext } from './SegmentationContext';
37
- export { MaskedAttributesProvider } from './MaskedAttributesContext';
37
+ export * from './MaskedAttributesContext';
@@ -34,4 +34,4 @@ export { ConfigPermissionsContext, ConfigPermissionsContextProvider, useAttribut
34
34
  export * from './MdmModuleContext';
35
35
  export { ReloadDataProvider, useReloadData } from './ReloadDataContext';
36
36
  export { SegmentationContext } from './SegmentationContext';
37
- export { MaskedAttributesProvider } from './MaskedAttributesContext';
37
+ export * from './MaskedAttributesContext';
@@ -8,6 +8,7 @@ declare const useMaskedAttribute: ({ attributeType, attributeValue }: Props) =>
8
8
  isMasked: boolean;
9
9
  toggleMasking: () => void;
10
10
  isUnmasking: boolean;
11
+ unmask: () => Promise<void> | Promise<SimpleAttributeValue>;
11
12
  attributeValue: SimpleAttributeValue;
12
13
  };
13
14
  export default useMaskedAttribute;
@@ -1,27 +1,29 @@
1
- import { useEffect, useState, useCallback } from 'react';
2
- import { useUnmaskedAttributeValue, useAddUnmaskedAttributeValue } from '../contexts/MaskedAttributesContext/hooks';
1
+ import { useCallback } from 'react';
2
+ import { useMaskAttributeValue, useUnmaskAttributeValue, useUnmaskedAttributeValue } from '../contexts/MaskedAttributesContext';
3
3
  var useMaskedAttribute = function (_a) {
4
4
  var attributeType = _a.attributeType, attributeValue = _a.attributeValue;
5
- var isUnmaskingNeeded = !!attributeType.masking;
6
- var _b = useState(isUnmaskingNeeded), isMasked = _b[0], setIsMasked = _b[1];
7
- var _c = useState(false), isUnmasking = _c[0], setIsUnmasking = _c[1];
8
- var addUnmaskedAttributeValue = useAddUnmaskedAttributeValue();
9
- var unmaskedAttributeValue = useUnmaskedAttributeValue(attributeValue);
10
- useEffect(function () {
11
- if (isUnmaskingNeeded && addUnmaskedAttributeValue && !isMasked && unmaskedAttributeValue === undefined) {
12
- setIsUnmasking(true);
13
- addUnmaskedAttributeValue(attributeValue).finally(function () { return setIsUnmasking(false); });
14
- }
15
- }, [isUnmaskingNeeded, isMasked, addUnmaskedAttributeValue, attributeValue, unmaskedAttributeValue]);
5
+ var unmaskAttributeValue = useUnmaskAttributeValue();
6
+ var maskAttributeValue = useMaskAttributeValue();
7
+ var _b = useUnmaskedAttributeValue(attributeValue.uri) || {}, unmaskedAttributeValue = _b.attributeValue, _c = _b.isUnmasked, isUnmasked = _c === void 0 ? false : _c, _d = _b.loading, loading = _d === void 0 ? false : _d;
8
+ var isUnmaskingNeeded = unmaskAttributeValue && maskAttributeValue && !!attributeType.masking;
9
+ var unmask = useCallback(function () {
10
+ return isUnmaskingNeeded ? unmaskAttributeValue(attributeValue.uri) : Promise.resolve();
11
+ }, [unmaskAttributeValue, attributeValue.uri, isUnmaskingNeeded]);
16
12
  var toggleMasking = useCallback(function () {
17
- setIsMasked(function (prev) { return !prev; });
18
- }, []);
13
+ if (isUnmasked) {
14
+ maskAttributeValue(attributeValue.uri);
15
+ }
16
+ else {
17
+ unmask();
18
+ }
19
+ }, [attributeValue.uri, isUnmasked, maskAttributeValue, unmask]);
19
20
  return {
20
21
  isUnmaskingNeeded: isUnmaskingNeeded,
21
- isMasked: isMasked,
22
+ isMasked: !isUnmasked,
22
23
  toggleMasking: toggleMasking,
23
- isUnmasking: isUnmasking,
24
- attributeValue: isMasked ? attributeValue : unmaskedAttributeValue || attributeValue
24
+ isUnmasking: loading,
25
+ unmask: unmask,
26
+ attributeValue: isUnmaskingNeeded && isUnmasked ? unmaskedAttributeValue || attributeValue : attributeValue
25
27
  };
26
28
  };
27
29
  export default useMaskedAttribute;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reltio/components",
3
- "version": "1.4.1861",
3
+ "version": "1.4.1863",
4
4
  "license": "SEE LICENSE IN LICENSE FILE",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./esm/index.js",