@sheet-i18n/react-client 1.5.1 → 1.5.2-canary.0
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.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +16 -8
- package/dist/index.mjs +16 -8
- package/package.json +3 -3
package/dist/index.d.mts
CHANGED
|
@@ -66,12 +66,13 @@ type IntlProviderProps<TSupportedLocales extends readonly string[], TLocaleSet e
|
|
|
66
66
|
};
|
|
67
67
|
|
|
68
68
|
declare function useLocaleStorage<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TTypeSafe extends boolean = false>(localeStorageManager: LocaleStorageManager<TSupportedLocales, TLocaleSet, TTypeSafe>): {
|
|
69
|
-
locale: TSupportedLocales[number];
|
|
69
|
+
locale: TSupportedLocales[number] | undefined;
|
|
70
70
|
};
|
|
71
71
|
|
|
72
72
|
interface StorageBasedIntlProviderProps<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TTypeSafe extends boolean = false> {
|
|
73
73
|
i18nStore: I18nStore<TSupportedLocales, TLocaleSet, TTypeSafe>;
|
|
74
74
|
storageManager: LocaleStorageManager<TSupportedLocales, TLocaleSet, TTypeSafe>;
|
|
75
|
+
fallbackUI?: React.ReactNode;
|
|
75
76
|
children: React.ReactNode;
|
|
76
77
|
}
|
|
77
78
|
|
package/dist/index.d.ts
CHANGED
|
@@ -66,12 +66,13 @@ type IntlProviderProps<TSupportedLocales extends readonly string[], TLocaleSet e
|
|
|
66
66
|
};
|
|
67
67
|
|
|
68
68
|
declare function useLocaleStorage<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TTypeSafe extends boolean = false>(localeStorageManager: LocaleStorageManager<TSupportedLocales, TLocaleSet, TTypeSafe>): {
|
|
69
|
-
locale: TSupportedLocales[number];
|
|
69
|
+
locale: TSupportedLocales[number] | undefined;
|
|
70
70
|
};
|
|
71
71
|
|
|
72
72
|
interface StorageBasedIntlProviderProps<TSupportedLocales extends readonly string[], TLocaleSet extends Partial<Record<TSupportedLocales[number], Record<string, any>>>, TTypeSafe extends boolean = false> {
|
|
73
73
|
i18nStore: I18nStore<TSupportedLocales, TLocaleSet, TTypeSafe>;
|
|
74
74
|
storageManager: LocaleStorageManager<TSupportedLocales, TLocaleSet, TTypeSafe>;
|
|
75
|
+
fallbackUI?: React.ReactNode;
|
|
75
76
|
children: React.ReactNode;
|
|
76
77
|
}
|
|
77
78
|
|
package/dist/index.js
CHANGED
|
@@ -43,7 +43,7 @@ __export(src_exports, {
|
|
|
43
43
|
module.exports = __toCommonJS(src_exports);
|
|
44
44
|
|
|
45
45
|
// src/createI18nContext.tsx
|
|
46
|
-
var
|
|
46
|
+
var import_shared_utils6 = require("@sheet-i18n/shared-utils");
|
|
47
47
|
var import_react_core = require("@sheet-i18n/react-core");
|
|
48
48
|
|
|
49
49
|
// src/Provider/IntlProvider.tsx
|
|
@@ -458,39 +458,47 @@ var getLocaleStorageManager = (i18nStore, storage) => {
|
|
|
458
458
|
var import_react3 = require("react");
|
|
459
459
|
var LISTENER_ID = "LOCALE_STORAGE_LISTENER_ID";
|
|
460
460
|
function useLocaleStorage(localeStorageManager) {
|
|
461
|
-
|
|
462
|
-
|
|
461
|
+
const [locale, setLocale] = (0, import_react3.useState)();
|
|
462
|
+
(0, import_react3.useEffect)(() => {
|
|
463
|
+
const storedLocale = localeStorageManager.getLocale();
|
|
464
|
+
setLocale(storedLocale);
|
|
465
|
+
}, []);
|
|
463
466
|
(0, import_react3.useEffect)(() => {
|
|
464
|
-
var
|
|
465
|
-
(
|
|
467
|
+
var _a;
|
|
468
|
+
(_a = localeStorageManager == null ? void 0 : localeStorageManager.observerManager) == null ? void 0 : _a.addListener({
|
|
466
469
|
listenerId: LISTENER_ID,
|
|
467
470
|
listener: (newLocale) => {
|
|
468
471
|
setLocale(newLocale);
|
|
469
472
|
}
|
|
470
473
|
});
|
|
471
474
|
return () => {
|
|
472
|
-
var
|
|
473
|
-
(
|
|
475
|
+
var _a2;
|
|
476
|
+
(_a2 = localeStorageManager == null ? void 0 : localeStorageManager.observerManager) == null ? void 0 : _a2.removeListener(LISTENER_ID);
|
|
474
477
|
};
|
|
475
478
|
}, []);
|
|
476
479
|
return { locale };
|
|
477
480
|
}
|
|
478
481
|
|
|
479
482
|
// src/Provider/StorageBasedIntlProvider.tsx
|
|
483
|
+
var import_shared_utils5 = require("@sheet-i18n/shared-utils");
|
|
480
484
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
481
485
|
function StorageBasedIntlProvider({
|
|
482
486
|
i18nStore,
|
|
483
487
|
storageManager,
|
|
488
|
+
fallbackUI = null,
|
|
484
489
|
children
|
|
485
490
|
}) {
|
|
486
491
|
const { locale } = useLocaleStorage(storageManager);
|
|
492
|
+
if (import_shared_utils5.validator.isNullish(locale)) {
|
|
493
|
+
return fallbackUI;
|
|
494
|
+
}
|
|
487
495
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(IntlProvider, { currentLocale: locale, i18nStore, children });
|
|
488
496
|
}
|
|
489
497
|
|
|
490
498
|
// src/createI18nContext.tsx
|
|
491
499
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
492
500
|
function createI18nContext(i18nStore) {
|
|
493
|
-
if (
|
|
501
|
+
if (import_shared_utils6.validator.isNullish(i18nStore)) {
|
|
494
502
|
throw new InvalidI18nContextStateError(
|
|
495
503
|
"\u26A0\uFE0F no i18nStore provided. To use createI18nContext, you must provide an i18nStore as a parameter"
|
|
496
504
|
);
|
package/dist/index.mjs
CHANGED
|
@@ -20,7 +20,7 @@ var __spreadValues = (a, b) => {
|
|
|
20
20
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
21
21
|
|
|
22
22
|
// src/createI18nContext.tsx
|
|
23
|
-
import { validator as
|
|
23
|
+
import { validator as validator5 } from "@sheet-i18n/shared-utils";
|
|
24
24
|
import { I18nStore } from "@sheet-i18n/react-core";
|
|
25
25
|
|
|
26
26
|
// src/Provider/IntlProvider.tsx
|
|
@@ -435,39 +435,47 @@ var getLocaleStorageManager = (i18nStore, storage) => {
|
|
|
435
435
|
import { useEffect as useEffect2, useState as useState2 } from "react";
|
|
436
436
|
var LISTENER_ID = "LOCALE_STORAGE_LISTENER_ID";
|
|
437
437
|
function useLocaleStorage(localeStorageManager) {
|
|
438
|
-
|
|
439
|
-
|
|
438
|
+
const [locale, setLocale] = useState2();
|
|
439
|
+
useEffect2(() => {
|
|
440
|
+
const storedLocale = localeStorageManager.getLocale();
|
|
441
|
+
setLocale(storedLocale);
|
|
442
|
+
}, []);
|
|
440
443
|
useEffect2(() => {
|
|
441
|
-
var
|
|
442
|
-
(
|
|
444
|
+
var _a;
|
|
445
|
+
(_a = localeStorageManager == null ? void 0 : localeStorageManager.observerManager) == null ? void 0 : _a.addListener({
|
|
443
446
|
listenerId: LISTENER_ID,
|
|
444
447
|
listener: (newLocale) => {
|
|
445
448
|
setLocale(newLocale);
|
|
446
449
|
}
|
|
447
450
|
});
|
|
448
451
|
return () => {
|
|
449
|
-
var
|
|
450
|
-
(
|
|
452
|
+
var _a2;
|
|
453
|
+
(_a2 = localeStorageManager == null ? void 0 : localeStorageManager.observerManager) == null ? void 0 : _a2.removeListener(LISTENER_ID);
|
|
451
454
|
};
|
|
452
455
|
}, []);
|
|
453
456
|
return { locale };
|
|
454
457
|
}
|
|
455
458
|
|
|
456
459
|
// src/Provider/StorageBasedIntlProvider.tsx
|
|
460
|
+
import { validator as validator4 } from "@sheet-i18n/shared-utils";
|
|
457
461
|
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
458
462
|
function StorageBasedIntlProvider({
|
|
459
463
|
i18nStore,
|
|
460
464
|
storageManager,
|
|
465
|
+
fallbackUI = null,
|
|
461
466
|
children
|
|
462
467
|
}) {
|
|
463
468
|
const { locale } = useLocaleStorage(storageManager);
|
|
469
|
+
if (validator4.isNullish(locale)) {
|
|
470
|
+
return fallbackUI;
|
|
471
|
+
}
|
|
464
472
|
return /* @__PURE__ */ jsx2(IntlProvider, { currentLocale: locale, i18nStore, children });
|
|
465
473
|
}
|
|
466
474
|
|
|
467
475
|
// src/createI18nContext.tsx
|
|
468
476
|
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
469
477
|
function createI18nContext(i18nStore) {
|
|
470
|
-
if (
|
|
478
|
+
if (validator5.isNullish(i18nStore)) {
|
|
471
479
|
throw new InvalidI18nContextStateError(
|
|
472
480
|
"\u26A0\uFE0F no i18nStore provided. To use createI18nContext, you must provide an i18nStore as a parameter"
|
|
473
481
|
);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sheet-i18n/react-client",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.2-canary.0",
|
|
4
4
|
"description": "a client package for react modules used by sheet-i18n",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"license": "ISC",
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@sheet-i18n/shared-utils": "1.8.1",
|
|
29
|
-
"@sheet-i18n/
|
|
30
|
-
"@sheet-i18n/
|
|
29
|
+
"@sheet-i18n/react-core": "1.5.1",
|
|
30
|
+
"@sheet-i18n/errors": "1.8.1"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/react": "^19.0.2",
|