@asgardeo/react 0.15.2 → 0.15.3
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/cjs/index.js +146 -140
- package/dist/cjs/index.js.map +4 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.js +69 -61
- package/dist/index.js.map +4 -4
- package/package.json +2 -2
package/dist/cjs/index.js
CHANGED
|
@@ -66,6 +66,7 @@ __export(index_exports, {
|
|
|
66
66
|
CreateOrganization: () => CreateOrganization,
|
|
67
67
|
DatePicker: () => DatePicker_default,
|
|
68
68
|
Divider: () => Divider_default,
|
|
69
|
+
EMOJI_URI_SCHEME: () => import_browser92.EMOJI_URI_SCHEME,
|
|
69
70
|
EmailOtp: () => EmailOtp_default,
|
|
70
71
|
EmbeddedFlowActionVariant: () => import_browser92.EmbeddedFlowActionVariantV2,
|
|
71
72
|
EmbeddedFlowComponentType: () => import_browser92.EmbeddedFlowComponentTypeV2,
|
|
@@ -131,11 +132,13 @@ __export(index_exports, {
|
|
|
131
132
|
UserProfile: () => UserProfile_default,
|
|
132
133
|
UserProvider: () => UserProvider_default,
|
|
133
134
|
UsernamePassword: () => UsernamePassword_default,
|
|
135
|
+
countryCodeToFlagEmoji: () => import_browser92.countryCodeToFlagEmoji,
|
|
134
136
|
createField: () => createField,
|
|
135
137
|
createOrganization: () => createOrganization_default,
|
|
136
138
|
createPatchOperations: () => import_browser89.createPatchOperations,
|
|
137
139
|
createSignInOption: () => createSignInOption,
|
|
138
140
|
createSignInOptionFromAuthenticator: () => createSignInOptionFromAuthenticator,
|
|
141
|
+
extractEmojiFromUri: () => import_browser92.extractEmojiFromUri,
|
|
139
142
|
getActiveTheme: () => import_browser92.getActiveTheme,
|
|
140
143
|
getAllOrganizations: () => getAllOrganizations_default,
|
|
141
144
|
getConsentOptionalKey: () => getConsentOptionalKey,
|
|
@@ -144,7 +147,13 @@ __export(index_exports, {
|
|
|
144
147
|
getOrganization: () => getOrganization_default,
|
|
145
148
|
getSchemas: () => getSchemas_default,
|
|
146
149
|
http: () => import_browser92.http,
|
|
150
|
+
isEmojiUri: () => import_browser92.isEmojiUri,
|
|
147
151
|
navigate: () => import_browser92.navigate,
|
|
152
|
+
resolveEmojiUrisInHtml: () => import_browser92.resolveEmojiUrisInHtml,
|
|
153
|
+
resolveFlowTemplateLiterals: () => import_browser92.resolveFlowTemplateLiterals,
|
|
154
|
+
resolveLocaleDisplayName: () => import_browser92.resolveLocaleDisplayName,
|
|
155
|
+
resolveLocaleEmoji: () => import_browser92.resolveLocaleEmoji,
|
|
156
|
+
resolveMeta: () => import_browser92.resolveMeta,
|
|
148
157
|
updateMeProfile: () => updateMeProfile_default,
|
|
149
158
|
updateOrganization: () => updateOrganization_default,
|
|
150
159
|
useAsgardeo: () => useAsgardeo_default,
|
|
@@ -164,7 +173,7 @@ module.exports = __toCommonJS(index_exports);
|
|
|
164
173
|
|
|
165
174
|
// src/contexts/Asgardeo/AsgardeoProvider.tsx
|
|
166
175
|
var import_browser16 = require("@asgardeo/browser");
|
|
167
|
-
var
|
|
176
|
+
var import_react20 = require("react");
|
|
168
177
|
|
|
169
178
|
// src/contexts/Asgardeo/AsgardeoContext.ts
|
|
170
179
|
var import_react = require("react");
|
|
@@ -1227,7 +1236,7 @@ var FlowProvider_default = FlowProvider;
|
|
|
1227
1236
|
// src/contexts/FlowMeta/FlowMetaProvider.tsx
|
|
1228
1237
|
var import_browser10 = require("@asgardeo/browser");
|
|
1229
1238
|
var import_i18n = require("@asgardeo/i18n");
|
|
1230
|
-
var
|
|
1239
|
+
var import_react10 = require("react");
|
|
1231
1240
|
|
|
1232
1241
|
// src/contexts/FlowMeta/FlowMetaContext.ts
|
|
1233
1242
|
var import_react6 = require("react");
|
|
@@ -1265,6 +1274,19 @@ var useAsgardeo = () => {
|
|
|
1265
1274
|
};
|
|
1266
1275
|
var useAsgardeo_default = useAsgardeo;
|
|
1267
1276
|
|
|
1277
|
+
// src/contexts/I18n/useI18n.ts
|
|
1278
|
+
var import_react9 = require("react");
|
|
1279
|
+
var useI18n = () => {
|
|
1280
|
+
const context = (0, import_react9.useContext)(I18nContext_default);
|
|
1281
|
+
if (!context) {
|
|
1282
|
+
throw new Error(
|
|
1283
|
+
"useI18n must be used within an I18nProvider. Make sure your component is wrapped with AsgardeoProvider which includes I18nProvider."
|
|
1284
|
+
);
|
|
1285
|
+
}
|
|
1286
|
+
return context;
|
|
1287
|
+
};
|
|
1288
|
+
var useI18n_default = useI18n;
|
|
1289
|
+
|
|
1268
1290
|
// src/contexts/FlowMeta/FlowMetaProvider.tsx
|
|
1269
1291
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
1270
1292
|
var FlowMetaProvider = ({
|
|
@@ -1272,13 +1294,13 @@ var FlowMetaProvider = ({
|
|
|
1272
1294
|
enabled = true
|
|
1273
1295
|
}) => {
|
|
1274
1296
|
const { baseUrl, applicationId } = useAsgardeo_default();
|
|
1275
|
-
const i18nContext = (
|
|
1276
|
-
const [meta, setMeta] = (0,
|
|
1277
|
-
const [isLoading, setIsLoading] = (0,
|
|
1278
|
-
const [error, setError] = (0,
|
|
1279
|
-
const [pendingLanguage, setPendingLanguage] = (0,
|
|
1280
|
-
const hasFetchedRef = (0,
|
|
1281
|
-
const fetchFlowMeta = (0,
|
|
1297
|
+
const i18nContext = useI18n_default();
|
|
1298
|
+
const [meta, setMeta] = (0, import_react10.useState)(null);
|
|
1299
|
+
const [isLoading, setIsLoading] = (0, import_react10.useState)(false);
|
|
1300
|
+
const [error, setError] = (0, import_react10.useState)(null);
|
|
1301
|
+
const [pendingLanguage, setPendingLanguage] = (0, import_react10.useState)(null);
|
|
1302
|
+
const hasFetchedRef = (0, import_react10.useRef)(false);
|
|
1303
|
+
const fetchFlowMeta = (0, import_react10.useCallback)(async () => {
|
|
1282
1304
|
if (!enabled) {
|
|
1283
1305
|
setMeta(null);
|
|
1284
1306
|
return;
|
|
@@ -1286,15 +1308,20 @@ var FlowMetaProvider = ({
|
|
|
1286
1308
|
setIsLoading(true);
|
|
1287
1309
|
setError(null);
|
|
1288
1310
|
try {
|
|
1289
|
-
const result = await (0, import_browser10.getFlowMetaV2)({
|
|
1311
|
+
const result = await (0, import_browser10.getFlowMetaV2)({
|
|
1312
|
+
baseUrl,
|
|
1313
|
+
id: applicationId,
|
|
1314
|
+
language: i18nContext?.currentLanguage,
|
|
1315
|
+
type: import_browser10.FlowMetaType.App
|
|
1316
|
+
});
|
|
1290
1317
|
setMeta(result);
|
|
1291
1318
|
} catch (err) {
|
|
1292
1319
|
setError(err instanceof Error ? err : new Error(String(err)));
|
|
1293
1320
|
} finally {
|
|
1294
1321
|
setIsLoading(false);
|
|
1295
1322
|
}
|
|
1296
|
-
}, [enabled, baseUrl, applicationId]);
|
|
1297
|
-
const switchLanguage = (0,
|
|
1323
|
+
}, [enabled, baseUrl, applicationId, i18nContext?.currentLanguage]);
|
|
1324
|
+
const switchLanguage = (0, import_react10.useCallback)(
|
|
1298
1325
|
async (language) => {
|
|
1299
1326
|
if (!enabled) return;
|
|
1300
1327
|
setIsLoading(true);
|
|
@@ -1326,13 +1353,13 @@ var FlowMetaProvider = ({
|
|
|
1326
1353
|
},
|
|
1327
1354
|
[enabled, baseUrl, applicationId, i18nContext]
|
|
1328
1355
|
);
|
|
1329
|
-
(0,
|
|
1356
|
+
(0, import_react10.useEffect)(() => {
|
|
1330
1357
|
if (pendingLanguage && i18nContext?.setLanguage) {
|
|
1331
1358
|
i18nContext.setLanguage(pendingLanguage);
|
|
1332
1359
|
setPendingLanguage(null);
|
|
1333
1360
|
}
|
|
1334
1361
|
}, [pendingLanguage, i18nContext?.setLanguage]);
|
|
1335
|
-
(0,
|
|
1362
|
+
(0, import_react10.useEffect)(() => {
|
|
1336
1363
|
if (!hasFetchedRef.current) {
|
|
1337
1364
|
hasFetchedRef.current = true;
|
|
1338
1365
|
fetchFlowMeta();
|
|
@@ -1340,7 +1367,7 @@ var FlowMetaProvider = ({
|
|
|
1340
1367
|
}
|
|
1341
1368
|
fetchFlowMeta();
|
|
1342
1369
|
}, [fetchFlowMeta]);
|
|
1343
|
-
(0,
|
|
1370
|
+
(0, import_react10.useEffect)(() => {
|
|
1344
1371
|
if (!meta?.i18n?.translations || !i18nContext?.injectBundles) {
|
|
1345
1372
|
return;
|
|
1346
1373
|
}
|
|
@@ -1375,7 +1402,7 @@ var FlowMetaProvider_default = FlowMetaProvider;
|
|
|
1375
1402
|
// src/contexts/I18n/I18nProvider.tsx
|
|
1376
1403
|
var import_browser11 = require("@asgardeo/browser");
|
|
1377
1404
|
var import_i18n2 = require("@asgardeo/i18n");
|
|
1378
|
-
var
|
|
1405
|
+
var import_react11 = require("react");
|
|
1379
1406
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
1380
1407
|
var logger = (0, import_browser11.createPackageComponentLogger)(
|
|
1381
1408
|
"@asgardeo/react",
|
|
@@ -1457,12 +1484,12 @@ var I18nProvider = ({
|
|
|
1457
1484
|
const storageStrategy = preferences?.storageStrategy ?? "cookie";
|
|
1458
1485
|
const storageKey = preferences?.storageKey ?? DEFAULT_STORAGE_KEY;
|
|
1459
1486
|
const urlParamConfig = preferences?.urlParam === void 0 ? DEFAULT_URL_PARAM : preferences.urlParam;
|
|
1460
|
-
const resolvedCookieDomain = (0,
|
|
1487
|
+
const resolvedCookieDomain = (0, import_react11.useMemo)(() => {
|
|
1461
1488
|
if (storageStrategy !== "cookie") return void 0;
|
|
1462
1489
|
if (preferences?.cookieDomain) return preferences.cookieDomain;
|
|
1463
1490
|
return typeof window !== "undefined" ? deriveRootDomain(window.location.hostname) : void 0;
|
|
1464
1491
|
}, [storageStrategy, preferences?.cookieDomain]);
|
|
1465
|
-
const storage = (0,
|
|
1492
|
+
const storage = (0, import_react11.useMemo)(
|
|
1466
1493
|
() => createStorageAdapter(storageStrategy, storageKey, resolvedCookieDomain),
|
|
1467
1494
|
[storageStrategy, storageKey, resolvedCookieDomain]
|
|
1468
1495
|
);
|
|
@@ -1481,9 +1508,9 @@ var I18nProvider = ({
|
|
|
1481
1508
|
if (browserLanguage) return browserLanguage;
|
|
1482
1509
|
return preferences?.fallbackLanguage || import_i18n2.TranslationBundleConstants.FALLBACK_LOCALE;
|
|
1483
1510
|
};
|
|
1484
|
-
const [currentLanguage, setCurrentLanguage] = (0,
|
|
1485
|
-
const [injectedBundles, setInjectedBundles] = (0,
|
|
1486
|
-
const injectBundles = (0,
|
|
1511
|
+
const [currentLanguage, setCurrentLanguage] = (0, import_react11.useState)(determineInitialLanguage);
|
|
1512
|
+
const [injectedBundles, setInjectedBundles] = (0, import_react11.useState)({});
|
|
1513
|
+
const injectBundles = (0, import_react11.useCallback)(
|
|
1487
1514
|
(newBundles) => {
|
|
1488
1515
|
setInjectedBundles((prev) => {
|
|
1489
1516
|
const merged = { ...prev };
|
|
@@ -1505,7 +1532,7 @@ var I18nProvider = ({
|
|
|
1505
1532
|
},
|
|
1506
1533
|
[]
|
|
1507
1534
|
);
|
|
1508
|
-
const mergedBundles = (0,
|
|
1535
|
+
const mergedBundles = (0, import_react11.useMemo)(() => {
|
|
1509
1536
|
const merged = {};
|
|
1510
1537
|
Object.entries(defaultBundles).forEach(([key, bundle]) => {
|
|
1511
1538
|
const languageKey = key.replace("_", "-");
|
|
@@ -1543,10 +1570,10 @@ var I18nProvider = ({
|
|
|
1543
1570
|
return merged;
|
|
1544
1571
|
}, [defaultBundles, injectedBundles, preferences?.bundles]);
|
|
1545
1572
|
const fallbackLanguage = preferences?.fallbackLanguage || import_i18n2.TranslationBundleConstants.FALLBACK_LOCALE;
|
|
1546
|
-
(0,
|
|
1573
|
+
(0, import_react11.useEffect)(() => {
|
|
1547
1574
|
storage.write(currentLanguage);
|
|
1548
1575
|
}, [currentLanguage, storage]);
|
|
1549
|
-
const t = (0,
|
|
1576
|
+
const t = (0, import_react11.useCallback)(
|
|
1550
1577
|
(key, params) => {
|
|
1551
1578
|
let translation;
|
|
1552
1579
|
const currentBundle = mergedBundles[currentLanguage];
|
|
@@ -1572,7 +1599,7 @@ var I18nProvider = ({
|
|
|
1572
1599
|
},
|
|
1573
1600
|
[mergedBundles, currentLanguage, fallbackLanguage]
|
|
1574
1601
|
);
|
|
1575
|
-
const setLanguage = (0,
|
|
1602
|
+
const setLanguage = (0, import_react11.useCallback)(
|
|
1576
1603
|
(language) => {
|
|
1577
1604
|
if (mergedBundles[language]) {
|
|
1578
1605
|
setCurrentLanguage(language);
|
|
@@ -1584,7 +1611,7 @@ var I18nProvider = ({
|
|
|
1584
1611
|
},
|
|
1585
1612
|
[mergedBundles]
|
|
1586
1613
|
);
|
|
1587
|
-
const contextValue = (0,
|
|
1614
|
+
const contextValue = (0, import_react11.useMemo)(
|
|
1588
1615
|
() => ({
|
|
1589
1616
|
bundles: mergedBundles,
|
|
1590
1617
|
currentLanguage,
|
|
@@ -1601,11 +1628,11 @@ var I18nProvider_default = I18nProvider;
|
|
|
1601
1628
|
|
|
1602
1629
|
// src/contexts/Organization/OrganizationProvider.tsx
|
|
1603
1630
|
var import_browser12 = require("@asgardeo/browser");
|
|
1604
|
-
var
|
|
1631
|
+
var import_react13 = require("react");
|
|
1605
1632
|
|
|
1606
1633
|
// src/contexts/Organization/OrganizationContext.ts
|
|
1607
|
-
var
|
|
1608
|
-
var OrganizationContext = (0,
|
|
1634
|
+
var import_react12 = require("react");
|
|
1635
|
+
var OrganizationContext = (0, import_react12.createContext)({
|
|
1609
1636
|
createOrganization: () => null,
|
|
1610
1637
|
currentOrganization: null,
|
|
1611
1638
|
error: null,
|
|
@@ -1633,9 +1660,9 @@ var OrganizationProvider = ({
|
|
|
1633
1660
|
getAllOrganizations: getAllOrganizations2,
|
|
1634
1661
|
createOrganization: createOrganization2
|
|
1635
1662
|
}) => {
|
|
1636
|
-
const [isLoading, setIsLoading] = (0,
|
|
1637
|
-
const [error, setError] = (0,
|
|
1638
|
-
const switchOrganization = (0,
|
|
1663
|
+
const [isLoading, setIsLoading] = (0, import_react13.useState)(false);
|
|
1664
|
+
const [error, setError] = (0, import_react13.useState)(null);
|
|
1665
|
+
const switchOrganization = (0, import_react13.useCallback)(
|
|
1639
1666
|
async (organization) => {
|
|
1640
1667
|
if (!onOrganizationSwitch) {
|
|
1641
1668
|
throw new import_browser12.AsgardeoRuntimeError(
|
|
@@ -1662,7 +1689,7 @@ var OrganizationProvider = ({
|
|
|
1662
1689
|
},
|
|
1663
1690
|
[onOrganizationSwitch, onError]
|
|
1664
1691
|
);
|
|
1665
|
-
const contextValue = (0,
|
|
1692
|
+
const contextValue = (0, import_react13.useMemo)(
|
|
1666
1693
|
() => ({
|
|
1667
1694
|
createOrganization: createOrganization2,
|
|
1668
1695
|
currentOrganization,
|
|
@@ -1693,7 +1720,7 @@ var import_browser15 = require("@asgardeo/browser");
|
|
|
1693
1720
|
|
|
1694
1721
|
// src/contexts/Theme/v1/ThemeProvider.tsx
|
|
1695
1722
|
var import_browser13 = require("@asgardeo/browser");
|
|
1696
|
-
var
|
|
1723
|
+
var import_react16 = require("react");
|
|
1697
1724
|
|
|
1698
1725
|
// src/utils/applyThemeToDOM.ts
|
|
1699
1726
|
var applyThemeToDOM = (theme) => {
|
|
@@ -1726,9 +1753,9 @@ var normalizeThemeConfig = (config) => {
|
|
|
1726
1753
|
var normalizeThemeConfig_default = normalizeThemeConfig;
|
|
1727
1754
|
|
|
1728
1755
|
// src/contexts/Branding/useBrandingContext.ts
|
|
1729
|
-
var
|
|
1756
|
+
var import_react14 = require("react");
|
|
1730
1757
|
var useBrandingContext = () => {
|
|
1731
|
-
const context = (0,
|
|
1758
|
+
const context = (0, import_react14.useContext)(BrandingContext_default);
|
|
1732
1759
|
if (!context) {
|
|
1733
1760
|
throw new Error("useBrandingContext must be used within a BrandingProvider");
|
|
1734
1761
|
}
|
|
@@ -1737,8 +1764,8 @@ var useBrandingContext = () => {
|
|
|
1737
1764
|
var useBrandingContext_default = useBrandingContext;
|
|
1738
1765
|
|
|
1739
1766
|
// src/contexts/Theme/ThemeContext.ts
|
|
1740
|
-
var
|
|
1741
|
-
var ThemeContext = (0,
|
|
1767
|
+
var import_react15 = require("react");
|
|
1768
|
+
var ThemeContext = (0, import_react15.createContext)(null);
|
|
1742
1769
|
ThemeContext.displayName = "ThemeContext";
|
|
1743
1770
|
var ThemeContext_default = ThemeContext;
|
|
1744
1771
|
|
|
@@ -1756,7 +1783,7 @@ var ThemeProvider = ({
|
|
|
1756
1783
|
inheritFromBranding = true
|
|
1757
1784
|
}) => {
|
|
1758
1785
|
const themeConfig = normalizeThemeConfig_default(themeConfigProp);
|
|
1759
|
-
const [colorScheme, setColorScheme] = (0,
|
|
1786
|
+
const [colorScheme, setColorScheme] = (0, import_react16.useState)(() => {
|
|
1760
1787
|
if (mode === "light" || mode === "dark") {
|
|
1761
1788
|
return mode;
|
|
1762
1789
|
}
|
|
@@ -1782,7 +1809,7 @@ var ThemeProvider = ({
|
|
|
1782
1809
|
);
|
|
1783
1810
|
}
|
|
1784
1811
|
}
|
|
1785
|
-
(0,
|
|
1812
|
+
(0, import_react16.useEffect)(() => {
|
|
1786
1813
|
if (inheritFromBranding && brandingActiveTheme) {
|
|
1787
1814
|
if (mode === "branding") {
|
|
1788
1815
|
setColorScheme(brandingActiveTheme);
|
|
@@ -1791,7 +1818,7 @@ var ThemeProvider = ({
|
|
|
1791
1818
|
}
|
|
1792
1819
|
}
|
|
1793
1820
|
}, [inheritFromBranding, brandingActiveTheme, mode, isBrandingLoading]);
|
|
1794
|
-
const finalThemeConfig = (0,
|
|
1821
|
+
const finalThemeConfig = (0, import_react16.useMemo)(() => {
|
|
1795
1822
|
if (!inheritFromBranding || !brandingTheme) {
|
|
1796
1823
|
return themeConfig;
|
|
1797
1824
|
}
|
|
@@ -1832,18 +1859,18 @@ var ThemeProvider = ({
|
|
|
1832
1859
|
}
|
|
1833
1860
|
};
|
|
1834
1861
|
}, [inheritFromBranding, brandingTheme, themeConfig]);
|
|
1835
|
-
const theme = (0,
|
|
1862
|
+
const theme = (0, import_react16.useMemo)(
|
|
1836
1863
|
() => (0, import_browser13.createTheme)(finalThemeConfig, colorScheme === "dark"),
|
|
1837
1864
|
[finalThemeConfig, colorScheme]
|
|
1838
1865
|
);
|
|
1839
1866
|
const direction = finalThemeConfig?.direction || "ltr";
|
|
1840
|
-
const handleThemeChange = (0,
|
|
1867
|
+
const handleThemeChange = (0, import_react16.useCallback)((isDark) => {
|
|
1841
1868
|
setColorScheme(isDark ? "dark" : "light");
|
|
1842
1869
|
}, []);
|
|
1843
|
-
const toggleTheme = (0,
|
|
1870
|
+
const toggleTheme = (0, import_react16.useCallback)(() => {
|
|
1844
1871
|
setColorScheme((prev) => prev === "light" ? "dark" : "light");
|
|
1845
1872
|
}, []);
|
|
1846
|
-
(0,
|
|
1873
|
+
(0, import_react16.useEffect)(() => {
|
|
1847
1874
|
let observer = null;
|
|
1848
1875
|
let mediaQuery = null;
|
|
1849
1876
|
if (mode === "branding") {
|
|
@@ -1872,10 +1899,10 @@ var ThemeProvider = ({
|
|
|
1872
1899
|
}
|
|
1873
1900
|
};
|
|
1874
1901
|
}, [mode, detection, handleThemeChange, inheritFromBranding, brandingActiveTheme]);
|
|
1875
|
-
(0,
|
|
1902
|
+
(0, import_react16.useEffect)(() => {
|
|
1876
1903
|
applyThemeToDOM_default(theme);
|
|
1877
1904
|
}, [theme]);
|
|
1878
|
-
(0,
|
|
1905
|
+
(0, import_react16.useEffect)(() => {
|
|
1879
1906
|
if (typeof document !== "undefined") {
|
|
1880
1907
|
document.documentElement.dir = direction;
|
|
1881
1908
|
}
|
|
@@ -1895,7 +1922,7 @@ var ThemeProvider_default = ThemeProvider;
|
|
|
1895
1922
|
|
|
1896
1923
|
// src/contexts/Theme/v2/ThemeProvider.tsx
|
|
1897
1924
|
var import_browser14 = require("@asgardeo/browser");
|
|
1898
|
-
var
|
|
1925
|
+
var import_react17 = require("react");
|
|
1899
1926
|
|
|
1900
1927
|
// src/utils/v2/buildThemeConfigFromFlowMeta.ts
|
|
1901
1928
|
var buildThemeConfigFromFlowMeta = (flowMetaTheme, colorScheme) => {
|
|
@@ -1949,22 +1976,22 @@ var ThemeProvider2 = ({
|
|
|
1949
1976
|
theme: themeOverrideProp
|
|
1950
1977
|
}) => {
|
|
1951
1978
|
const themeOverride = normalizeThemeConfig_default(themeOverrideProp);
|
|
1952
|
-
const flowMetaContext = (0,
|
|
1979
|
+
const flowMetaContext = (0, import_react17.useContext)(FlowMetaContext_default);
|
|
1953
1980
|
const flowMetaTheme = flowMetaContext?.meta?.design?.theme ?? null;
|
|
1954
1981
|
const isLoading = flowMetaContext?.isLoading ?? false;
|
|
1955
1982
|
const error = flowMetaContext?.error ?? null;
|
|
1956
|
-
const [colorScheme, setColorScheme] = (0,
|
|
1983
|
+
const [colorScheme, setColorScheme] = (0, import_react17.useState)(
|
|
1957
1984
|
() => flowMetaTheme?.defaultColorScheme ?? "light"
|
|
1958
1985
|
);
|
|
1959
|
-
(0,
|
|
1986
|
+
(0, import_react17.useEffect)(() => {
|
|
1960
1987
|
if (flowMetaTheme?.defaultColorScheme) {
|
|
1961
1988
|
setColorScheme(flowMetaTheme.defaultColorScheme);
|
|
1962
1989
|
}
|
|
1963
1990
|
}, [flowMetaTheme?.defaultColorScheme]);
|
|
1964
|
-
const toggleTheme = (0,
|
|
1991
|
+
const toggleTheme = (0, import_react17.useCallback)(() => {
|
|
1965
1992
|
setColorScheme((prev) => prev === "light" ? "dark" : "light");
|
|
1966
1993
|
}, []);
|
|
1967
|
-
const finalThemeConfig = (0,
|
|
1994
|
+
const finalThemeConfig = (0, import_react17.useMemo)(() => {
|
|
1968
1995
|
if (!flowMetaTheme) {
|
|
1969
1996
|
return themeOverride;
|
|
1970
1997
|
}
|
|
@@ -1991,15 +2018,15 @@ var ThemeProvider2 = ({
|
|
|
1991
2018
|
} : {}
|
|
1992
2019
|
};
|
|
1993
2020
|
}, [flowMetaTheme, colorScheme, themeOverride]);
|
|
1994
|
-
const theme = (0,
|
|
2021
|
+
const theme = (0, import_react17.useMemo)(
|
|
1995
2022
|
() => (0, import_browser14.createTheme)(finalThemeConfig, colorScheme === "dark"),
|
|
1996
2023
|
[finalThemeConfig, colorScheme]
|
|
1997
2024
|
);
|
|
1998
2025
|
const direction = flowMetaTheme?.direction ?? "ltr";
|
|
1999
|
-
(0,
|
|
2026
|
+
(0, import_react17.useEffect)(() => {
|
|
2000
2027
|
applyThemeToDOM_default(theme);
|
|
2001
2028
|
}, [theme]);
|
|
2002
|
-
(0,
|
|
2029
|
+
(0, import_react17.useEffect)(() => {
|
|
2003
2030
|
if (typeof document !== "undefined") {
|
|
2004
2031
|
document.documentElement.dir = direction;
|
|
2005
2032
|
}
|
|
@@ -2036,11 +2063,11 @@ var ThemeProvider3 = ({
|
|
|
2036
2063
|
var ThemeProvider_default3 = ThemeProvider3;
|
|
2037
2064
|
|
|
2038
2065
|
// src/contexts/User/UserProvider.tsx
|
|
2039
|
-
var
|
|
2066
|
+
var import_react19 = require("react");
|
|
2040
2067
|
|
|
2041
2068
|
// src/contexts/User/UserContext.ts
|
|
2042
|
-
var
|
|
2043
|
-
var UserContext = (0,
|
|
2069
|
+
var import_react18 = require("react");
|
|
2070
|
+
var UserContext = (0, import_react18.createContext)({
|
|
2044
2071
|
flattenedProfile: null,
|
|
2045
2072
|
onUpdateProfile: () => null,
|
|
2046
2073
|
profile: null,
|
|
@@ -2060,7 +2087,7 @@ var UserProvider = ({
|
|
|
2060
2087
|
onUpdateProfile,
|
|
2061
2088
|
updateProfile
|
|
2062
2089
|
}) => {
|
|
2063
|
-
const contextValue = (0,
|
|
2090
|
+
const contextValue = (0, import_react19.useMemo)(
|
|
2064
2091
|
() => ({
|
|
2065
2092
|
flattenedProfile: profile?.flattenedProfile,
|
|
2066
2093
|
onUpdateProfile,
|
|
@@ -2095,18 +2122,18 @@ var AsgardeoProvider = ({
|
|
|
2095
2122
|
organizationChain,
|
|
2096
2123
|
...rest
|
|
2097
2124
|
}) => {
|
|
2098
|
-
const reRenderCheckRef = (0,
|
|
2099
|
-
const asgardeo = (0,
|
|
2125
|
+
const reRenderCheckRef = (0, import_react20.useRef)(false);
|
|
2126
|
+
const asgardeo = (0, import_react20.useMemo)(() => new AsgardeoReactClient_default(instanceId), [instanceId]);
|
|
2100
2127
|
const { hasAuthParams, hasCalledForThisInstance } = useBrowserUrl_default();
|
|
2101
|
-
const [user, setUser] = (0,
|
|
2102
|
-
const [currentOrganization, setCurrentOrganization] = (0,
|
|
2103
|
-
const [isSignedInSync, setIsSignedInSync] = (0,
|
|
2104
|
-
const [isInitializedSync, setIsInitializedSync] = (0,
|
|
2105
|
-
const [isLoadingSync, setIsLoadingSync] = (0,
|
|
2106
|
-
const [myOrganizations, setMyOrganizations] = (0,
|
|
2107
|
-
const [userProfile, setUserProfile] = (0,
|
|
2108
|
-
const [baseUrl, setBaseUrl] = (0,
|
|
2109
|
-
const [config, setConfig] = (0,
|
|
2128
|
+
const [user, setUser] = (0, import_react20.useState)(null);
|
|
2129
|
+
const [currentOrganization, setCurrentOrganization] = (0, import_react20.useState)(null);
|
|
2130
|
+
const [isSignedInSync, setIsSignedInSync] = (0, import_react20.useState)(false);
|
|
2131
|
+
const [isInitializedSync, setIsInitializedSync] = (0, import_react20.useState)(false);
|
|
2132
|
+
const [isLoadingSync, setIsLoadingSync] = (0, import_react20.useState)(true);
|
|
2133
|
+
const [myOrganizations, setMyOrganizations] = (0, import_react20.useState)([]);
|
|
2134
|
+
const [userProfile, setUserProfile] = (0, import_react20.useState)(null);
|
|
2135
|
+
const [baseUrl, setBaseUrl] = (0, import_react20.useState)(initialBaseUrl);
|
|
2136
|
+
const [config, setConfig] = (0, import_react20.useState)({
|
|
2110
2137
|
afterSignInUrl,
|
|
2111
2138
|
afterSignOutUrl,
|
|
2112
2139
|
applicationId,
|
|
@@ -2121,12 +2148,12 @@ var AsgardeoProvider = ({
|
|
|
2121
2148
|
syncSession,
|
|
2122
2149
|
...rest
|
|
2123
2150
|
});
|
|
2124
|
-
const [isUpdatingSession, setIsUpdatingSession] = (0,
|
|
2125
|
-
const [brandingPreference, setBrandingPreference] = (0,
|
|
2126
|
-
const [isBrandingLoading, setIsBrandingLoading] = (0,
|
|
2127
|
-
const [brandingError, setBrandingError] = (0,
|
|
2128
|
-
const [hasFetchedBranding, setHasFetchedBranding] = (0,
|
|
2129
|
-
(0,
|
|
2151
|
+
const [isUpdatingSession, setIsUpdatingSession] = (0, import_react20.useState)(false);
|
|
2152
|
+
const [brandingPreference, setBrandingPreference] = (0, import_react20.useState)(null);
|
|
2153
|
+
const [isBrandingLoading, setIsBrandingLoading] = (0, import_react20.useState)(false);
|
|
2154
|
+
const [brandingError, setBrandingError] = (0, import_react20.useState)(null);
|
|
2155
|
+
const [hasFetchedBranding, setHasFetchedBranding] = (0, import_react20.useState)(false);
|
|
2156
|
+
(0, import_react20.useEffect)(() => {
|
|
2130
2157
|
setBaseUrl(initialBaseUrl);
|
|
2131
2158
|
if (initialBaseUrl !== baseUrl) {
|
|
2132
2159
|
setHasFetchedBranding(false);
|
|
@@ -2134,7 +2161,7 @@ var AsgardeoProvider = ({
|
|
|
2134
2161
|
setBrandingError(null);
|
|
2135
2162
|
}
|
|
2136
2163
|
}, [initialBaseUrl, baseUrl]);
|
|
2137
|
-
(0,
|
|
2164
|
+
(0, import_react20.useEffect)(() => {
|
|
2138
2165
|
(async () => {
|
|
2139
2166
|
await asgardeo.initialize(config);
|
|
2140
2167
|
const initializedConfig = await asgardeo.getConfiguration();
|
|
@@ -2225,7 +2252,7 @@ var AsgardeoProvider = ({
|
|
|
2225
2252
|
}
|
|
2226
2253
|
}
|
|
2227
2254
|
}
|
|
2228
|
-
(0,
|
|
2255
|
+
(0, import_react20.useEffect)(() => {
|
|
2229
2256
|
if (reRenderCheckRef.current) {
|
|
2230
2257
|
return;
|
|
2231
2258
|
}
|
|
@@ -2269,7 +2296,7 @@ var AsgardeoProvider = ({
|
|
|
2269
2296
|
}
|
|
2270
2297
|
})();
|
|
2271
2298
|
}, []);
|
|
2272
|
-
(0,
|
|
2299
|
+
(0, import_react20.useEffect)(() => {
|
|
2273
2300
|
let interval;
|
|
2274
2301
|
(async () => {
|
|
2275
2302
|
try {
|
|
@@ -2295,7 +2322,7 @@ var AsgardeoProvider = ({
|
|
|
2295
2322
|
}
|
|
2296
2323
|
};
|
|
2297
2324
|
}, [asgardeo]);
|
|
2298
|
-
(0,
|
|
2325
|
+
(0, import_react20.useEffect)(() => {
|
|
2299
2326
|
(async () => {
|
|
2300
2327
|
try {
|
|
2301
2328
|
const status = await asgardeo.isInitialized();
|
|
@@ -2305,7 +2332,7 @@ var AsgardeoProvider = ({
|
|
|
2305
2332
|
}
|
|
2306
2333
|
})();
|
|
2307
2334
|
}, [asgardeo]);
|
|
2308
|
-
(0,
|
|
2335
|
+
(0, import_react20.useEffect)(() => {
|
|
2309
2336
|
const checkLoadingState = () => {
|
|
2310
2337
|
if (isUpdatingSession) {
|
|
2311
2338
|
return;
|
|
@@ -2322,7 +2349,7 @@ var AsgardeoProvider = ({
|
|
|
2322
2349
|
clearInterval(interval);
|
|
2323
2350
|
};
|
|
2324
2351
|
}, [asgardeo, isLoadingSync, isSignedInSync, isUpdatingSession]);
|
|
2325
|
-
const fetchBranding = (0,
|
|
2352
|
+
const fetchBranding = (0, import_react20.useCallback)(async () => {
|
|
2326
2353
|
if (!baseUrl) {
|
|
2327
2354
|
return;
|
|
2328
2355
|
}
|
|
@@ -2349,11 +2376,11 @@ var AsgardeoProvider = ({
|
|
|
2349
2376
|
setIsBrandingLoading(false);
|
|
2350
2377
|
}
|
|
2351
2378
|
}, [baseUrl, preferences?.i18n?.language]);
|
|
2352
|
-
const refetchBranding = (0,
|
|
2379
|
+
const refetchBranding = (0, import_react20.useCallback)(async () => {
|
|
2353
2380
|
setHasFetchedBranding(false);
|
|
2354
2381
|
await fetchBranding();
|
|
2355
2382
|
}, [fetchBranding]);
|
|
2356
|
-
(0,
|
|
2383
|
+
(0, import_react20.useEffect)(() => {
|
|
2357
2384
|
if (config.platform === import_browser16.Platform.AsgardeoV2) {
|
|
2358
2385
|
return;
|
|
2359
2386
|
}
|
|
@@ -2419,44 +2446,44 @@ var AsgardeoProvider = ({
|
|
|
2419
2446
|
profile: payload
|
|
2420
2447
|
}));
|
|
2421
2448
|
};
|
|
2422
|
-
const getDecodedIdToken = (0,
|
|
2449
|
+
const getDecodedIdToken = (0, import_react20.useCallback)(
|
|
2423
2450
|
async () => asgardeo.getDecodedIdToken(),
|
|
2424
2451
|
[asgardeo]
|
|
2425
2452
|
);
|
|
2426
|
-
const getIdToken = (0,
|
|
2427
|
-
const getAccessToken = (0,
|
|
2453
|
+
const getIdToken = (0, import_react20.useCallback)(async () => asgardeo.getIdToken(), [asgardeo]);
|
|
2454
|
+
const getAccessToken = (0, import_react20.useCallback)(
|
|
2428
2455
|
async () => asgardeo.getAccessToken(),
|
|
2429
2456
|
[asgardeo]
|
|
2430
2457
|
);
|
|
2431
|
-
const request = (0,
|
|
2458
|
+
const request = (0, import_react20.useCallback)(
|
|
2432
2459
|
async (...args) => asgardeo.request(...args),
|
|
2433
2460
|
[asgardeo]
|
|
2434
2461
|
);
|
|
2435
|
-
const requestAll = (0,
|
|
2462
|
+
const requestAll = (0, import_react20.useCallback)(
|
|
2436
2463
|
async (...args) => asgardeo.requestAll(...args),
|
|
2437
2464
|
[asgardeo]
|
|
2438
2465
|
);
|
|
2439
|
-
const exchangeToken = (0,
|
|
2466
|
+
const exchangeToken = (0, import_react20.useCallback)(
|
|
2440
2467
|
async (exchangeConfig) => asgardeo.exchangeToken(exchangeConfig),
|
|
2441
2468
|
[asgardeo]
|
|
2442
2469
|
);
|
|
2443
|
-
const signOut = (0,
|
|
2470
|
+
const signOut = (0, import_react20.useCallback)(
|
|
2444
2471
|
async (...args) => asgardeo.signOut(...args),
|
|
2445
2472
|
[asgardeo]
|
|
2446
2473
|
);
|
|
2447
|
-
const signUp = (0,
|
|
2474
|
+
const signUp = (0, import_react20.useCallback)(
|
|
2448
2475
|
async (...args) => asgardeo.signUp(...args),
|
|
2449
2476
|
[asgardeo]
|
|
2450
2477
|
);
|
|
2451
|
-
const clearSession = (0,
|
|
2478
|
+
const clearSession = (0, import_react20.useCallback)(
|
|
2452
2479
|
async (...args) => asgardeo.clearSession(...args),
|
|
2453
2480
|
[asgardeo]
|
|
2454
2481
|
);
|
|
2455
|
-
const reInitialize = (0,
|
|
2482
|
+
const reInitialize = (0, import_react20.useCallback)(
|
|
2456
2483
|
async (reInitConfig) => asgardeo.reInitialize(reInitConfig),
|
|
2457
2484
|
[asgardeo]
|
|
2458
2485
|
);
|
|
2459
|
-
const value = (0,
|
|
2486
|
+
const value = (0, import_react20.useMemo)(
|
|
2460
2487
|
() => ({
|
|
2461
2488
|
afterSignInUrl,
|
|
2462
2489
|
applicationId,
|
|
@@ -2559,9 +2586,9 @@ var AsgardeoProvider = ({
|
|
|
2559
2586
|
var AsgardeoProvider_default = AsgardeoProvider;
|
|
2560
2587
|
|
|
2561
2588
|
// src/contexts/User/useUser.ts
|
|
2562
|
-
var
|
|
2589
|
+
var import_react21 = require("react");
|
|
2563
2590
|
var useUser = () => {
|
|
2564
|
-
const context = (0,
|
|
2591
|
+
const context = (0, import_react21.useContext)(UserContext_default);
|
|
2565
2592
|
if (!context) {
|
|
2566
2593
|
throw new Error("useUser must be used within a UserProvider");
|
|
2567
2594
|
}
|
|
@@ -2570,9 +2597,9 @@ var useUser = () => {
|
|
|
2570
2597
|
var useUser_default = useUser;
|
|
2571
2598
|
|
|
2572
2599
|
// src/contexts/Organization/useOrganization.ts
|
|
2573
|
-
var
|
|
2600
|
+
var import_react22 = require("react");
|
|
2574
2601
|
var useOrganization = () => {
|
|
2575
|
-
const context = (0,
|
|
2602
|
+
const context = (0, import_react22.useContext)(OrganizationContext_default);
|
|
2576
2603
|
if (!context) {
|
|
2577
2604
|
throw new Error("useOrganization must be used within an OrganizationProvider");
|
|
2578
2605
|
}
|
|
@@ -2581,9 +2608,9 @@ var useOrganization = () => {
|
|
|
2581
2608
|
var useOrganization_default = useOrganization;
|
|
2582
2609
|
|
|
2583
2610
|
// src/contexts/Flow/useFlow.ts
|
|
2584
|
-
var
|
|
2611
|
+
var import_react23 = require("react");
|
|
2585
2612
|
var useFlow = () => {
|
|
2586
|
-
const context = (0,
|
|
2613
|
+
const context = (0, import_react23.useContext)(FlowContext_default);
|
|
2587
2614
|
if (!context) {
|
|
2588
2615
|
throw new Error("useFlow must be used within a FlowProvider");
|
|
2589
2616
|
}
|
|
@@ -2591,19 +2618,6 @@ var useFlow = () => {
|
|
|
2591
2618
|
};
|
|
2592
2619
|
var useFlow_default = useFlow;
|
|
2593
2620
|
|
|
2594
|
-
// src/contexts/I18n/useI18n.ts
|
|
2595
|
-
var import_react23 = require("react");
|
|
2596
|
-
var useI18n = () => {
|
|
2597
|
-
const context = (0, import_react23.useContext)(I18nContext_default);
|
|
2598
|
-
if (!context) {
|
|
2599
|
-
throw new Error(
|
|
2600
|
-
"useI18n must be used within an I18nProvider. Make sure your component is wrapped with AsgardeoProvider which includes I18nProvider."
|
|
2601
|
-
);
|
|
2602
|
-
}
|
|
2603
|
-
return context;
|
|
2604
|
-
};
|
|
2605
|
-
var useI18n_default = useI18n;
|
|
2606
|
-
|
|
2607
2621
|
// src/contexts/Theme/useTheme.ts
|
|
2608
2622
|
var import_react24 = require("react");
|
|
2609
2623
|
var useTheme = () => {
|
|
@@ -3859,7 +3873,6 @@ var useStyles4 = (theme, colorScheme, helperTextAlign, helperTextMarginLeft, has
|
|
|
3859
3873
|
const formControl = import_css9.css`
|
|
3860
3874
|
text-align: start;
|
|
3861
3875
|
font-family: ${theme.vars.typography.fontFamily};
|
|
3862
|
-
margin-bottom: calc(${theme.vars.spacing.unit} * 2);
|
|
3863
3876
|
`;
|
|
3864
3877
|
const helperText = import_css9.css`
|
|
3865
3878
|
margin-top: calc(${theme.vars.spacing.unit} / 2);
|
|
@@ -8171,24 +8184,6 @@ var logger5 = (0, import_browser51.createPackageComponentLogger)(
|
|
|
8171
8184
|
"@asgardeo/react",
|
|
8172
8185
|
"AuthOptionFactory"
|
|
8173
8186
|
);
|
|
8174
|
-
var resolveEmojiUrisInHtml = (html) => {
|
|
8175
|
-
const withEmojiImages = html.replace(
|
|
8176
|
-
/<img([^>]*)src="(emoji:[^"]+)"([^>]*)\/?>/gi,
|
|
8177
|
-
(_match, pre, src, post) => {
|
|
8178
|
-
const emoji = (0, import_browser51.extractEmojiFromUri)(src);
|
|
8179
|
-
if (!emoji) {
|
|
8180
|
-
return _match;
|
|
8181
|
-
}
|
|
8182
|
-
const altMatch = (pre + post).match(/alt="([^"]*)"/i);
|
|
8183
|
-
const label = altMatch ? altMatch[1] : emoji;
|
|
8184
|
-
return `<span role="img" aria-label="${label}">${emoji}</span>`;
|
|
8185
|
-
}
|
|
8186
|
-
);
|
|
8187
|
-
return withEmojiImages.replace(
|
|
8188
|
-
/emoji:([^\s"<>&]+)/g,
|
|
8189
|
-
(_, rest) => (0, import_browser51.isEmojiUri)(`emoji:${rest}`) ? rest : `emoji:${rest}`
|
|
8190
|
-
);
|
|
8191
|
-
};
|
|
8192
8187
|
var richTextClass = import_css36.css`
|
|
8193
8188
|
overflow-wrap: anywhere;
|
|
8194
8189
|
& * {
|
|
@@ -8256,6 +8251,7 @@ var matchesSocialProvider = (actionId, eventType, buttonText, provider, authType
|
|
|
8256
8251
|
return providerMatches;
|
|
8257
8252
|
};
|
|
8258
8253
|
var createAuthComponentFromFlow = (component, formValues, touchedFields, formErrors, isLoading, isFormValid, onInputChange, authType, options = {}) => {
|
|
8254
|
+
const { theme } = useTheme_default();
|
|
8259
8255
|
const key = options.key || component.id;
|
|
8260
8256
|
const resolve = (text) => {
|
|
8261
8257
|
if (!text || !options.t && !options.meta) {
|
|
@@ -8425,6 +8421,11 @@ var createAuthComponentFromFlow = (component, formValues, touchedFields, formErr
|
|
|
8425
8421
|
}
|
|
8426
8422
|
case import_browser51.EmbeddedFlowComponentTypeV2.Block: {
|
|
8427
8423
|
if (component.components && component.components.length > 0) {
|
|
8424
|
+
const formStyles = {
|
|
8425
|
+
display: "flex",
|
|
8426
|
+
flexDirection: "column",
|
|
8427
|
+
gap: `calc(${theme.vars.spacing.unit} * 2)`
|
|
8428
|
+
};
|
|
8428
8429
|
const blockComponents = component.components.map(
|
|
8429
8430
|
(childComponent, index) => createAuthComponentFromFlow(
|
|
8430
8431
|
childComponent,
|
|
@@ -8441,7 +8442,7 @@ var createAuthComponentFromFlow = (component, formValues, touchedFields, formErr
|
|
|
8441
8442
|
}
|
|
8442
8443
|
)
|
|
8443
8444
|
).filter(Boolean);
|
|
8444
|
-
return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("form", { id: component.id, children: blockComponents }, key);
|
|
8445
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("form", { id: component.id, style: formStyles, children: blockComponents }, key);
|
|
8445
8446
|
}
|
|
8446
8447
|
return null;
|
|
8447
8448
|
}
|
|
@@ -8450,7 +8451,7 @@ var createAuthComponentFromFlow = (component, formValues, touchedFields, formErr
|
|
|
8450
8451
|
"div",
|
|
8451
8452
|
{
|
|
8452
8453
|
className: richTextClass,
|
|
8453
|
-
dangerouslySetInnerHTML: { __html: import_dompurify.default.sanitize(resolveEmojiUrisInHtml(resolve(component.label))) }
|
|
8454
|
+
dangerouslySetInnerHTML: { __html: import_dompurify.default.sanitize((0, import_browser51.resolveEmojiUrisInHtml)(resolve(component.label))) }
|
|
8454
8455
|
},
|
|
8455
8456
|
key
|
|
8456
8457
|
);
|
|
@@ -17406,10 +17407,10 @@ var LanguageSwitcher = ({ children, className }) => {
|
|
|
17406
17407
|
const { meta, switchLanguage, isLoading } = useFlowMeta_default();
|
|
17407
17408
|
const { currentLanguage } = useTranslation_default();
|
|
17408
17409
|
const availableLanguageCodes = meta?.i18n?.languages ?? [];
|
|
17409
|
-
const effectiveLanguageCodes = (0, import_react110.useMemo)(
|
|
17410
|
-
|
|
17411
|
-
|
|
17412
|
-
|
|
17410
|
+
const effectiveLanguageCodes = (0, import_react110.useMemo)(
|
|
17411
|
+
() => availableLanguageCodes.length > 0 ? availableLanguageCodes : [currentLanguage],
|
|
17412
|
+
[availableLanguageCodes, currentLanguage]
|
|
17413
|
+
);
|
|
17413
17414
|
const languages = (0, import_react110.useMemo)(
|
|
17414
17415
|
() => effectiveLanguageCodes.map((code) => ({
|
|
17415
17416
|
code,
|
|
@@ -17419,6 +17420,11 @@ var LanguageSwitcher = ({ children, className }) => {
|
|
|
17419
17420
|
})),
|
|
17420
17421
|
[effectiveLanguageCodes]
|
|
17421
17422
|
);
|
|
17423
|
+
(0, import_react110.useEffect)(() => {
|
|
17424
|
+
if (availableLanguageCodes.length > 0 && !availableLanguageCodes.includes(currentLanguage)) {
|
|
17425
|
+
switchLanguage(availableLanguageCodes[0]);
|
|
17426
|
+
}
|
|
17427
|
+
}, [availableLanguageCodes, currentLanguage, switchLanguage]);
|
|
17422
17428
|
const handleLanguageChange = (language) => {
|
|
17423
17429
|
if (language !== currentLanguage) {
|
|
17424
17430
|
switchLanguage(language);
|