@redacto.io/consent-sdk-react-native 5.0.0-beta.7 → 5.0.0-beta.9
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/dist/index.js +6 -3
- package/dist/index.mjs +6 -3
- package/dist/privacy-center.d.mts +35 -0
- package/dist/privacy-center.d.ts +35 -0
- package/dist/privacy-center.js +1080 -536
- package/dist/privacy-center.mjs +1051 -507
- package/package.json +1 -1
package/dist/privacy-center.js
CHANGED
|
@@ -121,10 +121,10 @@ __export(privacy_center_exports, {
|
|
|
121
121
|
module.exports = __toCommonJS(privacy_center_exports);
|
|
122
122
|
|
|
123
123
|
// src/RedactoPrivacyCenter/RedactoPrivacyCenter.tsx
|
|
124
|
-
var
|
|
124
|
+
var import_react45 = require("react");
|
|
125
125
|
var import_react_query2 = require("@tanstack/react-query");
|
|
126
|
-
var
|
|
127
|
-
var
|
|
126
|
+
var import_react_i18next31 = require("react-i18next");
|
|
127
|
+
var import_react_native66 = require("react-native");
|
|
128
128
|
|
|
129
129
|
// src/RedactoPrivacyCenter/lib/i18n.ts
|
|
130
130
|
var import_i18next = __toESM(require("i18next"));
|
|
@@ -541,7 +541,14 @@ var translation_default = {
|
|
|
541
541
|
submittingAs: "Submitting as {{email}}",
|
|
542
542
|
tapToChooseFile: "Tap to choose a file",
|
|
543
543
|
view: "View",
|
|
544
|
-
whatDoYouNeed: "What do you need?"
|
|
544
|
+
whatDoYouNeed: "What do you need?",
|
|
545
|
+
sessionExpiredTitle: "Your session has expired",
|
|
546
|
+
sessionExpiredDescription: "Please sign in again to continue.",
|
|
547
|
+
chooseYourProfile: "Choose your profile",
|
|
548
|
+
loginIdentifierLinkedToMultipleProfiles: "The login identifier is linked to more than one profile. Choose the one you want to view.",
|
|
549
|
+
userIdLabel: "User ID: {{id}}",
|
|
550
|
+
signingInEllipsis: "Signing in\u2026",
|
|
551
|
+
switchProfile: "Switch profile"
|
|
545
552
|
};
|
|
546
553
|
|
|
547
554
|
// src/RedactoPrivacyCenter/locales/as/translation.json
|
|
@@ -955,7 +962,14 @@ var translation_default2 = {
|
|
|
955
962
|
submittingAs: "{{email}} \u09B9\u09BF\u099A\u09BE\u09AA\u09C7 \u09A6\u09BE\u0996\u09BF\u09B2 \u0995\u09F0\u09BF \u0986\u099B\u09C7",
|
|
956
963
|
tapToChooseFile: "\u09AB\u09BE\u0987\u09B2 \u09AC\u09BE\u099B\u09BF\u09AC\u09B2\u09C8 \u099F\u09BF\u09AA\u0995",
|
|
957
964
|
view: "\u099A\u09BE\u0993\u0995",
|
|
958
|
-
whatDoYouNeed: "\u0986\u09AA\u09CB\u09A8\u09BE\u0995 \u0995\u09BF \u09B2\u09BE\u0997\u09C7?"
|
|
965
|
+
whatDoYouNeed: "\u0986\u09AA\u09CB\u09A8\u09BE\u0995 \u0995\u09BF \u09B2\u09BE\u0997\u09C7?",
|
|
966
|
+
sessionExpiredTitle: "\u0986\u09AA\u09CB\u09A8\u09BE\u09F0 \u099B\u09C7\u099A\u09A8 \u09B6\u09C7\u09B7 \u09B9\u09C8\u099B\u09C7",
|
|
967
|
+
sessionExpiredDescription: "\u0985\u09AC\u09CD\u09AF\u09BE\u09B9\u09A4 \u09F0\u09BE\u0996\u09BF\u09AC\u09B2\u09C8 \u0985\u09A8\u09C1\u0997\u09CD\u09F0\u09B9 \u0995\u09F0\u09BF \u09AA\u09C1\u09A8\u09F0 \u099B\u09BE\u0987\u09A8 \u0987\u09A8 \u0995\u09F0\u0995\u0964",
|
|
968
|
+
chooseYourProfile: "\u0986\u09AA\u09CB\u09A8\u09BE\u09F0 \u09AA\u09CD\u09F0'\u09AB\u09BE\u0987\u09B2 \u09AC\u09BE\u099B\u09A8\u09BF \u0995\u09F0\u0995",
|
|
969
|
+
loginIdentifierLinkedToMultipleProfiles: "\u09B2\u0997\u0987\u09A8 \u0986\u0987\u09A1\u09BF \u098F\u0995\u09BE\u09A7\u09BF\u0995 \u09AA\u09CD\u09F0'\u09AB\u09BE\u0987\u09B2\u09F0 \u09B8\u09C8\u09A4\u09C7 \u09B8\u0982\u09AF\u09C1\u0995\u09CD\u09A4\u0964 \u0986\u09AA\u09C1\u09A8\u09BF \u099A\u09BE\u09AC \u09AC\u09BF\u099A\u09F0\u09BE\u099F\u09CB \u09AC\u09BE\u099B\u09A8\u09BF \u0995\u09F0\u0995\u0964",
|
|
970
|
+
userIdLabel: "\u09AC\u09CD\u09AF\u09F1\u09B9\u09BE\u09F0\u0995\u09BE\u09F0\u09C0 \u0986\u0987\u09A1\u09BF: {{id}}",
|
|
971
|
+
signingInEllipsis: "\u099B\u09BE\u0987\u09A8 \u0987\u09A8 \u09B9\u09C8 \u0986\u099B\u09C7\u2026",
|
|
972
|
+
switchProfile: "\u09AA\u09CD\u09F0'\u09AB\u09BE\u0987\u09B2 \u09B8\u09B2\u09A8\u09BF \u0995\u09F0\u0995"
|
|
959
973
|
};
|
|
960
974
|
|
|
961
975
|
// src/RedactoPrivacyCenter/locales/bn/translation.json
|
|
@@ -1369,7 +1383,14 @@ var translation_default3 = {
|
|
|
1369
1383
|
submittingAs: "{{email}} \u09B9\u09BF\u09B8\u09BE\u09AC\u09C7 \u099C\u09AE\u09BE \u09A6\u09C7\u0993\u09AF\u09BC\u09BE \u09B9\u099A\u09CD\u099B\u09C7",
|
|
1370
1384
|
tapToChooseFile: "\u09AB\u09BE\u0987\u09B2 \u09AC\u09C7\u099B\u09C7 \u09A8\u09BF\u09A4\u09C7 \u099F\u09CD\u09AF\u09BE\u09AA \u0995\u09B0\u09C1\u09A8",
|
|
1371
1385
|
view: "\u09A6\u09C7\u0996\u09C1\u09A8",
|
|
1372
|
-
whatDoYouNeed: "\u0986\u09AA\u09A8\u09BE\u09B0 \u0995\u09C0 \u09AA\u09CD\u09B0\u09AF\u09BC\u09CB\u099C\u09A8?"
|
|
1386
|
+
whatDoYouNeed: "\u0986\u09AA\u09A8\u09BE\u09B0 \u0995\u09C0 \u09AA\u09CD\u09B0\u09AF\u09BC\u09CB\u099C\u09A8?",
|
|
1387
|
+
sessionExpiredTitle: "\u0986\u09AA\u09A8\u09BE\u09B0 \u09B8\u09C7\u09B6\u09A8 \u09AE\u09C7\u09AF\u09BC\u09BE\u09A6 \u09B6\u09C7\u09B7 \u09B9\u09AF\u09BC\u09C7 \u0997\u09C7\u099B\u09C7",
|
|
1388
|
+
sessionExpiredDescription: "\u099A\u09BE\u09B2\u09BF\u09AF\u09BC\u09C7 \u09AF\u09C7\u09A4\u09C7 \u0985\u09A8\u09C1\u0997\u09CD\u09B0\u09B9 \u0995\u09B0\u09C7 \u0986\u09AC\u09BE\u09B0 \u09B8\u09BE\u0987\u09A8 \u0987\u09A8 \u0995\u09B0\u09C1\u09A8\u0964",
|
|
1389
|
+
chooseYourProfile: "\u0986\u09AA\u09A8\u09BE\u09B0 \u09AA\u09CD\u09B0\u09CB\u09AB\u09BE\u0987\u09B2 \u09AC\u09C7\u099B\u09C7 \u09A8\u09BF\u09A8",
|
|
1390
|
+
loginIdentifierLinkedToMultipleProfiles: "\u09B2\u0997\u0987\u09A8 \u0986\u0987\u09A1\u09BF \u098F\u0995\u09BE\u09A7\u09BF\u0995 \u09AA\u09CD\u09B0\u09CB\u09AB\u09BE\u0987\u09B2\u09C7\u09B0 \u09B8\u09BE\u09A5\u09C7 \u09AF\u09C1\u0995\u09CD\u09A4\u0964 \u0986\u09AA\u09A8\u09BF \u09AF\u09C7\u099F\u09BF \u09A6\u09C7\u0996\u09A4\u09C7 \u099A\u09BE\u09A8 \u09B8\u09C7\u099F\u09BF \u09AC\u09C7\u099B\u09C7 \u09A8\u09BF\u09A8\u0964",
|
|
1391
|
+
userIdLabel: "\u09AC\u09CD\u09AF\u09AC\u09B9\u09BE\u09B0\u0995\u09BE\u09B0\u09C0\u09B0 \u0986\u0987\u09A1\u09BF: {{id}}",
|
|
1392
|
+
signingInEllipsis: "\u09B8\u09BE\u0987\u09A8 \u0987\u09A8 \u09B9\u099A\u09CD\u099B\u09C7\u2026",
|
|
1393
|
+
switchProfile: "\u09AA\u09CD\u09B0\u09CB\u09AB\u09BE\u0987\u09B2 \u09AA\u09B0\u09BF\u09AC\u09B0\u09CD\u09A4\u09A8 \u0995\u09B0\u09C1\u09A8"
|
|
1373
1394
|
};
|
|
1374
1395
|
|
|
1375
1396
|
// src/RedactoPrivacyCenter/locales/brx/translation.json
|
|
@@ -1783,7 +1804,14 @@ var translation_default4 = {
|
|
|
1783
1804
|
submittingAs: "{{email}} \u092E\u0939\u0930\u0948 \u0917\u0925\u093E\u092F\u0917\u093E\u0938\u093F\u0928\u094B",
|
|
1784
1805
|
tapToChooseFile: "\u092B\u093E\u0907\u0932 \u0938\u093E\u092F\u0916\u0928\u094B \u091F\u0947\u092C \u0916\u093E\u0932\u093E\u092E",
|
|
1785
1806
|
view: "\u0928\u093E\u092F",
|
|
1786
|
-
whatDoYouNeed: "\u0928\u094B\u0902\u0925\u093E\u0902\u0928\u094B \u092E\u093E \u0917\u094B\u0928\u093E\u0902?"
|
|
1807
|
+
whatDoYouNeed: "\u0928\u094B\u0902\u0925\u093E\u0902\u0928\u094B \u092E\u093E \u0917\u094B\u0928\u093E\u0902?",
|
|
1808
|
+
sessionExpiredTitle: "\u0928\u094B\u0902\u0925\u093E\u0902\u0928\u093F \u0938\u0947\u0938\u0928 \u091C\u094B\u092C\u092C\u093E\u092F",
|
|
1809
|
+
sessionExpiredDescription: "\u0938\u093E\u0932\u093E\u092F\u0928\u094B \u0925\u093E\u0916\u093E\u092F \u0905\u0928\u0928\u093E\u0928\u0948 \u092B\u093F\u0928 \u0938\u093E\u0907\u0928 \u0907\u0928 \u0916\u093E\u0932\u093E\u092E\u0964",
|
|
1810
|
+
chooseYourProfile: "\u0928\u094B\u0902\u0925\u093E\u0902\u0928\u093F \u092A\u094D\u0930\u092B\u093E\u0907\u0932 \u0938\u093E\u092F\u0916",
|
|
1811
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0932\u0949\u0917\u093F\u0928 \u0906\u0908\u0921\u0940 \u092E\u094B\u0928\u0938\u0947\u0928\u093F\u0916\u094D\u0930\u0941\u0907 \u092C\u093E\u0902\u0938\u093F\u0928 \u092A\u094D\u0930\u092B\u093E\u0907\u0932\u091C\u094B\u0902 \u0928\u093E\u0902\u091C\u093E\u092C \u0926\u0902\u0964 \u0928\u094B\u0902\u0925\u093E\u0919\u093E \u0928\u093E\u092F\u0928\u094B \u0932\u0941\u092C\u0948\u092F\u094B\u092C\u094D\u0932\u093E \u092C\u0947\u0916\u094C \u0938\u093E\u092F\u0916\u0964",
|
|
1812
|
+
userIdLabel: "\u092F\u0942\u091C\u0930 \u0906\u0908\u0921\u0940: {{id}}",
|
|
1813
|
+
signingInEllipsis: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u091C\u093E\u092F\u0917\u093E\u0938\u093F\u0928\u094B \u0926\u0902\u2026",
|
|
1814
|
+
switchProfile: "\u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u0938\u094B\u0932\u093E\u092F"
|
|
1787
1815
|
};
|
|
1788
1816
|
|
|
1789
1817
|
// src/RedactoPrivacyCenter/locales/doi/translation.json
|
|
@@ -2197,7 +2225,14 @@ var translation_default5 = {
|
|
|
2197
2225
|
submittingAs: "{{email}} \u0926\u0947 \u0930\u0942\u092A \u091A \u091C\u092E\u093E\u0902 \u0915\u0930\u0926\u0947",
|
|
2198
2226
|
tapToChooseFile: "\u092B\u093E\u0907\u0932 \u091A\u0941\u0928\u0928\u0947 \u0906\u0938\u094D\u0924\u0948 \u091F\u0948\u092A \u0915\u0930\u094B",
|
|
2199
2227
|
view: "\u0926\u093F\u0915\u094D\u0916\u094B",
|
|
2200
|
-
whatDoYouNeed: "\u0924\u0941\u0938\u0947\u0902 \u0915\u0947\u0939\u094D \u091A\u093E\u0939\u093F\u0926\u093E?"
|
|
2228
|
+
whatDoYouNeed: "\u0924\u0941\u0938\u0947\u0902 \u0915\u0947\u0939\u094D \u091A\u093E\u0939\u093F\u0926\u093E?",
|
|
2229
|
+
sessionExpiredTitle: "\u0924\u0941\u0902\u0926\u093E \u0938\u0924\u094D\u0930 \u0916\u0924\u092E \u0939\u094B\u0908 \u0917\u0947\u0906 \u0910",
|
|
2230
|
+
sessionExpiredDescription: "\u091C\u093E\u0930\u0940 \u0930\u0915\u094D\u0916\u0928\u0947 \u0906\u0938\u094D\u0924\u0948 \u0915\u0943\u092A\u093E \u0915\u0930\u093F\u092F\u0948 \u092B\u093F\u0930\u0940 \u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u0930\u094B\u0964",
|
|
2231
|
+
chooseYourProfile: "\u0905\u092A\u0928\u0940 \u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u091A\u0941\u0928\u094B",
|
|
2232
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0932\u0949\u0917\u093F\u0928 \u0906\u0908\u0921\u0940 \u0907\u0915 \u0915\u094B\u0932\u093E \u092E\u0924\u093E \u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932\u0947\u0902 \u0915\u0928\u094D\u0928\u0948 \u091C\u0941\u0921\u093C\u094D\u092F\u093E \u0926\u093E \u0910\u0964 \u091C\u0947\u0939\u094D\u0921\u093C\u0940 \u0924\u0941\u0938\u0947\u0902 \u0926\u093F\u0915\u094D\u0916\u0928\u0940 \u0910 \u0913\u0939\u094D \u091A\u0941\u0928\u094B\u0964",
|
|
2233
|
+
userIdLabel: "\u092A\u094D\u0930\u092F\u094B\u0917\u0915\u0930\u094D\u0924\u093E \u0906\u0908\u0921\u0940: {{id}}",
|
|
2234
|
+
signingInEllipsis: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u0939\u094B\u0906 \u0915\u0930\u0926\u093E \u0910\u2026",
|
|
2235
|
+
switchProfile: "\u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u092C\u0926\u0932\u094B"
|
|
2201
2236
|
};
|
|
2202
2237
|
|
|
2203
2238
|
// src/RedactoPrivacyCenter/locales/gom/translation.json
|
|
@@ -2611,7 +2646,14 @@ var translation_default6 = {
|
|
|
2611
2646
|
submittingAs: "{{email}} \u092E\u094D\u0939\u0942\u0923 \u0938\u093E\u0926\u0930 \u0915\u0930\u0924\u093E",
|
|
2612
2647
|
tapToChooseFile: "\u092B\u093E\u092F\u0932 \u0928\u093F\u0935\u0921\u092A\u093E\u0915 \u091F\u0945\u092A \u0915\u0930\u093E\u0924",
|
|
2613
2648
|
view: "\u092A\u0933\u092F\u093E\u0924",
|
|
2614
|
-
whatDoYouNeed: "\u0924\u0941\u092E\u0915\u093E\u0902 \u0915\u093F\u0924\u0947\u0902 \u091C\u093E\u092F?"
|
|
2649
|
+
whatDoYouNeed: "\u0924\u0941\u092E\u0915\u093E\u0902 \u0915\u093F\u0924\u0947\u0902 \u091C\u093E\u092F?",
|
|
2650
|
+
sessionExpiredTitle: "\u0924\u0941\u092E\u091A\u0947\u0902 \u0938\u0924\u094D\u0930 \u0938\u094B\u0902\u092A\u0932\u093E\u0902",
|
|
2651
|
+
sessionExpiredDescription: "\u092B\u0941\u0921\u0947\u0902 \u0935\u091A\u092A\u093E\u0915 \u0909\u092A\u0915\u093E\u0930 \u0915\u0930\u0942\u0928 \u092A\u0930\u0924\u0942\u0928 \u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u0930\u093E\u0924.",
|
|
2652
|
+
chooseYourProfile: "\u0924\u0941\u092E\u091A\u0947\u0902 \u092A\u094D\u0930\u094B\u092B\u093E\u092F\u0932 \u0928\u093F\u0935\u0921\u093E\u0924",
|
|
2653
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0932\u0949\u0917\u093F\u0928 \u0906\u092F\u0921\u0940 \u090F\u0915\u093E\u092A\u0930\u0938 \u091A\u0921 \u092A\u094D\u0930\u094B\u092B\u093E\u092F\u0932\u093E\u0902\u0915 \u091C\u094B\u0921\u0932\u093E. \u0924\u0941\u092E\u0915\u093E\u0902 \u091C\u0947\u0902 \u092A\u0933\u094B\u0935\u092A\u093E\u0915 \u091C\u093E\u092F \u0924\u0947\u0902 \u0928\u093F\u0935\u0921\u093E\u0924.",
|
|
2654
|
+
userIdLabel: "\u0935\u093E\u092A\u0930\u092A\u0940 \u0906\u092F\u0921\u0940: {{id}}",
|
|
2655
|
+
signingInEllipsis: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u091C\u093E\u0935\u0928 \u0906\u0938\u093E\u2026",
|
|
2656
|
+
switchProfile: "\u092A\u094D\u0930\u094B\u092B\u093E\u092F\u0932 \u092C\u0926\u0932\u093E"
|
|
2615
2657
|
};
|
|
2616
2658
|
|
|
2617
2659
|
// src/RedactoPrivacyCenter/locales/gu/translation.json
|
|
@@ -3025,7 +3067,14 @@ var translation_default7 = {
|
|
|
3025
3067
|
submittingAs: "{{email}} \u0AA4\u0AB0\u0AC0\u0A95\u0AC7 \u0AB8\u0AAC\u0AAE\u0ABF\u0A9F \u0A95\u0AB0\u0AC0 \u0AB0\u0AB9\u0ACD\u0AAF\u0ABE \u0A9B\u0ACB",
|
|
3026
3068
|
tapToChooseFile: "\u0AAB\u0ABE\u0A87\u0AB2 \u0AAA\u0AB8\u0A82\u0AA6 \u0A95\u0AB0\u0AB5\u0ABE \u0A9F\u0AC5\u0AAA \u0A95\u0AB0\u0ACB",
|
|
3027
3069
|
view: "\u0A9C\u0AC1\u0A93",
|
|
3028
|
-
whatDoYouNeed: "\u0AA4\u0AAE\u0AA8\u0AC7 \u0AB6\u0AC1\u0A82 \u0A9C\u0ACB\u0A88\u0A8F \u0A9B\u0AC7?"
|
|
3070
|
+
whatDoYouNeed: "\u0AA4\u0AAE\u0AA8\u0AC7 \u0AB6\u0AC1\u0A82 \u0A9C\u0ACB\u0A88\u0A8F \u0A9B\u0AC7?",
|
|
3071
|
+
sessionExpiredTitle: "\u0AA4\u0AAE\u0ABE\u0AB0\u0AC1\u0A82 \u0AB8\u0AA4\u0ACD\u0AB0 \u0AB8\u0AAE\u0ABE\u0AAA\u0ACD\u0AA4 \u0AA5\u0A88 \u0A97\u0AAF\u0AC1\u0A82 \u0A9B\u0AC7",
|
|
3072
|
+
sessionExpiredDescription: "\u0A9A\u0ABE\u0AB2\u0AC1 \u0AB0\u0ABE\u0A96\u0AB5\u0ABE \u0AAE\u0ABE\u0A9F\u0AC7 \u0A95\u0AC3\u0AAA\u0ABE \u0A95\u0AB0\u0AC0\u0AA8\u0AC7 \u0AAB\u0AB0\u0AC0\u0AA5\u0AC0 \u0AB8\u0ABE\u0A87\u0AA8 \u0A87\u0AA8 \u0A95\u0AB0\u0ACB.",
|
|
3073
|
+
chooseYourProfile: "\u0AA4\u0AAE\u0ABE\u0AB0\u0AC0 \u0AAA\u0ACD\u0AB0\u0ACB\u0AAB\u0ABE\u0A87\u0AB2 \u0AAA\u0AB8\u0A82\u0AA6 \u0A95\u0AB0\u0ACB",
|
|
3074
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0AB2\u0ACB\u0A97\u0ABF\u0AA8 \u0A86\u0A88\u0AA1\u0AC0 \u0A8F\u0A95 \u0A95\u0AB0\u0AA4\u0ABE\u0A82 \u0AB5\u0AA7\u0AC1 \u0AAA\u0ACD\u0AB0\u0ACB\u0AAB\u0ABE\u0A87\u0AB2 \u0AB8\u0ABE\u0AA5\u0AC7 \u0A9C\u0ACB\u0AA1\u0ABE\u0AAF\u0AC7\u0AB2 \u0A9B\u0AC7. \u0AA4\u0AAE\u0AC7 \u0A9C\u0AC7 \u0A9C\u0ACB\u0AB5\u0ABE \u0AAE\u0ABE\u0A82\u0A97\u0ACB \u0A9B\u0ACB \u0AA4\u0AC7 \u0AAA\u0AB8\u0A82\u0AA6 \u0A95\u0AB0\u0ACB.",
|
|
3075
|
+
userIdLabel: "\u0AB5\u0AAA\u0AB0\u0ABE\u0AB6\u0A95\u0AB0\u0ACD\u0AA4\u0ABE \u0A86\u0A88\u0AA1\u0AC0: {{id}}",
|
|
3076
|
+
signingInEllipsis: "\u0AB8\u0ABE\u0A87\u0AA8 \u0A87\u0AA8 \u0AA5\u0A88 \u0AB0\u0AB9\u0ACD\u0AAF\u0AC1\u0A82 \u0A9B\u0AC7\u2026",
|
|
3077
|
+
switchProfile: "\u0AAA\u0ACD\u0AB0\u0ACB\u0AAB\u0ABE\u0A87\u0AB2 \u0AAC\u0AA6\u0AB2\u0ACB"
|
|
3029
3078
|
};
|
|
3030
3079
|
|
|
3031
3080
|
// src/RedactoPrivacyCenter/locales/hi/translation.json
|
|
@@ -3439,7 +3488,14 @@ var translation_default8 = {
|
|
|
3439
3488
|
submittingAs: "{{email}} \u0915\u0947 \u0930\u0942\u092A \u092E\u0947\u0902 \u0938\u092C\u092E\u093F\u091F \u0915\u0930 \u0930\u0939\u0947 \u0939\u0948\u0902",
|
|
3440
3489
|
tapToChooseFile: "\u092B\u093C\u093E\u0907\u0932 \u091A\u0941\u0928\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u091F\u0948\u092A \u0915\u0930\u0947\u0902",
|
|
3441
3490
|
view: "\u0926\u0947\u0916\u0947\u0902",
|
|
3442
|
-
whatDoYouNeed: "\u0906\u092A\u0915\u094B \u0915\u094D\u092F\u093E \u091A\u093E\u0939\u093F\u090F?"
|
|
3491
|
+
whatDoYouNeed: "\u0906\u092A\u0915\u094B \u0915\u094D\u092F\u093E \u091A\u093E\u0939\u093F\u090F?",
|
|
3492
|
+
sessionExpiredTitle: "\u0906\u092A\u0915\u093E \u0938\u0924\u094D\u0930 \u0938\u092E\u093E\u092A\u094D\u0924 \u0939\u094B \u0917\u092F\u093E \u0939\u0948",
|
|
3493
|
+
sessionExpiredDescription: "\u091C\u093E\u0930\u0940 \u0930\u0916\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u0915\u0943\u092A\u092F\u093E \u092B\u093F\u0930 \u0938\u0947 \u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u0930\u0947\u0902\u0964",
|
|
3494
|
+
chooseYourProfile: "\u0905\u092A\u0928\u0940 \u092A\u094D\u0930\u094B\u092B\u093C\u093E\u0907\u0932 \u091A\u0941\u0928\u0947\u0902",
|
|
3495
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0932\u0949\u0917\u093F\u0928 \u0906\u0908\u0921\u0940 \u090F\u0915 \u0938\u0947 \u0905\u0927\u093F\u0915 \u092A\u094D\u0930\u094B\u092B\u093C\u093E\u0907\u0932 \u0938\u0947 \u091C\u0941\u0921\u093C\u093E \u0939\u0948\u0964 \u091C\u093F\u0938\u0947 \u0906\u092A \u0926\u0947\u0916\u0928\u093E \u091A\u093E\u0939\u0924\u0947 \u0939\u0948\u0902 \u0909\u0938\u0947 \u091A\u0941\u0928\u0947\u0902\u0964",
|
|
3496
|
+
userIdLabel: "\u0909\u092A\u092F\u094B\u0917\u0915\u0930\u094D\u0924\u093E \u0906\u0908\u0921\u0940: {{id}}",
|
|
3497
|
+
signingInEllipsis: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u0939\u094B \u0930\u0939\u093E \u0939\u0948\u2026",
|
|
3498
|
+
switchProfile: "\u092A\u094D\u0930\u094B\u092B\u093C\u093E\u0907\u0932 \u092C\u0926\u0932\u0947\u0902"
|
|
3443
3499
|
};
|
|
3444
3500
|
|
|
3445
3501
|
// src/RedactoPrivacyCenter/locales/kn/translation.json
|
|
@@ -3853,7 +3909,14 @@ var translation_default9 = {
|
|
|
3853
3909
|
submittingAs: "{{email}} \u0C86\u0C97\u0CBF \u0CB8\u0CB2\u0CCD\u0CB2\u0CBF\u0CB8\u0CB2\u0CBE\u0C97\u0CC1\u0CA4\u0CCD\u0CA4\u0CBF\u0CA6\u0CC6",
|
|
3854
3910
|
tapToChooseFile: "\u0CAB\u0CC8\u0CB2\u0CCD \u0C86\u0CAF\u0CCD\u0C95\u0CC6\u0CAE\u0CBE\u0CA1\u0CB2\u0CC1 \u0C9F\u0CCD\u0CAF\u0CBE\u0CAA\u0CCD \u0CAE\u0CBE\u0CA1\u0CBF",
|
|
3855
3911
|
view: "\u0CB5\u0CC0\u0C95\u0CCD\u0CB7\u0CBF\u0CB8\u0CBF",
|
|
3856
|
-
whatDoYouNeed: "\u0CA8\u0CBF\u0CAE\u0C97\u0CC6 \u0C8F\u0CA8\u0CC1 \u0CAC\u0CC7\u0C95\u0CC1?"
|
|
3912
|
+
whatDoYouNeed: "\u0CA8\u0CBF\u0CAE\u0C97\u0CC6 \u0C8F\u0CA8\u0CC1 \u0CAC\u0CC7\u0C95\u0CC1?",
|
|
3913
|
+
sessionExpiredTitle: "\u0CA8\u0CBF\u0CAE\u0CCD\u0CAE \u0CB8\u0CC6\u0CB7\u0CA8\u0CCD \u0C85\u0CB5\u0CA7\u0CBF \u0CAE\u0CC1\u0C97\u0CBF\u0CA6\u0CBF\u0CA6\u0CC6",
|
|
3914
|
+
sessionExpiredDescription: "\u0CAE\u0CC1\u0C82\u0CA6\u0CC1\u0CB5\u0CB0\u0CBF\u0CB8\u0CB2\u0CC1 \u0CA6\u0CAF\u0CB5\u0CBF\u0C9F\u0CCD\u0C9F\u0CC1 \u0CAE\u0CA4\u0CCD\u0CA4\u0CC6 \u0CB8\u0CC8\u0CA8\u0CCD \u0C87\u0CA8\u0CCD \u0CAE\u0CBE\u0CA1\u0CBF.",
|
|
3915
|
+
chooseYourProfile: "\u0CA8\u0CBF\u0CAE\u0CCD\u0CAE \u0CAA\u0CCD\u0CB0\u0CCA\u0CAB\u0CC8\u0CB2\u0CCD \u0C86\u0CAF\u0CCD\u0C95\u0CC6\u0CAE\u0CBE\u0CA1\u0CBF",
|
|
3916
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0CB2\u0CBE\u0C97\u0CBF\u0CA8\u0CCD \u0C90\u0CA1\u0CBF \u0C92\u0C82\u0CA6\u0C95\u0CCD\u0C95\u0CBF\u0C82\u0CA4 \u0CB9\u0CC6\u0C9A\u0CCD\u0C9A\u0CC1 \u0CAA\u0CCD\u0CB0\u0CCA\u0CAB\u0CC8\u0CB2\u0CCD\u200C\u0C97\u0CB3\u0CBF\u0C97\u0CC6 \u0CB2\u0CBF\u0C82\u0C95\u0CCD \u0C86\u0C97\u0CBF\u0CA6\u0CC6. \u0CA8\u0CC0\u0CB5\u0CC1 \u0CB5\u0CC0\u0C95\u0CCD\u0CB7\u0CBF\u0CB8\u0CB2\u0CC1 \u0CAC\u0CAF\u0CB8\u0CC1\u0CB5\u0CC1\u0CA6\u0CA8\u0CCD\u0CA8\u0CC1 \u0C86\u0CAF\u0CCD\u0C95\u0CC6\u0CAE\u0CBE\u0CA1\u0CBF.",
|
|
3917
|
+
userIdLabel: "\u0CAC\u0CB3\u0C95\u0CC6\u0CA6\u0CBE\u0CB0 \u0C90\u0CA1\u0CBF: {{id}}",
|
|
3918
|
+
signingInEllipsis: "\u0CB8\u0CC8\u0CA8\u0CCD \u0C87\u0CA8\u0CCD \u0C86\u0C97\u0CC1\u0CA4\u0CCD\u0CA4\u0CBF\u0CA6\u0CC6\u2026",
|
|
3919
|
+
switchProfile: "\u0CAA\u0CCD\u0CB0\u0CCA\u0CAB\u0CC8\u0CB2\u0CCD \u0CAC\u0CA6\u0CB2\u0CBE\u0CAF\u0CBF\u0CB8\u0CBF"
|
|
3857
3920
|
};
|
|
3858
3921
|
|
|
3859
3922
|
// src/RedactoPrivacyCenter/locales/ks/translation.json
|
|
@@ -4267,7 +4330,14 @@ var translation_default10 = {
|
|
|
4267
4330
|
submittingAs: "{{email}} \u067E\u0620\u0658\u0679\u06BE \u062C\u0645\u0639 \u06A9\u0631\u0627\u0646",
|
|
4268
4331
|
tapToChooseFile: "\u0641\u0627\u06CC\u0644 \u0698\u0627\u0631\u0646\u06C1 \u062E\u0672\u0637\u0631\u0655 \u0679\u06CC\u067E \u06A9\u0631\u06CC\u0648",
|
|
4269
4332
|
view: "\u0648\u064F\u0686\u06BE\u0650\u0648",
|
|
4270
|
-
whatDoYouNeed: "\u062A\u0648\u06C1\u0650 \u06A9\u06CC\u0627 \u0636\u0631\u0648\u0631\u062A \u0686\u06BE\u064F\u061F"
|
|
4333
|
+
whatDoYouNeed: "\u062A\u0648\u06C1\u0650 \u06A9\u06CC\u0627 \u0636\u0631\u0648\u0631\u062A \u0686\u06BE\u064F\u061F",
|
|
4334
|
+
sessionExpiredTitle: "\u062A\u064F\u06C1\u0646\u065B\u062F \u0633\u06CC\u0634\u064E\u0646 \u062E\u062A\u0645 \u06AF\u06C4\u0645\u064F\u062A",
|
|
4335
|
+
sessionExpiredDescription: "\u062C\u0627\u0631\u06CC \u0631\u06A9\u06BE\u0646\u06C1\u0655 \u062E\u0672\u0637\u0631\u0655 \u0645\u06C1\u0631\u0628\u0627\u0646\u06CC \u06A9\u0631\u0650\u062A\u06BE \u062F\u0648\u0628\u0627\u0631\u0655 \u0633\u0627\u0626\u0646 \u0627\u0650\u0646 \u06A9\u0631\u06CC\u0648\u06D4",
|
|
4336
|
+
chooseYourProfile: "\u067E\u0646\u0646\u06C1\u0655 \u067E\u0631\u0648\u0641\u0627\u0626\u0644 \u0698\u0627\u0631\u0655\u0648",
|
|
4337
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0644\u0627\u06AF \u0627\u0650\u0646 \u0622\u0626\u06CC \u0688\u06CC \u0686\u06BE\u064F \u0627\u06A9\u06C1 \u06A9\u06BE\u06C4\u062A\u06C1 \u0632\u06CC\u0627\u062F\u0655 \u067E\u0631\u0648\u0641\u0627\u0626\u0644\u0646 \u0633\u065F\u062A\u0620 \u062C\u0648\u0691\u0646\u06C1 \u0622\u0645\u064F\u062A\u06D4 \u06CC\u064F\u0633 \u062A\u0648\u06C1\u06C1\u0650 \u0648\u064F\u0686\u06BE\u064F\u0646 \u0686\u06BE\u0650\u0648 \u06CC\u0698\u06BE\u0627\u0646 \u0633\u064F \u0698\u0627\u0631\u0655\u0648\u06D4",
|
|
4338
|
+
userIdLabel: "\u0635\u0627\u0631\u0641 \u0622\u0626\u06CC \u0688\u06CC: {{id}}",
|
|
4339
|
+
signingInEllipsis: "\u0633\u0627\u0626\u0646 \u0627\u0650\u0646 \u06AF\u0698\u06BE\u0627\u0646 \u0686\u06BE\u064F\u2026",
|
|
4340
|
+
switchProfile: "\u067E\u0631\u0648\u0641\u0627\u0626\u0644 \u0628\u062F\u0644\u0627\u0648"
|
|
4271
4341
|
};
|
|
4272
4342
|
|
|
4273
4343
|
// src/RedactoPrivacyCenter/locales/mai/translation.json
|
|
@@ -4681,7 +4751,14 @@ var translation_default11 = {
|
|
|
4681
4751
|
submittingAs: "{{email}} \u0930\u0942\u092A\u092E\u0947 \u091C\u092E\u093E \u0915\u093D \u0930\u0939\u0932 \u091B\u0940",
|
|
4682
4752
|
tapToChooseFile: "\u092B\u093E\u0907\u0932 \u091A\u0941\u0928\u092C\u093E\u0915 \u0932\u0947\u0932 \u091F\u0948\u092A \u0915\u0930\u0942",
|
|
4683
4753
|
view: "\u0926\u0947\u0916\u0942",
|
|
4684
|
-
whatDoYouNeed: "\u0905\u0939\u093E\u0901\u0915\u0947\u0901 \u0915\u0940 \u091A\u093E\u0939\u0940?"
|
|
4754
|
+
whatDoYouNeed: "\u0905\u0939\u093E\u0901\u0915\u0947\u0901 \u0915\u0940 \u091A\u093E\u0939\u0940?",
|
|
4755
|
+
sessionExpiredTitle: "\u0905\u0939\u093E\u0901\u0915 \u0938\u0924\u094D\u0930 \u0938\u092E\u093E\u092A\u094D\u0924 \u092D\u093D \u0917\u0947\u0932 \u0905\u091B\u093F",
|
|
4756
|
+
sessionExpiredDescription: "\u091C\u093E\u0930\u0940 \u0930\u093E\u0916\u092C\u093E\u0915 \u0932\u0947\u0932 \u0915\u0943\u092A\u092F\u093E \u092B\u0947\u0930 \u0938\u0901 \u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u0930\u0942\u0964",
|
|
4757
|
+
chooseYourProfile: "\u0905\u092A\u0928 \u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u091A\u0941\u0928\u0942",
|
|
4758
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0932\u0949\u0917\u093F\u0928 \u0906\u0907\u0921\u0940 \u090F\u0915\u093E\u0927\u093F\u0915 \u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932\u0938\u0901 \u091C\u0941\u0921\u093C\u0932 \u0905\u091B\u093F\u0964 \u091C\u0947 \u0905\u0939\u093E\u0901 \u0926\u0947\u0916\u092F \u091A\u093E\u0939\u0948\u0924 \u091B\u0940 \u0913\u0915\u0930\u093E \u091A\u0941\u0928\u0942\u0964",
|
|
4759
|
+
userIdLabel: "\u0909\u092A\u092F\u094B\u0917\u0915\u0930\u094D\u0924\u093E \u0906\u0907\u0921\u0940: {{id}}",
|
|
4760
|
+
signingInEllipsis: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u092D' \u0930\u0939\u0932 \u0905\u091B\u093F\u2026",
|
|
4761
|
+
switchProfile: "\u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u092C\u0926\u0932\u0942"
|
|
4685
4762
|
};
|
|
4686
4763
|
|
|
4687
4764
|
// src/RedactoPrivacyCenter/locales/ml/translation.json
|
|
@@ -5095,7 +5172,14 @@ var translation_default12 = {
|
|
|
5095
5172
|
submittingAs: "{{email}} \u0D06\u0D2F\u0D3F \u0D38\u0D2E\u0D7C\u0D2A\u0D4D\u0D2A\u0D3F\u0D15\u0D4D\u0D15\u0D41\u0D28\u0D4D\u0D28\u0D41",
|
|
5096
5173
|
tapToChooseFile: "\u0D2B\u0D2F\u0D7D \u0D24\u0D3F\u0D30\u0D1E\u0D4D\u0D1E\u0D46\u0D1F\u0D41\u0D15\u0D4D\u0D15\u0D3E\u0D7B \u0D1F\u0D3E\u0D2A\u0D4D\u0D2A\u0D4D \u0D1A\u0D46\u0D2F\u0D4D\u0D2F\u0D41\u0D15",
|
|
5097
5174
|
view: "\u0D15\u0D3E\u0D23\u0D41\u0D15",
|
|
5098
|
-
whatDoYouNeed: "\u0D28\u0D3F\u0D19\u0D4D\u0D19\u0D7E\u0D15\u0D4D\u0D15\u0D4D \u0D0E\u0D28\u0D4D\u0D24\u0D3E\u0D23\u0D4D \u0D35\u0D47\u0D23\u0D4D\u0D1F\u0D24\u0D4D?"
|
|
5175
|
+
whatDoYouNeed: "\u0D28\u0D3F\u0D19\u0D4D\u0D19\u0D7E\u0D15\u0D4D\u0D15\u0D4D \u0D0E\u0D28\u0D4D\u0D24\u0D3E\u0D23\u0D4D \u0D35\u0D47\u0D23\u0D4D\u0D1F\u0D24\u0D4D?",
|
|
5176
|
+
sessionExpiredTitle: "\u0D28\u0D3F\u0D19\u0D4D\u0D19\u0D33\u0D41\u0D1F\u0D46 \u0D38\u0D46\u0D37\u0D7B \u0D15\u0D3E\u0D32\u0D39\u0D30\u0D23\u0D2A\u0D4D\u0D2A\u0D46\u0D1F\u0D4D\u0D1F\u0D41",
|
|
5177
|
+
sessionExpiredDescription: "\u0D24\u0D41\u0D1F\u0D30\u0D3E\u0D7B \u0D26\u0D2F\u0D35\u0D3E\u0D2F\u0D3F \u0D35\u0D40\u0D23\u0D4D\u0D1F\u0D41\u0D02 \u0D38\u0D48\u0D7B \u0D07\u0D7B \u0D1A\u0D46\u0D2F\u0D4D\u0D2F\u0D41\u0D15.",
|
|
5178
|
+
chooseYourProfile: "\u0D28\u0D3F\u0D19\u0D4D\u0D19\u0D33\u0D41\u0D1F\u0D46 \u0D2A\u0D4D\u0D30\u0D4A\u0D2B\u0D48\u0D7D \u0D24\u0D3F\u0D30\u0D1E\u0D4D\u0D1E\u0D46\u0D1F\u0D41\u0D15\u0D4D\u0D15\u0D41\u0D15",
|
|
5179
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0D32\u0D4B\u0D17\u0D3F\u0D7B \u0D10\u0D21\u0D3F \u0D12\u0D28\u0D4D\u0D28\u0D3F\u0D32\u0D27\u0D3F\u0D15\u0D02 \u0D2A\u0D4D\u0D30\u0D4A\u0D2B\u0D48\u0D32\u0D41\u0D15\u0D33\u0D41\u0D2E\u0D3E\u0D2F\u0D3F \u0D2C\u0D28\u0D4D\u0D27\u0D3F\u0D2A\u0D4D\u0D2A\u0D3F\u0D1A\u0D4D\u0D1A\u0D3F\u0D30\u0D3F\u0D15\u0D4D\u0D15\u0D41\u0D28\u0D4D\u0D28\u0D41. \u0D28\u0D3F\u0D19\u0D4D\u0D19\u0D7E \u0D15\u0D3E\u0D23\u0D3E\u0D7B \u0D06\u0D17\u0D4D\u0D30\u0D39\u0D3F\u0D15\u0D4D\u0D15\u0D41\u0D28\u0D4D\u0D28\u0D24\u0D4D \u0D24\u0D3F\u0D30\u0D1E\u0D4D\u0D1E\u0D46\u0D1F\u0D41\u0D15\u0D4D\u0D15\u0D41\u0D15.",
|
|
5180
|
+
userIdLabel: "\u0D09\u0D2A\u0D2F\u0D4B\u0D15\u0D4D\u0D24\u0D43 \u0D10\u0D21\u0D3F: {{id}}",
|
|
5181
|
+
signingInEllipsis: "\u0D38\u0D48\u0D7B \u0D07\u0D7B \u0D1A\u0D46\u0D2F\u0D4D\u0D2F\u0D41\u0D28\u0D4D\u0D28\u0D41\u2026",
|
|
5182
|
+
switchProfile: "\u0D2A\u0D4D\u0D30\u0D4A\u0D2B\u0D48\u0D7D \u0D2E\u0D3E\u0D31\u0D4D\u0D31\u0D41\u0D15"
|
|
5099
5183
|
};
|
|
5100
5184
|
|
|
5101
5185
|
// src/RedactoPrivacyCenter/locales/mni-Mtei/translation.json
|
|
@@ -5509,7 +5593,14 @@ var translation_default13 = {
|
|
|
5509
5593
|
submittingAs: "{{email}} \uABD1\uABE3\uABCF\uABC5 \uABCA\uABE5\uABD2\uABE0\uABC2\uABE4",
|
|
5510
5594
|
tapToChooseFile: "\uABD0\uABE5\uABCF\uABDC \uABC8\uABDF\uABC5\uABD5 \uABC7\uABE6\uABDE \uABC7\uABE7",
|
|
5511
5595
|
view: "\uABCC\uABE6\uABE1\uABCE",
|
|
5512
|
-
whatDoYouNeed: "\uABD1\uABD7\uABE3\uABDD\uABD7 \uABC0\uABD4\uABE4 \uABC7\uABC9\uABE5\uABCF\uABD0\uABD7\uABD5\uABD2\uABE6?"
|
|
5596
|
+
whatDoYouNeed: "\uABD1\uABD7\uABE3\uABDD\uABD7 \uABC0\uABD4\uABE4 \uABC7\uABC9\uABE5\uABCF\uABD0\uABD7\uABD5\uABD2\uABE6?",
|
|
5597
|
+
sessionExpiredTitle: "\uABD1\uABD7\uABE3\uABDD\uABD2\uABE4 \uABC1\uABE6\uABC1\uABDF \uABC2\uABE3\uABCF\uABD4\uABE6",
|
|
5598
|
+
sessionExpiredDescription: "\uABC3\uABC8\uABE5 \uABC6\uABE0\uABCA\uABD4\uABDB\uABC5\uABD5 \uABC6\uABE5\uABC5\uABD5\uABE4\uABD7\uABE8\uABC5 \uABD1\uABC3\uABE8\uABDB \uABCD\uABDF\uABC5 \uABC1\uABE5\uABCF\uABDF \uABCF\uABDF \uABC7\uABE7\uABD5\uABE4\uABCC\uABE8\uABEB",
|
|
5599
|
+
chooseYourProfile: "\u09A8\u09B9\u09BE\u0995\u09CD\u0995\u09C0 \u09AA\u09CD\u09B0\u09CB\u09AB\u09BE\u0987\u09B2 \u0996\u09A8\u09AC\u09BF\u09AF\u09BC\u09C1",
|
|
5600
|
+
loginIdentifierLinkedToMultipleProfiles: "\u09B2\u0997\u0987\u09A8 \u0986\u0987\u09A1\u09BF \u0985\u09B8\u09BF \u09AA\u09CD\u09B0\u09CB\u09AB\u09BE\u0987\u09B2 \u0985\u09AE\u09A6\u0997\u09C0 \u09B9\u09C7\u09A8\u09CD\u09A8\u09BE \u09B2\u09CB\u0987\u09A8\u09A8\u09AC\u09BE \u09B2\u09C8\u0964 \u09A8\u09B9\u09BE\u0995\u09CD\u09A8\u09BE \u09AF\u09BC\u09C7\u0982\u09A8\u09BF\u0982\u09AC\u09BE \u0985\u09A6\u09C1 \u0996\u09A8\u09AC\u09BF\u09AF\u09BC\u09C1\u0964",
|
|
5601
|
+
userIdLabel: "\uABC3\uABE4\uABD1\uABE3\uABCF\uABD5 \uABD1\uABE5\uABCF\uABD7\uABE4: {{id}}",
|
|
5602
|
+
signingInEllipsis: "\u09B8\u09BE\u0987\u09A8 \u0987\u09A8 \u09A4\u09CC\u09B0\u09BF\u2026",
|
|
5603
|
+
switchProfile: "\u09AA\u09CD\u09B0\u09CB\u09AB\u09BE\u0987\u09B2 \u09B9\u09CB\u0982\u09A6\u09CB\u0995-\u0989"
|
|
5513
5604
|
};
|
|
5514
5605
|
|
|
5515
5606
|
// src/RedactoPrivacyCenter/locales/mr/translation.json
|
|
@@ -5923,7 +6014,14 @@ var translation_default14 = {
|
|
|
5923
6014
|
submittingAs: "{{email}} \u092E\u094D\u0939\u0923\u0942\u0928 \u0938\u092C\u092E\u093F\u091F \u0915\u0930\u0924 \u0906\u0939\u0947",
|
|
5924
6015
|
tapToChooseFile: "\u092B\u093E\u0907\u0932 \u0928\u093F\u0935\u0921\u0923\u094D\u092F\u093E\u0938\u093E\u0920\u0940 \u091F\u0945\u092A \u0915\u0930\u093E",
|
|
5925
6016
|
view: "\u092A\u0939\u093E",
|
|
5926
|
-
whatDoYouNeed: "\u0924\u0941\u092E\u094D\u0939\u093E\u0932\u093E \u0915\u093E\u092F \u0939\u0935\u0947 \u0906\u0939\u0947?"
|
|
6017
|
+
whatDoYouNeed: "\u0924\u0941\u092E\u094D\u0939\u093E\u0932\u093E \u0915\u093E\u092F \u0939\u0935\u0947 \u0906\u0939\u0947?",
|
|
6018
|
+
sessionExpiredTitle: "\u0924\u0941\u092E\u091A\u0947 \u0938\u0924\u094D\u0930 \u0938\u0902\u092A\u0932\u0947 \u0906\u0939\u0947",
|
|
6019
|
+
sessionExpiredDescription: "\u0938\u0941\u0930\u0942 \u0920\u0947\u0935\u0923\u094D\u092F\u093E\u0938\u093E\u0920\u0940 \u0915\u0943\u092A\u092F\u093E \u092A\u0941\u0928\u094D\u0939\u093E \u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u0930\u093E.",
|
|
6020
|
+
chooseYourProfile: "\u0924\u0941\u092E\u091A\u0940 \u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u0928\u093F\u0935\u0921\u093E",
|
|
6021
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0932\u0949\u0917\u093F\u0928 \u0906\u092F\u0921\u0940 \u090F\u0915\u093E\u092A\u0947\u0915\u094D\u0937\u093E \u091C\u093E\u0938\u094D\u0924 \u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932\u0936\u0940 \u091C\u094B\u0921\u0932\u0947\u0932\u093E \u0906\u0939\u0947. \u0924\u0941\u092E\u094D\u0939\u093E\u0932\u093E \u091C\u0940 \u092A\u093E\u0939\u093E\u092F\u091A\u0940 \u0906\u0939\u0947 \u0924\u0940 \u0928\u093F\u0935\u0921\u093E.",
|
|
6022
|
+
userIdLabel: "\u0935\u093E\u092A\u0930\u0915\u0930\u094D\u0924\u093E \u0906\u092F\u0921\u0940: {{id}}",
|
|
6023
|
+
signingInEllipsis: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u0930\u0924 \u0906\u0939\u0947\u2026",
|
|
6024
|
+
switchProfile: "\u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u092C\u0926\u0932\u093E"
|
|
5927
6025
|
};
|
|
5928
6026
|
|
|
5929
6027
|
// src/RedactoPrivacyCenter/locales/ne/translation.json
|
|
@@ -6337,7 +6435,14 @@ var translation_default15 = {
|
|
|
6337
6435
|
submittingAs: "{{email}} \u0915\u094B \u0930\u0942\u092A\u092E\u093E \u092A\u0947\u0936 \u0917\u0930\u094D\u0926\u0948",
|
|
6338
6436
|
tapToChooseFile: "\u092B\u093E\u0907\u0932 \u091B\u093E\u0928\u094D\u0928 \u091F\u094D\u092F\u093E\u092A \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",
|
|
6339
6437
|
view: "\u0939\u0947\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D",
|
|
6340
|
-
whatDoYouNeed: "\u0924\u092A\u093E\u0908\u0902\u0932\u093E\u0908 \u0915\u0947 \u091A\u093E\u0939\u093F\u0928\u094D\u091B?"
|
|
6438
|
+
whatDoYouNeed: "\u0924\u092A\u093E\u0908\u0902\u0932\u093E\u0908 \u0915\u0947 \u091A\u093E\u0939\u093F\u0928\u094D\u091B?",
|
|
6439
|
+
sessionExpiredTitle: "\u0924\u092A\u093E\u0908\u0902\u0915\u094B \u0938\u0924\u094D\u0930 \u0938\u092E\u093E\u092A\u094D\u0924 \u092D\u090F\u0915\u094B \u091B",
|
|
6440
|
+
sessionExpiredDescription: "\u091C\u093E\u0930\u0940 \u0930\u093E\u0916\u094D\u0928 \u0915\u0943\u092A\u092F\u093E \u092B\u0947\u0930\u093F \u0938\u093E\u0907\u0928 \u0907\u0928 \u0917\u0930\u094D\u0928\u0941\u0939\u094B\u0938\u094D\u0964",
|
|
6441
|
+
chooseYourProfile: "\u0906\u092B\u094D\u0928\u094B \u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u091B\u093E\u0928\u094D\u0928\u0941\u0939\u094B\u0938\u094D",
|
|
6442
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0932\u0917\u0907\u0928 \u0906\u0908\u0921\u0940 \u090F\u0915\u092D\u0928\u094D\u0926\u093E \u092C\u0922\u0940 \u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932\u0938\u0901\u0917 \u091C\u094B\u0921\u093F\u090F\u0915\u094B \u091B\u0964 \u0924\u092A\u093E\u0908\u0902\u0932\u0947 \u0939\u0947\u0930\u094D\u0928 \u091A\u093E\u0939\u0928\u0941\u092D\u090F\u0915\u094B \u091B\u093E\u0928\u094D\u0928\u0941\u0939\u094B\u0938\u094D\u0964",
|
|
6443
|
+
userIdLabel: "\u092A\u094D\u0930\u092F\u094B\u0917\u0915\u0930\u094D\u0924\u093E \u0906\u0908\u0921\u0940: {{id}}",
|
|
6444
|
+
signingInEllipsis: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u0939\u0941\u0901\u0926\u0948\u091B\u2026",
|
|
6445
|
+
switchProfile: "\u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u092C\u0926\u0932\u094D\u0928\u0941\u0939\u094B\u0938\u094D"
|
|
6341
6446
|
};
|
|
6342
6447
|
|
|
6343
6448
|
// src/RedactoPrivacyCenter/locales/or/translation.json
|
|
@@ -6751,7 +6856,14 @@ var translation_default16 = {
|
|
|
6751
6856
|
submittingAs: "{{email}} \u0B2D\u0B3E\u0B2C\u0B47 \u0B26\u0B3E\u0B16\u0B32 \u0B15\u0B30\u0B41\u0B1B\u0B28\u0B4D\u0B24\u0B3F",
|
|
6752
6857
|
tapToChooseFile: "\u0B2B\u0B3E\u0B07\u0B32 \u0B2C\u0B3E\u0B1B\u0B3F\u0B2C\u0B3E\u0B15\u0B41 \u0B1F\u0B4D\u0B5F\u0B3E\u0B2A \u0B15\u0B30\u0B28\u0B4D\u0B24\u0B41",
|
|
6753
6858
|
view: "\u0B26\u0B47\u0B16\u0B28\u0B4D\u0B24\u0B41",
|
|
6754
|
-
whatDoYouNeed: "\u0B06\u0B2A\u0B23 \u0B15\u0B23 \u0B1A\u0B3E\u0B39\u0B3E\u0B28\u0B4D\u0B24\u0B3F?"
|
|
6859
|
+
whatDoYouNeed: "\u0B06\u0B2A\u0B23 \u0B15\u0B23 \u0B1A\u0B3E\u0B39\u0B3E\u0B28\u0B4D\u0B24\u0B3F?",
|
|
6860
|
+
sessionExpiredTitle: "\u0B06\u0B2A\u0B23\u0B19\u0B4D\u0B15 \u0B38\u0B47\u0B38\u0B28\u0B4D \u0B38\u0B2E\u0B3E\u0B2A\u0B4D\u0B24 \u0B39\u0B4B\u0B07\u0B2F\u0B3E\u0B07\u0B1B\u0B3F",
|
|
6861
|
+
sessionExpiredDescription: "\u0B1C\u0B3E\u0B30\u0B3F \u0B30\u0B16\u0B3F\u0B2C\u0B3E\u0B15\u0B41 \u0B26\u0B5F\u0B3E\u0B15\u0B30\u0B3F \u0B2A\u0B41\u0B28\u0B30\u0B4D\u0B2C\u0B3E\u0B30 \u0B38\u0B3E\u0B07\u0B28\u0B4D \u0B07\u0B28\u0B4D \u0B15\u0B30\u0B28\u0B4D\u0B24\u0B41\u0964",
|
|
6862
|
+
chooseYourProfile: "\u0B06\u0B2A\u0B23\u0B19\u0B4D\u0B15 \u0B2A\u0B4D\u0B30\u0B4B\u0B2B\u0B3E\u0B07\u0B32\u0B4D \u0B2C\u0B3E\u0B1B\u0B28\u0B4D\u0B24\u0B41",
|
|
6863
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0B32\u0B17\u0B07\u0B28\u0B4D \u0B06\u0B07\u0B21\u0B3F \u0B0F\u0B15\u0B3E\u0B27\u0B3F\u0B15 \u0B2A\u0B4D\u0B30\u0B4B\u0B2B\u0B3E\u0B07\u0B32\u0B4D \u0B38\u0B39\u0B3F\u0B24 \u0B2F\u0B4B\u0B21\u0B3C\u0B3E\u0B2F\u0B3E\u0B07\u0B1B\u0B3F\u0964 \u0B06\u0B2A\u0B23 \u0B26\u0B47\u0B16\u0B3F\u0B2C\u0B3E\u0B15\u0B41 \u0B1A\u0B3E\u0B39\u0B41\u0B01\u0B25\u0B3F\u0B2C\u0B3E\u0B1F\u0B3F \u0B2C\u0B3E\u0B1B\u0B28\u0B4D\u0B24\u0B41\u0964",
|
|
6864
|
+
userIdLabel: "\u0B2C\u0B4D\u0B5F\u0B2C\u0B39\u0B3E\u0B30\u0B15\u0B3E\u0B30\u0B40 \u0B06\u0B07\u0B21\u0B3F: {{id}}",
|
|
6865
|
+
signingInEllipsis: "\u0B38\u0B3E\u0B07\u0B28\u0B4D \u0B07\u0B28\u0B4D \u0B39\u0B47\u0B09\u0B1B\u0B3F\u2026",
|
|
6866
|
+
switchProfile: "\u0B2A\u0B4D\u0B30\u0B4B\u0B2B\u0B3E\u0B07\u0B32\u0B4D \u0B2C\u0B26\u0B33\u0B3E\u0B28\u0B4D\u0B24\u0B41"
|
|
6755
6867
|
};
|
|
6756
6868
|
|
|
6757
6869
|
// src/RedactoPrivacyCenter/locales/pa/translation.json
|
|
@@ -7165,7 +7277,14 @@ var translation_default17 = {
|
|
|
7165
7277
|
submittingAs: "{{email}} \u0A35\u0A1C\u0A4B\u0A02 \u0A38\u0A2C\u0A2E\u0A3F\u0A1F \u0A15\u0A30 \u0A30\u0A39\u0A47 \u0A39\u0A4B",
|
|
7166
7278
|
tapToChooseFile: "\u0A2B\u0A3E\u0A08\u0A32 \u0A1A\u0A41\u0A23\u0A28 \u0A32\u0A08 \u0A1F\u0A48\u0A2A \u0A15\u0A30\u0A4B",
|
|
7167
7279
|
view: "\u0A26\u0A47\u0A16\u0A4B",
|
|
7168
|
-
whatDoYouNeed: "\u0A24\u0A41\u0A39\u0A3E\u0A28\u0A42\u0A70 \u0A15\u0A40 \u0A1A\u0A3E\u0A39\u0A40\u0A26\u0A3E \u0A39\u0A48?"
|
|
7280
|
+
whatDoYouNeed: "\u0A24\u0A41\u0A39\u0A3E\u0A28\u0A42\u0A70 \u0A15\u0A40 \u0A1A\u0A3E\u0A39\u0A40\u0A26\u0A3E \u0A39\u0A48?",
|
|
7281
|
+
sessionExpiredTitle: "\u0A24\u0A41\u0A39\u0A3E\u0A21\u0A3E \u0A38\u0A48\u0A38\u0A3C\u0A28 \u0A38\u0A2E\u0A3E\u0A2A\u0A24 \u0A39\u0A4B \u0A17\u0A3F\u0A06 \u0A39\u0A48",
|
|
7282
|
+
sessionExpiredDescription: "\u0A1C\u0A3E\u0A30\u0A40 \u0A30\u0A71\u0A16\u0A23 \u0A32\u0A08 \u0A15\u0A3F\u0A30\u0A2A\u0A3E \u0A15\u0A30\u0A15\u0A47 \u0A26\u0A41\u0A2C\u0A3E\u0A30\u0A3E \u0A38\u0A3E\u0A08\u0A28 \u0A07\u0A28 \u0A15\u0A30\u0A4B\u0964",
|
|
7283
|
+
chooseYourProfile: "\u0A06\u0A2A\u0A23\u0A40 \u0A2A\u0A4D\u0A30\u0A4B\u0A2B\u0A3E\u0A08\u0A32 \u0A1A\u0A41\u0A23\u0A4B",
|
|
7284
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0A32\u0A4C\u0A17\u0A07\u0A28 \u0A06\u0A08\u0A21\u0A40 \u0A07\u0A71\u0A15 \u0A24\u0A4B\u0A02 \u0A35\u0A71\u0A27 \u0A2A\u0A4D\u0A30\u0A4B\u0A2B\u0A3E\u0A08\u0A32\u0A3E\u0A02 \u0A28\u0A3E\u0A32 \u0A1C\u0A41\u0A5C\u0A3F\u0A06 \u0A39\u0A4B\u0A07\u0A06 \u0A39\u0A48\u0964 \u0A1C\u0A4B \u0A24\u0A41\u0A38\u0A40\u0A02 \u0A35\u0A47\u0A16\u0A23\u0A3E \u0A1A\u0A3E\u0A39\u0A41\u0A70\u0A26\u0A47 \u0A39\u0A4B \u0A09\u0A39 \u0A1A\u0A41\u0A23\u0A4B\u0964",
|
|
7285
|
+
userIdLabel: "\u0A09\u0A2A\u0A2F\u0A4B\u0A17\u0A15\u0A30\u0A24\u0A3E \u0A06\u0A08\u0A21\u0A40: {{id}}",
|
|
7286
|
+
signingInEllipsis: "\u0A38\u0A3E\u0A08\u0A28 \u0A07\u0A28 \u0A39\u0A4B \u0A30\u0A3F\u0A39\u0A3E \u0A39\u0A48\u2026",
|
|
7287
|
+
switchProfile: "\u0A2A\u0A4D\u0A30\u0A4B\u0A2B\u0A3E\u0A08\u0A32 \u0A2C\u0A26\u0A32\u0A4B"
|
|
7169
7288
|
};
|
|
7170
7289
|
|
|
7171
7290
|
// src/RedactoPrivacyCenter/locales/sa/translation.json
|
|
@@ -7579,7 +7698,14 @@ var translation_default18 = {
|
|
|
7579
7698
|
submittingAs: "{{email}} \u0907\u0924\u093F \u0938\u092E\u0930\u094D\u092A\u092F\u0928\u094D",
|
|
7580
7699
|
tapToChooseFile: "\u0938\u091E\u094D\u091A\u093F\u0915\u093E\u0902 \u091A\u0947\u0924\u0941\u0902 \u0938\u094D\u092A\u0943\u0936\u0924\u0941",
|
|
7581
7700
|
view: "\u092A\u0936\u094D\u092F",
|
|
7582
|
-
whatDoYouNeed: "\u092D\u0935\u0924\u0903 \u0915\u093F\u092E\u094D \u0906\u0935\u0936\u094D\u092F\u0915\u092E\u094D?"
|
|
7701
|
+
whatDoYouNeed: "\u092D\u0935\u0924\u0903 \u0915\u093F\u092E\u094D \u0906\u0935\u0936\u094D\u092F\u0915\u092E\u094D?",
|
|
7702
|
+
sessionExpiredTitle: "\u092D\u0935\u0924\u0903 \u0938\u0924\u094D\u0930\u0902 \u0938\u092E\u093E\u092A\u094D\u0924\u092E\u094D",
|
|
7703
|
+
sessionExpiredDescription: "\u0905\u0928\u0941\u0935\u0930\u094D\u0924\u0928\u093E\u0930\u094D\u0925\u0902 \u0915\u0943\u092A\u092F\u093E \u092A\u0941\u0928\u0903 \u092A\u094D\u0930\u0935\u0947\u0936\u0902 \u0915\u0930\u094B\u0924\u0941\u0964",
|
|
7704
|
+
chooseYourProfile: "\u0938\u094D\u0935\u092A\u094D\u0930\u094B\u092B\u093C\u093E\u0907\u0932\u0902 \u091A\u093F\u0928\u094B\u0924\u0941",
|
|
7705
|
+
loginIdentifierLinkedToMultipleProfiles: "\u092A\u094D\u0930\u0935\u0947\u0936-\u0906\u092F\u0921\u0940 \u090F\u0915\u093E\u0927\u093F\u0915\u0948\u0903 \u092A\u094D\u0930\u094B\u092B\u093C\u093E\u0907\u0932\u0948\u0903 \u0938\u0939 \u0938\u092E\u094D\u092C\u0926\u094D\u0927\u0903 \u0905\u0938\u094D\u0924\u093F\u0964 \u092F\u0924\u094D \u0926\u094D\u0930\u0937\u094D\u091F\u0941\u092E\u094D \u0907\u091A\u094D\u091B\u0924\u093F \u0924\u0924\u094D \u091A\u093F\u0928\u094B\u0924\u0941\u0964",
|
|
7706
|
+
userIdLabel: "\u0909\u092A\u092F\u094B\u0915\u094D\u0924\u0943-\u0906\u092F\u0921\u0940: {{id}}",
|
|
7707
|
+
signingInEllipsis: "\u092A\u094D\u0930\u0935\u0947\u0936\u0903 \u0915\u094D\u0930\u093F\u092F\u0924\u0947\u2026",
|
|
7708
|
+
switchProfile: "\u092A\u094D\u0930\u094B\u092B\u093C\u093E\u0907\u0932\u0902 \u092A\u0930\u093F\u0935\u0930\u094D\u0924\u092F\u0924\u0941"
|
|
7583
7709
|
};
|
|
7584
7710
|
|
|
7585
7711
|
// src/RedactoPrivacyCenter/locales/sat/translation.json
|
|
@@ -7993,7 +8119,14 @@ var translation_default19 = {
|
|
|
7993
8119
|
submittingAs: "{{email}} \u1C5E\u1C6E\u1C60\u1C5F\u1C5B\u1C6E \u1C61\u1C5A\u1C62\u1C5F \u1C6E\u1C6B\u1C5F",
|
|
7994
8120
|
tapToChooseFile: "\u1C6F\u1C77\u1C5F\u1C6D\u1C64\u1C5E \u1C75\u1C5F\u1C6A\u1C77\u1C5F\u1C63 \u1C5E\u1C5F\u1C79\u1C5C\u1C64\u1C6B \u1C74\u1C6E\u1C6F \u1C62\u1C6E",
|
|
7995
8121
|
view: "\u1C67\u1C6E\u1C5E \u1C62\u1C6E",
|
|
7996
|
-
whatDoYouNeed: "\u1C5F\u1C62 \u1C6A\u1C6E\u1C6B \u1C5E\u1C5F\u1C79\u1C60\u1C5B\u1C64?"
|
|
8122
|
+
whatDoYouNeed: "\u1C5F\u1C62 \u1C6A\u1C6E\u1C6B \u1C5E\u1C5F\u1C79\u1C60\u1C5B\u1C64?",
|
|
8123
|
+
sessionExpiredTitle: "\u1C5F\u1C62\u1C5F\u1C5C \u1C65\u1C6E\u1C65\u1C5A\u1C71 \u1C62\u1C69\u1C6A\u1C5F\u1C79\u1C6B\u1C6E\u1C71\u1C5F",
|
|
8124
|
+
sessionExpiredDescription: "\u1C5E\u1C5F\u1C66\u1C5F \u1C6A\u1C5F\u1C5E\u1C5F\u1C63 \u1C5E\u1C5F\u1C79\u1C5C\u1C64\u1C6B \u1C6B\u1C5F\u1C6D\u1C5F \u1C60\u1C5F\u1C5B\u1C6E \u1C6B\u1C73\u1C66\u1C72\u1C5F \u1C65\u1C5F\u1C6D\u1C71 \u1C64\u1C71 \u1C62\u1C6E\u1C7E",
|
|
8125
|
+
chooseYourProfile: "\u1C5F\u1C62\u1C5F\u1C5C \u1C6F\u1C68\u1C73\u1C6F\u1C77\u1C5F\u1C6D\u1C64\u1C5E \u1C75\u1C5F\u1C6A\u1C77\u1C5F\u1C63 \u1C62\u1C6E",
|
|
8126
|
+
loginIdentifierLinkedToMultipleProfiles: "\u1C5E\u1C5A\u1C5C\u1C64\u1C71 \u1C5F\u1C6D\u1C70\u1C64 \u1C6B\u1C5A \u1C62\u1C64\u1C6B \u1C60\u1C77\u1C5A\u1C71 \u1C70\u1C77\u1C6E\u1C68 \u1C6F\u1C68\u1C73\u1C6F\u1C77\u1C5F\u1C6D\u1C64\u1C5E \u1C65\u1C5F\u1C76 \u1C61\u1C69\u1C70\u1C5F\u1C79\u1C63 \u1C5F\u1C60\u1C5F\u1C71\u1C5F\u1C7E \u1C5F\u1C62 \u1C67\u1C6E\u1C5E \u1C65\u1C5F\u1C71\u1C5F\u1C62 \u1C5A\u1C71\u1C5F \u1C75\u1C5F\u1C6A\u1C77\u1C5F\u1C63 \u1C62\u1C6E\u1C7E",
|
|
8127
|
+
userIdLabel: "\u1C75\u1C6E\u1C75\u1C77\u1C5F\u1C68\u1C64\u1C6D\u1C5F\u1C79 \u1C5F\u1C6D\u1C70\u1C64: {{id}}",
|
|
8128
|
+
signingInEllipsis: "\u1C65\u1C5F\u1C6D\u1C64\u1C71 \u1C64\u1C71 \u1C6E\u1C6B\u1C5F\u1C6D\u2026",
|
|
8129
|
+
switchProfile: "\u1C6F\u1C68\u1C73\u1C6F\u1C77\u1C5F\u1C6D\u1C64\u1C5E \u1C75\u1C5A\u1C6B\u1C5A\u1C5E \u1C62\u1C6E"
|
|
7997
8130
|
};
|
|
7998
8131
|
|
|
7999
8132
|
// src/RedactoPrivacyCenter/locales/sd/translation.json
|
|
@@ -8407,7 +8540,14 @@ var translation_default20 = {
|
|
|
8407
8540
|
submittingAs: "{{email}} \u0637\u0648\u0631 \u062C\u0645\u0639 \u06AA\u0631\u064A \u0631\u0647\u064A\u0627 \u0622\u0647\u064A\u0648",
|
|
8408
8541
|
tapToChooseFile: "\u0641\u0627\u0626\u0644 \u0686\u0648\u0646\u068A\u06BB \u0644\u0627\u0621\u0650 \u067D\u064A\u067E \u06AA\u0631\u064A\u0648",
|
|
8409
8542
|
view: "\u068F\u0633\u0648",
|
|
8410
|
-
whatDoYouNeed: "\u062A\u0648\u0647\u0627\u0646 \u06A9\u064A \u0687\u0627 \u06AF\u0647\u0631\u062C\u064A\u061F"
|
|
8543
|
+
whatDoYouNeed: "\u062A\u0648\u0647\u0627\u0646 \u06A9\u064A \u0687\u0627 \u06AF\u0647\u0631\u062C\u064A\u061F",
|
|
8544
|
+
sessionExpiredTitle: "\u062A\u0648\u0647\u0627\u0646 \u062C\u0648 \u0633\u064A\u0634\u0646 \u062E\u062A\u0645 \u067F\u064A \u0648\u064A\u0648 \u0622\u0647\u064A",
|
|
8545
|
+
sessionExpiredDescription: "\u062C\u0627\u0631\u064A \u0631\u06A9\u06BB \u0644\u0627\u0621\u0650 \u0645\u0647\u0631\u0628\u0627\u0646\u064A \u06AA\u0631\u064A \u067B\u064A\u0647\u0631 \u0633\u0627\u0626\u0646 \u0627\u0646 \u06AA\u0631\u064A\u0648.",
|
|
8546
|
+
chooseYourProfile: "\u067E\u0646\u0647\u0646\u062C\u0648 \u067E\u0631\u0648\u0641\u0627\u0626\u0644 \u0686\u0648\u0646\u068A\u064A\u0648",
|
|
8547
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0644\u0627\u06AF \u0627\u0646 \u0622\u0626\u064A\u068A\u064A \u0647\u06AA \u06A9\u0627\u0646 \u0648\u068C\u064A\u06AA \u067E\u0631\u0648\u0641\u0627\u0626\u0644\u0646 \u0633\u0627\u0646 \u06B3\u0646\u068D\u064A\u0644 \u0622\u0647\u064A. \u062C\u064A\u06AA\u0648 \u062A\u0648\u0647\u0627\u0646 \u068F\u0633\u06BB \u0686\u0627\u0647\u064A\u0648 \u067F\u0627 \u0627\u0647\u0648 \u0686\u0648\u0646\u068A\u064A\u0648.",
|
|
8548
|
+
userIdLabel: "\u064A\u0648\u0632\u0631 \u0622\u0626\u064A\u068A\u064A: {{id}}",
|
|
8549
|
+
signingInEllipsis: "\u0633\u0627\u0626\u0646 \u0627\u0646 \u067F\u064A \u0631\u0647\u064A\u0648 \u0622\u0647\u064A\u2026",
|
|
8550
|
+
switchProfile: "\u067E\u0631\u0648\u0641\u0627\u0626\u0644 \u062A\u0628\u062F\u064A\u0644 \u06AA\u0631\u064A\u0648"
|
|
8411
8551
|
};
|
|
8412
8552
|
|
|
8413
8553
|
// src/RedactoPrivacyCenter/locales/ta/translation.json
|
|
@@ -8821,7 +8961,14 @@ var translation_default21 = {
|
|
|
8821
8961
|
submittingAs: "{{email}} \u0B86\u0B95 \u0B9A\u0BAE\u0BB0\u0BCD\u0BAA\u0BCD\u0BAA\u0BBF\u0B95\u0BCD\u0B95\u0BBF\u0BB1\u0BC0\u0BB0\u0BCD\u0B95\u0BB3\u0BCD",
|
|
8822
8962
|
tapToChooseFile: "\u0B95\u0BCB\u0BAA\u0BCD\u0BAA\u0BC8\u0BA4\u0BCD \u0BA4\u0BC7\u0BB0\u0BCD\u0BA8\u0BCD\u0BA4\u0BC6\u0B9F\u0BC1\u0B95\u0BCD\u0B95 \u0BA4\u0B9F\u0BCD\u0B9F\u0BB5\u0BC1\u0BAE\u0BCD",
|
|
8823
8963
|
view: "\u0BAA\u0BBE\u0BB0\u0BCD",
|
|
8824
|
-
whatDoYouNeed: "\u0B89\u0B99\u0BCD\u0B95\u0BB3\u0BC1\u0B95\u0BCD\u0B95\u0BC1 \u0B8E\u0BA9\u0BCD\u0BA9 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD?"
|
|
8964
|
+
whatDoYouNeed: "\u0B89\u0B99\u0BCD\u0B95\u0BB3\u0BC1\u0B95\u0BCD\u0B95\u0BC1 \u0B8E\u0BA9\u0BCD\u0BA9 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD?",
|
|
8965
|
+
sessionExpiredTitle: "\u0B89\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0B85\u0BAE\u0BB0\u0BCD\u0BB5\u0BC1 \u0B95\u0BBE\u0BB2\u0BBE\u0BB5\u0BA4\u0BBF\u0BAF\u0BBE\u0B95\u0BBF\u0BB5\u0BBF\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1",
|
|
8966
|
+
sessionExpiredDescription: "\u0BA4\u0BCA\u0B9F\u0BB0\u0BCD\u0BB5\u0BA4\u0BB1\u0BCD\u0B95\u0BC1 \u0BA4\u0BAF\u0BB5\u0BC1\u0B9A\u0BC6\u0BAF\u0BCD\u0BA4\u0BC1 \u0BAE\u0BC0\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD \u0B89\u0BB3\u0BCD\u0BA8\u0BC1\u0BB4\u0BC8\u0BAF\u0BB5\u0BC1\u0BAE\u0BCD.",
|
|
8967
|
+
chooseYourProfile: "\u0B89\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0B9A\u0BC1\u0BAF\u0BB5\u0BBF\u0BB5\u0BB0\u0BA4\u0BCD\u0BA4\u0BC8\u0BA4\u0BCD \u0BA4\u0BC7\u0BB0\u0BCD\u0BA8\u0BCD\u0BA4\u0BC6\u0B9F\u0BC1\u0B95\u0BCD\u0B95\u0BB5\u0BC1\u0BAE\u0BCD",
|
|
8968
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0B89\u0BB3\u0BCD\u0BA8\u0BC1\u0BB4\u0BC8\u0BB5\u0BC1 \u0B90\u0B9F\u0BBF \u0B92\u0BA9\u0BCD\u0BB1\u0BC1\u0B95\u0BCD\u0B95\u0BC1 \u0BAE\u0BC7\u0BB1\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F \u0B9A\u0BC1\u0BAF\u0BB5\u0BBF\u0BB5\u0BB0\u0B99\u0BCD\u0B95\u0BB3\u0BC1\u0B9F\u0BA9\u0BCD \u0B87\u0BA3\u0BC8\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BC1\u0BB3\u0BCD\u0BB3\u0BA4\u0BC1. \u0BA8\u0BC0\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95 \u0BB5\u0BBF\u0BB0\u0BC1\u0BAE\u0BCD\u0BAA\u0BC1\u0BB5\u0BA4\u0BC8\u0BA4\u0BCD \u0BA4\u0BC7\u0BB0\u0BCD\u0BA8\u0BCD\u0BA4\u0BC6\u0B9F\u0BC1\u0B95\u0BCD\u0B95\u0BB5\u0BC1\u0BAE\u0BCD.",
|
|
8969
|
+
userIdLabel: "\u0BAA\u0BAF\u0BA9\u0BB0\u0BCD \u0B90\u0B9F\u0BBF: {{id}}",
|
|
8970
|
+
signingInEllipsis: "\u0B89\u0BB3\u0BCD\u0BA8\u0BC1\u0BB4\u0BC8\u0B95\u0BBF\u0BB1\u0BA4\u0BC1\u2026",
|
|
8971
|
+
switchProfile: "\u0B9A\u0BC1\u0BAF\u0BB5\u0BBF\u0BB5\u0BB0\u0BA4\u0BCD\u0BA4\u0BC8 \u0BAE\u0BBE\u0BB1\u0BCD\u0BB1\u0BC1"
|
|
8825
8972
|
};
|
|
8826
8973
|
|
|
8827
8974
|
// src/RedactoPrivacyCenter/locales/te/translation.json
|
|
@@ -9235,7 +9382,14 @@ var translation_default22 = {
|
|
|
9235
9382
|
submittingAs: "{{email}} \u0C17\u0C3E \u0C38\u0C2E\u0C30\u0C4D\u0C2A\u0C3F\u0C38\u0C4D\u0C24\u0C41\u0C28\u0C4D\u0C28\u0C3E\u0C30\u0C41",
|
|
9236
9383
|
tapToChooseFile: "\u0C2B\u0C48\u0C32\u0C4D\u200C\u0C28\u0C41 \u0C0E\u0C02\u0C1A\u0C41\u0C15\u0C4B\u0C35\u0C21\u0C3E\u0C28\u0C3F\u0C15\u0C3F \u0C28\u0C4A\u0C15\u0C4D\u0C15\u0C02\u0C21\u0C3F",
|
|
9237
9384
|
view: "\u0C35\u0C40\u0C15\u0C4D\u0C37\u0C3F\u0C02\u0C1A\u0C02\u0C21\u0C3F",
|
|
9238
|
-
whatDoYouNeed: "\u0C2E\u0C40\u0C15\u0C41 \u0C0F\u0C2E\u0C3F \u0C15\u0C3E\u0C35\u0C3E\u0C32\u0C3F?"
|
|
9385
|
+
whatDoYouNeed: "\u0C2E\u0C40\u0C15\u0C41 \u0C0F\u0C2E\u0C3F \u0C15\u0C3E\u0C35\u0C3E\u0C32\u0C3F?",
|
|
9386
|
+
sessionExpiredTitle: "\u0C2E\u0C40 \u0C38\u0C46\u0C37\u0C28\u0C4D \u0C17\u0C21\u0C41\u0C35\u0C41 \u0C2E\u0C41\u0C17\u0C3F\u0C38\u0C3F\u0C02\u0C26\u0C3F",
|
|
9387
|
+
sessionExpiredDescription: "\u0C15\u0C4A\u0C28\u0C38\u0C3E\u0C17\u0C3F\u0C02\u0C1A\u0C21\u0C3E\u0C28\u0C3F\u0C15\u0C3F \u0C26\u0C2F\u0C1A\u0C47\u0C38\u0C3F \u0C2E\u0C33\u0C4D\u0C32\u0C40 \u0C38\u0C48\u0C28\u0C4D \u0C07\u0C28\u0C4D \u0C1A\u0C47\u0C2F\u0C02\u0C21\u0C3F.",
|
|
9388
|
+
chooseYourProfile: "\u0C2E\u0C40 \u0C2A\u0C4D\u0C30\u0C4A\u0C2B\u0C48\u0C32\u0C4D\u200C\u0C28\u0C41 \u0C0E\u0C02\u0C1A\u0C41\u0C15\u0C4B\u0C02\u0C21\u0C3F",
|
|
9389
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0C32\u0C3E\u0C17\u0C3F\u0C28\u0C4D \u0C10\u0C21\u0C3F \u0C12\u0C15\u0C1F\u0C3F \u0C15\u0C02\u0C1F\u0C47 \u0C0E\u0C15\u0C4D\u0C15\u0C41\u0C35 \u0C2A\u0C4D\u0C30\u0C4A\u0C2B\u0C48\u0C32\u0C4D\u200C\u0C32\u0C24\u0C4B \u0C05\u0C28\u0C41\u0C38\u0C02\u0C27\u0C3E\u0C28\u0C3F\u0C02\u0C1A\u0C2C\u0C21\u0C3F\u0C02\u0C26\u0C3F. \u0C2E\u0C40\u0C30\u0C41 \u0C1A\u0C42\u0C21\u0C3E\u0C32\u0C28\u0C41\u0C15\u0C41\u0C02\u0C1F\u0C41\u0C28\u0C4D\u0C28\u0C26\u0C3E\u0C28\u0C4D\u0C28\u0C3F \u0C0E\u0C02\u0C1A\u0C41\u0C15\u0C4B\u0C02\u0C21\u0C3F.",
|
|
9390
|
+
userIdLabel: "\u0C35\u0C3F\u0C28\u0C3F\u0C2F\u0C4B\u0C17\u0C26\u0C3E\u0C30\u0C41 \u0C10\u0C21\u0C3F: {{id}}",
|
|
9391
|
+
signingInEllipsis: "\u0C38\u0C48\u0C28\u0C4D \u0C07\u0C28\u0C4D \u0C05\u0C35\u0C41\u0C24\u0C4B\u0C02\u0C26\u0C3F\u2026",
|
|
9392
|
+
switchProfile: "\u0C2A\u0C4D\u0C30\u0C4A\u0C2B\u0C48\u0C32\u0C4D\u200C\u0C28\u0C41 \u0C2E\u0C3E\u0C30\u0C4D\u0C1A\u0C02\u0C21\u0C3F"
|
|
9239
9393
|
};
|
|
9240
9394
|
|
|
9241
9395
|
// src/RedactoPrivacyCenter/locales/ur/translation.json
|
|
@@ -9649,7 +9803,14 @@ var translation_default23 = {
|
|
|
9649
9803
|
submittingAs: "{{email}} \u06A9\u06D2 \u0637\u0648\u0631 \u067E\u0631 \u062C\u0645\u0639 \u06A9\u0631 \u0631\u06C1\u06D2 \u06C1\u06CC\u06BA",
|
|
9650
9804
|
tapToChooseFile: "\u0641\u0627\u0626\u0644 \u0645\u0646\u062A\u062E\u0628 \u06A9\u0631\u0646\u06D2 \u06A9\u06D2 \u0644\u06CC\u06D2 \u0679\u06CC\u067E \u06A9\u0631\u06CC\u06BA",
|
|
9651
9805
|
view: "\u062F\u06CC\u06A9\u06BE\u06CC\u06BA",
|
|
9652
|
-
whatDoYouNeed: "\u0622\u067E \u06A9\u0648 \u06A9\u06CC\u0627 \u0686\u0627\u06C1\u06CC\u06D2\u061F"
|
|
9806
|
+
whatDoYouNeed: "\u0622\u067E \u06A9\u0648 \u06A9\u06CC\u0627 \u0686\u0627\u06C1\u06CC\u06D2\u061F",
|
|
9807
|
+
sessionExpiredTitle: "\u0622\u067E \u06A9\u0627 \u0633\u06CC\u0634\u0646 \u062E\u062A\u0645 \u06C1\u0648 \u06AF\u06CC\u0627 \u06C1\u06D2",
|
|
9808
|
+
sessionExpiredDescription: "\u062C\u0627\u0631\u06CC \u0631\u06A9\u06BE\u0646\u06D2 \u06A9\u06D2 \u0644\u06CC\u06D2 \u0628\u0631\u0627\u06C1 \u06A9\u0631\u0645 \u062F\u0648\u0628\u0627\u0631\u06C1 \u0633\u0627\u0626\u0646 \u0627\u0650\u0646 \u06A9\u0631\u06CC\u06BA\u06D4",
|
|
9809
|
+
chooseYourProfile: "\u0627\u067E\u0646\u06CC \u067E\u0631\u0648\u0641\u0627\u0626\u0644 \u0645\u0646\u062A\u062E\u0628 \u06A9\u0631\u06CC\u06BA",
|
|
9810
|
+
loginIdentifierLinkedToMultipleProfiles: "\u0644\u0627\u06AF \u0627\u0646 \u0622\u0626\u06CC \u0688\u06CC \u0627\u06CC\u06A9 \u0633\u06D2 \u0632\u06CC\u0627\u062F\u06C1 \u067E\u0631\u0648\u0641\u0627\u0626\u0644\u0632 \u0633\u06D2 \u0645\u0646\u0633\u0644\u06A9 \u06C1\u06D2\u06D4 \u062C\u0633\u06D2 \u0622\u067E \u062F\u06CC\u06A9\u06BE\u0646\u0627 \u0686\u0627\u06C1\u062A\u06D2 \u06C1\u06CC\u06BA \u0627\u0633\u06D2 \u0645\u0646\u062A\u062E\u0628 \u06A9\u0631\u06CC\u06BA\u06D4",
|
|
9811
|
+
userIdLabel: "\u0635\u0627\u0631\u0641 \u0622\u0626\u06CC \u0688\u06CC: {{id}}",
|
|
9812
|
+
signingInEllipsis: "\u0633\u0627\u0626\u0646 \u0627\u0646 \u06C1\u0648 \u0631\u06C1\u0627 \u06C1\u06D2\u2026",
|
|
9813
|
+
switchProfile: "\u067E\u0631\u0648\u0641\u0627\u0626\u0644 \u062A\u0628\u062F\u06CC\u0644 \u06A9\u0631\u06CC\u06BA"
|
|
9653
9814
|
};
|
|
9654
9815
|
|
|
9655
9816
|
// src/RedactoPrivacyCenter/lib/locales.ts
|
|
@@ -9894,6 +10055,26 @@ var sandboxQueryIdentity = () => sandboxBodyIdentity();
|
|
|
9894
10055
|
var sandboxContact = () => sandboxConfig ? sandboxConfig.ucic || sandboxConfig.subject : null;
|
|
9895
10056
|
|
|
9896
10057
|
// src/RedactoPrivacyCenter/api/fetcher.ts
|
|
10058
|
+
var ApiError = class _ApiError extends Error {
|
|
10059
|
+
constructor(message, options = {}) {
|
|
10060
|
+
super(message);
|
|
10061
|
+
this.name = "ApiError";
|
|
10062
|
+
this.status = options.status;
|
|
10063
|
+
this.detail = options.detail;
|
|
10064
|
+
Object.setPrototypeOf(this, _ApiError.prototype);
|
|
10065
|
+
}
|
|
10066
|
+
};
|
|
10067
|
+
var TERMINAL_REFRESH_STATUSES = /* @__PURE__ */ new Set([400, 401, 403, 422]);
|
|
10068
|
+
function isTerminalRefreshError(error) {
|
|
10069
|
+
const e = error;
|
|
10070
|
+
if (!e) return false;
|
|
10071
|
+
if (typeof e.status === "number") {
|
|
10072
|
+
return TERMINAL_REFRESH_STATUSES.has(e.status);
|
|
10073
|
+
}
|
|
10074
|
+
const message = (typeof e.message === "string" ? e.message : "").toLowerCase();
|
|
10075
|
+
if (!message) return false;
|
|
10076
|
+
return message.includes("expired") || message.includes("revoked") || message.includes("not found") || message.includes("already used") || message.includes("invalid refresh token") || message.includes("unauthorized") || message.includes("[401]") || message.includes("[403]");
|
|
10077
|
+
}
|
|
9897
10078
|
async function apiFetch(url, options = {}) {
|
|
9898
10079
|
const { getAuthToken, headers = {}, ...fetchOptions } = options;
|
|
9899
10080
|
const requestHeaders = new Headers();
|
|
@@ -9958,7 +10139,7 @@ async function apiFetch(url, options = {}) {
|
|
|
9958
10139
|
} catch {
|
|
9959
10140
|
}
|
|
9960
10141
|
}
|
|
9961
|
-
throw new
|
|
10142
|
+
throw new ApiError(errorMessage, { status: response.status });
|
|
9962
10143
|
}
|
|
9963
10144
|
const contentLength = response.headers.get("Content-Length");
|
|
9964
10145
|
const contentType = response.headers.get("Content-Type") || "";
|
|
@@ -10376,6 +10557,32 @@ function createConsentClient(baseUrl, ledgerBaseUrl) {
|
|
|
10376
10557
|
authToken: authToken || baseRequest.authToken
|
|
10377
10558
|
});
|
|
10378
10559
|
},
|
|
10560
|
+
/**
|
|
10561
|
+
* List all data principals that share this session's contact
|
|
10562
|
+
* (shared-contact profile picker). Identity is derived server-side from the
|
|
10563
|
+
* JWT — the caller sends nothing but its bearer token.
|
|
10564
|
+
*/
|
|
10565
|
+
async listIdentities(baseRequest, authToken, options) {
|
|
10566
|
+
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/identities`;
|
|
10567
|
+
return privacyCenterApiFetch(url, {
|
|
10568
|
+
...options,
|
|
10569
|
+
authToken: authToken || baseRequest.authToken
|
|
10570
|
+
});
|
|
10571
|
+
},
|
|
10572
|
+
/**
|
|
10573
|
+
* Re-scope the session to a chosen principal uuid (must be one of the
|
|
10574
|
+
* principals sharing this session's contact). Returns fresh access/refresh
|
|
10575
|
+
* tokens scoped to that principal.
|
|
10576
|
+
*/
|
|
10577
|
+
async selectPrincipal(baseRequest, principalUuid, authToken, options) {
|
|
10578
|
+
const url = `${baseUrl}/organisations/${baseRequest.organisationUuid}/workspaces/${baseRequest.workspaceUuid}/dsar/privacy-center/identities/select`;
|
|
10579
|
+
return privacyCenterApiFetch(url, {
|
|
10580
|
+
...options,
|
|
10581
|
+
method: "POST",
|
|
10582
|
+
body: JSON.stringify({ uuid: principalUuid }),
|
|
10583
|
+
authToken: authToken || baseRequest.authToken
|
|
10584
|
+
});
|
|
10585
|
+
},
|
|
10379
10586
|
/**
|
|
10380
10587
|
* Get receipts (privacy center)
|
|
10381
10588
|
*/
|
|
@@ -11672,6 +11879,40 @@ var acknowledgeNotification = async (organizationId, workspaceId, notificationUu
|
|
|
11672
11879
|
var isRefreshing = false;
|
|
11673
11880
|
var refreshPromise = null;
|
|
11674
11881
|
var TOKEN_EXPIRY_BUFFER_SECONDS = 30;
|
|
11882
|
+
var deadRefreshToken = null;
|
|
11883
|
+
var transientRefreshFailureUntil = 0;
|
|
11884
|
+
var transientRefreshBackoffMs = 0;
|
|
11885
|
+
var MIN_REFRESH_BACKOFF_MS = 3e4;
|
|
11886
|
+
var MAX_REFRESH_BACKOFF_MS = 3e5;
|
|
11887
|
+
var sessionExpiredListener = null;
|
|
11888
|
+
var setSessionExpiredListener = (fn) => {
|
|
11889
|
+
sessionExpiredListener = fn;
|
|
11890
|
+
};
|
|
11891
|
+
var notifySessionExpired = () => {
|
|
11892
|
+
sessionExpiredListener == null ? void 0 : sessionExpiredListener();
|
|
11893
|
+
};
|
|
11894
|
+
var activeRefreshToken = (authContext) => (authContext == null ? void 0 : authContext.refreshToken) || getStoredValue("refresh_token") || null;
|
|
11895
|
+
var isRefreshBlocked = (authContext) => {
|
|
11896
|
+
const active = activeRefreshToken(authContext);
|
|
11897
|
+
if (active !== null && active === deadRefreshToken) return true;
|
|
11898
|
+
return Date.now() < transientRefreshFailureUntil;
|
|
11899
|
+
};
|
|
11900
|
+
var noteTransientRefreshFailure = () => {
|
|
11901
|
+
transientRefreshBackoffMs = Math.min(
|
|
11902
|
+
Math.max(transientRefreshBackoffMs * 2, MIN_REFRESH_BACKOFF_MS),
|
|
11903
|
+
MAX_REFRESH_BACKOFF_MS
|
|
11904
|
+
);
|
|
11905
|
+
transientRefreshFailureUntil = Date.now() + transientRefreshBackoffMs;
|
|
11906
|
+
};
|
|
11907
|
+
var markRefreshTokenDead = (token) => {
|
|
11908
|
+
if (token) deadRefreshToken = token;
|
|
11909
|
+
notifySessionExpired();
|
|
11910
|
+
};
|
|
11911
|
+
var resetRefreshCircuit = () => {
|
|
11912
|
+
deadRefreshToken = null;
|
|
11913
|
+
transientRefreshFailureUntil = 0;
|
|
11914
|
+
transientRefreshBackoffMs = 0;
|
|
11915
|
+
};
|
|
11675
11916
|
var tokenStore = {};
|
|
11676
11917
|
var getStoredValue = (key) => {
|
|
11677
11918
|
var _a3;
|
|
@@ -11727,6 +11968,14 @@ var decodeJwtToken = (token) => {
|
|
|
11727
11968
|
return null;
|
|
11728
11969
|
}
|
|
11729
11970
|
};
|
|
11971
|
+
var resolveContactFromJwt = (decoded) => {
|
|
11972
|
+
if (!decoded) {
|
|
11973
|
+
return null;
|
|
11974
|
+
}
|
|
11975
|
+
const userData = decoded.user_data || {};
|
|
11976
|
+
const candidate = decoded.contact || decoded.primary_email || userData.primary_email || userData.primary_mobile || userData.org_user_id;
|
|
11977
|
+
return typeof candidate === "string" && candidate.trim() !== "" ? candidate : null;
|
|
11978
|
+
};
|
|
11730
11979
|
var isJwtExpired = (token, bufferSeconds = 30) => {
|
|
11731
11980
|
if (!token || typeof token !== "string") return true;
|
|
11732
11981
|
try {
|
|
@@ -11762,6 +12011,7 @@ var ensureValidToken = async (organizationId, workspaceId, _slug, authContext, c
|
|
|
11762
12011
|
return accessToken;
|
|
11763
12012
|
}
|
|
11764
12013
|
if (isRefreshing && refreshPromise) return refreshPromise;
|
|
12014
|
+
if (isRefreshBlocked(authContext)) return null;
|
|
11765
12015
|
isRefreshing = true;
|
|
11766
12016
|
refreshPromise = performTokenRefresh(
|
|
11767
12017
|
organizationId,
|
|
@@ -11789,6 +12039,7 @@ var performTokenRefresh = async (organizationId, workspaceId, authContext, conse
|
|
|
11789
12039
|
if (!refreshToken || typeof refreshToken !== "string" || refreshToken.trim() === "") {
|
|
11790
12040
|
if (authContext == null ? void 0 : authContext.onError)
|
|
11791
12041
|
authContext.onError(new Error("No refresh token available"));
|
|
12042
|
+
notifySessionExpired();
|
|
11792
12043
|
signOutPrivacyCenter();
|
|
11793
12044
|
return null;
|
|
11794
12045
|
}
|
|
@@ -11818,11 +12069,13 @@ var performTokenRefresh = async (organizationId, workspaceId, authContext, conse
|
|
|
11818
12069
|
if (newRefreshToken)
|
|
11819
12070
|
setStoredValue("refresh_token", newRefreshToken);
|
|
11820
12071
|
}
|
|
12072
|
+
resetRefreshCircuit();
|
|
11821
12073
|
return newAccessToken;
|
|
11822
12074
|
}
|
|
11823
12075
|
}
|
|
11824
12076
|
if (authContext == null ? void 0 : authContext.onError)
|
|
11825
12077
|
authContext.onError(new Error("Refresh token expired or revoked"));
|
|
12078
|
+
markRefreshTokenDead(refreshToken);
|
|
11826
12079
|
signOutPrivacyCenter();
|
|
11827
12080
|
return null;
|
|
11828
12081
|
} catch (error) {
|
|
@@ -11830,7 +12083,12 @@ var performTokenRefresh = async (organizationId, workspaceId, authContext, conse
|
|
|
11830
12083
|
authContext.onError(
|
|
11831
12084
|
error instanceof Error ? error : new Error(String(error))
|
|
11832
12085
|
);
|
|
11833
|
-
|
|
12086
|
+
if (isTerminalRefreshError(error)) {
|
|
12087
|
+
markRefreshTokenDead(refreshToken);
|
|
12088
|
+
signOutPrivacyCenter();
|
|
12089
|
+
} else {
|
|
12090
|
+
noteTransientRefreshFailure();
|
|
12091
|
+
}
|
|
11834
12092
|
return null;
|
|
11835
12093
|
}
|
|
11836
12094
|
};
|
|
@@ -11877,10 +12135,9 @@ function extractJwtAuthData(token) {
|
|
|
11877
12135
|
if (!decoded) {
|
|
11878
12136
|
return { email: null, organizationId: null, workspaceId: null, organizationName: null };
|
|
11879
12137
|
}
|
|
11880
|
-
const
|
|
11881
|
-
const userEmail = decoded.contact || decoded.primary_email || decoded.email || decoded.user_uuid || decoded.sub || (userData && typeof userData === "object" ? userData.primary_email || userData.email || userData.contact : null) || null;
|
|
12138
|
+
const contact = resolveContactFromJwt(decoded) || getStoredValue("email");
|
|
11882
12139
|
return {
|
|
11883
|
-
email: typeof
|
|
12140
|
+
email: typeof contact === "string" && contact.trim() !== "" ? contact : null,
|
|
11884
12141
|
organizationId: decoded.organisation_uuid || null,
|
|
11885
12142
|
workspaceId: decoded.workspace_uuid || null,
|
|
11886
12143
|
organizationName: decoded.organisation_name || null
|
|
@@ -12254,8 +12511,17 @@ function DataAvailabilityProvider({ children }) {
|
|
|
12254
12511
|
mountedRef.current = false;
|
|
12255
12512
|
};
|
|
12256
12513
|
}, []);
|
|
12514
|
+
(0, import_react7.useEffect)(() => {
|
|
12515
|
+
setSessionExpiredListener(() => {
|
|
12516
|
+
if (!mountedRef.current) return;
|
|
12517
|
+
runIdRef.current += 1;
|
|
12518
|
+
setStatus("session-expired");
|
|
12519
|
+
});
|
|
12520
|
+
return () => setSessionExpiredListener(null);
|
|
12521
|
+
}, []);
|
|
12257
12522
|
const runCheck = (0, import_react7.useCallback)(async () => {
|
|
12258
12523
|
if (!organizationId || !workspaceId) return;
|
|
12524
|
+
if (isRefreshBlocked(authContext)) return;
|
|
12259
12525
|
const runId = ++runIdRef.current;
|
|
12260
12526
|
setStatus("checking");
|
|
12261
12527
|
const contact = email;
|
|
@@ -18295,6 +18561,7 @@ function useUnreadCount() {
|
|
|
18295
18561
|
const loadRef = (0, import_react32.useRef)();
|
|
18296
18562
|
loadRef.current = async () => {
|
|
18297
18563
|
if (!organizationId || !workspaceId) return;
|
|
18564
|
+
if (isRefreshBlocked(authContext)) return;
|
|
18298
18565
|
const res = await fetchUnreadCount(organizationId, workspaceId, authContext, consentClient);
|
|
18299
18566
|
if (res && typeof res.count === "number") setCount(res.count);
|
|
18300
18567
|
};
|
|
@@ -18620,17 +18887,255 @@ function PrivacyCenterEmptyState() {
|
|
|
18620
18887
|
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(PCEmpty, { iconName: "shield", title: t("noDataTitle"), description: t("noDataDescription") });
|
|
18621
18888
|
}
|
|
18622
18889
|
|
|
18890
|
+
// src/RedactoPrivacyCenter/components/PrivacyCenterSessionExpired.tsx
|
|
18891
|
+
var import_react_i18next21 = require("react-i18next");
|
|
18892
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
18893
|
+
function PrivacyCenterSessionExpired() {
|
|
18894
|
+
const { t } = (0, import_react_i18next21.useTranslation)();
|
|
18895
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
18896
|
+
PCEmpty,
|
|
18897
|
+
{
|
|
18898
|
+
iconName: "shield",
|
|
18899
|
+
title: t("sessionExpiredTitle"),
|
|
18900
|
+
description: t("sessionExpiredDescription")
|
|
18901
|
+
}
|
|
18902
|
+
);
|
|
18903
|
+
}
|
|
18904
|
+
|
|
18905
|
+
// src/RedactoPrivacyCenter/components/SelectUserGate.tsx
|
|
18906
|
+
var import_react36 = require("react");
|
|
18907
|
+
var import_react_native51 = require("react-native");
|
|
18908
|
+
|
|
18909
|
+
// src/RedactoPrivacyCenter/context/ProfileSwitchContext.tsx
|
|
18910
|
+
var import_react35 = require("react");
|
|
18911
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
18912
|
+
var ProfileSwitchContext = (0, import_react35.createContext)({
|
|
18913
|
+
switchProfile: null
|
|
18914
|
+
});
|
|
18915
|
+
function ProfileSwitchProvider({
|
|
18916
|
+
switchProfile,
|
|
18917
|
+
children
|
|
18918
|
+
}) {
|
|
18919
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ProfileSwitchContext.Provider, { value: { switchProfile }, children });
|
|
18920
|
+
}
|
|
18921
|
+
function useProfileSwitch() {
|
|
18922
|
+
return (0, import_react35.useContext)(ProfileSwitchContext);
|
|
18923
|
+
}
|
|
18924
|
+
|
|
18925
|
+
// src/RedactoPrivacyCenter/components/SelectUser.tsx
|
|
18926
|
+
var import_react_native50 = require("react-native");
|
|
18927
|
+
var import_react_i18next22 = require("react-i18next");
|
|
18928
|
+
|
|
18929
|
+
// src/RedactoPrivacyCenter/lib/identityLabels.ts
|
|
18930
|
+
var identityPrimaryValue = (candidate) => {
|
|
18931
|
+
const orgUserId = candidate.org_user_id || "";
|
|
18932
|
+
const email = candidate.primary_email || "";
|
|
18933
|
+
const mobile = candidate.primary_mobile || "";
|
|
18934
|
+
return { orgUserId, fallback: email || mobile || candidate.uuid };
|
|
18935
|
+
};
|
|
18936
|
+
var identitySecondaryLabels = (candidate, primaryLabel) => {
|
|
18937
|
+
const email = candidate.primary_email || "";
|
|
18938
|
+
const mobile = candidate.primary_mobile || "";
|
|
18939
|
+
return [email, mobile].filter(
|
|
18940
|
+
(value, index, all) => value !== "" && value !== primaryLabel && all.indexOf(value) === index
|
|
18941
|
+
);
|
|
18942
|
+
};
|
|
18943
|
+
var selectableIdentities = (candidates) => candidates.filter((candidate) => Boolean(candidate.uuid));
|
|
18944
|
+
|
|
18945
|
+
// src/RedactoPrivacyCenter/components/SelectUser.tsx
|
|
18946
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
18947
|
+
var SelectUser = ({
|
|
18948
|
+
candidates,
|
|
18949
|
+
onSelect,
|
|
18950
|
+
busyUuid,
|
|
18951
|
+
error
|
|
18952
|
+
}) => {
|
|
18953
|
+
const { t } = (0, import_react_i18next22.useTranslation)();
|
|
18954
|
+
const { colors } = useTheme();
|
|
18955
|
+
const selectable = selectableIdentities(candidates);
|
|
18956
|
+
const busy = busyUuid !== null;
|
|
18957
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_react_native50.ScrollView, { contentContainerStyle: styles39.container, children: [
|
|
18958
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_native50.Text, { style: [typography.title, styles39.heading, { color: colors.text }], children: t("chooseYourProfile") }),
|
|
18959
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_native50.Text, { style: [typography.body, styles39.subtitle, { color: colors.textSecondary }], children: t("loginIdentifierLinkedToMultipleProfiles") }),
|
|
18960
|
+
error ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_native50.Text, { style: [typography.caption, styles39.error, { color: colors.error }], children: error }) : null,
|
|
18961
|
+
selectable.map((candidate) => {
|
|
18962
|
+
const { orgUserId, fallback } = identityPrimaryValue(candidate);
|
|
18963
|
+
const primaryLabel = orgUserId ? t("userIdLabel", { id: orgUserId }) : fallback;
|
|
18964
|
+
const secondaryLabels = identitySecondaryLabels(candidate, primaryLabel);
|
|
18965
|
+
const isBusy = busyUuid === candidate.uuid;
|
|
18966
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
|
|
18967
|
+
import_react_native50.TouchableOpacity,
|
|
18968
|
+
{
|
|
18969
|
+
accessibilityRole: "button",
|
|
18970
|
+
disabled: busy,
|
|
18971
|
+
onPress: () => onSelect(candidate.uuid),
|
|
18972
|
+
style: [
|
|
18973
|
+
styles39.row,
|
|
18974
|
+
{
|
|
18975
|
+
backgroundColor: colors.surface,
|
|
18976
|
+
borderColor: isBusy ? colors.primary : colors.border
|
|
18977
|
+
}
|
|
18978
|
+
],
|
|
18979
|
+
children: [
|
|
18980
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_react_native50.View, { style: styles39.rowText, children: [
|
|
18981
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_native50.Text, { style: [typography.label, { color: colors.text }], children: primaryLabel }),
|
|
18982
|
+
secondaryLabels.map((label) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
18983
|
+
import_react_native50.Text,
|
|
18984
|
+
{
|
|
18985
|
+
style: [typography.caption, styles39.secondary, { color: colors.textSecondary }],
|
|
18986
|
+
children: label
|
|
18987
|
+
},
|
|
18988
|
+
label
|
|
18989
|
+
))
|
|
18990
|
+
] }),
|
|
18991
|
+
isBusy ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_native50.Text, { style: [typography.caption, { color: colors.textSecondary }], children: t("signingInEllipsis") }) : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Icon, { name: "chevron-right", size: 18, color: colors.textSecondary })
|
|
18992
|
+
]
|
|
18993
|
+
},
|
|
18994
|
+
candidate.uuid
|
|
18995
|
+
);
|
|
18996
|
+
})
|
|
18997
|
+
] });
|
|
18998
|
+
};
|
|
18999
|
+
var styles39 = import_react_native50.StyleSheet.create({
|
|
19000
|
+
container: { padding: spacing.lg },
|
|
19001
|
+
heading: { textAlign: "center" },
|
|
19002
|
+
subtitle: { textAlign: "center", marginTop: spacing.xs, marginBottom: spacing.lg },
|
|
19003
|
+
error: { textAlign: "center", marginBottom: spacing.md },
|
|
19004
|
+
row: {
|
|
19005
|
+
flexDirection: "row",
|
|
19006
|
+
alignItems: "center",
|
|
19007
|
+
borderWidth: 1,
|
|
19008
|
+
borderRadius: radii.md,
|
|
19009
|
+
padding: spacing.md,
|
|
19010
|
+
marginBottom: spacing.sm
|
|
19011
|
+
},
|
|
19012
|
+
rowText: { flex: 1 },
|
|
19013
|
+
secondary: { marginTop: 2 }
|
|
19014
|
+
});
|
|
19015
|
+
|
|
19016
|
+
// src/RedactoPrivacyCenter/components/SelectUserGate.tsx
|
|
19017
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
19018
|
+
function SelectUserGate({ children }) {
|
|
19019
|
+
var _a3, _b;
|
|
19020
|
+
const { accessToken, organizationId, workspaceId, updateTokens } = useAuth();
|
|
19021
|
+
const { consentClient } = useBaseUrl();
|
|
19022
|
+
const { colors } = useTheme();
|
|
19023
|
+
const insets = useSafeInsets();
|
|
19024
|
+
const [phase, setPhase] = (0, import_react36.useState)("checking");
|
|
19025
|
+
const [candidates, setCandidates] = (0, import_react36.useState)([]);
|
|
19026
|
+
const [busyUuid, setBusyUuid] = (0, import_react36.useState)(null);
|
|
19027
|
+
const [selectError, setSelectError] = (0, import_react36.useState)(null);
|
|
19028
|
+
const [pinnedOrgUserId, setPinnedOrgUserId] = (0, import_react36.useState)(null);
|
|
19029
|
+
const tokenOrgUserId = ((_b = (_a3 = decodeJwtToken(accessToken)) == null ? void 0 : _a3.user_data) == null ? void 0 : _b.org_user_id) || "";
|
|
19030
|
+
(0, import_react36.useEffect)(() => {
|
|
19031
|
+
let cancelled = false;
|
|
19032
|
+
if (isSandboxMode() || !organizationId || !workspaceId || !accessToken) {
|
|
19033
|
+
setPhase("resolved");
|
|
19034
|
+
return;
|
|
19035
|
+
}
|
|
19036
|
+
const isPinned = Boolean(pinnedOrgUserId) && pinnedOrgUserId === tokenOrgUserId;
|
|
19037
|
+
setPhase(isPinned ? "resolved" : "checking");
|
|
19038
|
+
(async () => {
|
|
19039
|
+
var _a4;
|
|
19040
|
+
try {
|
|
19041
|
+
const res = await consentClient.listIdentities({
|
|
19042
|
+
organisationUuid: organizationId,
|
|
19043
|
+
workspaceUuid: workspaceId,
|
|
19044
|
+
authToken: accessToken
|
|
19045
|
+
});
|
|
19046
|
+
if (cancelled) return;
|
|
19047
|
+
const list = (_a4 = res == null ? void 0 : res.identities) != null ? _a4 : [];
|
|
19048
|
+
setCandidates(list);
|
|
19049
|
+
setPhase(list.length > 1 && !isPinned ? "picking" : "resolved");
|
|
19050
|
+
} catch {
|
|
19051
|
+
if (cancelled) return;
|
|
19052
|
+
setCandidates([]);
|
|
19053
|
+
setPhase("resolved");
|
|
19054
|
+
}
|
|
19055
|
+
})();
|
|
19056
|
+
return () => {
|
|
19057
|
+
cancelled = true;
|
|
19058
|
+
};
|
|
19059
|
+
}, [organizationId, workspaceId, tokenOrgUserId]);
|
|
19060
|
+
const handleSelect = (0, import_react36.useCallback)(
|
|
19061
|
+
async (principalUuid) => {
|
|
19062
|
+
var _a4, _b2;
|
|
19063
|
+
if (!principalUuid || busyUuid || !organizationId || !workspaceId) return;
|
|
19064
|
+
setBusyUuid(principalUuid);
|
|
19065
|
+
setSelectError(null);
|
|
19066
|
+
try {
|
|
19067
|
+
const res = await consentClient.selectPrincipal(
|
|
19068
|
+
{
|
|
19069
|
+
organisationUuid: organizationId,
|
|
19070
|
+
workspaceUuid: workspaceId,
|
|
19071
|
+
authToken: accessToken
|
|
19072
|
+
},
|
|
19073
|
+
principalUuid
|
|
19074
|
+
);
|
|
19075
|
+
if (!(res == null ? void 0 : res.token) || !(res == null ? void 0 : res.refresh_token)) {
|
|
19076
|
+
throw new Error("select-principal returned no tokens");
|
|
19077
|
+
}
|
|
19078
|
+
const pinned = ((_b2 = (_a4 = decodeJwtToken(res.token)) == null ? void 0 : _a4.user_data) == null ? void 0 : _b2.org_user_id) || null;
|
|
19079
|
+
setPinnedOrgUserId(pinned);
|
|
19080
|
+
setPhase("resolved");
|
|
19081
|
+
updateTokens(res.token, res.refresh_token);
|
|
19082
|
+
} catch (error) {
|
|
19083
|
+
setSelectError(
|
|
19084
|
+
error instanceof Error ? error.message : "Failed to switch profile"
|
|
19085
|
+
);
|
|
19086
|
+
} finally {
|
|
19087
|
+
setBusyUuid(null);
|
|
19088
|
+
}
|
|
19089
|
+
},
|
|
19090
|
+
[accessToken, busyUuid, consentClient, organizationId, workspaceId, updateTokens]
|
|
19091
|
+
);
|
|
19092
|
+
const canSwitch = candidates.length > 1;
|
|
19093
|
+
const switchProfile = (0, import_react36.useCallback)(() => {
|
|
19094
|
+
if (!canSwitch) return;
|
|
19095
|
+
setSelectError(null);
|
|
19096
|
+
setPhase("picking");
|
|
19097
|
+
}, [canSwitch]);
|
|
19098
|
+
if (phase === "checking" || phase === "picking") {
|
|
19099
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
19100
|
+
import_react_native51.View,
|
|
19101
|
+
{
|
|
19102
|
+
style: [
|
|
19103
|
+
styles40.screen,
|
|
19104
|
+
{
|
|
19105
|
+
backgroundColor: colors.canvasSubtle,
|
|
19106
|
+
paddingTop: insets.top,
|
|
19107
|
+
paddingBottom: insets.bottom
|
|
19108
|
+
}
|
|
19109
|
+
],
|
|
19110
|
+
children: phase === "checking" ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(PCLoader, {}) : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
19111
|
+
SelectUser,
|
|
19112
|
+
{
|
|
19113
|
+
candidates,
|
|
19114
|
+
onSelect: handleSelect,
|
|
19115
|
+
busyUuid,
|
|
19116
|
+
error: selectError
|
|
19117
|
+
}
|
|
19118
|
+
)
|
|
19119
|
+
}
|
|
19120
|
+
);
|
|
19121
|
+
}
|
|
19122
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(ProfileSwitchProvider, { switchProfile: canSwitch ? switchProfile : null, children });
|
|
19123
|
+
}
|
|
19124
|
+
var styles40 = import_react_native51.StyleSheet.create({
|
|
19125
|
+
screen: { flex: 1 }
|
|
19126
|
+
});
|
|
19127
|
+
|
|
18623
19128
|
// src/RedactoPrivacyCenter/components/CaseDetails/CaseDetailsPage.tsx
|
|
18624
|
-
var
|
|
18625
|
-
var
|
|
18626
|
-
var
|
|
19129
|
+
var import_react41 = require("react");
|
|
19130
|
+
var import_react_native59 = require("react-native");
|
|
19131
|
+
var import_react_i18next28 = require("react-i18next");
|
|
18627
19132
|
|
|
18628
19133
|
// src/RedactoPrivacyCenter/components/CaseDetails/RequestDetailsTab.tsx
|
|
18629
|
-
var
|
|
18630
|
-
var
|
|
18631
|
-
var
|
|
19134
|
+
var import_react_native52 = require("react-native");
|
|
19135
|
+
var import_react_i18next23 = require("react-i18next");
|
|
19136
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
18632
19137
|
function RequestDetailsTab({ selectedCase, requestTypeLabel }) {
|
|
18633
|
-
const { t } = (0,
|
|
19138
|
+
const { t } = (0, import_react_i18next23.useTranslation)();
|
|
18634
19139
|
const { colors } = useTheme();
|
|
18635
19140
|
const { listBottom } = usePrivacyCenterInsets({ hasFooter: true });
|
|
18636
19141
|
const details = selectedCase.request_details;
|
|
@@ -18662,36 +19167,36 @@ function RequestDetailsTab({ selectedCase, requestTypeLabel }) {
|
|
|
18662
19167
|
}
|
|
18663
19168
|
const description = selectedCase.description_display || selectedCase.description;
|
|
18664
19169
|
const hasDetails = description || details && (details.purposes && details.purposes.length > 0 || details.correction_data && details.correction_data.length > 0 || details.grievance_types && details.grievance_types.length > 0 || details.nomination_data);
|
|
18665
|
-
return /* @__PURE__ */ (0,
|
|
18666
|
-
/* @__PURE__ */ (0,
|
|
19170
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.ScrollView, { style: [styles41.container, { backgroundColor: colors.canvasSubtle }], contentContainerStyle: [styles41.content, { flexGrow: 1, paddingBottom: listBottom }], showsVerticalScrollIndicator: false, children: [
|
|
19171
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.View, { style: styles41.timeline, children: steps.map((step, i) => {
|
|
18667
19172
|
const isLast = i === steps.length - 1;
|
|
18668
|
-
return /* @__PURE__ */ (0,
|
|
18669
|
-
/* @__PURE__ */ (0,
|
|
18670
|
-
/* @__PURE__ */ (0,
|
|
18671
|
-
|
|
19173
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: styles41.stepRow, children: [
|
|
19174
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: styles41.gutter, children: [
|
|
19175
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
19176
|
+
import_react_native52.View,
|
|
18672
19177
|
{
|
|
18673
19178
|
style: [
|
|
18674
|
-
|
|
19179
|
+
styles41.dot,
|
|
18675
19180
|
step.state === "upcoming" ? { backgroundColor: colors.canvasSubtle, borderWidth: 2, borderColor: step.danger ? colors.error : colors.border } : { backgroundColor: step.color }
|
|
18676
19181
|
],
|
|
18677
|
-
children: step.state === "done" ? /* @__PURE__ */ (0,
|
|
19182
|
+
children: step.state === "done" ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Icon, { name: "check", size: 11, color: colors.primaryText, strokeWidth: 3 }) : step.state === "current" ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.View, { style: [styles41.dotInner, { backgroundColor: colors.primaryText }] }) : null
|
|
18678
19183
|
}
|
|
18679
19184
|
),
|
|
18680
|
-
!isLast ? /* @__PURE__ */ (0,
|
|
19185
|
+
!isLast ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.View, { style: [styles41.connector, { backgroundColor: colors.border }] }) : null
|
|
18681
19186
|
] }),
|
|
18682
|
-
/* @__PURE__ */ (0,
|
|
18683
|
-
/* @__PURE__ */ (0,
|
|
18684
|
-
step.date ? /* @__PURE__ */ (0,
|
|
19187
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: [styles41.stepContent, isLast && styles41.stepContentLast], children: [
|
|
19188
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.stepLabel, { color: step.danger ? colors.error : colors.text }], children: step.label }),
|
|
19189
|
+
step.date ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.stepDate, { color: step.danger ? colors.error : colors.textSecondary }], children: step.date }) : null
|
|
18685
19190
|
] })
|
|
18686
19191
|
] }, `${step.label}-${i}`);
|
|
18687
19192
|
}) }),
|
|
18688
|
-
hasDetails ? /* @__PURE__ */ (0,
|
|
18689
|
-
description ? /* @__PURE__ */ (0,
|
|
18690
|
-
/* @__PURE__ */ (0,
|
|
18691
|
-
/* @__PURE__ */ (0,
|
|
19193
|
+
hasDetails ? /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: [styles41.card, elevation.card, { backgroundColor: colors.surface }], children: [
|
|
19194
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: styles41.block, children: [
|
|
19195
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.blockLabel, { color: colors.textSecondary }], children: t("descriptionLabel") || "Description" }),
|
|
19196
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.descriptionText, { color: colors.text }], children: description })
|
|
18692
19197
|
] }) : null,
|
|
18693
|
-
(details == null ? void 0 : details.purposes) && details.purposes.length > 0 ? /* @__PURE__ */ (0,
|
|
18694
|
-
/* @__PURE__ */ (0,
|
|
19198
|
+
(details == null ? void 0 : details.purposes) && details.purposes.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: styles41.block, children: [
|
|
19199
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.blockLabel, { color: colors.textSecondary }], children: t("purposesInvolved") || t("purposes") || "Purposes" }),
|
|
18695
19200
|
details.purposes.map((rawP, idx) => {
|
|
18696
19201
|
const p = (rawP == null ? void 0 : rawP.purpose) ? rawP.purpose : rawP;
|
|
18697
19202
|
const purposeId = (p == null ? void 0 : p.uuid) || (p == null ? void 0 : p.purpose_uuid) || (rawP == null ? void 0 : rawP.purpose_uuid) || idx;
|
|
@@ -18699,10 +19204,10 @@ function RequestDetailsTab({ selectedCase, requestTypeLabel }) {
|
|
|
18699
19204
|
const purposeDescription = (p == null ? void 0 : p.description) || (rawP == null ? void 0 : rawP.description);
|
|
18700
19205
|
const dataElements = Array.isArray(p == null ? void 0 : p.data_elements) ? p.data_elements.filter((de) => (de == null ? void 0 : de.selected) || (de == null ? void 0 : de.given_consent)) : [];
|
|
18701
19206
|
const dataElementUuids = Array.isArray(rawP == null ? void 0 : rawP.data_element_uuids) ? rawP.data_element_uuids : Array.isArray(p == null ? void 0 : p.data_element_uuids) ? p.data_element_uuids : [];
|
|
18702
|
-
return /* @__PURE__ */ (0,
|
|
18703
|
-
/* @__PURE__ */ (0,
|
|
18704
|
-
purposeDescription ? /* @__PURE__ */ (0,
|
|
18705
|
-
dataElements.length > 0 ? /* @__PURE__ */ (0,
|
|
19207
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: [styles41.itemRow, idx > 0 && { borderTopColor: colors.hairline, borderTopWidth: import_react_native52.StyleSheet.hairlineWidth }], children: [
|
|
19208
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.itemTitle, { color: colors.text }], children: purposeName }),
|
|
19209
|
+
purposeDescription ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.itemDesc, { color: colors.textSecondary }], numberOfLines: 3, children: purposeDescription }) : null,
|
|
19210
|
+
dataElements.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.View, { style: styles41.chipRow, children: dataElements.map((de) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(PCBadge, { status: "info", label: de.name }, de.uuid)) }) : dataElementUuids.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.Text, { style: [styles41.itemDesc, { color: colors.textSecondary }], children: [
|
|
18706
19211
|
dataElementUuids.length,
|
|
18707
19212
|
" ",
|
|
18708
19213
|
t("dataElements") || "data elements"
|
|
@@ -18710,44 +19215,44 @@ function RequestDetailsTab({ selectedCase, requestTypeLabel }) {
|
|
|
18710
19215
|
] }, purposeId);
|
|
18711
19216
|
})
|
|
18712
19217
|
] }) : null,
|
|
18713
|
-
(details == null ? void 0 : details.correction_data) && details.correction_data.length > 0 ? /* @__PURE__ */ (0,
|
|
18714
|
-
/* @__PURE__ */ (0,
|
|
18715
|
-
details.correction_data.map((item, idx) => /* @__PURE__ */ (0,
|
|
18716
|
-
/* @__PURE__ */ (0,
|
|
18717
|
-
/* @__PURE__ */ (0,
|
|
18718
|
-
/* @__PURE__ */ (0,
|
|
18719
|
-
/* @__PURE__ */ (0,
|
|
18720
|
-
/* @__PURE__ */ (0,
|
|
19218
|
+
(details == null ? void 0 : details.correction_data) && details.correction_data.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: styles41.block, children: [
|
|
19219
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.blockLabel, { color: colors.textSecondary }], children: t("correctionData") || "Correction" }),
|
|
19220
|
+
details.correction_data.map((item, idx) => /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: [styles41.itemRow, idx > 0 && { borderTopColor: colors.hairline, borderTopWidth: import_react_native52.StyleSheet.hairlineWidth }], children: [
|
|
19221
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.itemTitle, { color: colors.text }], children: item.name }),
|
|
19222
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: styles41.correctionValues, children: [
|
|
19223
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: styles41.correctionValue, children: [
|
|
19224
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.correctionLabel, { color: colors.textSecondary }], children: t("currentValue") || "Current" }),
|
|
19225
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.correctionText, { color: colors.text }], children: item.curr_value || "-" })
|
|
18721
19226
|
] }),
|
|
18722
|
-
/* @__PURE__ */ (0,
|
|
18723
|
-
/* @__PURE__ */ (0,
|
|
18724
|
-
/* @__PURE__ */ (0,
|
|
18725
|
-
/* @__PURE__ */ (0,
|
|
19227
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Icon, { name: "chevron-right", size: 16, color: colors.textSecondary, strokeWidth: 2.2 }),
|
|
19228
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: styles41.correctionValue, children: [
|
|
19229
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.correctionLabel, { color: colors.textSecondary }], children: t("newValue") || "New" }),
|
|
19230
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.correctionText, { color: colors.primary }], children: item.new_value || "-" })
|
|
18726
19231
|
] })
|
|
18727
19232
|
] })
|
|
18728
19233
|
] }, idx))
|
|
18729
19234
|
] }) : null,
|
|
18730
|
-
(details == null ? void 0 : details.grievance_types) && details.grievance_types.length > 0 ? /* @__PURE__ */ (0,
|
|
18731
|
-
/* @__PURE__ */ (0,
|
|
18732
|
-
/* @__PURE__ */ (0,
|
|
19235
|
+
(details == null ? void 0 : details.grievance_types) && details.grievance_types.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: styles41.block, children: [
|
|
19236
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.blockLabel, { color: colors.textSecondary }], children: t("grievanceTypes") || "Grievance" }),
|
|
19237
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.View, { style: styles41.chipRow, children: details.grievance_types.map((g, idx) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(PCBadge, { status: "warning", label: (g.grievance || "").replace(/_/g, " ") }, idx)) })
|
|
18733
19238
|
] }) : null,
|
|
18734
|
-
(details == null ? void 0 : details.nomination_data) ? /* @__PURE__ */ (0,
|
|
18735
|
-
/* @__PURE__ */ (0,
|
|
18736
|
-
details.nomination_data.nominee_email ? /* @__PURE__ */ (0,
|
|
18737
|
-
/* @__PURE__ */ (0,
|
|
18738
|
-
/* @__PURE__ */ (0,
|
|
19239
|
+
(details == null ? void 0 : details.nomination_data) ? /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: styles41.block, children: [
|
|
19240
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.blockLabel, { color: colors.textSecondary }], children: t("nominationData") || "Nomination" }),
|
|
19241
|
+
details.nomination_data.nominee_email ? /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: styles41.kvRow, children: [
|
|
19242
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.kvLabel, { color: colors.textSecondary }], children: t("email") || "Email" }),
|
|
19243
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.kvValue, { color: colors.text }], children: details.nomination_data.nominee_email })
|
|
18739
19244
|
] }) : null,
|
|
18740
|
-
details.nomination_data.nominee_mobile ? /* @__PURE__ */ (0,
|
|
18741
|
-
/* @__PURE__ */ (0,
|
|
18742
|
-
/* @__PURE__ */ (0,
|
|
19245
|
+
details.nomination_data.nominee_mobile ? /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react_native52.View, { style: styles41.kvRow, children: [
|
|
19246
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.kvLabel, { color: colors.textSecondary }], children: t("mobile") || "Mobile" }),
|
|
19247
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.Text, { style: [styles41.kvValue, { color: colors.text }], children: details.nomination_data.nominee_mobile })
|
|
18743
19248
|
] }) : null
|
|
18744
19249
|
] }) : null
|
|
18745
19250
|
] }) : null,
|
|
18746
|
-
/* @__PURE__ */ (0,
|
|
19251
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_react_native52.View, { style: { marginTop: "auto" }, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Footer, {}) })
|
|
18747
19252
|
] });
|
|
18748
19253
|
}
|
|
18749
19254
|
var DOT = 22;
|
|
18750
|
-
var
|
|
19255
|
+
var styles41 = import_react_native52.StyleSheet.create({
|
|
18751
19256
|
container: {
|
|
18752
19257
|
flex: 1
|
|
18753
19258
|
},
|
|
@@ -18868,51 +19373,51 @@ var styles39 = import_react_native50.StyleSheet.create({
|
|
|
18868
19373
|
});
|
|
18869
19374
|
|
|
18870
19375
|
// src/RedactoPrivacyCenter/components/CaseDetails/MessagesTab.tsx
|
|
18871
|
-
var
|
|
18872
|
-
var
|
|
18873
|
-
var
|
|
19376
|
+
var import_react40 = require("react");
|
|
19377
|
+
var import_react_native58 = require("react-native");
|
|
19378
|
+
var import_react_i18next27 = require("react-i18next");
|
|
18874
19379
|
|
|
18875
19380
|
// src/RedactoPrivacyCenter/components/CaseDetails/MessageItem.tsx
|
|
18876
|
-
var
|
|
18877
|
-
var
|
|
19381
|
+
var import_react38 = __toESM(require("react"));
|
|
19382
|
+
var import_react_i18next25 = require("react-i18next");
|
|
18878
19383
|
|
|
18879
19384
|
// src/RedactoPrivacyCenter/components/CaseDetails/ChatBubble.tsx
|
|
18880
|
-
var
|
|
18881
|
-
var
|
|
19385
|
+
var import_react37 = __toESM(require("react"));
|
|
19386
|
+
var import_react_native54 = require("react-native");
|
|
18882
19387
|
|
|
18883
19388
|
// src/RedactoPrivacyCenter/components/CaseDetails/AttachmentCard.tsx
|
|
18884
|
-
var
|
|
18885
|
-
var
|
|
19389
|
+
var import_react_native53 = require("react-native");
|
|
19390
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
18886
19391
|
function AttachmentCard({ doc }) {
|
|
18887
19392
|
const { colors } = useTheme();
|
|
18888
19393
|
const downloadUrl = getDownloadUrl(doc.file_url);
|
|
18889
19394
|
const handlePress = () => {
|
|
18890
19395
|
if (downloadUrl) {
|
|
18891
|
-
|
|
19396
|
+
import_react_native53.Linking.openURL(downloadUrl);
|
|
18892
19397
|
}
|
|
18893
19398
|
};
|
|
18894
|
-
return /* @__PURE__ */ (0,
|
|
18895
|
-
|
|
19399
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
|
|
19400
|
+
import_react_native53.TouchableOpacity,
|
|
18896
19401
|
{
|
|
18897
|
-
style: [
|
|
19402
|
+
style: [styles42.container, { backgroundColor: colors.surface, borderColor: colors.border }],
|
|
18898
19403
|
onPress: handlePress,
|
|
18899
19404
|
disabled: !downloadUrl,
|
|
18900
19405
|
activeOpacity: 0.7,
|
|
18901
19406
|
children: [
|
|
18902
|
-
/* @__PURE__ */ (0,
|
|
18903
|
-
/* @__PURE__ */ (0,
|
|
18904
|
-
/* @__PURE__ */ (0,
|
|
18905
|
-
doc.file_size ? /* @__PURE__ */ (0,
|
|
19407
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Icon, { name: "file-text", size: 18, color: colors.textSecondary }),
|
|
19408
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_react_native53.View, { style: styles42.info, children: [
|
|
19409
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_react_native53.Text, { style: [styles42.fileName, { color: colors.text }], numberOfLines: 1, children: doc.file_name || "Document" }),
|
|
19410
|
+
doc.file_size ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_react_native53.Text, { style: [styles42.fileSize, { color: colors.textSecondary }], children: formatFileSize(doc.file_size) }) : null
|
|
18906
19411
|
] })
|
|
18907
19412
|
]
|
|
18908
19413
|
}
|
|
18909
19414
|
);
|
|
18910
19415
|
}
|
|
18911
|
-
var
|
|
19416
|
+
var styles42 = import_react_native53.StyleSheet.create({
|
|
18912
19417
|
container: {
|
|
18913
19418
|
flexDirection: "row",
|
|
18914
19419
|
alignItems: "center",
|
|
18915
|
-
borderWidth:
|
|
19420
|
+
borderWidth: import_react_native53.StyleSheet.hairlineWidth,
|
|
18916
19421
|
borderRadius: radii.md,
|
|
18917
19422
|
paddingHorizontal: spacing.sm + 2,
|
|
18918
19423
|
paddingVertical: spacing.sm,
|
|
@@ -18932,11 +19437,11 @@ var styles40 = import_react_native51.StyleSheet.create({
|
|
|
18932
19437
|
});
|
|
18933
19438
|
|
|
18934
19439
|
// src/RedactoPrivacyCenter/components/CaseDetails/ChatBubble.tsx
|
|
18935
|
-
var
|
|
19440
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
18936
19441
|
var AVATAR_SIZE = 28;
|
|
18937
19442
|
var AVATAR_GUTTER = 36;
|
|
18938
19443
|
function TeamAvatar({ tint }) {
|
|
18939
|
-
return /* @__PURE__ */ (0,
|
|
19444
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_native54.View, { style: [styles43.avatar, { backgroundColor: withAlpha(tint, 0.13) }], children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Icon, { name: "shield-check", size: 15, color: tint, strokeWidth: 2 }) });
|
|
18940
19445
|
}
|
|
18941
19446
|
function ChatBubbleImpl({
|
|
18942
19447
|
message,
|
|
@@ -18963,28 +19468,28 @@ function ChatBubbleImpl({
|
|
|
18963
19468
|
borderBottomRightRadius: BUBBLE_RADIUS,
|
|
18964
19469
|
borderBottomLeftRadius: tailRadius
|
|
18965
19470
|
};
|
|
18966
|
-
const bubble = /* @__PURE__ */ (0,
|
|
18967
|
-
!isPrincipal && isFirstInGroup ? /* @__PURE__ */ (0,
|
|
18968
|
-
message.body ? /* @__PURE__ */ (0,
|
|
18969
|
-
message.documents && message.documents.length > 0 ? /* @__PURE__ */ (0,
|
|
19471
|
+
const bubble = /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_react_native54.View, { style: [styles43.bubble, bubbleStyle], children: [
|
|
19472
|
+
!isPrincipal && isFirstInGroup ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_native54.Text, { style: [styles43.bubbleSender, { color: colors.primary }], numberOfLines: 1, children: senderLabel }) : null,
|
|
19473
|
+
message.body ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_native54.Text, { style: [styles43.body, { color: isPrincipal ? colors.primaryText : colors.text }], children: message.body }) : null,
|
|
19474
|
+
message.documents && message.documents.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_native54.View, { style: styles43.attachments, children: message.documents.map((doc) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(AttachmentCard, { doc }, doc.uuid)) }) : null
|
|
18970
19475
|
] });
|
|
18971
|
-
return /* @__PURE__ */ (0,
|
|
18972
|
-
|
|
19476
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
|
|
19477
|
+
import_react_native54.View,
|
|
18973
19478
|
{
|
|
18974
19479
|
style: [
|
|
18975
|
-
|
|
18976
|
-
isPrincipal ?
|
|
19480
|
+
styles43.row,
|
|
19481
|
+
isPrincipal ? styles43.rowRight : styles43.rowLeft,
|
|
18977
19482
|
{ marginTop: isFirstInGroup ? spacing.md : 2 }
|
|
18978
19483
|
],
|
|
18979
19484
|
children: [
|
|
18980
|
-
!isPrincipal ? /* @__PURE__ */ (0,
|
|
18981
|
-
/* @__PURE__ */ (0,
|
|
19485
|
+
!isPrincipal ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_react_native54.View, { style: styles43.avatarSlot, children: isFirstInGroup ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(TeamAvatar, { tint: colors.primary }) : null }) : null,
|
|
19486
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_react_native54.View, { style: [styles43.column, isPrincipal ? styles43.columnRight : styles43.columnLeft], children: [
|
|
18982
19487
|
bubble,
|
|
18983
|
-
isLastInGroup ? /* @__PURE__ */ (0,
|
|
18984
|
-
|
|
19488
|
+
isLastInGroup ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
19489
|
+
import_react_native54.Text,
|
|
18985
19490
|
{
|
|
18986
19491
|
style: [
|
|
18987
|
-
|
|
19492
|
+
styles43.timestamp,
|
|
18988
19493
|
{ color: colors.textSecondary, textAlign: isPrincipal ? "right" : "left" }
|
|
18989
19494
|
],
|
|
18990
19495
|
children: formatMessageTime(timestamp)
|
|
@@ -18995,8 +19500,8 @@ function ChatBubbleImpl({
|
|
|
18995
19500
|
}
|
|
18996
19501
|
);
|
|
18997
19502
|
}
|
|
18998
|
-
var ChatBubble =
|
|
18999
|
-
var
|
|
19503
|
+
var ChatBubble = import_react37.default.memo(ChatBubbleImpl);
|
|
19504
|
+
var styles43 = import_react_native54.StyleSheet.create({
|
|
19000
19505
|
row: {
|
|
19001
19506
|
flexDirection: "row",
|
|
19002
19507
|
paddingHorizontal: spacing.md,
|
|
@@ -19056,9 +19561,9 @@ var styles41 = import_react_native52.StyleSheet.create({
|
|
|
19056
19561
|
});
|
|
19057
19562
|
|
|
19058
19563
|
// src/RedactoPrivacyCenter/components/CaseDetails/DocumentRequestCard.tsx
|
|
19059
|
-
var
|
|
19060
|
-
var
|
|
19061
|
-
var
|
|
19564
|
+
var import_react_native55 = require("react-native");
|
|
19565
|
+
var import_react_i18next24 = require("react-i18next");
|
|
19566
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
19062
19567
|
var STATUS_BADGE_MAP = {
|
|
19063
19568
|
pending: "warning",
|
|
19064
19569
|
under_review: "info",
|
|
@@ -19078,20 +19583,20 @@ function humanize(value) {
|
|
|
19078
19583
|
}
|
|
19079
19584
|
function DocumentRequestCard({ message, onUpload, isSubmitting, isCaseFinalized = false }) {
|
|
19080
19585
|
var _a3;
|
|
19081
|
-
const { t } = (0,
|
|
19586
|
+
const { t } = (0, import_react_i18next24.useTranslation)();
|
|
19082
19587
|
const { colors } = useTheme();
|
|
19083
19588
|
const meta = message.document_request_metadata;
|
|
19084
19589
|
if (!meta) return null;
|
|
19085
19590
|
const status = meta.document_request_status;
|
|
19086
19591
|
const canUpload = (status === "pending" || status === "replacement_requested") && !isCaseFinalized;
|
|
19087
19592
|
const requestEventUuid = meta.document_request_uuid;
|
|
19088
|
-
return /* @__PURE__ */ (0,
|
|
19089
|
-
/* @__PURE__ */ (0,
|
|
19090
|
-
/* @__PURE__ */ (0,
|
|
19091
|
-
/* @__PURE__ */ (0,
|
|
19092
|
-
/* @__PURE__ */ (0,
|
|
19593
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_react_native55.View, { style: [styles44.container, { borderColor: colors.border, backgroundColor: colors.surface }], children: [
|
|
19594
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_react_native55.View, { style: styles44.header, children: [
|
|
19595
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_react_native55.View, { style: styles44.titleRow, children: [
|
|
19596
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Icon, { name: "file-check", size: 16, color: colors.primary, strokeWidth: 2 }),
|
|
19597
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_react_native55.Text, { style: [styles44.title, { color: colors.text }], children: meta.title || t("documentRequestedLabel") || "Document Requested" })
|
|
19093
19598
|
] }),
|
|
19094
|
-
/* @__PURE__ */ (0,
|
|
19599
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
19095
19600
|
PCBadge,
|
|
19096
19601
|
{
|
|
19097
19602
|
status: STATUS_BADGE_MAP[status] || "info",
|
|
@@ -19099,30 +19604,30 @@ function DocumentRequestCard({ message, onUpload, isSubmitting, isCaseFinalized
|
|
|
19099
19604
|
}
|
|
19100
19605
|
)
|
|
19101
19606
|
] }),
|
|
19102
|
-
meta.accepted_document ? /* @__PURE__ */ (0,
|
|
19607
|
+
meta.accepted_document ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_react_native55.Text, { style: [styles44.accepted, { color: colors.textSecondary }], children: t("acceptedLabel", {
|
|
19103
19608
|
accepted: meta.accepted_document,
|
|
19104
19609
|
defaultValue: `Accepted: ${meta.accepted_document}`
|
|
19105
19610
|
}) }) : null,
|
|
19106
|
-
meta.rejection_reason ? /* @__PURE__ */ (0,
|
|
19107
|
-
/* @__PURE__ */ (0,
|
|
19611
|
+
meta.rejection_reason ? /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_react_native55.View, { style: [styles44.rejectionBox, { backgroundColor: colors.errorSoft }], children: [
|
|
19612
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_react_native55.Text, { style: [styles44.rejectionLabel, { color: colors.error }], children: [
|
|
19108
19613
|
t("rejectionReasonLabel") || "Rejection reason",
|
|
19109
19614
|
":"
|
|
19110
19615
|
] }),
|
|
19111
|
-
/* @__PURE__ */ (0,
|
|
19616
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_react_native55.Text, { style: [styles44.rejectionText, { color: colors.error }], children: meta.rejection_reason })
|
|
19112
19617
|
] }) : null,
|
|
19113
|
-
canUpload && requestEventUuid ? /* @__PURE__ */ (0,
|
|
19114
|
-
|
|
19618
|
+
canUpload && requestEventUuid ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
19619
|
+
import_react_native55.TouchableOpacity,
|
|
19115
19620
|
{
|
|
19116
|
-
style: [
|
|
19621
|
+
style: [styles44.uploadButton, { backgroundColor: colors.primary }],
|
|
19117
19622
|
onPress: () => onUpload(requestEventUuid),
|
|
19118
19623
|
disabled: isSubmitting,
|
|
19119
19624
|
activeOpacity: 0.7,
|
|
19120
|
-
children: /* @__PURE__ */ (0,
|
|
19625
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_react_native55.Text, { style: [styles44.uploadButtonText, { color: colors.primaryText }], children: isSubmitting ? t("loading") || "Loading..." : t("uploadAndSubmit") || "Upload & Submit" })
|
|
19121
19626
|
}
|
|
19122
19627
|
) : null
|
|
19123
19628
|
] });
|
|
19124
19629
|
}
|
|
19125
|
-
var
|
|
19630
|
+
var styles44 = import_react_native55.StyleSheet.create({
|
|
19126
19631
|
container: {
|
|
19127
19632
|
borderWidth: 1.5,
|
|
19128
19633
|
borderStyle: "dashed",
|
|
@@ -19175,20 +19680,20 @@ var styles42 = import_react_native53.StyleSheet.create({
|
|
|
19175
19680
|
});
|
|
19176
19681
|
|
|
19177
19682
|
// src/RedactoPrivacyCenter/components/CaseDetails/StatusEvent.tsx
|
|
19178
|
-
var
|
|
19179
|
-
var
|
|
19683
|
+
var import_react_native56 = require("react-native");
|
|
19684
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
19180
19685
|
function StatusEvent({ icon, color, bgColor, borderColor, text, subText, timestamp }) {
|
|
19181
19686
|
const { colors } = useTheme();
|
|
19182
|
-
return /* @__PURE__ */ (0,
|
|
19183
|
-
/* @__PURE__ */ (0,
|
|
19184
|
-
/* @__PURE__ */ (0,
|
|
19185
|
-
/* @__PURE__ */ (0,
|
|
19186
|
-
subText ? /* @__PURE__ */ (0,
|
|
19687
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(import_react_native56.View, { style: [styles45.container, { backgroundColor: bgColor }], children: [
|
|
19688
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_native56.View, { style: [styles45.iconBubble, { backgroundColor: `${color}1F` }], children: icon }),
|
|
19689
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(import_react_native56.View, { style: styles45.textContainer, children: [
|
|
19690
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_native56.Text, { style: [styles45.text, { color }], children: text }),
|
|
19691
|
+
subText ? /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_native56.Text, { style: [styles45.subText, { color: colors.textSecondary }], numberOfLines: 2, children: subText }) : null
|
|
19187
19692
|
] }),
|
|
19188
|
-
/* @__PURE__ */ (0,
|
|
19693
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_native56.Text, { style: [styles45.timestamp, { color: colors.textSecondary }], children: formatMessageTime(timestamp) })
|
|
19189
19694
|
] });
|
|
19190
19695
|
}
|
|
19191
|
-
var
|
|
19696
|
+
var styles45 = import_react_native56.StyleSheet.create({
|
|
19192
19697
|
container: {
|
|
19193
19698
|
flexDirection: "row",
|
|
19194
19699
|
alignItems: "center",
|
|
@@ -19227,10 +19732,10 @@ var styles43 = import_react_native54.StyleSheet.create({
|
|
|
19227
19732
|
});
|
|
19228
19733
|
|
|
19229
19734
|
// src/RedactoPrivacyCenter/components/CaseDetails/MessageItem.tsx
|
|
19230
|
-
var
|
|
19231
|
-
var CheckIcon = ({ color }) => /* @__PURE__ */ (0,
|
|
19232
|
-
var XIcon = ({ color }) => /* @__PURE__ */ (0,
|
|
19233
|
-
var RefreshIcon = ({ color }) => /* @__PURE__ */ (0,
|
|
19735
|
+
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
19736
|
+
var CheckIcon = ({ color }) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Icon, { name: "check", size: 14, color, strokeWidth: 2.6 });
|
|
19737
|
+
var XIcon = ({ color }) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Icon, { name: "x", size: 14, color, strokeWidth: 2.6 });
|
|
19738
|
+
var RefreshIcon = ({ color }) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Icon, { name: "refresh-cw", size: 14, color, strokeWidth: 2.2 });
|
|
19234
19739
|
function MessageItemImpl({
|
|
19235
19740
|
message,
|
|
19236
19741
|
onUploadForRequest,
|
|
@@ -19240,14 +19745,14 @@ function MessageItemImpl({
|
|
|
19240
19745
|
isLastInGroup = true
|
|
19241
19746
|
}) {
|
|
19242
19747
|
var _a3, _b;
|
|
19243
|
-
const { t } = (0,
|
|
19748
|
+
const { t } = (0, import_react_i18next25.useTranslation)();
|
|
19244
19749
|
const isPrincipal = message.sender_role === "data_principal";
|
|
19245
19750
|
const senderLabel = isPrincipal ? t("senderYou") || "You" : t("senderPrivacyTeam") || "Privacy Team";
|
|
19246
19751
|
switch (message.message_type) {
|
|
19247
19752
|
case "message_sent":
|
|
19248
19753
|
case "document_submitted":
|
|
19249
19754
|
case "document_replaced":
|
|
19250
|
-
return /* @__PURE__ */ (0,
|
|
19755
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
19251
19756
|
ChatBubble,
|
|
19252
19757
|
{
|
|
19253
19758
|
message,
|
|
@@ -19259,8 +19764,8 @@ function MessageItemImpl({
|
|
|
19259
19764
|
}
|
|
19260
19765
|
);
|
|
19261
19766
|
case "document_requested":
|
|
19262
|
-
return /* @__PURE__ */ (0,
|
|
19263
|
-
/* @__PURE__ */ (0,
|
|
19767
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_jsx_runtime59.Fragment, { children: [
|
|
19768
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
19264
19769
|
ChatBubble,
|
|
19265
19770
|
{
|
|
19266
19771
|
message,
|
|
@@ -19271,7 +19776,7 @@ function MessageItemImpl({
|
|
|
19271
19776
|
isLastInGroup
|
|
19272
19777
|
}
|
|
19273
19778
|
),
|
|
19274
|
-
/* @__PURE__ */ (0,
|
|
19779
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
19275
19780
|
DocumentRequestCard,
|
|
19276
19781
|
{
|
|
19277
19782
|
message,
|
|
@@ -19282,10 +19787,10 @@ function MessageItemImpl({
|
|
|
19282
19787
|
)
|
|
19283
19788
|
] });
|
|
19284
19789
|
case "document_approved":
|
|
19285
|
-
return /* @__PURE__ */ (0,
|
|
19790
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
19286
19791
|
StatusEvent,
|
|
19287
19792
|
{
|
|
19288
|
-
icon: /* @__PURE__ */ (0,
|
|
19793
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(CheckIcon, { color: "#059669" }),
|
|
19289
19794
|
color: "#059669",
|
|
19290
19795
|
bgColor: "rgba(16, 185, 129, 0.08)",
|
|
19291
19796
|
borderColor: "rgba(16, 185, 129, 0.2)",
|
|
@@ -19294,10 +19799,10 @@ function MessageItemImpl({
|
|
|
19294
19799
|
}
|
|
19295
19800
|
);
|
|
19296
19801
|
case "document_rejected":
|
|
19297
|
-
return /* @__PURE__ */ (0,
|
|
19802
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
19298
19803
|
StatusEvent,
|
|
19299
19804
|
{
|
|
19300
|
-
icon: /* @__PURE__ */ (0,
|
|
19805
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(XIcon, { color: "#DC2626" }),
|
|
19301
19806
|
color: "#DC2626",
|
|
19302
19807
|
bgColor: "rgba(220, 38, 38, 0.08)",
|
|
19303
19808
|
borderColor: "rgba(220, 38, 38, 0.2)",
|
|
@@ -19307,10 +19812,10 @@ function MessageItemImpl({
|
|
|
19307
19812
|
}
|
|
19308
19813
|
);
|
|
19309
19814
|
case "document_replacement_requested":
|
|
19310
|
-
return /* @__PURE__ */ (0,
|
|
19815
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
19311
19816
|
StatusEvent,
|
|
19312
19817
|
{
|
|
19313
|
-
icon: /* @__PURE__ */ (0,
|
|
19818
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(RefreshIcon, { color: "#D97706" }),
|
|
19314
19819
|
color: "#D97706",
|
|
19315
19820
|
bgColor: "rgba(245, 158, 11, 0.08)",
|
|
19316
19821
|
borderColor: "rgba(245, 158, 11, 0.2)",
|
|
@@ -19320,7 +19825,7 @@ function MessageItemImpl({
|
|
|
19320
19825
|
}
|
|
19321
19826
|
);
|
|
19322
19827
|
default:
|
|
19323
|
-
return /* @__PURE__ */ (0,
|
|
19828
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
19324
19829
|
ChatBubble,
|
|
19325
19830
|
{
|
|
19326
19831
|
message,
|
|
@@ -19333,13 +19838,13 @@ function MessageItemImpl({
|
|
|
19333
19838
|
);
|
|
19334
19839
|
}
|
|
19335
19840
|
}
|
|
19336
|
-
var MessageItem =
|
|
19841
|
+
var MessageItem = import_react38.default.memo(MessageItemImpl);
|
|
19337
19842
|
|
|
19338
19843
|
// src/RedactoPrivacyCenter/components/CaseDetails/MessageComposer.tsx
|
|
19339
|
-
var
|
|
19340
|
-
var
|
|
19341
|
-
var
|
|
19342
|
-
var
|
|
19844
|
+
var import_react39 = require("react");
|
|
19845
|
+
var import_react_native57 = require("react-native");
|
|
19846
|
+
var import_react_i18next26 = require("react-i18next");
|
|
19847
|
+
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
19343
19848
|
function MessageComposer({
|
|
19344
19849
|
messageText,
|
|
19345
19850
|
onMessageTextChange,
|
|
@@ -19351,15 +19856,15 @@ function MessageComposer({
|
|
|
19351
19856
|
isUploading,
|
|
19352
19857
|
isCaseFinalized = false
|
|
19353
19858
|
}) {
|
|
19354
|
-
const { t } = (0,
|
|
19859
|
+
const { t } = (0, import_react_i18next26.useTranslation)();
|
|
19355
19860
|
const { colors } = useTheme();
|
|
19356
19861
|
const canSend = (messageText.trim().length > 0 || pendingUpload) && !isSending && !isUploading && !isCaseFinalized;
|
|
19357
|
-
const activate = (0,
|
|
19358
|
-
(0,
|
|
19359
|
-
|
|
19862
|
+
const activate = (0, import_react39.useRef)(new import_react_native57.Animated.Value(canSend ? 1 : 0)).current;
|
|
19863
|
+
(0, import_react39.useEffect)(() => {
|
|
19864
|
+
import_react_native57.Animated.timing(activate, {
|
|
19360
19865
|
toValue: canSend ? 1 : 0,
|
|
19361
19866
|
duration: 180,
|
|
19362
|
-
easing:
|
|
19867
|
+
easing: import_react_native57.Easing.out(import_react_native57.Easing.quad),
|
|
19363
19868
|
useNativeDriver: false
|
|
19364
19869
|
}).start();
|
|
19365
19870
|
}, [canSend, activate]);
|
|
@@ -19367,30 +19872,30 @@ function MessageComposer({
|
|
|
19367
19872
|
inputRange: [0, 1],
|
|
19368
19873
|
outputRange: [colors.border, colors.primary]
|
|
19369
19874
|
});
|
|
19370
|
-
const pressScale = (0,
|
|
19875
|
+
const pressScale = (0, import_react39.useRef)(new import_react_native57.Animated.Value(1)).current;
|
|
19371
19876
|
const handlePressIn = () => {
|
|
19372
|
-
|
|
19877
|
+
import_react_native57.Animated.spring(pressScale, { toValue: 0.88, useNativeDriver: true, speed: 30, bounciness: 0 }).start();
|
|
19373
19878
|
};
|
|
19374
19879
|
const handlePressOut = () => {
|
|
19375
|
-
|
|
19880
|
+
import_react_native57.Animated.spring(pressScale, { toValue: 1, useNativeDriver: true, speed: 20, bounciness: 6 }).start();
|
|
19376
19881
|
};
|
|
19377
|
-
const pillIn = (0,
|
|
19378
|
-
(0,
|
|
19379
|
-
|
|
19882
|
+
const pillIn = (0, import_react39.useRef)(new import_react_native57.Animated.Value(0)).current;
|
|
19883
|
+
(0, import_react39.useEffect)(() => {
|
|
19884
|
+
import_react_native57.Animated.timing(pillIn, {
|
|
19380
19885
|
toValue: pendingUpload ? 1 : 0,
|
|
19381
19886
|
duration: 220,
|
|
19382
|
-
easing:
|
|
19887
|
+
easing: import_react_native57.Easing.out(import_react_native57.Easing.cubic),
|
|
19383
19888
|
useNativeDriver: true
|
|
19384
19889
|
}).start();
|
|
19385
19890
|
}, [pendingUpload, pillIn]);
|
|
19386
19891
|
const pillOpacity = pillIn;
|
|
19387
19892
|
const pillTranslateY = pillIn.interpolate({ inputRange: [0, 1], outputRange: [8, 0] });
|
|
19388
|
-
return /* @__PURE__ */ (0,
|
|
19389
|
-
pendingUpload && /* @__PURE__ */ (0,
|
|
19390
|
-
|
|
19893
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(import_react_native57.View, { style: [styles46.container, { borderTopColor: colors.hairline, backgroundColor: colors.canvasSubtle, paddingBottom: spacing.sm }], children: [
|
|
19894
|
+
pendingUpload && /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
|
|
19895
|
+
import_react_native57.Animated.View,
|
|
19391
19896
|
{
|
|
19392
19897
|
style: [
|
|
19393
|
-
|
|
19898
|
+
styles46.uploadPill,
|
|
19394
19899
|
{
|
|
19395
19900
|
backgroundColor: colors.primarySoft,
|
|
19396
19901
|
opacity: pillOpacity,
|
|
@@ -19398,34 +19903,34 @@ function MessageComposer({
|
|
|
19398
19903
|
}
|
|
19399
19904
|
],
|
|
19400
19905
|
children: [
|
|
19401
|
-
/* @__PURE__ */ (0,
|
|
19402
|
-
/* @__PURE__ */ (0,
|
|
19906
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: "file", size: 14, color: colors.primary }),
|
|
19907
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(import_react_native57.Text, { style: [styles46.uploadFileName, { color: colors.primary }], numberOfLines: 1, children: [
|
|
19403
19908
|
pendingUpload.file_name,
|
|
19404
19909
|
" (",
|
|
19405
19910
|
formatFileSize(pendingUpload.file_size),
|
|
19406
19911
|
")"
|
|
19407
19912
|
] }),
|
|
19408
|
-
/* @__PURE__ */ (0,
|
|
19913
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_native57.TouchableOpacity, { onPress: onRemovePendingUpload, hitSlop: { top: 8, bottom: 8, left: 8, right: 8 }, children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: "x", size: 14, color: colors.textSecondary, strokeWidth: 2.4 }) })
|
|
19409
19914
|
]
|
|
19410
19915
|
}
|
|
19411
19916
|
),
|
|
19412
|
-
/* @__PURE__ */ (0,
|
|
19413
|
-
/* @__PURE__ */ (0,
|
|
19414
|
-
|
|
19917
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(import_react_native57.View, { style: [styles46.pill, { backgroundColor: colors.surface, borderColor: colors.border }, isCaseFinalized && styles46.pillDisabled], children: [
|
|
19918
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
19919
|
+
import_react_native57.TouchableOpacity,
|
|
19415
19920
|
{
|
|
19416
|
-
style:
|
|
19921
|
+
style: styles46.attachButton,
|
|
19417
19922
|
onPress: onAttachClick,
|
|
19418
19923
|
disabled: isUploading || isCaseFinalized,
|
|
19419
19924
|
activeOpacity: 0.6,
|
|
19420
19925
|
hitSlop: DEFAULT_HIT_SLOP,
|
|
19421
19926
|
accessibilityLabel: t("uploadFile") || "Attach file",
|
|
19422
|
-
children: isUploading ? /* @__PURE__ */ (0,
|
|
19927
|
+
children: isUploading ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_native57.ActivityIndicator, { size: "small", color: colors.primary }) : /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: "paperclip", size: 20, color: colors.textSecondary })
|
|
19423
19928
|
}
|
|
19424
19929
|
),
|
|
19425
|
-
/* @__PURE__ */ (0,
|
|
19426
|
-
|
|
19930
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
19931
|
+
import_react_native57.TextInput,
|
|
19427
19932
|
{
|
|
19428
|
-
style: [
|
|
19933
|
+
style: [styles46.input, { color: colors.text }],
|
|
19429
19934
|
value: messageText,
|
|
19430
19935
|
onChangeText: onMessageTextChange,
|
|
19431
19936
|
placeholder: t("messageInputPlaceholder", { defaultValue: "Message\u2026" }),
|
|
@@ -19435,8 +19940,8 @@ function MessageComposer({
|
|
|
19435
19940
|
editable: !isSending && !isCaseFinalized
|
|
19436
19941
|
}
|
|
19437
19942
|
),
|
|
19438
|
-
/* @__PURE__ */ (0,
|
|
19439
|
-
|
|
19943
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_native57.Animated.View, { style: { transform: [{ scale: pressScale }] }, children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
19944
|
+
import_react_native57.TouchableOpacity,
|
|
19440
19945
|
{
|
|
19441
19946
|
onPress: onSend,
|
|
19442
19947
|
onPressIn: handlePressIn,
|
|
@@ -19444,15 +19949,15 @@ function MessageComposer({
|
|
|
19444
19949
|
disabled: !canSend,
|
|
19445
19950
|
activeOpacity: 0.85,
|
|
19446
19951
|
accessibilityLabel: t("send") || "Send",
|
|
19447
|
-
children: /* @__PURE__ */ (0,
|
|
19952
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_native57.Animated.View, { style: [styles46.sendButton, { backgroundColor: sendBgColor }], children: isSending ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_native57.ActivityIndicator, { size: "small", color: colors.primaryText }) : /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_react_native57.View, { style: styles46.sendIcon, children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Icon, { name: "send", size: 18, color: canSend ? colors.primaryText : colors.textSecondary }) }) })
|
|
19448
19953
|
}
|
|
19449
19954
|
) })
|
|
19450
19955
|
] })
|
|
19451
19956
|
] });
|
|
19452
19957
|
}
|
|
19453
|
-
var
|
|
19958
|
+
var styles46 = import_react_native57.StyleSheet.create({
|
|
19454
19959
|
container: {
|
|
19455
|
-
borderTopWidth:
|
|
19960
|
+
borderTopWidth: import_react_native57.StyleSheet.hairlineWidth,
|
|
19456
19961
|
paddingHorizontal: spacing.md,
|
|
19457
19962
|
paddingVertical: spacing.sm
|
|
19458
19963
|
},
|
|
@@ -19475,7 +19980,7 @@ var styles44 = import_react_native55.StyleSheet.create({
|
|
|
19475
19980
|
pill: {
|
|
19476
19981
|
flexDirection: "row",
|
|
19477
19982
|
alignItems: "center",
|
|
19478
|
-
borderWidth:
|
|
19983
|
+
borderWidth: import_react_native57.StyleSheet.hairlineWidth,
|
|
19479
19984
|
borderRadius: radii.xxl + 4,
|
|
19480
19985
|
paddingHorizontal: spacing.xs + 2,
|
|
19481
19986
|
paddingVertical: spacing.xs,
|
|
@@ -19514,7 +20019,7 @@ var styles44 = import_react_native55.StyleSheet.create({
|
|
|
19514
20019
|
});
|
|
19515
20020
|
|
|
19516
20021
|
// src/RedactoPrivacyCenter/components/CaseDetails/MessagesTab.tsx
|
|
19517
|
-
var
|
|
20022
|
+
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
19518
20023
|
var STREAK_GAP_MS = 5 * 60 * 1e3;
|
|
19519
20024
|
function isStreakBoundary(a, b) {
|
|
19520
20025
|
if (!a || !b) return true;
|
|
@@ -19544,11 +20049,11 @@ function sameDay(a, b) {
|
|
|
19544
20049
|
}
|
|
19545
20050
|
var MESSAGE_POLL_INTERVAL = 3e4;
|
|
19546
20051
|
function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
19547
|
-
const { t } = (0,
|
|
20052
|
+
const { t } = (0, import_react_i18next27.useTranslation)();
|
|
19548
20053
|
const { accessToken, refreshToken, email, organizationId, workspaceId, onError, updateTokens } = useAuth();
|
|
19549
20054
|
const { consentClient } = useBaseUrl();
|
|
19550
20055
|
const { colors } = useTheme();
|
|
19551
|
-
const authContext = (0,
|
|
20056
|
+
const authContext = (0, import_react40.useMemo)(() => ({
|
|
19552
20057
|
accessToken,
|
|
19553
20058
|
refreshToken,
|
|
19554
20059
|
onError,
|
|
@@ -19560,13 +20065,13 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19560
20065
|
caseUuid,
|
|
19561
20066
|
authContext
|
|
19562
20067
|
);
|
|
19563
|
-
const [messageText, setMessageText] = (0,
|
|
19564
|
-
const [pendingUpload, setPendingUpload] = (0,
|
|
19565
|
-
const [isSending, setIsSending] = (0,
|
|
19566
|
-
const [isUploading, setIsUploading] = (0,
|
|
19567
|
-
const [isSubmittingForRequest, setIsSubmittingForRequest] = (0,
|
|
19568
|
-
const flatListRef = (0,
|
|
19569
|
-
(0,
|
|
20068
|
+
const [messageText, setMessageText] = (0, import_react40.useState)("");
|
|
20069
|
+
const [pendingUpload, setPendingUpload] = (0, import_react40.useState)(null);
|
|
20070
|
+
const [isSending, setIsSending] = (0, import_react40.useState)(false);
|
|
20071
|
+
const [isUploading, setIsUploading] = (0, import_react40.useState)(false);
|
|
20072
|
+
const [isSubmittingForRequest, setIsSubmittingForRequest] = (0, import_react40.useState)(false);
|
|
20073
|
+
const flatListRef = (0, import_react40.useRef)(null);
|
|
20074
|
+
(0, import_react40.useEffect)(() => {
|
|
19570
20075
|
if (messages && messages.length > 0) {
|
|
19571
20076
|
setTimeout(() => {
|
|
19572
20077
|
var _a3;
|
|
@@ -19574,16 +20079,19 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19574
20079
|
}, 100);
|
|
19575
20080
|
}
|
|
19576
20081
|
}, [messages == null ? void 0 : messages.length]);
|
|
19577
|
-
const refetchRef = (0,
|
|
20082
|
+
const refetchRef = (0, import_react40.useRef)(refetch);
|
|
19578
20083
|
refetchRef.current = refetch;
|
|
19579
|
-
(0,
|
|
20084
|
+
const authContextRef = (0, import_react40.useRef)(authContext);
|
|
20085
|
+
authContextRef.current = authContext;
|
|
20086
|
+
(0, import_react40.useEffect)(() => {
|
|
19580
20087
|
if (isCaseFinalized) return;
|
|
19581
20088
|
const id = setInterval(() => {
|
|
20089
|
+
if (isRefreshBlocked(authContextRef.current)) return;
|
|
19582
20090
|
refetchRef.current();
|
|
19583
20091
|
}, MESSAGE_POLL_INTERVAL);
|
|
19584
20092
|
return () => clearInterval(id);
|
|
19585
20093
|
}, [isCaseFinalized]);
|
|
19586
|
-
const handleSend = (0,
|
|
20094
|
+
const handleSend = (0, import_react40.useCallback)(async () => {
|
|
19587
20095
|
if (isCaseFinalized) return;
|
|
19588
20096
|
if (!messageText.trim() && !pendingUpload) return;
|
|
19589
20097
|
if (!organizationId || !workspaceId) return;
|
|
@@ -19608,7 +20116,7 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19608
20116
|
setIsSending(false);
|
|
19609
20117
|
}
|
|
19610
20118
|
}, [isCaseFinalized, messageText, pendingUpload, organizationId, workspaceId, caseUuid, authContext, consentClient, refetch]);
|
|
19611
|
-
const handleAttach = (0,
|
|
20119
|
+
const handleAttach = (0, import_react40.useCallback)(async () => {
|
|
19612
20120
|
if (isCaseFinalized) return;
|
|
19613
20121
|
if (!organizationId || !workspaceId) return;
|
|
19614
20122
|
try {
|
|
@@ -19643,10 +20151,10 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19643
20151
|
setIsUploading(false);
|
|
19644
20152
|
}
|
|
19645
20153
|
}, [isCaseFinalized, organizationId, workspaceId, caseUuid, authContext, consentClient]);
|
|
19646
|
-
const handleUploadForRequest = (0,
|
|
20154
|
+
const handleUploadForRequest = (0, import_react40.useCallback)((_requestEventUuid) => {
|
|
19647
20155
|
handleAttach();
|
|
19648
20156
|
}, [handleAttach]);
|
|
19649
|
-
const messagesList = (0,
|
|
20157
|
+
const messagesList = (0, import_react40.useMemo)(() => {
|
|
19650
20158
|
const list = messages ? [...messages] : [];
|
|
19651
20159
|
list.sort((a, b) => {
|
|
19652
20160
|
const ta = new Date(a.created_at).getTime();
|
|
@@ -19655,17 +20163,17 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19655
20163
|
});
|
|
19656
20164
|
return list;
|
|
19657
20165
|
}, [messages]);
|
|
19658
|
-
const keyExtractor = (0,
|
|
19659
|
-
const renderMessage = (0,
|
|
20166
|
+
const keyExtractor = (0, import_react40.useCallback)((item) => item.uuid, []);
|
|
20167
|
+
const renderMessage = (0, import_react40.useCallback)(
|
|
19660
20168
|
({ item, index }) => {
|
|
19661
20169
|
const prev = index > 0 ? messagesList[index - 1] : void 0;
|
|
19662
20170
|
const next = index < messagesList.length - 1 ? messagesList[index + 1] : void 0;
|
|
19663
20171
|
const isFirstInGroup = isStreakBoundary(prev, item);
|
|
19664
20172
|
const isLastInGroup = isStreakBoundary(item, next);
|
|
19665
20173
|
const dateSeparator = getDateSeparator(prev == null ? void 0 : prev.created_at, item.created_at, t);
|
|
19666
|
-
return /* @__PURE__ */ (0,
|
|
19667
|
-
dateSeparator ? /* @__PURE__ */ (0,
|
|
19668
|
-
/* @__PURE__ */ (0,
|
|
20174
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_jsx_runtime61.Fragment, { children: [
|
|
20175
|
+
dateSeparator ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_native58.View, { style: styles47.daySeparator, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_native58.View, { style: [styles47.dayPill, { backgroundColor: colors.surfaceAlt }], children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_native58.Text, { style: [styles47.dayPillText, { color: colors.textSecondary }], children: dateSeparator }) }) }) : null,
|
|
20176
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
19669
20177
|
MessageItem,
|
|
19670
20178
|
{
|
|
19671
20179
|
message: item,
|
|
@@ -19681,32 +20189,32 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19681
20189
|
[messagesList, handleUploadForRequest, isSubmittingForRequest, isCaseFinalized, colors, t]
|
|
19682
20190
|
);
|
|
19683
20191
|
if (isLoading) {
|
|
19684
|
-
return /* @__PURE__ */ (0,
|
|
20192
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_native58.View, { style: styles47.centered, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_native58.ActivityIndicator, { size: "large", color: colors.primary }) });
|
|
19685
20193
|
}
|
|
19686
20194
|
if (error) {
|
|
19687
|
-
return /* @__PURE__ */ (0,
|
|
20195
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_native58.View, { style: styles47.centered, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_native58.Text, { style: [styles47.errorText, { color: colors.error }], children: t("errorLoadingMessages") || "Error loading messages" }) });
|
|
19688
20196
|
}
|
|
19689
|
-
return /* @__PURE__ */ (0,
|
|
19690
|
-
/* @__PURE__ */ (0,
|
|
19691
|
-
/* @__PURE__ */ (0,
|
|
19692
|
-
/* @__PURE__ */ (0,
|
|
20197
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_react_native58.View, { style: [styles47.container, { backgroundColor: colors.canvasSubtle }], children: [
|
|
20198
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_react_native58.View, { style: styles47.secureRow, children: [
|
|
20199
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Icon, { name: "lock", size: 12, color: colors.textSecondary, strokeWidth: 2.2 }),
|
|
20200
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_native58.Text, { style: [styles47.secureText, { color: colors.textSecondary }], children: isCaseFinalized ? t("caseFinalizedMessagesTooltip") || "This case is finalized \u2014 messages can no longer be sent." : `${t("private", { defaultValue: "Private" })} \xB7 ${t("senderPrivacyTeam") || "Privacy Team"}` })
|
|
19693
20201
|
] }),
|
|
19694
|
-
/* @__PURE__ */ (0,
|
|
19695
|
-
|
|
20202
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
20203
|
+
import_react_native58.FlatList,
|
|
19696
20204
|
{
|
|
19697
20205
|
ref: flatListRef,
|
|
19698
|
-
style:
|
|
20206
|
+
style: styles47.list,
|
|
19699
20207
|
data: messagesList,
|
|
19700
20208
|
keyExtractor,
|
|
19701
20209
|
renderItem: renderMessage,
|
|
19702
20210
|
contentContainerStyle: [
|
|
19703
|
-
|
|
19704
|
-
messagesList.length ?
|
|
20211
|
+
styles47.messagesList,
|
|
20212
|
+
messagesList.length ? styles47.messagesListFill : styles47.messagesListCenter
|
|
19705
20213
|
],
|
|
19706
|
-
ListEmptyComponent: /* @__PURE__ */ (0,
|
|
19707
|
-
/* @__PURE__ */ (0,
|
|
19708
|
-
/* @__PURE__ */ (0,
|
|
19709
|
-
/* @__PURE__ */ (0,
|
|
20214
|
+
ListEmptyComponent: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_react_native58.View, { style: styles47.emptyContainer, children: [
|
|
20215
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_native58.View, { style: [styles47.emptyIconWrap, { backgroundColor: colors.primarySoft }], children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Icon, { name: "messages-square", size: 28, color: colors.primary, strokeWidth: 2 }) }),
|
|
20216
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_native58.Text, { style: [styles47.emptyTitle, { color: colors.text }], children: t("noMessagesYet") || "No messages yet" }),
|
|
20217
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_native58.Text, { style: [styles47.emptySubtitle, { color: colors.textSecondary }], children: t("noMessagesYetSubtitle", "Start the conversation below") })
|
|
19710
20218
|
] }),
|
|
19711
20219
|
onContentSizeChange: () => {
|
|
19712
20220
|
var _a3;
|
|
@@ -19718,7 +20226,7 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19718
20226
|
removeClippedSubviews: true
|
|
19719
20227
|
}
|
|
19720
20228
|
),
|
|
19721
|
-
/* @__PURE__ */ (0,
|
|
20229
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
19722
20230
|
MessageComposer,
|
|
19723
20231
|
{
|
|
19724
20232
|
messageText,
|
|
@@ -19734,7 +20242,7 @@ function MessagesTab({ caseUuid, isCaseFinalized = false }) {
|
|
|
19734
20242
|
)
|
|
19735
20243
|
] });
|
|
19736
20244
|
}
|
|
19737
|
-
var
|
|
20245
|
+
var styles47 = import_react_native58.StyleSheet.create({
|
|
19738
20246
|
container: {
|
|
19739
20247
|
flex: 1
|
|
19740
20248
|
},
|
|
@@ -19817,17 +20325,17 @@ var styles45 = import_react_native56.StyleSheet.create({
|
|
|
19817
20325
|
});
|
|
19818
20326
|
|
|
19819
20327
|
// src/RedactoPrivacyCenter/components/CaseDetails/CaseDetailsPage.tsx
|
|
19820
|
-
var
|
|
20328
|
+
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
19821
20329
|
function CaseDetailsPage() {
|
|
19822
20330
|
var _a3, _b;
|
|
19823
|
-
const { t } = (0,
|
|
20331
|
+
const { t } = (0, import_react_i18next28.useTranslation)();
|
|
19824
20332
|
const { navigateTo, selectedCase, setSelectedCase, pendingCaseUuid } = useInternalNavigation();
|
|
19825
20333
|
const { accessToken, refreshToken, email, organizationId, workspaceId, onError, updateTokens } = useAuth();
|
|
19826
20334
|
const { colors } = useTheme();
|
|
19827
20335
|
const { keyboardOffset } = usePrivacyCenterInsets();
|
|
19828
20336
|
const requestTypeLabels = useRequestTypeLabels();
|
|
19829
|
-
const [activeTab, setActiveTab] = (0,
|
|
19830
|
-
const authContext = (0,
|
|
20337
|
+
const [activeTab, setActiveTab] = (0, import_react41.useState)("request-details");
|
|
20338
|
+
const authContext = (0, import_react41.useMemo)(() => ({
|
|
19831
20339
|
accessToken,
|
|
19832
20340
|
refreshToken,
|
|
19833
20341
|
onError,
|
|
@@ -19840,7 +20348,7 @@ function CaseDetailsPage() {
|
|
|
19840
20348
|
email != null ? email : void 0,
|
|
19841
20349
|
authContext
|
|
19842
20350
|
);
|
|
19843
|
-
(0,
|
|
20351
|
+
(0, import_react41.useEffect)(() => {
|
|
19844
20352
|
if (!cases) return;
|
|
19845
20353
|
if (cases.length === 0) {
|
|
19846
20354
|
navigateTo("form");
|
|
@@ -19854,33 +20362,33 @@ function CaseDetailsPage() {
|
|
|
19854
20362
|
navigateTo("form");
|
|
19855
20363
|
}
|
|
19856
20364
|
}, [cases, targetUuid, setSelectedCase, navigateTo]);
|
|
19857
|
-
(0,
|
|
20365
|
+
(0, import_react41.useEffect)(() => {
|
|
19858
20366
|
if (!selectedCase && !targetUuid && !isLoading) {
|
|
19859
20367
|
navigateTo("form");
|
|
19860
20368
|
}
|
|
19861
20369
|
}, [selectedCase, targetUuid, isLoading, navigateTo]);
|
|
19862
20370
|
if (!selectedCase) {
|
|
19863
|
-
return /* @__PURE__ */ (0,
|
|
20371
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_native59.View, { style: styles48.centered, children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_native59.ActivityIndicator, { size: "large", color: colors.primary }) : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_native59.Text, { style: [styles48.emptyText, { color: colors.textSecondary }], children: t("noCasesYet") || "No case selected" }) });
|
|
19864
20372
|
}
|
|
19865
20373
|
const requestTypeLabel = requestTypeLabels[(_b = selectedCase.request_type) == null ? void 0 : _b.toUpperCase()] || selectedCase.request_type_display || formatCaseStatus(selectedCase.request_type || "");
|
|
19866
20374
|
const tabs = [
|
|
19867
20375
|
{ id: "request-details", label: t("requestDetails") || "Request Details" },
|
|
19868
20376
|
{ id: "messages", label: t("messages") || "Messages" }
|
|
19869
20377
|
];
|
|
19870
|
-
return /* @__PURE__ */ (0,
|
|
20378
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
|
|
19871
20379
|
KeyboardAvoidingViewCompat,
|
|
19872
20380
|
{
|
|
19873
|
-
style: [
|
|
20381
|
+
style: [styles48.container, { backgroundColor: colors.canvasSubtle }],
|
|
19874
20382
|
behavior: "padding",
|
|
19875
|
-
keyboardVerticalOffset:
|
|
20383
|
+
keyboardVerticalOffset: import_react_native59.Platform.OS === "ios" ? keyboardOffset : 0,
|
|
19876
20384
|
children: [
|
|
19877
|
-
/* @__PURE__ */ (0,
|
|
19878
|
-
/* @__PURE__ */ (0,
|
|
19879
|
-
/* @__PURE__ */ (0,
|
|
19880
|
-
/* @__PURE__ */ (0,
|
|
19881
|
-
/* @__PURE__ */ (0,
|
|
19882
|
-
/* @__PURE__ */ (0,
|
|
19883
|
-
/* @__PURE__ */ (0,
|
|
20385
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_react_native59.View, { style: styles48.headerWrap, children: [
|
|
20386
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_native59.View, { style: [styles48.heroCard, elevation.card, { backgroundColor: colors.surface }], children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_react_native59.View, { style: styles48.heroInner, children: [
|
|
20387
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_native59.View, { style: [styles48.accent, { backgroundColor: getCaseStatusColor(selectedCase.status, colors) }] }),
|
|
20388
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_react_native59.View, { style: styles48.heroBody, children: [
|
|
20389
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_react_native59.View, { style: styles48.heroTopRow, children: [
|
|
20390
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_native59.View, { style: [styles48.typeChip, { backgroundColor: withAlpha(getRequestTypeColor(selectedCase.request_type, colors), 0.12) }], children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_native59.Text, { style: [styles48.typeChipText, { color: getRequestTypeColor(selectedCase.request_type, colors) }], numberOfLines: 1, children: requestTypeLabel }) }),
|
|
20391
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
19884
20392
|
PCBadge,
|
|
19885
20393
|
{
|
|
19886
20394
|
status: getCaseStatusVariant(selectedCase.status),
|
|
@@ -19889,10 +20397,10 @@ function CaseDetailsPage() {
|
|
|
19889
20397
|
}
|
|
19890
20398
|
)
|
|
19891
20399
|
] }),
|
|
19892
|
-
/* @__PURE__ */ (0,
|
|
20400
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_native59.Text, { style: [styles48.caseId, { color: colors.text }], numberOfLines: 1, children: selectedCase.case_id })
|
|
19893
20401
|
] })
|
|
19894
20402
|
] }) }),
|
|
19895
|
-
/* @__PURE__ */ (0,
|
|
20403
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
19896
20404
|
Segmented,
|
|
19897
20405
|
{
|
|
19898
20406
|
options: tabs.map((tab) => ({ value: tab.id, label: tab.label })),
|
|
@@ -19901,18 +20409,18 @@ function CaseDetailsPage() {
|
|
|
19901
20409
|
}
|
|
19902
20410
|
)
|
|
19903
20411
|
] }),
|
|
19904
|
-
/* @__PURE__ */ (0,
|
|
20412
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_native59.View, { style: styles48.tabContent, children: activeTab === "request-details" ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
19905
20413
|
RequestDetailsTab,
|
|
19906
20414
|
{
|
|
19907
20415
|
selectedCase,
|
|
19908
20416
|
requestTypeLabel
|
|
19909
20417
|
}
|
|
19910
|
-
) : /* @__PURE__ */ (0,
|
|
20418
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(MessagesTab, { caseUuid: selectedCase.uuid, isCaseFinalized: isTerminalCaseStatus(selectedCase.status) }) })
|
|
19911
20419
|
]
|
|
19912
20420
|
}
|
|
19913
20421
|
);
|
|
19914
20422
|
}
|
|
19915
|
-
var
|
|
20423
|
+
var styles48 = import_react_native59.StyleSheet.create({
|
|
19916
20424
|
container: {
|
|
19917
20425
|
flex: 1
|
|
19918
20426
|
},
|
|
@@ -19977,36 +20485,36 @@ var styles46 = import_react_native57.StyleSheet.create({
|
|
|
19977
20485
|
});
|
|
19978
20486
|
|
|
19979
20487
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationsScreen.tsx
|
|
19980
|
-
var
|
|
19981
|
-
var
|
|
19982
|
-
var
|
|
20488
|
+
var import_react44 = require("react");
|
|
20489
|
+
var import_react_native65 = require("react-native");
|
|
20490
|
+
var import_react_i18next30 = require("react-i18next");
|
|
19983
20491
|
|
|
19984
20492
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationRow.tsx
|
|
19985
|
-
var
|
|
19986
|
-
var
|
|
20493
|
+
var import_react_native63 = require("react-native");
|
|
20494
|
+
var import_react_i18next29 = require("react-i18next");
|
|
19987
20495
|
|
|
19988
20496
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationCTAButton.tsx
|
|
19989
|
-
var
|
|
19990
|
-
var
|
|
20497
|
+
var import_react_native60 = require("react-native");
|
|
20498
|
+
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
19991
20499
|
var NotificationCTAButton = ({ cta, onPress }) => {
|
|
19992
20500
|
const { colors } = useTheme();
|
|
19993
20501
|
const tone = cta.style === "danger" ? colors.error : colors.primary;
|
|
19994
20502
|
const isPrimary = cta.style === "primary" || cta.style === "danger";
|
|
19995
|
-
return /* @__PURE__ */ (0,
|
|
19996
|
-
|
|
20503
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
20504
|
+
import_react_native60.TouchableOpacity,
|
|
19997
20505
|
{
|
|
19998
20506
|
onPress,
|
|
19999
20507
|
activeOpacity: 0.7,
|
|
20000
20508
|
style: [
|
|
20001
|
-
|
|
20509
|
+
styles49.button,
|
|
20002
20510
|
isPrimary ? { backgroundColor: tone } : { backgroundColor: colors.primarySoft }
|
|
20003
20511
|
],
|
|
20004
20512
|
accessibilityRole: "button",
|
|
20005
|
-
children: /* @__PURE__ */ (0,
|
|
20513
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_react_native60.Text, { style: [styles49.label, { color: isPrimary ? colors.primaryText : colors.primary }], numberOfLines: 1, children: cta.label })
|
|
20006
20514
|
}
|
|
20007
20515
|
);
|
|
20008
20516
|
};
|
|
20009
|
-
var
|
|
20517
|
+
var styles49 = import_react_native60.StyleSheet.create({
|
|
20010
20518
|
button: {
|
|
20011
20519
|
paddingHorizontal: spacing.lg,
|
|
20012
20520
|
paddingVertical: spacing.sm,
|
|
@@ -20021,8 +20529,8 @@ var styles47 = import_react_native58.StyleSheet.create({
|
|
|
20021
20529
|
});
|
|
20022
20530
|
|
|
20023
20531
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationIcon.tsx
|
|
20024
|
-
var
|
|
20025
|
-
var
|
|
20532
|
+
var import_react_native61 = require("react-native");
|
|
20533
|
+
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
20026
20534
|
var CATEGORY_ICON = {
|
|
20027
20535
|
guardian: "user-round",
|
|
20028
20536
|
consent: "clock",
|
|
@@ -20035,18 +20543,18 @@ var NotificationIcon = ({ notificationType, size = 40 }) => {
|
|
|
20035
20543
|
var _a3;
|
|
20036
20544
|
const category = (_a3 = TYPE_TO_ICON_CATEGORY[notificationType]) != null ? _a3 : "system";
|
|
20037
20545
|
const color = ICON_COLORS[category];
|
|
20038
|
-
return /* @__PURE__ */ (0,
|
|
20039
|
-
|
|
20546
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
20547
|
+
import_react_native61.View,
|
|
20040
20548
|
{
|
|
20041
20549
|
style: [
|
|
20042
|
-
|
|
20550
|
+
styles50.wrap,
|
|
20043
20551
|
{ width: size, height: size, borderRadius: radii.md, backgroundColor: withAlpha(color, 0.13) }
|
|
20044
20552
|
],
|
|
20045
|
-
children: /* @__PURE__ */ (0,
|
|
20553
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Icon, { name: CATEGORY_ICON[category], size: Math.round(size * 0.5), color, strokeWidth: 2 })
|
|
20046
20554
|
}
|
|
20047
20555
|
);
|
|
20048
20556
|
};
|
|
20049
|
-
var
|
|
20557
|
+
var styles50 = import_react_native61.StyleSheet.create({
|
|
20050
20558
|
wrap: {
|
|
20051
20559
|
alignItems: "center",
|
|
20052
20560
|
justifyContent: "center"
|
|
@@ -20054,15 +20562,15 @@ var styles48 = import_react_native59.StyleSheet.create({
|
|
|
20054
20562
|
});
|
|
20055
20563
|
|
|
20056
20564
|
// src/RedactoPrivacyCenter/components/NotificationHub/SwipeableRow.tsx
|
|
20057
|
-
var
|
|
20058
|
-
var
|
|
20059
|
-
var
|
|
20565
|
+
var import_react42 = require("react");
|
|
20566
|
+
var import_react_native62 = require("react-native");
|
|
20567
|
+
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
20060
20568
|
var ACTION_WIDTH = 80;
|
|
20061
20569
|
var CLAIM_THRESHOLD = 8;
|
|
20062
20570
|
var SwipeableRow = ({ actions, background, children }) => {
|
|
20063
20571
|
const { colors } = useTheme();
|
|
20064
|
-
const translateX = (0,
|
|
20065
|
-
const baseX = (0,
|
|
20572
|
+
const translateX = (0, import_react42.useRef)(new import_react_native62.Animated.Value(0)).current;
|
|
20573
|
+
const baseX = (0, import_react42.useRef)(0);
|
|
20066
20574
|
const maxOpen = actions.length * ACTION_WIDTH;
|
|
20067
20575
|
const toneColor2 = {
|
|
20068
20576
|
primary: colors.primary,
|
|
@@ -20071,10 +20579,10 @@ var SwipeableRow = ({ actions, background, children }) => {
|
|
|
20071
20579
|
};
|
|
20072
20580
|
const settle = (to) => {
|
|
20073
20581
|
baseX.current = to;
|
|
20074
|
-
|
|
20582
|
+
import_react_native62.Animated.spring(translateX, { toValue: to, useNativeDriver: true, bounciness: 0, speed: 18 }).start();
|
|
20075
20583
|
};
|
|
20076
|
-
const panResponder = (0,
|
|
20077
|
-
() =>
|
|
20584
|
+
const panResponder = (0, import_react42.useMemo)(
|
|
20585
|
+
() => import_react_native62.PanResponder.create({
|
|
20078
20586
|
onMoveShouldSetPanResponder: (_, g) => {
|
|
20079
20587
|
const horizontal = Math.abs(g.dx) > Math.abs(g.dy) * 1.5;
|
|
20080
20588
|
if (!horizontal) return false;
|
|
@@ -20095,37 +20603,37 @@ var SwipeableRow = ({ actions, background, children }) => {
|
|
|
20095
20603
|
[maxOpen]
|
|
20096
20604
|
);
|
|
20097
20605
|
if (actions.length === 0) {
|
|
20098
|
-
return /* @__PURE__ */ (0,
|
|
20606
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_jsx_runtime65.Fragment, { children });
|
|
20099
20607
|
}
|
|
20100
20608
|
const runAction = (action) => {
|
|
20101
20609
|
settle(0);
|
|
20102
20610
|
action.onPress();
|
|
20103
20611
|
};
|
|
20104
|
-
return /* @__PURE__ */ (0,
|
|
20105
|
-
/* @__PURE__ */ (0,
|
|
20106
|
-
|
|
20612
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_react_native62.View, { style: styles51.root, children: [
|
|
20613
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_react_native62.View, { style: styles51.actionsLayer, pointerEvents: "box-none", children: actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
|
|
20614
|
+
import_react_native62.TouchableOpacity,
|
|
20107
20615
|
{
|
|
20108
|
-
style: [
|
|
20616
|
+
style: [styles51.action, { width: ACTION_WIDTH, backgroundColor: toneColor2[action.tone] }],
|
|
20109
20617
|
onPress: () => runAction(action),
|
|
20110
20618
|
activeOpacity: 0.85,
|
|
20111
20619
|
accessibilityRole: "button",
|
|
20112
20620
|
accessibilityLabel: action.label,
|
|
20113
20621
|
children: [
|
|
20114
|
-
/* @__PURE__ */ (0,
|
|
20115
|
-
/* @__PURE__ */ (0,
|
|
20622
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Icon, { name: action.icon, size: 20, color: colors.primaryText, strokeWidth: 2.2 }),
|
|
20623
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_react_native62.Text, { style: [styles51.actionLabel, { color: colors.primaryText }], numberOfLines: 1, children: action.label })
|
|
20116
20624
|
]
|
|
20117
20625
|
},
|
|
20118
20626
|
action.key
|
|
20119
20627
|
)) }),
|
|
20120
|
-
/* @__PURE__ */ (0,
|
|
20628
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_react_native62.Animated.View, { style: [{ backgroundColor: background, transform: [{ translateX }] }], ...panResponder.panHandlers, children })
|
|
20121
20629
|
] });
|
|
20122
20630
|
};
|
|
20123
|
-
var
|
|
20631
|
+
var styles51 = import_react_native62.StyleSheet.create({
|
|
20124
20632
|
root: {
|
|
20125
20633
|
position: "relative"
|
|
20126
20634
|
},
|
|
20127
20635
|
actionsLayer: {
|
|
20128
|
-
...
|
|
20636
|
+
...import_react_native62.StyleSheet.absoluteFillObject,
|
|
20129
20637
|
flexDirection: "row",
|
|
20130
20638
|
justifyContent: "flex-end"
|
|
20131
20639
|
},
|
|
@@ -20158,10 +20666,10 @@ var formatTimeAgo = (dateString, t) => {
|
|
|
20158
20666
|
};
|
|
20159
20667
|
|
|
20160
20668
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationRow.tsx
|
|
20161
|
-
var
|
|
20669
|
+
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
20162
20670
|
var NotificationRow = ({ notification, onPress, onMarkRead, onAcknowledge }) => {
|
|
20163
20671
|
var _a3, _b;
|
|
20164
|
-
const { t } = (0,
|
|
20672
|
+
const { t } = (0, import_react_i18next29.useTranslation)();
|
|
20165
20673
|
const { colors } = useTheme();
|
|
20166
20674
|
const isUnread = !notification.is_read;
|
|
20167
20675
|
const statusLabel = notification.status_label_display || notification.status_label;
|
|
@@ -20188,35 +20696,35 @@ var NotificationRow = ({ notification, onPress, onMarkRead, onAcknowledge }) =>
|
|
|
20188
20696
|
onPress: onAcknowledge
|
|
20189
20697
|
});
|
|
20190
20698
|
}
|
|
20191
|
-
return /* @__PURE__ */ (0,
|
|
20192
|
-
isUnread ? /* @__PURE__ */ (0,
|
|
20193
|
-
/* @__PURE__ */ (0,
|
|
20194
|
-
/* @__PURE__ */ (0,
|
|
20195
|
-
/* @__PURE__ */ (0,
|
|
20196
|
-
/* @__PURE__ */ (0,
|
|
20197
|
-
|
|
20699
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(SwipeableRow, { actions, background: colors.surface, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_react_native63.TouchableOpacity, { onPress, activeOpacity: 0.6, accessibilityRole: "button", style: styles52.row, children: [
|
|
20700
|
+
isUnread ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react_native63.View, { style: [styles52.accent, { backgroundColor: accent }] }) : null,
|
|
20701
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(NotificationIcon, { notificationType: notification.notification_type, size: 36 }),
|
|
20702
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_react_native63.View, { style: styles52.content, children: [
|
|
20703
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_react_native63.View, { style: styles52.titleRow, children: [
|
|
20704
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
20705
|
+
import_react_native63.Text,
|
|
20198
20706
|
{
|
|
20199
|
-
style: [
|
|
20707
|
+
style: [styles52.title, { color: colors.text, fontWeight: isUnread ? "700" : "600" }],
|
|
20200
20708
|
numberOfLines: 2,
|
|
20201
20709
|
children: notification.title
|
|
20202
20710
|
}
|
|
20203
20711
|
),
|
|
20204
|
-
isUnread ? /* @__PURE__ */ (0,
|
|
20712
|
+
isUnread ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react_native63.View, { style: [styles52.unreadDot, { backgroundColor: colors.primary }] }) : null
|
|
20205
20713
|
] }),
|
|
20206
|
-
/* @__PURE__ */ (0,
|
|
20207
|
-
statusLabel ? /* @__PURE__ */ (0,
|
|
20208
|
-
/* @__PURE__ */ (0,
|
|
20209
|
-
/* @__PURE__ */ (0,
|
|
20210
|
-
/* @__PURE__ */ (0,
|
|
20714
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_react_native63.View, { style: styles52.metaRow, children: [
|
|
20715
|
+
statusLabel ? /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_jsx_runtime66.Fragment, { children: [
|
|
20716
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react_native63.View, { style: [styles52.statusDot, { backgroundColor: accent }] }),
|
|
20717
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react_native63.Text, { style: [styles52.metaText, { color: colors.textSecondary }], numberOfLines: 1, children: statusLabel }),
|
|
20718
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react_native63.Text, { style: [styles52.metaDivider, { color: colors.textSecondary }], children: "\xB7" })
|
|
20211
20719
|
] }) : null,
|
|
20212
|
-
/* @__PURE__ */ (0,
|
|
20720
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react_native63.Text, { style: [styles52.metaText, { color: colors.textSecondary }], children: formatTimeAgo(notification.created_at, t) })
|
|
20213
20721
|
] }),
|
|
20214
|
-
showAcknowledge && ackCta ? /* @__PURE__ */ (0,
|
|
20722
|
+
showAcknowledge && ackCta ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react_native63.View, { style: styles52.ackWrap, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(NotificationCTAButton, { cta: ackCta, onPress: onAcknowledge }) }) : null
|
|
20215
20723
|
] }),
|
|
20216
|
-
/* @__PURE__ */ (0,
|
|
20724
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react_native63.View, { style: styles52.chevron, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Icon, { name: "chevron-right", size: 18, color: colors.textSecondary }) })
|
|
20217
20725
|
] }) });
|
|
20218
20726
|
};
|
|
20219
|
-
var
|
|
20727
|
+
var styles52 = import_react_native63.StyleSheet.create({
|
|
20220
20728
|
row: {
|
|
20221
20729
|
flexDirection: "row",
|
|
20222
20730
|
alignItems: "center",
|
|
@@ -20279,25 +20787,25 @@ var styles50 = import_react_native61.StyleSheet.create({
|
|
|
20279
20787
|
});
|
|
20280
20788
|
|
|
20281
20789
|
// src/RedactoPrivacyCenter/components/NotificationHub/useNotificationActions.ts
|
|
20282
|
-
var
|
|
20283
|
-
var
|
|
20790
|
+
var import_react43 = require("react");
|
|
20791
|
+
var import_react_native64 = require("react-native");
|
|
20284
20792
|
var useNotificationActions = () => {
|
|
20285
20793
|
const { navigateTo, setSelectedCase } = useInternalNavigation();
|
|
20286
20794
|
const { accessToken, refreshToken, onError, updateTokens, organizationId, workspaceId, email } = useAuth();
|
|
20287
20795
|
const { consentClient } = useBaseUrl();
|
|
20288
20796
|
const { langParam } = useCurrentLanguage();
|
|
20289
|
-
const authContext = (0,
|
|
20797
|
+
const authContext = (0, import_react43.useMemo)(
|
|
20290
20798
|
() => ({ accessToken, refreshToken, onError, updateTokens }),
|
|
20291
20799
|
[accessToken, refreshToken, onError, updateTokens]
|
|
20292
20800
|
);
|
|
20293
|
-
const hasAcknowledgeCTA = (0,
|
|
20801
|
+
const hasAcknowledgeCTA = (0, import_react43.useCallback)(
|
|
20294
20802
|
(notification) => {
|
|
20295
20803
|
var _a3, _b;
|
|
20296
20804
|
return (_b = (_a3 = notification.ctas) == null ? void 0 : _a3.some((cta) => cta.action_type === "acknowledge")) != null ? _b : false;
|
|
20297
20805
|
},
|
|
20298
20806
|
[]
|
|
20299
20807
|
);
|
|
20300
|
-
const handleMarkRead = (0,
|
|
20808
|
+
const handleMarkRead = (0, import_react43.useCallback)(
|
|
20301
20809
|
async (notificationUuid) => {
|
|
20302
20810
|
if (!organizationId || !workspaceId) return false;
|
|
20303
20811
|
const result = await markNotificationRead(organizationId, workspaceId, notificationUuid, authContext, consentClient);
|
|
@@ -20305,12 +20813,12 @@ var useNotificationActions = () => {
|
|
|
20305
20813
|
},
|
|
20306
20814
|
[organizationId, workspaceId, authContext, consentClient]
|
|
20307
20815
|
);
|
|
20308
|
-
const handleMarkAllRead = (0,
|
|
20816
|
+
const handleMarkAllRead = (0, import_react43.useCallback)(async () => {
|
|
20309
20817
|
if (!organizationId || !workspaceId) return false;
|
|
20310
20818
|
const result = await markAllRead(organizationId, workspaceId, authContext, consentClient);
|
|
20311
20819
|
return result !== null;
|
|
20312
20820
|
}, [organizationId, workspaceId, authContext, consentClient]);
|
|
20313
|
-
const handleAcknowledge = (0,
|
|
20821
|
+
const handleAcknowledge = (0, import_react43.useCallback)(
|
|
20314
20822
|
async (notificationUuid) => {
|
|
20315
20823
|
if (!organizationId || !workspaceId) return false;
|
|
20316
20824
|
const result = await acknowledgeNotification(organizationId, workspaceId, notificationUuid, authContext, consentClient);
|
|
@@ -20318,7 +20826,7 @@ var useNotificationActions = () => {
|
|
|
20318
20826
|
},
|
|
20319
20827
|
[organizationId, workspaceId, authContext, consentClient]
|
|
20320
20828
|
);
|
|
20321
|
-
const handleCTAClick = (0,
|
|
20829
|
+
const handleCTAClick = (0, import_react43.useCallback)(
|
|
20322
20830
|
async (notification, cta) => {
|
|
20323
20831
|
var _a3;
|
|
20324
20832
|
if (cta.action_type === "acknowledge") {
|
|
@@ -20352,7 +20860,7 @@ var useNotificationActions = () => {
|
|
|
20352
20860
|
const url = cta.url;
|
|
20353
20861
|
if (!/^https?:\/\//i.test(url)) return null;
|
|
20354
20862
|
try {
|
|
20355
|
-
await
|
|
20863
|
+
await import_react_native64.Linking.openURL(url);
|
|
20356
20864
|
return "opened";
|
|
20357
20865
|
} catch {
|
|
20358
20866
|
return null;
|
|
@@ -20375,7 +20883,7 @@ var useNotificationActions = () => {
|
|
|
20375
20883
|
};
|
|
20376
20884
|
|
|
20377
20885
|
// src/RedactoPrivacyCenter/components/NotificationHub/NotificationsScreen.tsx
|
|
20378
|
-
var
|
|
20886
|
+
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
20379
20887
|
var EMPTY_SUMMARY = { total: 0, unread: 0, action_needed: 0, acknowledged: 0 };
|
|
20380
20888
|
var READ_FILTER_TO_PARAM = {
|
|
20381
20889
|
all: void 0,
|
|
@@ -20383,7 +20891,7 @@ var READ_FILTER_TO_PARAM = {
|
|
|
20383
20891
|
read: true
|
|
20384
20892
|
};
|
|
20385
20893
|
var NotificationsScreen = () => {
|
|
20386
|
-
const { t } = (0,
|
|
20894
|
+
const { t } = (0, import_react_i18next30.useTranslation)();
|
|
20387
20895
|
const { colors } = useTheme();
|
|
20388
20896
|
const { langParam } = useCurrentLanguage();
|
|
20389
20897
|
const { listBottom } = usePrivacyCenterInsets();
|
|
@@ -20400,15 +20908,15 @@ var NotificationsScreen = () => {
|
|
|
20400
20908
|
handleAcknowledge,
|
|
20401
20909
|
handleCTAClick
|
|
20402
20910
|
} = useNotificationActions();
|
|
20403
|
-
const [notifications, setNotifications] = (0,
|
|
20404
|
-
const [summary, setSummary] = (0,
|
|
20405
|
-
const [activeTab, setActiveTab] = (0,
|
|
20406
|
-
const [readFilter, setReadFilter] = (0,
|
|
20407
|
-
const [isLoading, setIsLoading] = (0,
|
|
20408
|
-
const [isRefreshing2, setIsRefreshing] = (0,
|
|
20409
|
-
const [filterOpen, setFilterOpen] = (0,
|
|
20911
|
+
const [notifications, setNotifications] = (0, import_react44.useState)([]);
|
|
20912
|
+
const [summary, setSummary] = (0, import_react44.useState)(EMPTY_SUMMARY);
|
|
20913
|
+
const [activeTab, setActiveTab] = (0, import_react44.useState)("all");
|
|
20914
|
+
const [readFilter, setReadFilter] = (0, import_react44.useState)("all");
|
|
20915
|
+
const [isLoading, setIsLoading] = (0, import_react44.useState)(true);
|
|
20916
|
+
const [isRefreshing2, setIsRefreshing] = (0, import_react44.useState)(false);
|
|
20917
|
+
const [filterOpen, setFilterOpen] = (0, import_react44.useState)(false);
|
|
20410
20918
|
const isFiltered = activeTab !== "all" || readFilter !== "all";
|
|
20411
|
-
const loadNotifications = (0,
|
|
20919
|
+
const loadNotifications = (0, import_react44.useCallback)(
|
|
20412
20920
|
async (includeSummary = false, silent = false) => {
|
|
20413
20921
|
if (!organizationId || !workspaceId) return;
|
|
20414
20922
|
if (!silent) setIsLoading(true);
|
|
@@ -20438,18 +20946,21 @@ var NotificationsScreen = () => {
|
|
|
20438
20946
|
},
|
|
20439
20947
|
[organizationId, workspaceId, activeTab, readFilter, authContext, consentClient, langParam]
|
|
20440
20948
|
);
|
|
20441
|
-
(0,
|
|
20949
|
+
(0, import_react44.useEffect)(() => {
|
|
20442
20950
|
loadNotifications(true);
|
|
20443
20951
|
}, [loadNotifications]);
|
|
20444
|
-
const loadRef = (0,
|
|
20952
|
+
const loadRef = (0, import_react44.useRef)(loadNotifications);
|
|
20445
20953
|
loadRef.current = loadNotifications;
|
|
20446
|
-
(0,
|
|
20954
|
+
const authContextRef = (0, import_react44.useRef)(authContext);
|
|
20955
|
+
authContextRef.current = authContext;
|
|
20956
|
+
(0, import_react44.useEffect)(() => {
|
|
20447
20957
|
const id = setInterval(() => {
|
|
20958
|
+
if (isRefreshBlocked(authContextRef.current)) return;
|
|
20448
20959
|
loadRef.current(false, true);
|
|
20449
20960
|
}, POLL_INTERVAL);
|
|
20450
20961
|
return () => clearInterval(id);
|
|
20451
20962
|
}, []);
|
|
20452
|
-
const onNotificationClick = (0,
|
|
20963
|
+
const onNotificationClick = (0, import_react44.useCallback)(
|
|
20453
20964
|
async (notification) => {
|
|
20454
20965
|
const shouldMarkRead = !notification.is_read;
|
|
20455
20966
|
const shouldAutoAcknowledge = !notification.is_acknowledged && !hasAcknowledgeCTA(notification);
|
|
@@ -20470,7 +20981,7 @@ var NotificationsScreen = () => {
|
|
|
20470
20981
|
},
|
|
20471
20982
|
[hasAcknowledgeCTA, handleAcknowledge, handleMarkRead]
|
|
20472
20983
|
);
|
|
20473
|
-
const onRowPress = (0,
|
|
20984
|
+
const onRowPress = (0, import_react44.useCallback)(
|
|
20474
20985
|
async (notification) => {
|
|
20475
20986
|
var _a3;
|
|
20476
20987
|
const linkCta = (_a3 = notification.ctas) == null ? void 0 : _a3.find((cta) => cta.action_type === "link" && cta.url);
|
|
@@ -20488,7 +20999,7 @@ var NotificationsScreen = () => {
|
|
|
20488
20999
|
},
|
|
20489
21000
|
[handleCTAClick, onNotificationClick]
|
|
20490
21001
|
);
|
|
20491
|
-
const onMarkReadRow = (0,
|
|
21002
|
+
const onMarkReadRow = (0, import_react44.useCallback)(
|
|
20492
21003
|
async (notification) => {
|
|
20493
21004
|
if (notification.is_read) return;
|
|
20494
21005
|
const ok = await handleMarkRead(notification.uuid);
|
|
@@ -20498,7 +21009,7 @@ var NotificationsScreen = () => {
|
|
|
20498
21009
|
},
|
|
20499
21010
|
[handleMarkRead]
|
|
20500
21011
|
);
|
|
20501
|
-
const onAcknowledgeRow = (0,
|
|
21012
|
+
const onAcknowledgeRow = (0, import_react44.useCallback)(
|
|
20502
21013
|
async (notification) => {
|
|
20503
21014
|
if (notification.is_acknowledged) return;
|
|
20504
21015
|
const ok = await handleAcknowledge(notification.uuid);
|
|
@@ -20515,22 +21026,29 @@ var NotificationsScreen = () => {
|
|
|
20515
21026
|
},
|
|
20516
21027
|
[handleAcknowledge]
|
|
20517
21028
|
);
|
|
20518
|
-
const
|
|
21029
|
+
const onMarkAllRead = (0, import_react44.useCallback)(async () => {
|
|
21030
|
+
const ok = await handleMarkAllRead();
|
|
21031
|
+
if (!ok) return;
|
|
21032
|
+
setNotifications((prev) => prev.map((item) => ({ ...item, is_read: true })));
|
|
21033
|
+
setSummary((prev) => ({ ...prev, unread: 0 }));
|
|
21034
|
+
if (readFilter !== "all") loadNotifications(true, true);
|
|
21035
|
+
}, [handleMarkAllRead, readFilter, loadNotifications]);
|
|
21036
|
+
const onRefresh = (0, import_react44.useCallback)(() => {
|
|
20519
21037
|
setIsRefreshing(true);
|
|
20520
21038
|
loadNotifications(true, true);
|
|
20521
21039
|
}, [loadNotifications]);
|
|
20522
|
-
const sections = (0,
|
|
21040
|
+
const sections = (0, import_react44.useMemo)(
|
|
20523
21041
|
() => groupByTime(notifications, (item) => item.created_at, classifyTime),
|
|
20524
21042
|
[notifications, classifyTime]
|
|
20525
21043
|
);
|
|
20526
|
-
const header = /* @__PURE__ */ (0,
|
|
20527
|
-
/* @__PURE__ */ (0,
|
|
20528
|
-
/* @__PURE__ */ (0,
|
|
20529
|
-
/* @__PURE__ */ (0,
|
|
20530
|
-
|
|
21044
|
+
const header = /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_react_native65.View, { style: styles53.header, children: [
|
|
21045
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_react_native65.View, { style: styles53.titleRow, children: [
|
|
21046
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.Text, { style: [styles53.screenTitle, { color: colors.text }], children: t("notifications", { defaultValue: "Notifications" }) }),
|
|
21047
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
21048
|
+
import_react_native65.TouchableOpacity,
|
|
20531
21049
|
{
|
|
20532
21050
|
style: [
|
|
20533
|
-
|
|
21051
|
+
styles53.filterBtn,
|
|
20534
21052
|
{
|
|
20535
21053
|
backgroundColor: isFiltered ? colors.primarySoft : colors.surface,
|
|
20536
21054
|
borderColor: isFiltered ? colors.primary : colors.border
|
|
@@ -20539,30 +21057,30 @@ var NotificationsScreen = () => {
|
|
|
20539
21057
|
onPress: () => setFilterOpen(true),
|
|
20540
21058
|
accessibilityRole: "button",
|
|
20541
21059
|
accessibilityLabel: t("filter") || "Filter",
|
|
20542
|
-
children: /* @__PURE__ */ (0,
|
|
21060
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Icon, { name: "sliders-horizontal", size: 18, color: isFiltered ? colors.primary : colors.text })
|
|
20543
21061
|
}
|
|
20544
21062
|
)
|
|
20545
21063
|
] }),
|
|
20546
|
-
summary.unread > 0 ? /* @__PURE__ */ (0,
|
|
20547
|
-
/* @__PURE__ */ (0,
|
|
20548
|
-
/* @__PURE__ */ (0,
|
|
21064
|
+
summary.unread > 0 ? /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_react_native65.TouchableOpacity, { style: styles53.markAllBtn, onPress: onMarkAllRead, activeOpacity: 0.7, accessibilityRole: "button", children: [
|
|
21065
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Icon, { name: "check-check", size: 15, color: colors.primary, strokeWidth: 2.2 }),
|
|
21066
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.Text, { style: [styles53.markAllLabel, { color: colors.primary }], children: t("markAllAsRead") || "Mark all as read" })
|
|
20549
21067
|
] }) : null
|
|
20550
21068
|
] });
|
|
20551
|
-
return /* @__PURE__ */ (0,
|
|
20552
|
-
/* @__PURE__ */ (0,
|
|
20553
|
-
|
|
21069
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_jsx_runtime67.Fragment, { children: [
|
|
21070
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
21071
|
+
import_react_native65.FlatList,
|
|
20554
21072
|
{
|
|
20555
21073
|
data: sections,
|
|
20556
21074
|
keyExtractor: (section2) => section2.key,
|
|
20557
|
-
style: [
|
|
20558
|
-
contentContainerStyle: [
|
|
21075
|
+
style: [styles53.list, { backgroundColor: colors.canvasSubtle }],
|
|
21076
|
+
contentContainerStyle: [styles53.listContent, { flexGrow: 1, paddingBottom: listBottom }],
|
|
20559
21077
|
ListHeaderComponent: header,
|
|
20560
21078
|
showsVerticalScrollIndicator: false,
|
|
20561
|
-
refreshControl: /* @__PURE__ */ (0,
|
|
20562
|
-
renderItem: ({ item: section2 }) => /* @__PURE__ */ (0,
|
|
20563
|
-
/* @__PURE__ */ (0,
|
|
20564
|
-
/* @__PURE__ */ (0,
|
|
20565
|
-
/* @__PURE__ */ (0,
|
|
21079
|
+
refreshControl: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.RefreshControl, { refreshing: isRefreshing2, onRefresh, tintColor: colors.primary, colors: [colors.primary] }),
|
|
21080
|
+
renderItem: ({ item: section2 }) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_react_native65.View, { style: styles53.section, children: [
|
|
21081
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.Text, { style: [styles53.sectionTitle, { color: colors.textSecondary }], children: section2.title }),
|
|
21082
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.View, { style: [styles53.cardShadow, elevation.card], children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.View, { style: [styles53.cardClip, { backgroundColor: colors.surface }], children: section2.data.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_react_native65.View, { children: [
|
|
21083
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
20566
21084
|
NotificationRow,
|
|
20567
21085
|
{
|
|
20568
21086
|
notification: item,
|
|
@@ -20571,19 +21089,19 @@ var NotificationsScreen = () => {
|
|
|
20571
21089
|
onAcknowledge: () => onAcknowledgeRow(item)
|
|
20572
21090
|
}
|
|
20573
21091
|
),
|
|
20574
|
-
index < section2.data.length - 1 ? /* @__PURE__ */ (0,
|
|
21092
|
+
index < section2.data.length - 1 ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.View, { style: [styles53.separator, { backgroundColor: colors.hairline }] }) : null
|
|
20575
21093
|
] }, item.uuid)) }) })
|
|
20576
21094
|
] }),
|
|
20577
|
-
ListEmptyComponent: isLoading ? /* @__PURE__ */ (0,
|
|
20578
|
-
/* @__PURE__ */ (0,
|
|
20579
|
-
/* @__PURE__ */ (0,
|
|
20580
|
-
/* @__PURE__ */ (0,
|
|
20581
|
-
/* @__PURE__ */ (0,
|
|
20582
|
-
/* @__PURE__ */ (0,
|
|
21095
|
+
ListEmptyComponent: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.View, { style: styles53.skeletonWrap, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.View, { style: [styles53.cardClip, elevation.card, { backgroundColor: colors.surface }], children: [0, 1, 2, 3].map((i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_react_native65.View, { children: [
|
|
21096
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_react_native65.View, { style: styles53.skeletonRow, children: [
|
|
21097
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Skeleton, { width: 36, height: 36, radius: radii.md }),
|
|
21098
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_react_native65.View, { style: styles53.skeletonLines, children: [
|
|
21099
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Skeleton, { width: "70%", height: 13 }),
|
|
21100
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Skeleton, { width: "40%", height: 10 })
|
|
20583
21101
|
] })
|
|
20584
21102
|
] }),
|
|
20585
|
-
i < 3 ? /* @__PURE__ */ (0,
|
|
20586
|
-
] }, i)) }) }) : /* @__PURE__ */ (0,
|
|
21103
|
+
i < 3 ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.View, { style: [styles53.separator, { backgroundColor: colors.hairline }] }) : null
|
|
21104
|
+
] }, i)) }) }) : /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.View, { style: styles53.emptyWrap, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
20587
21105
|
PCEmpty,
|
|
20588
21106
|
{
|
|
20589
21107
|
iconName: "circle-check",
|
|
@@ -20592,14 +21110,14 @@ var NotificationsScreen = () => {
|
|
|
20592
21110
|
}
|
|
20593
21111
|
) }),
|
|
20594
21112
|
ListFooterComponentStyle: { marginTop: "auto" },
|
|
20595
|
-
ListFooterComponent: /* @__PURE__ */ (0,
|
|
21113
|
+
ListFooterComponent: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Footer, {})
|
|
20596
21114
|
}
|
|
20597
21115
|
),
|
|
20598
|
-
/* @__PURE__ */ (0,
|
|
20599
|
-
/* @__PURE__ */ (0,
|
|
20600
|
-
/* @__PURE__ */ (0,
|
|
21116
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(BottomSheet, { visible: filterOpen, onClose: () => setFilterOpen(false), title: t("filter") || "Filter", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_react_native65.View, { style: styles53.filterSheet, children: [
|
|
21117
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.Text, { style: [styles53.filterGroupLabel, { color: colors.textSecondary }], children: t("category", { defaultValue: "Category" }) }),
|
|
21118
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.View, { style: styles53.chipWrap, children: filterTabs.map((tab) => {
|
|
20601
21119
|
const selected = tab.key === activeTab;
|
|
20602
|
-
return /* @__PURE__ */ (0,
|
|
21120
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
20603
21121
|
FilterChip,
|
|
20604
21122
|
{
|
|
20605
21123
|
label: tab.label,
|
|
@@ -20609,12 +21127,12 @@ var NotificationsScreen = () => {
|
|
|
20609
21127
|
tab.key
|
|
20610
21128
|
);
|
|
20611
21129
|
}) }),
|
|
20612
|
-
/* @__PURE__ */ (0,
|
|
20613
|
-
/* @__PURE__ */ (0,
|
|
21130
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.Text, { style: [styles53.filterGroupLabel, { color: colors.textSecondary, marginTop: spacing.lg }], children: t("readStatus", { defaultValue: "Status" }) }),
|
|
21131
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.View, { style: styles53.chipWrap, children: [
|
|
20614
21132
|
{ key: "all", label: t("all") || "All" },
|
|
20615
21133
|
{ key: "unread", label: t("unread") || "Unread" },
|
|
20616
21134
|
{ key: "read", label: t("read", { defaultValue: "Read" }) }
|
|
20617
|
-
].map((opt) => /* @__PURE__ */ (0,
|
|
21135
|
+
].map((opt) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
20618
21136
|
FilterChip,
|
|
20619
21137
|
{
|
|
20620
21138
|
label: opt.label,
|
|
@@ -20623,13 +21141,13 @@ var NotificationsScreen = () => {
|
|
|
20623
21141
|
},
|
|
20624
21142
|
opt.key
|
|
20625
21143
|
)) }),
|
|
20626
|
-
/* @__PURE__ */ (0,
|
|
20627
|
-
|
|
21144
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
21145
|
+
import_react_native65.TouchableOpacity,
|
|
20628
21146
|
{
|
|
20629
|
-
style: [
|
|
21147
|
+
style: [styles53.applyBtn, { backgroundColor: colors.primary }],
|
|
20630
21148
|
onPress: () => setFilterOpen(false),
|
|
20631
21149
|
accessibilityRole: "button",
|
|
20632
|
-
children: /* @__PURE__ */ (0,
|
|
21150
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.Text, { style: [styles53.applyLabel, { color: colors.primaryText }], children: t("done", { defaultValue: "Done" }) })
|
|
20633
21151
|
}
|
|
20634
21152
|
)
|
|
20635
21153
|
] }) })
|
|
@@ -20637,25 +21155,25 @@ var NotificationsScreen = () => {
|
|
|
20637
21155
|
};
|
|
20638
21156
|
var FilterChip = ({ label, selected, onPress }) => {
|
|
20639
21157
|
const { colors } = useTheme();
|
|
20640
|
-
return /* @__PURE__ */ (0,
|
|
20641
|
-
|
|
21158
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
21159
|
+
import_react_native65.TouchableOpacity,
|
|
20642
21160
|
{
|
|
20643
21161
|
onPress,
|
|
20644
21162
|
activeOpacity: 0.7,
|
|
20645
21163
|
accessibilityRole: "button",
|
|
20646
21164
|
accessibilityState: { selected },
|
|
20647
21165
|
style: [
|
|
20648
|
-
|
|
21166
|
+
styles53.chip,
|
|
20649
21167
|
{
|
|
20650
21168
|
backgroundColor: selected ? colors.primary : colors.surfaceAlt,
|
|
20651
21169
|
borderColor: selected ? colors.primary : colors.border
|
|
20652
21170
|
}
|
|
20653
21171
|
],
|
|
20654
|
-
children: /* @__PURE__ */ (0,
|
|
21172
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react_native65.Text, { style: [styles53.chipLabel, { color: selected ? colors.primaryText : colors.text }], children: label })
|
|
20655
21173
|
}
|
|
20656
21174
|
);
|
|
20657
21175
|
};
|
|
20658
|
-
var
|
|
21176
|
+
var styles53 = import_react_native65.StyleSheet.create({
|
|
20659
21177
|
list: {
|
|
20660
21178
|
flex: 1
|
|
20661
21179
|
},
|
|
@@ -20689,7 +21207,7 @@ var styles51 = import_react_native63.StyleSheet.create({
|
|
|
20689
21207
|
filterBtn: {
|
|
20690
21208
|
width: 40,
|
|
20691
21209
|
height: 40,
|
|
20692
|
-
borderWidth:
|
|
21210
|
+
borderWidth: import_react_native65.StyleSheet.hairlineWidth,
|
|
20693
21211
|
borderRadius: radii.md,
|
|
20694
21212
|
justifyContent: "center",
|
|
20695
21213
|
alignItems: "center"
|
|
@@ -20710,7 +21228,7 @@ var styles51 = import_react_native63.StyleSheet.create({
|
|
|
20710
21228
|
overflow: "hidden"
|
|
20711
21229
|
},
|
|
20712
21230
|
separator: {
|
|
20713
|
-
height:
|
|
21231
|
+
height: import_react_native65.StyleSheet.hairlineWidth,
|
|
20714
21232
|
marginLeft: spacing.lg + 36 + spacing.md
|
|
20715
21233
|
},
|
|
20716
21234
|
emptyWrap: {
|
|
@@ -20748,7 +21266,7 @@ var styles51 = import_react_native63.StyleSheet.create({
|
|
|
20748
21266
|
justifyContent: "center",
|
|
20749
21267
|
paddingHorizontal: spacing.lg,
|
|
20750
21268
|
borderRadius: radii.pill,
|
|
20751
|
-
borderWidth:
|
|
21269
|
+
borderWidth: import_react_native65.StyleSheet.hairlineWidth
|
|
20752
21270
|
},
|
|
20753
21271
|
chipLabel: {
|
|
20754
21272
|
...typography.label
|
|
@@ -20767,7 +21285,7 @@ var styles51 = import_react_native63.StyleSheet.create({
|
|
|
20767
21285
|
});
|
|
20768
21286
|
|
|
20769
21287
|
// src/RedactoPrivacyCenter/RedactoPrivacyCenter.tsx
|
|
20770
|
-
var
|
|
21288
|
+
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
20771
21289
|
var privacyCenterQueryClient = new import_react_query2.QueryClient();
|
|
20772
21290
|
function PrivacyCenterContent({ onBack }) {
|
|
20773
21291
|
const { currentPage } = useInternalNavigation();
|
|
@@ -20777,24 +21295,24 @@ function PrivacyCenterContent({ onBack }) {
|
|
|
20777
21295
|
const chromeMode = getPageChromeMode(currentPage);
|
|
20778
21296
|
const canvasIsLight = isLightColor(colors.canvasSubtle);
|
|
20779
21297
|
const barStyle = canvasIsLight ? "dark-content" : "light-content";
|
|
20780
|
-
(0,
|
|
20781
|
-
|
|
20782
|
-
if (
|
|
21298
|
+
(0, import_react45.useEffect)(() => {
|
|
21299
|
+
import_react_native66.StatusBar.setBarStyle(barStyle, true);
|
|
21300
|
+
if (import_react_native66.Platform.OS === "android") {
|
|
20783
21301
|
setNavBarIconStyle(canvasIsLight ? "dark" : "light");
|
|
20784
21302
|
}
|
|
20785
21303
|
}, [barStyle, canvasIsLight]);
|
|
20786
|
-
return /* @__PURE__ */ (0,
|
|
20787
|
-
/* @__PURE__ */ (0,
|
|
20788
|
-
/* @__PURE__ */ (0,
|
|
20789
|
-
/* @__PURE__ */ (0,
|
|
20790
|
-
/* @__PURE__ */ (0,
|
|
20791
|
-
currentPage === "home" && /* @__PURE__ */ (0,
|
|
20792
|
-
currentPage === "consent-manager" && /* @__PURE__ */ (0,
|
|
20793
|
-
currentPage === "form" && /* @__PURE__ */ (0,
|
|
20794
|
-
currentPage === "activity" && /* @__PURE__ */ (0,
|
|
20795
|
-
currentPage === "receipts" && /* @__PURE__ */ (0,
|
|
20796
|
-
currentPage === "case-details" && /* @__PURE__ */ (0,
|
|
20797
|
-
currentPage === "notifications" && /* @__PURE__ */ (0,
|
|
21304
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(import_react_native66.View, { style: [styles54.container, { backgroundColor: colors.canvasSubtle }], children: [
|
|
21305
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react_native66.StatusBar, { barStyle, translucent: true }),
|
|
21306
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react_native66.View, { style: styles54.mainColumn, children: brandingLoading ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(PCLoader, {}) : /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(import_jsx_runtime68.Fragment, { children: [
|
|
21307
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(SlimTopBar, { mode: chromeMode, onBack }),
|
|
21308
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react_native66.View, { style: [styles54.content, { paddingBottom: insets.bottom }], children: status === "checking" ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(PCLoader, {}) : status === "session-expired" ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(PrivacyCenterSessionExpired, {}) : status === "empty" ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(PrivacyCenterEmptyState, {}) : /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(import_jsx_runtime68.Fragment, { children: [
|
|
21309
|
+
currentPage === "home" && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(HomeHub, {}),
|
|
21310
|
+
currentPage === "consent-manager" && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ConsentManager, {}),
|
|
21311
|
+
currentPage === "form" && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(FormPage, {}),
|
|
21312
|
+
currentPage === "activity" && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ActivitiesList, {}),
|
|
21313
|
+
currentPage === "receipts" && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ReceiptsList, {}),
|
|
21314
|
+
currentPage === "case-details" && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(CaseDetailsPage, {}),
|
|
21315
|
+
currentPage === "notifications" && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(NotificationsScreen, {})
|
|
20798
21316
|
] }) })
|
|
20799
21317
|
] }) })
|
|
20800
21318
|
] });
|
|
@@ -20819,7 +21337,7 @@ function RedactoPrivacyCenter({
|
|
|
20819
21337
|
initialCaseUuid,
|
|
20820
21338
|
onBack
|
|
20821
21339
|
}) {
|
|
20822
|
-
return /* @__PURE__ */ (0,
|
|
21340
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(SafeAreaBoundary, { children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(KeyboardProviderCompat, { children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react_query2.QueryClientProvider, { client: privacyCenterQueryClient, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react_i18next31.I18nextProvider, { i18n: i18n_default, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ThemeProvider, { slug, baseUrl, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(BaseUrlProvider, { baseUrl, ledgerBaseUrl, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
20823
21341
|
AuthProvider,
|
|
20824
21342
|
{
|
|
20825
21343
|
accessToken: accessToken != null ? accessToken : "",
|
|
@@ -20831,11 +21349,11 @@ function RedactoPrivacyCenter({
|
|
|
20831
21349
|
workspaceUuid,
|
|
20832
21350
|
slug,
|
|
20833
21351
|
onError,
|
|
20834
|
-
children: /* @__PURE__ */ (0,
|
|
21352
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(NavigationProvider, { initialPage, initialPendingCaseUuid: initialCaseUuid != null ? initialCaseUuid : null, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(SelectUserGate, { children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(DataAvailabilityProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(PageStatusProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(PrivacyCenterContent, { onBack }) }) }) }) })
|
|
20835
21353
|
}
|
|
20836
21354
|
) }) }) }) }) }) });
|
|
20837
21355
|
}
|
|
20838
|
-
var
|
|
21356
|
+
var styles54 = import_react_native66.StyleSheet.create({
|
|
20839
21357
|
container: {
|
|
20840
21358
|
flex: 1
|
|
20841
21359
|
},
|
|
@@ -20849,74 +21367,74 @@ var styles52 = import_react_native64.StyleSheet.create({
|
|
|
20849
21367
|
});
|
|
20850
21368
|
|
|
20851
21369
|
// src/RedactoPrivacyCenter/components/SideMenu.tsx
|
|
20852
|
-
var
|
|
20853
|
-
var
|
|
21370
|
+
var import_react_native67 = require("react-native");
|
|
21371
|
+
var import_react_i18next32 = require("react-i18next");
|
|
20854
21372
|
var import_react_native_svg4 = __toESM(require("react-native-svg"));
|
|
20855
|
-
var
|
|
21373
|
+
var import_jsx_runtime69 = require("react/jsx-runtime");
|
|
20856
21374
|
var MENU_ITEMS = [
|
|
20857
21375
|
{ page: "consent-manager", labelKey: "consentManager", fallback: "Consent Manager", icon: "shield-check" },
|
|
20858
21376
|
{ page: "form", labelKey: "grievanceRequests", fallback: "Privacy Requests", icon: "message-circle-warning" },
|
|
20859
21377
|
{ page: "activity", labelKey: "activity", fallback: "Activity", icon: "activity" }
|
|
20860
21378
|
];
|
|
20861
21379
|
function SideMenu({ onBack } = {}) {
|
|
20862
|
-
const { t } = (0,
|
|
21380
|
+
const { t } = (0, import_react_i18next32.useTranslation)();
|
|
20863
21381
|
const { currentPage, navigateTo } = useInternalNavigation();
|
|
20864
21382
|
const { organizationName, email } = useAuth();
|
|
20865
21383
|
const { colors } = useTheme();
|
|
20866
21384
|
const orgInitial = organizationName ? organizationName.charAt(0).toUpperCase() : "R";
|
|
20867
21385
|
const displayName = organizationName || "Organization";
|
|
20868
|
-
return /* @__PURE__ */ (0,
|
|
20869
|
-
/* @__PURE__ */ (0,
|
|
20870
|
-
/* @__PURE__ */ (0,
|
|
20871
|
-
/* @__PURE__ */ (0,
|
|
20872
|
-
/* @__PURE__ */ (0,
|
|
20873
|
-
email ? /* @__PURE__ */ (0,
|
|
21386
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_react_native67.View, { style: [styles55.container, { backgroundColor: colors.surface }], children: [
|
|
21387
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_react_native67.View, { style: styles55.orgSection, children: [
|
|
21388
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_native67.View, { style: [styles55.avatar, { backgroundColor: colors.primary }], children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_native67.Text, { style: [styles55.avatarText, { color: colors.primaryText }], children: orgInitial }) }),
|
|
21389
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_react_native67.View, { style: styles55.orgInfo, children: [
|
|
21390
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_native67.Text, { style: [styles55.orgName, { color: colors.text }], numberOfLines: 1, children: displayName }),
|
|
21391
|
+
email ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_native67.Text, { style: [styles55.orgEmail, { color: colors.textSecondary }], numberOfLines: 1, children: email }) : null
|
|
20874
21392
|
] })
|
|
20875
21393
|
] }),
|
|
20876
|
-
/* @__PURE__ */ (0,
|
|
20877
|
-
/* @__PURE__ */ (0,
|
|
21394
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_native67.View, { style: [styles55.divider, { backgroundColor: colors.border }] }),
|
|
21395
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_native67.View, { style: styles55.menuSection, children: MENU_ITEMS.map((item) => {
|
|
20878
21396
|
const isActive = currentPage === item.page || item.page === "form" && currentPage === "case-details";
|
|
20879
|
-
return /* @__PURE__ */ (0,
|
|
20880
|
-
|
|
21397
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
|
|
21398
|
+
import_react_native67.TouchableOpacity,
|
|
20881
21399
|
{
|
|
20882
21400
|
style: [
|
|
20883
|
-
|
|
20884
|
-
isActive && [
|
|
21401
|
+
styles55.menuItem,
|
|
21402
|
+
isActive && [styles55.menuItemActive, { backgroundColor: `${colors.primary}14` }]
|
|
20885
21403
|
],
|
|
20886
21404
|
onPress: () => navigateTo(item.page),
|
|
20887
21405
|
activeOpacity: 0.7,
|
|
20888
21406
|
accessibilityRole: "button",
|
|
20889
21407
|
accessibilityState: { selected: isActive },
|
|
20890
21408
|
children: [
|
|
20891
|
-
/* @__PURE__ */ (0,
|
|
20892
|
-
/* @__PURE__ */ (0,
|
|
20893
|
-
|
|
21409
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_native67.View, { style: styles55.menuIconWrap, children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Icon, { name: item.icon, size: 18, color: isActive ? colors.primary : colors.textSecondary }) }),
|
|
21410
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
21411
|
+
import_react_native67.Text,
|
|
20894
21412
|
{
|
|
20895
21413
|
style: [
|
|
20896
|
-
|
|
21414
|
+
styles55.menuLabel,
|
|
20897
21415
|
{ color: isActive ? colors.primary : colors.text },
|
|
20898
|
-
isActive &&
|
|
21416
|
+
isActive && styles55.menuLabelActive
|
|
20899
21417
|
],
|
|
20900
21418
|
children: t(item.labelKey) || item.fallback
|
|
20901
21419
|
}
|
|
20902
21420
|
),
|
|
20903
|
-
isActive ? /* @__PURE__ */ (0,
|
|
21421
|
+
isActive ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_native67.View, { style: [styles55.activeIndicator, { backgroundColor: colors.primary }] }) : null
|
|
20904
21422
|
]
|
|
20905
21423
|
},
|
|
20906
21424
|
item.page
|
|
20907
21425
|
);
|
|
20908
21426
|
}) }),
|
|
20909
|
-
onBack ? /* @__PURE__ */ (0,
|
|
20910
|
-
/* @__PURE__ */ (0,
|
|
20911
|
-
/* @__PURE__ */ (0,
|
|
20912
|
-
/* @__PURE__ */ (0,
|
|
20913
|
-
|
|
21427
|
+
onBack ? /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_jsx_runtime69.Fragment, { children: [
|
|
21428
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_native67.View, { style: { flex: 1 } }),
|
|
21429
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_native67.View, { style: [styles55.divider, { backgroundColor: colors.border }] }),
|
|
21430
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
|
|
21431
|
+
import_react_native67.TouchableOpacity,
|
|
20914
21432
|
{
|
|
20915
|
-
style:
|
|
21433
|
+
style: styles55.backBtn,
|
|
20916
21434
|
onPress: () => navigateBack(onBack),
|
|
20917
21435
|
activeOpacity: 0.7,
|
|
20918
21436
|
children: [
|
|
20919
|
-
/* @__PURE__ */ (0,
|
|
21437
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_native_svg4.default, { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", children: onBack === "back" ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
20920
21438
|
import_react_native_svg4.Path,
|
|
20921
21439
|
{
|
|
20922
21440
|
d: "M19 12H5m0 0l7 7m-7-7l7-7",
|
|
@@ -20925,7 +21443,7 @@ function SideMenu({ onBack } = {}) {
|
|
|
20925
21443
|
strokeLinecap: "round",
|
|
20926
21444
|
strokeLinejoin: "round"
|
|
20927
21445
|
}
|
|
20928
|
-
) : /* @__PURE__ */ (0,
|
|
21446
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
20929
21447
|
import_react_native_svg4.Path,
|
|
20930
21448
|
{
|
|
20931
21449
|
d: "M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4 M16 17l5-5-5-5 M21 12H9",
|
|
@@ -20935,14 +21453,14 @@ function SideMenu({ onBack } = {}) {
|
|
|
20935
21453
|
strokeLinejoin: "round"
|
|
20936
21454
|
}
|
|
20937
21455
|
) }),
|
|
20938
|
-
/* @__PURE__ */ (0,
|
|
21456
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_native67.Text, { style: [styles55.backBtnLabel, { color: colors.textSecondary }], children: onBack === "back" ? t("back") || "Back" : t("signOut") || "Sign Out" })
|
|
20939
21457
|
]
|
|
20940
21458
|
}
|
|
20941
21459
|
)
|
|
20942
21460
|
] }) : null
|
|
20943
21461
|
] });
|
|
20944
21462
|
}
|
|
20945
|
-
var
|
|
21463
|
+
var styles55 = import_react_native67.StyleSheet.create({
|
|
20946
21464
|
container: {
|
|
20947
21465
|
flex: 1,
|
|
20948
21466
|
paddingTop: 12
|
|
@@ -21028,42 +21546,68 @@ var styles53 = import_react_native65.StyleSheet.create({
|
|
|
21028
21546
|
});
|
|
21029
21547
|
|
|
21030
21548
|
// src/RedactoPrivacyCenter/components/Navbar.tsx
|
|
21031
|
-
var
|
|
21032
|
-
var
|
|
21033
|
-
var
|
|
21549
|
+
var import_react46 = require("react");
|
|
21550
|
+
var import_react_native69 = require("react-native");
|
|
21551
|
+
var import_react_i18next34 = require("react-i18next");
|
|
21034
21552
|
var import_react_native_svg6 = __toESM(require("react-native-svg"));
|
|
21035
21553
|
|
|
21036
21554
|
// src/RedactoPrivacyCenter/components/UserOrgMenu.tsx
|
|
21037
|
-
var
|
|
21038
|
-
var
|
|
21555
|
+
var import_react_native68 = require("react-native");
|
|
21556
|
+
var import_react_i18next33 = require("react-i18next");
|
|
21039
21557
|
var import_react_native_svg5 = __toESM(require("react-native-svg"));
|
|
21040
|
-
var
|
|
21558
|
+
var import_jsx_runtime70 = require("react/jsx-runtime");
|
|
21041
21559
|
var UserOrgMenu = ({ visible, onClose, onBack }) => {
|
|
21042
|
-
const { t } = (0,
|
|
21560
|
+
const { t } = (0, import_react_i18next33.useTranslation)();
|
|
21043
21561
|
const { organizationName, email } = useAuth();
|
|
21044
21562
|
const { colors, branding } = useTheme();
|
|
21563
|
+
const { switchProfile } = useProfileSwitch();
|
|
21045
21564
|
const brandName = (branding == null ? void 0 : branding.brand_name) || organizationName || t("privacyCenter") || "Privacy Center";
|
|
21046
21565
|
const handleAction = () => {
|
|
21047
21566
|
onClose();
|
|
21048
21567
|
navigateBack(onBack);
|
|
21049
21568
|
};
|
|
21050
|
-
return /* @__PURE__ */ (0,
|
|
21051
|
-
/* @__PURE__ */ (0,
|
|
21052
|
-
(branding == null ? void 0 : branding.logo_url) ? /* @__PURE__ */ (0,
|
|
21053
|
-
/* @__PURE__ */ (0,
|
|
21054
|
-
/* @__PURE__ */ (0,
|
|
21055
|
-
email ? /* @__PURE__ */ (0,
|
|
21569
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(BottomSheet, { visible, onClose, title: t("account") || "Account", children: [
|
|
21570
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_react_native68.View, { style: styles56.identity, children: [
|
|
21571
|
+
(branding == null ? void 0 : branding.logo_url) ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_native68.Image, { source: { uri: branding.logo_url }, style: styles56.logo, resizeMode: "contain" }) : /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(PCAvatar, { name: organizationName || brandName, imageUrl: branding == null ? void 0 : branding.icon_url, size: 52 }),
|
|
21572
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_react_native68.View, { style: styles56.identityText, children: [
|
|
21573
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_native68.Text, { style: [styles56.orgName, { color: colors.text }], numberOfLines: 2, children: brandName }),
|
|
21574
|
+
email ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_native68.Text, { style: [styles56.email, { color: colors.textSecondary }], numberOfLines: 1, children: email }) : null
|
|
21056
21575
|
] })
|
|
21057
21576
|
] }),
|
|
21058
|
-
|
|
21059
|
-
|
|
21577
|
+
switchProfile ? /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
21578
|
+
import_react_native68.TouchableOpacity,
|
|
21060
21579
|
{
|
|
21061
|
-
style: [
|
|
21580
|
+
style: [styles56.actionRow, { backgroundColor: withAlpha(colors.primary, 0.1) }],
|
|
21581
|
+
onPress: () => {
|
|
21582
|
+
onClose();
|
|
21583
|
+
switchProfile();
|
|
21584
|
+
},
|
|
21585
|
+
activeOpacity: 0.7,
|
|
21586
|
+
accessibilityRole: "button",
|
|
21587
|
+
children: [
|
|
21588
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_native_svg5.default, { width: 18, height: 18, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
21589
|
+
import_react_native_svg5.Path,
|
|
21590
|
+
{
|
|
21591
|
+
d: "M16 3h5v5 M21 3l-7 7 M8 21H3v-5 M3 21l7-7",
|
|
21592
|
+
stroke: colors.primary,
|
|
21593
|
+
strokeWidth: 2,
|
|
21594
|
+
strokeLinecap: "round",
|
|
21595
|
+
strokeLinejoin: "round"
|
|
21596
|
+
}
|
|
21597
|
+
) }),
|
|
21598
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_native68.Text, { style: [styles56.actionLabel, { color: colors.primary }], children: t("switchProfile") })
|
|
21599
|
+
]
|
|
21600
|
+
}
|
|
21601
|
+
) : null,
|
|
21602
|
+
onBack ? /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
21603
|
+
import_react_native68.TouchableOpacity,
|
|
21604
|
+
{
|
|
21605
|
+
style: [styles56.actionRow, { backgroundColor: withAlpha(onBack === "signout" ? colors.error : colors.primary, 0.1) }],
|
|
21062
21606
|
onPress: handleAction,
|
|
21063
21607
|
activeOpacity: 0.7,
|
|
21064
21608
|
accessibilityRole: "button",
|
|
21065
21609
|
children: [
|
|
21066
|
-
/* @__PURE__ */ (0,
|
|
21610
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_native_svg5.default, { width: 18, height: 18, viewBox: "0 0 24 24", fill: "none", children: onBack === "signout" ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
21067
21611
|
import_react_native_svg5.Path,
|
|
21068
21612
|
{
|
|
21069
21613
|
d: "M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4 M16 17l5-5-5-5 M21 12H9",
|
|
@@ -21072,7 +21616,7 @@ var UserOrgMenu = ({ visible, onClose, onBack }) => {
|
|
|
21072
21616
|
strokeLinecap: "round",
|
|
21073
21617
|
strokeLinejoin: "round"
|
|
21074
21618
|
}
|
|
21075
|
-
) : /* @__PURE__ */ (0,
|
|
21619
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
21076
21620
|
import_react_native_svg5.Path,
|
|
21077
21621
|
{
|
|
21078
21622
|
d: "M19 12H5m0 0l7 7m-7-7l7-7",
|
|
@@ -21082,13 +21626,13 @@ var UserOrgMenu = ({ visible, onClose, onBack }) => {
|
|
|
21082
21626
|
strokeLinejoin: "round"
|
|
21083
21627
|
}
|
|
21084
21628
|
) }),
|
|
21085
|
-
/* @__PURE__ */ (0,
|
|
21629
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_native68.Text, { style: [styles56.actionLabel, { color: onBack === "signout" ? colors.error : colors.primary }], children: onBack === "signout" ? t("signOut") || "Sign Out" : t("back") || "Back" })
|
|
21086
21630
|
]
|
|
21087
21631
|
}
|
|
21088
21632
|
) : null
|
|
21089
21633
|
] });
|
|
21090
21634
|
};
|
|
21091
|
-
var
|
|
21635
|
+
var styles56 = import_react_native68.StyleSheet.create({
|
|
21092
21636
|
identity: {
|
|
21093
21637
|
flexDirection: "row",
|
|
21094
21638
|
alignItems: "center",
|
|
@@ -21129,33 +21673,33 @@ var styles54 = import_react_native66.StyleSheet.create({
|
|
|
21129
21673
|
});
|
|
21130
21674
|
|
|
21131
21675
|
// src/RedactoPrivacyCenter/components/Navbar.tsx
|
|
21132
|
-
var
|
|
21676
|
+
var import_jsx_runtime71 = require("react/jsx-runtime");
|
|
21133
21677
|
function Navbar({ mode = "primary", onBack }) {
|
|
21134
|
-
const { t } = (0,
|
|
21678
|
+
const { t } = (0, import_react_i18next34.useTranslation)();
|
|
21135
21679
|
const { currentPage, navigateTo } = useInternalNavigation();
|
|
21136
21680
|
const { organizationName, email } = useAuth();
|
|
21137
21681
|
const { colors, branding } = useTheme();
|
|
21138
|
-
const [locale, setLocale] = (0,
|
|
21139
|
-
const [menuOpen, setMenuOpen] = (0,
|
|
21682
|
+
const [locale, setLocale] = (0, import_react46.useState)(i18n_default.language || "en");
|
|
21683
|
+
const [menuOpen, setMenuOpen] = (0, import_react46.useState)(false);
|
|
21140
21684
|
const unreadCount = useUnreadCount();
|
|
21141
21685
|
const { status: pageStatus } = usePageStatus();
|
|
21142
21686
|
const pageChrome = PAGE_CHROME_BY_PAGE[currentPage] || PAGE_CHROME_BY_PAGE["consent-manager"];
|
|
21143
21687
|
const isDetail = mode === "detail";
|
|
21144
|
-
(0,
|
|
21688
|
+
(0, import_react46.useEffect)(() => {
|
|
21145
21689
|
const handleLanguageChanged = () => setLocale(i18n_default.language);
|
|
21146
21690
|
i18n_default.on("languageChanged", handleLanguageChanged);
|
|
21147
21691
|
return () => {
|
|
21148
21692
|
i18n_default.off("languageChanged", handleLanguageChanged);
|
|
21149
21693
|
};
|
|
21150
21694
|
}, []);
|
|
21151
|
-
const handleLanguageChange = (0,
|
|
21695
|
+
const handleLanguageChange = (0, import_react46.useCallback)((value) => {
|
|
21152
21696
|
i18n_default.changeLanguage(value);
|
|
21153
21697
|
}, []);
|
|
21154
21698
|
const brandLabel = (branding == null ? void 0 : branding.brand_name) || organizationName || t("privacyCenter") || "Privacy Center";
|
|
21155
21699
|
const accountLabel = brandLabel || email || t("account") || "Account";
|
|
21156
|
-
const brandLockup = /* @__PURE__ */ (0,
|
|
21157
|
-
/* @__PURE__ */ (0,
|
|
21158
|
-
/* @__PURE__ */ (0,
|
|
21700
|
+
const brandLockup = /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_react_native69.View, { style: styles57.brandRow, children: [
|
|
21701
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(PCAvatar, { name: organizationName || brandLabel, imageUrl: branding == null ? void 0 : branding.icon_url, size: 28 }),
|
|
21702
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_react_native69.Text, { style: [styles57.brandText, { color: colors.text }], numberOfLines: 1, children: brandLabel })
|
|
21159
21703
|
] });
|
|
21160
21704
|
const handleDetailBack = () => {
|
|
21161
21705
|
if (currentPage === "case-details") {
|
|
@@ -21167,26 +21711,26 @@ function Navbar({ mode = "primary", onBack }) {
|
|
|
21167
21711
|
}
|
|
21168
21712
|
};
|
|
21169
21713
|
if (isDetail) {
|
|
21170
|
-
return /* @__PURE__ */ (0,
|
|
21171
|
-
/* @__PURE__ */ (0,
|
|
21172
|
-
|
|
21714
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_jsx_runtime71.Fragment, { children: [
|
|
21715
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
21716
|
+
import_react_native69.View,
|
|
21173
21717
|
{
|
|
21174
21718
|
style: [
|
|
21175
|
-
|
|
21176
|
-
|
|
21719
|
+
styles57.container,
|
|
21720
|
+
styles57.detailContainer,
|
|
21177
21721
|
{ backgroundColor: colors.background, borderBottomColor: colors.border, paddingTop: TOP_INSET + spacing.xs }
|
|
21178
21722
|
],
|
|
21179
|
-
children: /* @__PURE__ */ (0,
|
|
21180
|
-
/* @__PURE__ */ (0,
|
|
21181
|
-
|
|
21723
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_react_native69.View, { style: styles57.detailRow, children: [
|
|
21724
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
21725
|
+
import_react_native69.TouchableOpacity,
|
|
21182
21726
|
{
|
|
21183
|
-
style:
|
|
21727
|
+
style: styles57.backButton,
|
|
21184
21728
|
onPress: handleDetailBack,
|
|
21185
21729
|
activeOpacity: 0.7,
|
|
21186
21730
|
hitSlop: DEFAULT_HIT_SLOP,
|
|
21187
21731
|
accessibilityRole: "button",
|
|
21188
21732
|
accessibilityLabel: t("back") || "Back",
|
|
21189
|
-
children: /* @__PURE__ */ (0,
|
|
21733
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_react_native_svg6.default, { width: 22, height: 22, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
21190
21734
|
import_react_native_svg6.Path,
|
|
21191
21735
|
{
|
|
21192
21736
|
d: "M19 12H5m0 0l7 7m-7-7l7-7",
|
|
@@ -21198,36 +21742,36 @@ function Navbar({ mode = "primary", onBack }) {
|
|
|
21198
21742
|
) })
|
|
21199
21743
|
}
|
|
21200
21744
|
),
|
|
21201
|
-
/* @__PURE__ */ (0,
|
|
21202
|
-
/* @__PURE__ */ (0,
|
|
21203
|
-
pageStatus ? /* @__PURE__ */ (0,
|
|
21745
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_react_native69.View, { style: styles57.detailTitleWrap, children: [
|
|
21746
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_react_native69.Text, { style: [styles57.detailTitle, { color: colors.text }], numberOfLines: 1, children: t(pageChrome.titleKey) }),
|
|
21747
|
+
pageStatus ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(PCBadge, { status: pageStatus.tone, label: pageStatus.label }) : null
|
|
21204
21748
|
] })
|
|
21205
21749
|
] })
|
|
21206
21750
|
}
|
|
21207
21751
|
),
|
|
21208
|
-
/* @__PURE__ */ (0,
|
|
21752
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(UserOrgMenu, { visible: menuOpen, onClose: () => setMenuOpen(false), onBack })
|
|
21209
21753
|
] });
|
|
21210
21754
|
}
|
|
21211
|
-
return /* @__PURE__ */ (0,
|
|
21212
|
-
/* @__PURE__ */ (0,
|
|
21213
|
-
|
|
21755
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_jsx_runtime71.Fragment, { children: [
|
|
21756
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
|
|
21757
|
+
import_react_native69.View,
|
|
21214
21758
|
{
|
|
21215
21759
|
style: [
|
|
21216
|
-
|
|
21760
|
+
styles57.container,
|
|
21217
21761
|
{ backgroundColor: colors.background, borderBottomColor: colors.border, paddingTop: TOP_INSET + spacing.xs }
|
|
21218
21762
|
],
|
|
21219
21763
|
children: [
|
|
21220
|
-
/* @__PURE__ */ (0,
|
|
21221
|
-
onBack ? /* @__PURE__ */ (0,
|
|
21222
|
-
|
|
21764
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_react_native69.View, { style: styles57.appBar, children: [
|
|
21765
|
+
onBack ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
21766
|
+
import_react_native69.TouchableOpacity,
|
|
21223
21767
|
{
|
|
21224
|
-
style:
|
|
21768
|
+
style: styles57.backButton,
|
|
21225
21769
|
onPress: () => navigateBack(onBack),
|
|
21226
21770
|
activeOpacity: 0.7,
|
|
21227
21771
|
hitSlop: DEFAULT_HIT_SLOP,
|
|
21228
21772
|
accessibilityRole: "button",
|
|
21229
21773
|
accessibilityLabel: onBack === "back" ? t("back") || "Back" : t("signOut") || "Sign Out",
|
|
21230
|
-
children: /* @__PURE__ */ (0,
|
|
21774
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_react_native_svg6.default, { width: 22, height: 22, viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
21231
21775
|
import_react_native_svg6.Path,
|
|
21232
21776
|
{
|
|
21233
21777
|
d: "M19 12H5m0 0l7 7m-7-7l7-7",
|
|
@@ -21239,39 +21783,39 @@ function Navbar({ mode = "primary", onBack }) {
|
|
|
21239
21783
|
) })
|
|
21240
21784
|
}
|
|
21241
21785
|
) : null,
|
|
21242
|
-
/* @__PURE__ */ (0,
|
|
21243
|
-
/* @__PURE__ */ (0,
|
|
21244
|
-
/* @__PURE__ */ (0,
|
|
21245
|
-
/* @__PURE__ */ (0,
|
|
21246
|
-
/* @__PURE__ */ (0,
|
|
21247
|
-
|
|
21786
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_react_native69.View, { style: styles57.brandWrap, children: (branding == null ? void 0 : branding.logo_url) ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(BrandImage, { uri: branding.logo_url, height: 34, maxWidth: 170, fallback: brandLockup }) : brandLockup }),
|
|
21787
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_react_native69.View, { style: styles57.actions, children: [
|
|
21788
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(NotificationBell, { count: unreadCount, onPress: () => navigateTo("notifications") }),
|
|
21789
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(PCSelect, { value: locale, options: languageOptions, onChange: handleLanguageChange, placeholder: t("language"), compact: true }),
|
|
21790
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
21791
|
+
import_react_native69.TouchableOpacity,
|
|
21248
21792
|
{
|
|
21249
|
-
style:
|
|
21793
|
+
style: styles57.avatarButton,
|
|
21250
21794
|
onPress: () => setMenuOpen(true),
|
|
21251
21795
|
activeOpacity: 0.7,
|
|
21252
21796
|
hitSlop: DEFAULT_HIT_SLOP,
|
|
21253
21797
|
accessibilityRole: "button",
|
|
21254
21798
|
accessibilityLabel: accountLabel,
|
|
21255
|
-
children: /* @__PURE__ */ (0,
|
|
21799
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(PCAvatar, { name: organizationName || accountLabel, imageUrl: branding == null ? void 0 : branding.icon_url, size: 28 })
|
|
21256
21800
|
}
|
|
21257
21801
|
)
|
|
21258
21802
|
] })
|
|
21259
21803
|
] }),
|
|
21260
|
-
/* @__PURE__ */ (0,
|
|
21261
|
-
/* @__PURE__ */ (0,
|
|
21262
|
-
pageStatus ? /* @__PURE__ */ (0,
|
|
21804
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_react_native69.View, { style: styles57.pageHeader, children: /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_react_native69.View, { style: styles57.titleRow, children: [
|
|
21805
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_react_native69.Text, { style: [styles57.pageTitle, { color: colors.text }], numberOfLines: 1, children: t(pageChrome.titleKey) }),
|
|
21806
|
+
pageStatus ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(PCBadge, { status: pageStatus.tone, label: pageStatus.label }) : null
|
|
21263
21807
|
] }) })
|
|
21264
21808
|
]
|
|
21265
21809
|
}
|
|
21266
21810
|
),
|
|
21267
|
-
/* @__PURE__ */ (0,
|
|
21811
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(UserOrgMenu, { visible: menuOpen, onClose: () => setMenuOpen(false), onBack })
|
|
21268
21812
|
] });
|
|
21269
21813
|
}
|
|
21270
|
-
var
|
|
21814
|
+
var styles57 = import_react_native69.StyleSheet.create({
|
|
21271
21815
|
container: {
|
|
21272
21816
|
paddingHorizontal: spacing.lg,
|
|
21273
21817
|
paddingBottom: spacing.md,
|
|
21274
|
-
borderBottomWidth:
|
|
21818
|
+
borderBottomWidth: import_react_native69.StyleSheet.hairlineWidth
|
|
21275
21819
|
},
|
|
21276
21820
|
detailContainer: {
|
|
21277
21821
|
paddingBottom: spacing.sm
|
|
@@ -21351,10 +21895,10 @@ var styles55 = import_react_native67.StyleSheet.create({
|
|
|
21351
21895
|
});
|
|
21352
21896
|
|
|
21353
21897
|
// src/RedactoPrivacyCenter/components/BottomTabBar.tsx
|
|
21354
|
-
var
|
|
21355
|
-
var
|
|
21356
|
-
var
|
|
21357
|
-
var
|
|
21898
|
+
var import_react47 = require("react");
|
|
21899
|
+
var import_react_native70 = require("react-native");
|
|
21900
|
+
var import_react_i18next35 = require("react-i18next");
|
|
21901
|
+
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
21358
21902
|
var TAB_ITEMS = [
|
|
21359
21903
|
{ page: "consent-manager", labelKey: "consentManager", fallback: "Consents", icon: "shield-check" },
|
|
21360
21904
|
{ page: "form", labelKey: "grievanceRequests", fallback: "Requests", icon: "message-circle-warning" },
|
|
@@ -21365,10 +21909,10 @@ var PAD_H = spacing.lg;
|
|
|
21365
21909
|
var PILL_WIDTH = 56;
|
|
21366
21910
|
var PILL_HEIGHT = 34;
|
|
21367
21911
|
function BottomTabBar({ showFooter = true }) {
|
|
21368
|
-
const { t } = (0,
|
|
21912
|
+
const { t } = (0, import_react_i18next35.useTranslation)();
|
|
21369
21913
|
const { currentPage, navigateTo } = useInternalNavigation();
|
|
21370
21914
|
const { colors } = useTheme();
|
|
21371
|
-
const [rowWidth, setRowWidth] = (0,
|
|
21915
|
+
const [rowWidth, setRowWidth] = (0, import_react47.useState)(0);
|
|
21372
21916
|
const innerWidth = Math.max(0, rowWidth - PAD_H * 2);
|
|
21373
21917
|
const tabWidth = innerWidth > 0 ? innerWidth / TAB_ITEMS.length : 0;
|
|
21374
21918
|
const activeIndex = TAB_ITEMS.findIndex(
|
|
@@ -21376,13 +21920,13 @@ function BottomTabBar({ showFooter = true }) {
|
|
|
21376
21920
|
);
|
|
21377
21921
|
const { translateX } = useAnimatedTabIndicator(Math.max(0, activeIndex), tabWidth);
|
|
21378
21922
|
const onLayout = (e) => setRowWidth(e.nativeEvent.layout.width);
|
|
21379
|
-
return /* @__PURE__ */ (0,
|
|
21380
|
-
/* @__PURE__ */ (0,
|
|
21381
|
-
tabWidth > 0 && activeIndex >= 0 ? /* @__PURE__ */ (0,
|
|
21382
|
-
|
|
21923
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(import_react_native70.View, { style: [styles58.wrapper, { backgroundColor: colors.canvasSubtle, borderTopColor: colors.hairline }], children: [
|
|
21924
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(import_react_native70.View, { style: styles58.container, onLayout, children: [
|
|
21925
|
+
tabWidth > 0 && activeIndex >= 0 ? /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
21926
|
+
import_react_native70.Animated.View,
|
|
21383
21927
|
{
|
|
21384
21928
|
style: [
|
|
21385
|
-
|
|
21929
|
+
styles58.pill,
|
|
21386
21930
|
{
|
|
21387
21931
|
width: PILL_WIDTH,
|
|
21388
21932
|
left: PAD_H + (tabWidth - PILL_WIDTH) / 2,
|
|
@@ -21395,17 +21939,17 @@ function BottomTabBar({ showFooter = true }) {
|
|
|
21395
21939
|
TAB_ITEMS.map((item) => {
|
|
21396
21940
|
const isActive = currentPage === item.page || item.page === "form" && currentPage === "case-details";
|
|
21397
21941
|
const label = t(item.labelKey) || item.fallback;
|
|
21398
|
-
return /* @__PURE__ */ (0,
|
|
21399
|
-
|
|
21942
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
|
|
21943
|
+
import_react_native70.TouchableOpacity,
|
|
21400
21944
|
{
|
|
21401
|
-
style:
|
|
21945
|
+
style: styles58.tab,
|
|
21402
21946
|
onPress: () => navigateTo(item.page),
|
|
21403
21947
|
activeOpacity: 0.7,
|
|
21404
21948
|
accessibilityRole: "tab",
|
|
21405
21949
|
accessibilityState: { selected: isActive },
|
|
21406
21950
|
accessibilityLabel: label,
|
|
21407
21951
|
children: [
|
|
21408
|
-
/* @__PURE__ */ (0,
|
|
21952
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_react_native70.View, { style: styles58.iconWrap, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
21409
21953
|
Icon,
|
|
21410
21954
|
{
|
|
21411
21955
|
name: item.icon,
|
|
@@ -21414,10 +21958,10 @@ function BottomTabBar({ showFooter = true }) {
|
|
|
21414
21958
|
strokeWidth: isActive ? 2.1 : 1.85
|
|
21415
21959
|
}
|
|
21416
21960
|
) }),
|
|
21417
|
-
/* @__PURE__ */ (0,
|
|
21418
|
-
|
|
21961
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
21962
|
+
import_react_native70.Text,
|
|
21419
21963
|
{
|
|
21420
|
-
style: [
|
|
21964
|
+
style: [styles58.tabLabel, { color: isActive ? colors.primary : colors.textSecondary }],
|
|
21421
21965
|
numberOfLines: 1,
|
|
21422
21966
|
children: label
|
|
21423
21967
|
}
|
|
@@ -21428,13 +21972,13 @@ function BottomTabBar({ showFooter = true }) {
|
|
|
21428
21972
|
);
|
|
21429
21973
|
})
|
|
21430
21974
|
] }),
|
|
21431
|
-
showFooter ? /* @__PURE__ */ (0,
|
|
21432
|
-
/* @__PURE__ */ (0,
|
|
21975
|
+
showFooter ? /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Footer, { inline: true }) : null,
|
|
21976
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_react_native70.View, { style: { height: BOTTOM_INSET } })
|
|
21433
21977
|
] });
|
|
21434
21978
|
}
|
|
21435
|
-
var
|
|
21979
|
+
var styles58 = import_react_native70.StyleSheet.create({
|
|
21436
21980
|
wrapper: {
|
|
21437
|
-
borderTopWidth:
|
|
21981
|
+
borderTopWidth: import_react_native70.StyleSheet.hairlineWidth
|
|
21438
21982
|
},
|
|
21439
21983
|
container: {
|
|
21440
21984
|
flexDirection: "row",
|