@tolgee/react 5.2.0-rc.aeafee14.0 → 5.2.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/tolgee-react.cjs.js +71 -132
- package/dist/tolgee-react.cjs.js.map +1 -1
- package/dist/tolgee-react.cjs.min.js +1 -1
- package/dist/tolgee-react.cjs.min.js.map +1 -1
- package/dist/tolgee-react.esm.js +71 -132
- package/dist/tolgee-react.esm.js.map +1 -1
- package/dist/tolgee-react.esm.min.mjs +1 -1
- package/dist/tolgee-react.esm.min.mjs.map +1 -1
- package/dist/tolgee-react.umd.js +71 -132
- package/dist/tolgee-react.umd.js.map +1 -1
- package/dist/tolgee-react.umd.min.js +1 -1
- package/dist/tolgee-react.umd.min.js.map +1 -1
- package/package.json +5 -5
package/dist/tolgee-react.cjs.js
CHANGED
|
@@ -9,188 +9,127 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
9
9
|
|
|
10
10
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
Copyright (c) Microsoft Corporation.
|
|
14
|
-
|
|
15
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
16
|
-
purpose with or without fee is hereby granted.
|
|
17
|
-
|
|
18
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
19
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
20
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
21
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
22
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
23
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
24
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
25
|
-
***************************************************************************** */
|
|
26
|
-
|
|
27
|
-
var __assign = function() {
|
|
28
|
-
__assign = Object.assign || function __assign(t) {
|
|
29
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
30
|
-
s = arguments[i];
|
|
31
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
32
|
-
}
|
|
33
|
-
return t;
|
|
34
|
-
};
|
|
35
|
-
return __assign.apply(this, arguments);
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
function __read(o, n) {
|
|
39
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
40
|
-
if (!m) return o;
|
|
41
|
-
var i = m.call(o), r, ar = [], e;
|
|
42
|
-
try {
|
|
43
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
44
|
-
}
|
|
45
|
-
catch (error) { e = { error: error }; }
|
|
46
|
-
finally {
|
|
47
|
-
try {
|
|
48
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
49
|
-
}
|
|
50
|
-
finally { if (e) throw e.error; }
|
|
51
|
-
}
|
|
52
|
-
return ar;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
function __spreadArray(to, from, pack) {
|
|
56
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
57
|
-
if (ar || !(i in from)) {
|
|
58
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
59
|
-
ar[i] = from[i];
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
var DEFAULT_REACT_OPTIONS = {
|
|
12
|
+
const DEFAULT_REACT_OPTIONS = {
|
|
66
13
|
useSuspense: true,
|
|
67
14
|
};
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
tolgee.run().then(function () {
|
|
15
|
+
const TolgeeProviderContext = React__default["default"].createContext(undefined);
|
|
16
|
+
const TolgeeProvider = ({ tolgee, options, children, fallback, }) => {
|
|
17
|
+
const [loading, setLoading] = React.useState(!tolgee.isLoaded());
|
|
18
|
+
React.useEffect(() => {
|
|
19
|
+
tolgee.run().then(() => {
|
|
74
20
|
setLoading(false);
|
|
75
21
|
});
|
|
76
|
-
return
|
|
22
|
+
return () => {
|
|
77
23
|
tolgee.stop();
|
|
78
24
|
};
|
|
79
25
|
}, [tolgee]);
|
|
80
|
-
|
|
26
|
+
const optionsWithDefault = Object.assign(Object.assign({}, DEFAULT_REACT_OPTIONS), options);
|
|
81
27
|
if (optionsWithDefault.useSuspense) {
|
|
82
|
-
return (React__default["default"].createElement(TolgeeProviderContext.Provider, { value: { tolgee
|
|
28
|
+
return (React__default["default"].createElement(TolgeeProviderContext.Provider, { value: { tolgee, options: optionsWithDefault } }, loading ? (fallback) : (React__default["default"].createElement(React.Suspense, { fallback: fallback || null }, children))));
|
|
83
29
|
}
|
|
84
|
-
return (React__default["default"].createElement(TolgeeProviderContext.Provider, { value: { tolgee
|
|
30
|
+
return (React__default["default"].createElement(TolgeeProviderContext.Provider, { value: { tolgee, options: optionsWithDefault } }, loading ? fallback : children));
|
|
85
31
|
};
|
|
86
32
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
options: __assign(__assign({}, DEFAULT_REACT_OPTIONS), options),
|
|
93
|
-
};
|
|
94
|
-
return tolgee;
|
|
33
|
+
let globalContext;
|
|
34
|
+
const GlobalContextPlugin = (options) => (tolgee) => {
|
|
35
|
+
globalContext = {
|
|
36
|
+
tolgee,
|
|
37
|
+
options: Object.assign(Object.assign({}, DEFAULT_REACT_OPTIONS), options),
|
|
95
38
|
};
|
|
39
|
+
return tolgee;
|
|
96
40
|
};
|
|
97
41
|
function getGlobalContext() {
|
|
98
42
|
return globalContext;
|
|
99
43
|
}
|
|
100
44
|
|
|
101
|
-
|
|
102
|
-
|
|
45
|
+
const useTolgeeContext = () => {
|
|
46
|
+
const context = React.useContext(TolgeeProviderContext) || getGlobalContext();
|
|
103
47
|
if (!context) {
|
|
104
48
|
throw new Error("Couldn't find tolgee instance, did you forgot to use `TolgeeProvider`?");
|
|
105
49
|
}
|
|
106
50
|
return context;
|
|
107
51
|
};
|
|
108
52
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
setCounter(
|
|
53
|
+
const useRerender = () => {
|
|
54
|
+
const [instance, setCounter] = React.useState(0);
|
|
55
|
+
const rerender = React.useCallback(() => {
|
|
56
|
+
setCounter((num) => num + 1);
|
|
113
57
|
}, [setCounter]);
|
|
114
|
-
return { instance
|
|
58
|
+
return { instance, rerender };
|
|
115
59
|
};
|
|
116
60
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
61
|
+
const useTranslateInternal = (ns, options) => {
|
|
62
|
+
const { tolgee, options: defaultOptions } = useTolgeeContext();
|
|
63
|
+
const namespaces = web.getFallback(ns);
|
|
64
|
+
const namespacesJoined = web.getFallbackArray(namespaces).join(':');
|
|
65
|
+
const currentOptions = Object.assign(Object.assign({}, defaultOptions), options);
|
|
122
66
|
// dummy state to enable re-rendering
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
67
|
+
const { rerender, instance } = useRerender();
|
|
68
|
+
const subscriptionRef = React.useRef();
|
|
69
|
+
const subscriptionQueue = React.useRef([]);
|
|
126
70
|
subscriptionQueue.current = [];
|
|
127
|
-
|
|
71
|
+
const subscribeToNs = (ns) => {
|
|
128
72
|
var _a;
|
|
129
73
|
subscriptionQueue.current.push(ns);
|
|
130
74
|
(_a = subscriptionRef.current) === null || _a === void 0 ? void 0 : _a.subscribeNs(ns);
|
|
131
75
|
};
|
|
132
|
-
|
|
133
|
-
React.useEffect(
|
|
134
|
-
|
|
76
|
+
const isLoaded = tolgee.isLoaded(namespaces);
|
|
77
|
+
React.useEffect(() => {
|
|
78
|
+
const subscription = tolgee.onNsUpdate(rerender);
|
|
135
79
|
subscriptionRef.current = subscription;
|
|
136
80
|
if (!isLoaded) {
|
|
137
81
|
subscription.subscribeNs(namespaces);
|
|
138
82
|
}
|
|
139
|
-
subscriptionQueue.current.forEach(
|
|
83
|
+
subscriptionQueue.current.forEach((ns) => {
|
|
140
84
|
subscription.subscribeNs(ns);
|
|
141
85
|
});
|
|
142
|
-
return
|
|
86
|
+
return () => {
|
|
143
87
|
subscription.unsubscribe();
|
|
144
88
|
};
|
|
145
89
|
}, [isLoaded, namespacesJoined, tolgee]);
|
|
146
|
-
React.useEffect(
|
|
90
|
+
React.useEffect(() => {
|
|
147
91
|
tolgee.addActiveNs(namespaces);
|
|
148
|
-
return
|
|
92
|
+
return () => tolgee.removeActiveNs(namespaces);
|
|
149
93
|
}, [namespacesJoined, tolgee]);
|
|
150
|
-
|
|
94
|
+
const t = React.useCallback((props) => {
|
|
151
95
|
var _a;
|
|
152
|
-
|
|
96
|
+
const fallbackNs = (_a = props.ns) !== null && _a !== void 0 ? _a : namespaces === null || namespaces === void 0 ? void 0 : namespaces[0];
|
|
153
97
|
subscribeToNs(fallbackNs);
|
|
154
|
-
return tolgee.t(
|
|
98
|
+
return tolgee.t(Object.assign(Object.assign({}, props), { ns: fallbackNs }));
|
|
155
99
|
}, [tolgee, instance]);
|
|
156
100
|
if (currentOptions.useSuspense && !isLoaded) {
|
|
157
101
|
throw tolgee.addActiveNs(namespaces, true);
|
|
158
102
|
}
|
|
159
|
-
return { t
|
|
103
|
+
return { t, isLoading: !isLoaded };
|
|
160
104
|
};
|
|
161
105
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
var params = [];
|
|
166
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
167
|
-
params[_i] = arguments[_i];
|
|
168
|
-
}
|
|
106
|
+
const useTranslate = (ns, options) => {
|
|
107
|
+
const { t: tInternal, isLoading } = useTranslateInternal(ns, options);
|
|
108
|
+
const t = React.useCallback((...params) => {
|
|
169
109
|
// @ts-ignore
|
|
170
|
-
|
|
110
|
+
const props = web.getTranslateProps(...params);
|
|
171
111
|
return tInternal(props);
|
|
172
112
|
}, [tInternal]);
|
|
173
|
-
return { t
|
|
113
|
+
return { t, isLoading };
|
|
174
114
|
};
|
|
175
115
|
|
|
176
|
-
|
|
116
|
+
const wrapTagHandlers = (params) => {
|
|
177
117
|
if (!params) {
|
|
178
118
|
return undefined;
|
|
179
119
|
}
|
|
180
|
-
|
|
181
|
-
Object.entries(params || {}).forEach(
|
|
182
|
-
var _b = __read(_a, 2), key = _b[0], value = _b[1];
|
|
120
|
+
const result = {};
|
|
121
|
+
Object.entries(params || {}).forEach(([key, value]) => {
|
|
183
122
|
if (typeof value === 'function') {
|
|
184
|
-
result[key] =
|
|
123
|
+
result[key] = (chunk) => {
|
|
185
124
|
return value(addReactKeys(chunk));
|
|
186
125
|
};
|
|
187
126
|
}
|
|
188
127
|
else if (React__default["default"].isValidElement(value)) {
|
|
189
|
-
|
|
190
|
-
result[key] =
|
|
191
|
-
return
|
|
192
|
-
? React__default["default"].cloneElement(
|
|
193
|
-
: React__default["default"].cloneElement(
|
|
128
|
+
const el = value;
|
|
129
|
+
result[key] = (chunk) => {
|
|
130
|
+
return el.props.children !== undefined
|
|
131
|
+
? React__default["default"].cloneElement(el)
|
|
132
|
+
: React__default["default"].cloneElement(el, {}, addReactKeys(chunk));
|
|
194
133
|
};
|
|
195
134
|
}
|
|
196
135
|
else {
|
|
@@ -199,7 +138,7 @@ var wrapTagHandlers = function (params) {
|
|
|
199
138
|
});
|
|
200
139
|
return result;
|
|
201
140
|
};
|
|
202
|
-
|
|
141
|
+
const addReactKeys = (val) => {
|
|
203
142
|
if (Array.isArray(val)) {
|
|
204
143
|
return React__default["default"].Children.toArray(val);
|
|
205
144
|
}
|
|
@@ -208,31 +147,31 @@ var addReactKeys = function (val) {
|
|
|
208
147
|
}
|
|
209
148
|
};
|
|
210
149
|
|
|
211
|
-
|
|
212
|
-
|
|
150
|
+
const T = (props) => {
|
|
151
|
+
const key = props.keyName || props.children;
|
|
213
152
|
if (key === undefined) {
|
|
214
153
|
// eslint-disable-next-line no-console
|
|
215
154
|
console.error('T component: keyName not defined');
|
|
216
155
|
}
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
156
|
+
const defaultValue = props.defaultValue || (props.keyName ? props.children : undefined);
|
|
157
|
+
const { t } = useTranslateInternal();
|
|
158
|
+
const translation = addReactKeys(t({
|
|
220
159
|
key: key,
|
|
221
160
|
params: wrapTagHandlers(props.params),
|
|
222
|
-
defaultValue
|
|
161
|
+
defaultValue,
|
|
223
162
|
noWrap: props.noWrap,
|
|
224
163
|
ns: props.ns,
|
|
225
164
|
}));
|
|
226
165
|
return React__default["default"].createElement(React__default["default"].Fragment, null, translation);
|
|
227
166
|
};
|
|
228
167
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
React.useEffect(
|
|
233
|
-
|
|
234
|
-
return
|
|
235
|
-
listeners === null || listeners === void 0 ? void 0 : listeners.forEach(
|
|
168
|
+
const useTolgee = (events) => {
|
|
169
|
+
const { tolgee } = useTolgeeContext();
|
|
170
|
+
const { rerender } = useRerender();
|
|
171
|
+
React.useEffect(() => {
|
|
172
|
+
const listeners = events === null || events === void 0 ? void 0 : events.map((e) => tolgee.on(e, rerender));
|
|
173
|
+
return () => {
|
|
174
|
+
listeners === null || listeners === void 0 ? void 0 : listeners.forEach((listener) => listener.unsubscribe());
|
|
236
175
|
};
|
|
237
176
|
}, [events === null || events === void 0 ? void 0 : events.join(':')]);
|
|
238
177
|
return tolgee;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tolgee-react.cjs.js","sources":["../../../node_modules/.pnpm/@rollup+plugin-typescript@8.3.4_e2q5rqkwsas7xse3qcdo6zg4by/node_modules/tslib/tslib.es6.js","../src/TolgeeProvider.tsx","../src/GlobalContextPlugin.tsx","../src/useTolgeeContext.ts","../src/hooks.ts","../src/useTranslateInternal.ts","../src/useTranslate.ts","../src/tagsTools.tsx","../src/T.tsx","../src/useTolgee.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import React, { Suspense, useEffect, useState } from 'react';\nimport { TolgeeInstance } from '@tolgee/web';\nimport { ReactOptions, TolgeeReactContext } from './types';\n\nexport const DEFAULT_REACT_OPTIONS: ReactOptions = {\n useSuspense: true,\n};\n\nexport const TolgeeProviderContext = React.createContext<\n TolgeeReactContext | undefined\n>(undefined);\n\ntype Props = {\n children?: React.ReactNode;\n tolgee: TolgeeInstance;\n options?: ReactOptions;\n fallback?: React.ReactNode;\n};\n\nexport const TolgeeProvider: React.FC<Props> = ({\n tolgee,\n options,\n children,\n fallback,\n}) => {\n const [loading, setLoading] = useState(!tolgee.isLoaded());\n\n useEffect(() => {\n tolgee.run().then(() => {\n setLoading(false);\n });\n return () => {\n tolgee.stop();\n };\n }, [tolgee]);\n\n const optionsWithDefault = { ...DEFAULT_REACT_OPTIONS, ...options };\n\n if (optionsWithDefault.useSuspense) {\n return (\n <TolgeeProviderContext.Provider\n value={{ tolgee, options: optionsWithDefault }}\n >\n {loading ? (\n fallback\n ) : (\n <Suspense fallback={fallback || null}>{children}</Suspense>\n )}\n </TolgeeProviderContext.Provider>\n );\n }\n\n return (\n <TolgeeProviderContext.Provider\n value={{ tolgee, options: optionsWithDefault }}\n >\n {loading ? fallback : children}\n </TolgeeProviderContext.Provider>\n );\n};\n","import type { TolgeePlugin } from '@tolgee/web';\nimport { DEFAULT_REACT_OPTIONS } from './TolgeeProvider';\nimport type { ReactOptions, TolgeeReactContext } from './types';\n\nlet globalContext: TolgeeReactContext | undefined;\n\nexport const GlobalContextPlugin =\n (options?: Partial<ReactOptions>): TolgeePlugin =>\n (tolgee) => {\n globalContext = {\n tolgee,\n options: { ...DEFAULT_REACT_OPTIONS, ...options },\n };\n return tolgee;\n };\n\nexport function getGlobalContext() {\n return globalContext;\n}\n","import { useContext } from 'react';\nimport { getGlobalContext } from './GlobalContextPlugin';\nimport { TolgeeProviderContext } from './TolgeeProvider';\n\nexport const useTolgeeContext = () => {\n const context = useContext(TolgeeProviderContext) || getGlobalContext();\n if (!context) {\n throw new Error(\n \"Couldn't find tolgee instance, did you forgot to use `TolgeeProvider`?\"\n );\n }\n return context;\n};\n","import { useCallback, useState } from 'react';\n\nexport const useRerender = () => {\n const [instance, setCounter] = useState(0);\n\n const rerender = useCallback(() => {\n setCounter((num) => num + 1);\n }, [setCounter]);\n return { instance, rerender };\n};\n","import { useCallback, useEffect, useRef } from 'react';\nimport {\n SubscriptionSelective,\n TranslateProps,\n NsFallback,\n getFallbackArray,\n getFallback,\n} from '@tolgee/web';\n\nimport { useTolgeeContext } from './useTolgeeContext';\nimport { ReactOptions } from './types';\nimport { useRerender } from './hooks';\n\nexport const useTranslateInternal = (\n ns?: NsFallback,\n options?: ReactOptions\n) => {\n const { tolgee, options: defaultOptions } = useTolgeeContext();\n const namespaces = getFallback(ns);\n const namespacesJoined = getFallbackArray(namespaces).join(':');\n\n const currentOptions = {\n ...defaultOptions,\n ...options,\n };\n\n // dummy state to enable re-rendering\n const { rerender, instance } = useRerender();\n\n const subscriptionRef = useRef<SubscriptionSelective>();\n\n const subscriptionQueue = useRef([] as NsFallback[]);\n subscriptionQueue.current = [];\n\n const subscribeToNs = (ns: NsFallback) => {\n subscriptionQueue.current.push(ns);\n subscriptionRef.current?.subscribeNs(ns);\n };\n\n const isLoaded = tolgee.isLoaded(namespaces);\n\n useEffect(() => {\n const subscription = tolgee.onNsUpdate(rerender);\n subscriptionRef.current = subscription;\n if (!isLoaded) {\n subscription.subscribeNs(namespaces);\n }\n subscriptionQueue.current.forEach((ns) => {\n subscription!.subscribeNs(ns);\n });\n\n return () => {\n subscription.unsubscribe();\n };\n }, [isLoaded, namespacesJoined, tolgee]);\n\n useEffect(() => {\n tolgee.addActiveNs(namespaces);\n return () => tolgee.removeActiveNs(namespaces);\n }, [namespacesJoined, tolgee]);\n\n const t = useCallback(\n (props: TranslateProps<any>) => {\n const fallbackNs = props.ns ?? namespaces?.[0];\n subscribeToNs(fallbackNs);\n return tolgee.t({ ...props, ns: fallbackNs }) as any;\n },\n [tolgee, instance]\n );\n\n if (currentOptions.useSuspense && !isLoaded) {\n throw tolgee.addActiveNs(namespaces, true);\n }\n\n return { t, isLoading: !isLoaded };\n};\n","import { useCallback } from 'react';\nimport { TFnType, getTranslateProps, DefaultParamType } from '@tolgee/web';\n\nimport { useTranslateInternal } from './useTranslateInternal';\nimport { ReactOptions } from './types';\n\nexport const useTranslate = (\n ns?: string[] | string,\n options?: ReactOptions\n) => {\n const { t: tInternal, isLoading } = useTranslateInternal(ns, options);\n\n const t: TFnType<DefaultParamType, string> = useCallback(\n (...params: any) => {\n // @ts-ignore\n const props = getTranslateProps(...params);\n return tInternal(props);\n },\n [tInternal]\n );\n\n return { t, isLoading };\n};\n","import { TranslateParams } from '@tolgee/web';\nimport React from 'react';\n\nimport { ParamsTags } from './types';\n\nexport const wrapTagHandlers = (\n params: TranslateParams<ParamsTags> | undefined\n) => {\n if (!params) {\n return undefined;\n }\n\n const result: any = {};\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (typeof value === 'function') {\n result[key] = (chunk: any) => {\n return value(addReactKeys(chunk));\n };\n } else if (React.isValidElement(value as any)) {\n const el = value as React.ReactElement;\n result[key] = (chunk: any) => {\n return el.props.children !== undefined\n ? React.cloneElement(el)\n : React.cloneElement(el, {}, addReactKeys(chunk));\n };\n } else {\n result[key] = value;\n }\n });\n\n return result;\n};\n\nexport const addReactKeys = (\n val: React.ReactNode | React.ReactNode[] | undefined\n) => {\n if (Array.isArray(val)) {\n return React.Children.toArray(val);\n } else {\n return val;\n }\n};\n","import { NsType, TranslateParams } from '@tolgee/web';\nimport React, { FunctionComponent } from 'react';\nimport { addReactKeys, wrapTagHandlers } from './tagsTools';\n\nimport { ParamsTags } from './types';\nimport { useTranslateInternal } from './useTranslateInternal';\n\ntype TProps = {\n params?: TranslateParams<ParamsTags>;\n children?: string;\n noWrap?: boolean;\n keyName?: string;\n ns?: NsType;\n defaultValue?: string;\n};\n\nexport const T: FunctionComponent<TProps> = (props: TProps) => {\n const key = props.keyName || props.children;\n if (key === undefined) {\n // eslint-disable-next-line no-console\n console.error('T component: keyName not defined');\n }\n const defaultValue =\n props.defaultValue || (props.keyName ? props.children : undefined);\n\n const { t } = useTranslateInternal();\n\n const translation = addReactKeys(\n t({\n key: key!,\n params: wrapTagHandlers(props.params),\n defaultValue,\n noWrap: props.noWrap,\n ns: props.ns,\n })\n );\n\n return <>{translation}</>;\n};\n","import { TolgeeEvent, TolgeeInstance } from '@tolgee/web';\nimport { useEffect } from 'react';\nimport { useRerender } from './hooks';\nimport { useTolgeeContext } from './useTolgeeContext';\n\nexport const useTolgee = (events?: TolgeeEvent[]): TolgeeInstance => {\n const { tolgee } = useTolgeeContext();\n\n const { rerender } = useRerender();\n\n useEffect(() => {\n const listeners = events?.map((e) => tolgee.on(e, rerender));\n return () => {\n listeners?.forEach((listener) => listener.unsubscribe());\n };\n }, [events?.join(':')]);\n\n return tolgee;\n};\n"],"names":["React","useState","useEffect","Suspense","useContext","useCallback","getFallback","getFallbackArray","useRef","getTranslateProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tolgee-react.cjs.js","sources":["../src/TolgeeProvider.tsx","../src/GlobalContextPlugin.tsx","../src/useTolgeeContext.ts","../src/hooks.ts","../src/useTranslateInternal.ts","../src/useTranslate.ts","../src/tagsTools.tsx","../src/T.tsx","../src/useTolgee.ts"],"sourcesContent":["import React, { Suspense, useEffect, useState } from 'react';\nimport { TolgeeInstance } from '@tolgee/web';\nimport { ReactOptions, TolgeeReactContext } from './types';\n\nexport const DEFAULT_REACT_OPTIONS: ReactOptions = {\n useSuspense: true,\n};\n\nexport const TolgeeProviderContext = React.createContext<\n TolgeeReactContext | undefined\n>(undefined);\n\ntype Props = {\n children?: React.ReactNode;\n tolgee: TolgeeInstance;\n options?: ReactOptions;\n fallback?: React.ReactNode;\n};\n\nexport const TolgeeProvider: React.FC<Props> = ({\n tolgee,\n options,\n children,\n fallback,\n}) => {\n const [loading, setLoading] = useState(!tolgee.isLoaded());\n\n useEffect(() => {\n tolgee.run().then(() => {\n setLoading(false);\n });\n return () => {\n tolgee.stop();\n };\n }, [tolgee]);\n\n const optionsWithDefault = { ...DEFAULT_REACT_OPTIONS, ...options };\n\n if (optionsWithDefault.useSuspense) {\n return (\n <TolgeeProviderContext.Provider\n value={{ tolgee, options: optionsWithDefault }}\n >\n {loading ? (\n fallback\n ) : (\n <Suspense fallback={fallback || null}>{children}</Suspense>\n )}\n </TolgeeProviderContext.Provider>\n );\n }\n\n return (\n <TolgeeProviderContext.Provider\n value={{ tolgee, options: optionsWithDefault }}\n >\n {loading ? fallback : children}\n </TolgeeProviderContext.Provider>\n );\n};\n","import type { TolgeePlugin } from '@tolgee/web';\nimport { DEFAULT_REACT_OPTIONS } from './TolgeeProvider';\nimport type { ReactOptions, TolgeeReactContext } from './types';\n\nlet globalContext: TolgeeReactContext | undefined;\n\nexport const GlobalContextPlugin =\n (options?: Partial<ReactOptions>): TolgeePlugin =>\n (tolgee) => {\n globalContext = {\n tolgee,\n options: { ...DEFAULT_REACT_OPTIONS, ...options },\n };\n return tolgee;\n };\n\nexport function getGlobalContext() {\n return globalContext;\n}\n","import { useContext } from 'react';\nimport { getGlobalContext } from './GlobalContextPlugin';\nimport { TolgeeProviderContext } from './TolgeeProvider';\n\nexport const useTolgeeContext = () => {\n const context = useContext(TolgeeProviderContext) || getGlobalContext();\n if (!context) {\n throw new Error(\n \"Couldn't find tolgee instance, did you forgot to use `TolgeeProvider`?\"\n );\n }\n return context;\n};\n","import { useCallback, useState } from 'react';\n\nexport const useRerender = () => {\n const [instance, setCounter] = useState(0);\n\n const rerender = useCallback(() => {\n setCounter((num) => num + 1);\n }, [setCounter]);\n return { instance, rerender };\n};\n","import { useCallback, useEffect, useRef } from 'react';\nimport {\n SubscriptionSelective,\n TranslateProps,\n NsFallback,\n getFallbackArray,\n getFallback,\n} from '@tolgee/web';\n\nimport { useTolgeeContext } from './useTolgeeContext';\nimport { ReactOptions } from './types';\nimport { useRerender } from './hooks';\n\nexport const useTranslateInternal = (\n ns?: NsFallback,\n options?: ReactOptions\n) => {\n const { tolgee, options: defaultOptions } = useTolgeeContext();\n const namespaces = getFallback(ns);\n const namespacesJoined = getFallbackArray(namespaces).join(':');\n\n const currentOptions = {\n ...defaultOptions,\n ...options,\n };\n\n // dummy state to enable re-rendering\n const { rerender, instance } = useRerender();\n\n const subscriptionRef = useRef<SubscriptionSelective>();\n\n const subscriptionQueue = useRef([] as NsFallback[]);\n subscriptionQueue.current = [];\n\n const subscribeToNs = (ns: NsFallback) => {\n subscriptionQueue.current.push(ns);\n subscriptionRef.current?.subscribeNs(ns);\n };\n\n const isLoaded = tolgee.isLoaded(namespaces);\n\n useEffect(() => {\n const subscription = tolgee.onNsUpdate(rerender);\n subscriptionRef.current = subscription;\n if (!isLoaded) {\n subscription.subscribeNs(namespaces);\n }\n subscriptionQueue.current.forEach((ns) => {\n subscription!.subscribeNs(ns);\n });\n\n return () => {\n subscription.unsubscribe();\n };\n }, [isLoaded, namespacesJoined, tolgee]);\n\n useEffect(() => {\n tolgee.addActiveNs(namespaces);\n return () => tolgee.removeActiveNs(namespaces);\n }, [namespacesJoined, tolgee]);\n\n const t = useCallback(\n (props: TranslateProps<any>) => {\n const fallbackNs = props.ns ?? namespaces?.[0];\n subscribeToNs(fallbackNs);\n return tolgee.t({ ...props, ns: fallbackNs }) as any;\n },\n [tolgee, instance]\n );\n\n if (currentOptions.useSuspense && !isLoaded) {\n throw tolgee.addActiveNs(namespaces, true);\n }\n\n return { t, isLoading: !isLoaded };\n};\n","import { useCallback } from 'react';\nimport { TFnType, getTranslateProps, DefaultParamType } from '@tolgee/web';\n\nimport { useTranslateInternal } from './useTranslateInternal';\nimport { ReactOptions } from './types';\n\nexport const useTranslate = (\n ns?: string[] | string,\n options?: ReactOptions\n) => {\n const { t: tInternal, isLoading } = useTranslateInternal(ns, options);\n\n const t: TFnType<DefaultParamType, string> = useCallback(\n (...params: any) => {\n // @ts-ignore\n const props = getTranslateProps(...params);\n return tInternal(props);\n },\n [tInternal]\n );\n\n return { t, isLoading };\n};\n","import { TranslateParams } from '@tolgee/web';\nimport React from 'react';\n\nimport { ParamsTags } from './types';\n\nexport const wrapTagHandlers = (\n params: TranslateParams<ParamsTags> | undefined\n) => {\n if (!params) {\n return undefined;\n }\n\n const result: any = {};\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (typeof value === 'function') {\n result[key] = (chunk: any) => {\n return value(addReactKeys(chunk));\n };\n } else if (React.isValidElement(value as any)) {\n const el = value as React.ReactElement;\n result[key] = (chunk: any) => {\n return el.props.children !== undefined\n ? React.cloneElement(el)\n : React.cloneElement(el, {}, addReactKeys(chunk));\n };\n } else {\n result[key] = value;\n }\n });\n\n return result;\n};\n\nexport const addReactKeys = (\n val: React.ReactNode | React.ReactNode[] | undefined\n) => {\n if (Array.isArray(val)) {\n return React.Children.toArray(val);\n } else {\n return val;\n }\n};\n","import { NsType, TranslateParams } from '@tolgee/web';\nimport React, { FunctionComponent } from 'react';\nimport { addReactKeys, wrapTagHandlers } from './tagsTools';\n\nimport { ParamsTags } from './types';\nimport { useTranslateInternal } from './useTranslateInternal';\n\ntype TProps = {\n params?: TranslateParams<ParamsTags>;\n children?: string;\n noWrap?: boolean;\n keyName?: string;\n ns?: NsType;\n defaultValue?: string;\n};\n\nexport const T: FunctionComponent<TProps> = (props: TProps) => {\n const key = props.keyName || props.children;\n if (key === undefined) {\n // eslint-disable-next-line no-console\n console.error('T component: keyName not defined');\n }\n const defaultValue =\n props.defaultValue || (props.keyName ? props.children : undefined);\n\n const { t } = useTranslateInternal();\n\n const translation = addReactKeys(\n t({\n key: key!,\n params: wrapTagHandlers(props.params),\n defaultValue,\n noWrap: props.noWrap,\n ns: props.ns,\n })\n );\n\n return <>{translation}</>;\n};\n","import { TolgeeEvent, TolgeeInstance } from '@tolgee/web';\nimport { useEffect } from 'react';\nimport { useRerender } from './hooks';\nimport { useTolgeeContext } from './useTolgeeContext';\n\nexport const useTolgee = (events?: TolgeeEvent[]): TolgeeInstance => {\n const { tolgee } = useTolgeeContext();\n\n const { rerender } = useRerender();\n\n useEffect(() => {\n const listeners = events?.map((e) => tolgee.on(e, rerender));\n return () => {\n listeners?.forEach((listener) => listener.unsubscribe());\n };\n }, [events?.join(':')]);\n\n return tolgee;\n};\n"],"names":["React","useState","useEffect","Suspense","useContext","useCallback","getFallback","getFallbackArray","useRef","getTranslateProps"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@tolgee/web");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=n(e);const s={useSuspense:!0},o=r.default.createContext(void 0);let a;const u=()=>{const t=e.useContext(o)||a;if(!t)throw new Error("Couldn't find tolgee instance, did you forgot to use `TolgeeProvider`?");return t},l=()=>{const[t,n]=e.useState(0);return{instance:t,rerender:e.useCallback((()=>{n((e=>e+1))}),[n])}},c=(n,r)=>{const{tolgee:s,options:o}=u(),a=t.getFallback(n),c=t.getFallbackArray(a).join(":"),i=Object.assign(Object.assign({},o),r),{rerender:d,instance:f}=l(),p=e.useRef(),b=e.useRef([]);b.current=[];const g=s.isLoaded(a);e.useEffect((()=>{const e=s.onNsUpdate(d);return p.current=e,g||e.subscribeNs(a),b.current.forEach((t=>{e.subscribeNs(t)})),()=>{e.unsubscribe()}}),[g,c,s]),e.useEffect((()=>(s.addActiveNs(a),()=>s.removeActiveNs(a))),[c,s]);const v=e.useCallback((e=>{var t;const n=null!==(t=e.ns)&&void 0!==t?t:null==a?void 0:a[0];return(e=>{var t;b.current.push(e),null===(t=p.current)||void 0===t||t.subscribeNs(e)})(n),s.t(Object.assign(Object.assign({},e),{ns:n}))}),[s,f]);if(i.useSuspense&&!g)throw s.addActiveNs(a,!0);return{t:v,isLoading:!g}},i=e=>{if(!e)return;const t={};return Object.entries(e||{}).forEach((([e,n])=>{if("function"==typeof n)t[e]=e=>n(d(e));else if(r.default.isValidElement(n)){const s=n;t[e]=e=>void 0!==s.props.children?r.default.cloneElement(s):r.default.cloneElement(s,{},d(e))}else t[e]=n})),t},d=e=>Array.isArray(e)?r.default.Children.toArray(e):e;exports.GlobalContextPlugin=e=>t=>(a={tolgee:t,options:Object.assign(Object.assign({},s),e)},t),exports.T=e=>{const t=e.keyName||e.children;void 0===t&&console.error("T component: keyName not defined");const n=e.defaultValue||(e.keyName?e.children:void 0),{t:s}=c(),o=d(s({key:t,params:i(e.params),defaultValue:n,noWrap:e.noWrap,ns:e.ns}));return r.default.createElement(r.default.Fragment,null,o)},exports.TolgeeProvider=({tolgee:t,options:n,children:a,fallback:u})=>{const[l,c]=e.useState(!t.isLoaded());e.useEffect((()=>(t.run().then((()=>{c(!1)})),()=>{t.stop()})),[t]);const i=Object.assign(Object.assign({},s),n);return i.useSuspense?r.default.createElement(o.Provider,{value:{tolgee:t,options:i}},l?u:r.default.createElement(e.Suspense,{fallback:u||null},a)):r.default.createElement(o.Provider,{value:{tolgee:t,options:i}},l?u:a)},exports.TolgeeProviderContext=o,exports.useTolgee=t=>{const{tolgee:n}=u(),{rerender:r}=l();return e.useEffect((()=>{const e=null==t?void 0:t.map((e=>n.on(e,r)));return()=>{null==e||e.forEach((e=>e.unsubscribe()))}}),[null==t?void 0:t.join(":")]),n},exports.useTranslate=(n,r)=>{const{t:s,isLoading:o}=c(n,r);return{t:e.useCallback(((...e)=>{const n=t.getTranslateProps(...e);return s(n)}),[s]),isLoading:o}},Object.keys(t).forEach((function(e){"default"===e||exports.hasOwnProperty(e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return t[e]}})}));
|
|
2
2
|
//# sourceMappingURL=tolgee-react.cjs.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tolgee-react.cjs.min.js","sources":["../../../node_modules/.pnpm/@rollup+plugin-typescript@8.3.4_e2q5rqkwsas7xse3qcdo6zg4by/node_modules/tslib/tslib.es6.js","../src/TolgeeProvider.tsx","../src/GlobalContextPlugin.tsx","../src/useTolgeeContext.ts","../src/hooks.ts","../src/useTranslateInternal.ts","../src/tagsTools.tsx","../src/T.tsx","../src/useTolgee.ts","../src/useTranslate.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import React, { Suspense, useEffect, useState } from 'react';\nimport { TolgeeInstance } from '@tolgee/web';\nimport { ReactOptions, TolgeeReactContext } from './types';\n\nexport const DEFAULT_REACT_OPTIONS: ReactOptions = {\n useSuspense: true,\n};\n\nexport const TolgeeProviderContext = React.createContext<\n TolgeeReactContext | undefined\n>(undefined);\n\ntype Props = {\n children?: React.ReactNode;\n tolgee: TolgeeInstance;\n options?: ReactOptions;\n fallback?: React.ReactNode;\n};\n\nexport const TolgeeProvider: React.FC<Props> = ({\n tolgee,\n options,\n children,\n fallback,\n}) => {\n const [loading, setLoading] = useState(!tolgee.isLoaded());\n\n useEffect(() => {\n tolgee.run().then(() => {\n setLoading(false);\n });\n return () => {\n tolgee.stop();\n };\n }, [tolgee]);\n\n const optionsWithDefault = { ...DEFAULT_REACT_OPTIONS, ...options };\n\n if (optionsWithDefault.useSuspense) {\n return (\n <TolgeeProviderContext.Provider\n value={{ tolgee, options: optionsWithDefault }}\n >\n {loading ? (\n fallback\n ) : (\n <Suspense fallback={fallback || null}>{children}</Suspense>\n )}\n </TolgeeProviderContext.Provider>\n );\n }\n\n return (\n <TolgeeProviderContext.Provider\n value={{ tolgee, options: optionsWithDefault }}\n >\n {loading ? fallback : children}\n </TolgeeProviderContext.Provider>\n );\n};\n","import type { TolgeePlugin } from '@tolgee/web';\nimport { DEFAULT_REACT_OPTIONS } from './TolgeeProvider';\nimport type { ReactOptions, TolgeeReactContext } from './types';\n\nlet globalContext: TolgeeReactContext | undefined;\n\nexport const GlobalContextPlugin =\n (options?: Partial<ReactOptions>): TolgeePlugin =>\n (tolgee) => {\n globalContext = {\n tolgee,\n options: { ...DEFAULT_REACT_OPTIONS, ...options },\n };\n return tolgee;\n };\n\nexport function getGlobalContext() {\n return globalContext;\n}\n","import { useContext } from 'react';\nimport { getGlobalContext } from './GlobalContextPlugin';\nimport { TolgeeProviderContext } from './TolgeeProvider';\n\nexport const useTolgeeContext = () => {\n const context = useContext(TolgeeProviderContext) || getGlobalContext();\n if (!context) {\n throw new Error(\n \"Couldn't find tolgee instance, did you forgot to use `TolgeeProvider`?\"\n );\n }\n return context;\n};\n","import { useCallback, useState } from 'react';\n\nexport const useRerender = () => {\n const [instance, setCounter] = useState(0);\n\n const rerender = useCallback(() => {\n setCounter((num) => num + 1);\n }, [setCounter]);\n return { instance, rerender };\n};\n","import { useCallback, useEffect, useRef } from 'react';\nimport {\n SubscriptionSelective,\n TranslateProps,\n NsFallback,\n getFallbackArray,\n getFallback,\n} from '@tolgee/web';\n\nimport { useTolgeeContext } from './useTolgeeContext';\nimport { ReactOptions } from './types';\nimport { useRerender } from './hooks';\n\nexport const useTranslateInternal = (\n ns?: NsFallback,\n options?: ReactOptions\n) => {\n const { tolgee, options: defaultOptions } = useTolgeeContext();\n const namespaces = getFallback(ns);\n const namespacesJoined = getFallbackArray(namespaces).join(':');\n\n const currentOptions = {\n ...defaultOptions,\n ...options,\n };\n\n // dummy state to enable re-rendering\n const { rerender, instance } = useRerender();\n\n const subscriptionRef = useRef<SubscriptionSelective>();\n\n const subscriptionQueue = useRef([] as NsFallback[]);\n subscriptionQueue.current = [];\n\n const subscribeToNs = (ns: NsFallback) => {\n subscriptionQueue.current.push(ns);\n subscriptionRef.current?.subscribeNs(ns);\n };\n\n const isLoaded = tolgee.isLoaded(namespaces);\n\n useEffect(() => {\n const subscription = tolgee.onNsUpdate(rerender);\n subscriptionRef.current = subscription;\n if (!isLoaded) {\n subscription.subscribeNs(namespaces);\n }\n subscriptionQueue.current.forEach((ns) => {\n subscription!.subscribeNs(ns);\n });\n\n return () => {\n subscription.unsubscribe();\n };\n }, [isLoaded, namespacesJoined, tolgee]);\n\n useEffect(() => {\n tolgee.addActiveNs(namespaces);\n return () => tolgee.removeActiveNs(namespaces);\n }, [namespacesJoined, tolgee]);\n\n const t = useCallback(\n (props: TranslateProps<any>) => {\n const fallbackNs = props.ns ?? namespaces?.[0];\n subscribeToNs(fallbackNs);\n return tolgee.t({ ...props, ns: fallbackNs }) as any;\n },\n [tolgee, instance]\n );\n\n if (currentOptions.useSuspense && !isLoaded) {\n throw tolgee.addActiveNs(namespaces, true);\n }\n\n return { t, isLoading: !isLoaded };\n};\n","import { TranslateParams } from '@tolgee/web';\nimport React from 'react';\n\nimport { ParamsTags } from './types';\n\nexport const wrapTagHandlers = (\n params: TranslateParams<ParamsTags> | undefined\n) => {\n if (!params) {\n return undefined;\n }\n\n const result: any = {};\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (typeof value === 'function') {\n result[key] = (chunk: any) => {\n return value(addReactKeys(chunk));\n };\n } else if (React.isValidElement(value as any)) {\n const el = value as React.ReactElement;\n result[key] = (chunk: any) => {\n return el.props.children !== undefined\n ? React.cloneElement(el)\n : React.cloneElement(el, {}, addReactKeys(chunk));\n };\n } else {\n result[key] = value;\n }\n });\n\n return result;\n};\n\nexport const addReactKeys = (\n val: React.ReactNode | React.ReactNode[] | undefined\n) => {\n if (Array.isArray(val)) {\n return React.Children.toArray(val);\n } else {\n return val;\n }\n};\n","import { NsType, TranslateParams } from '@tolgee/web';\nimport React, { FunctionComponent } from 'react';\nimport { addReactKeys, wrapTagHandlers } from './tagsTools';\n\nimport { ParamsTags } from './types';\nimport { useTranslateInternal } from './useTranslateInternal';\n\ntype TProps = {\n params?: TranslateParams<ParamsTags>;\n children?: string;\n noWrap?: boolean;\n keyName?: string;\n ns?: NsType;\n defaultValue?: string;\n};\n\nexport const T: FunctionComponent<TProps> = (props: TProps) => {\n const key = props.keyName || props.children;\n if (key === undefined) {\n // eslint-disable-next-line no-console\n console.error('T component: keyName not defined');\n }\n const defaultValue =\n props.defaultValue || (props.keyName ? props.children : undefined);\n\n const { t } = useTranslateInternal();\n\n const translation = addReactKeys(\n t({\n key: key!,\n params: wrapTagHandlers(props.params),\n defaultValue,\n noWrap: props.noWrap,\n ns: props.ns,\n })\n );\n\n return <>{translation}</>;\n};\n","import { TolgeeEvent, TolgeeInstance } from '@tolgee/web';\nimport { useEffect } from 'react';\nimport { useRerender } from './hooks';\nimport { useTolgeeContext } from './useTolgeeContext';\n\nexport const useTolgee = (events?: TolgeeEvent[]): TolgeeInstance => {\n const { tolgee } = useTolgeeContext();\n\n const { rerender } = useRerender();\n\n useEffect(() => {\n const listeners = events?.map((e) => tolgee.on(e, rerender));\n return () => {\n listeners?.forEach((listener) => listener.unsubscribe());\n };\n }, [events?.join(':')]);\n\n return tolgee;\n};\n","import { useCallback } from 'react';\nimport { TFnType, getTranslateProps, DefaultParamType } from '@tolgee/web';\n\nimport { useTranslateInternal } from './useTranslateInternal';\nimport { ReactOptions } from './types';\n\nexport const useTranslate = (\n ns?: string[] | string,\n options?: ReactOptions\n) => {\n const { t: tInternal, isLoading } = useTranslateInternal(ns, options);\n\n const t: TFnType<DefaultParamType, string> = useCallback(\n (...params: any) => {\n // @ts-ignore\n const props = getTranslateProps(...params);\n return tInternal(props);\n },\n [tInternal]\n );\n\n return { t, isLoading };\n};\n"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__read","o","m","Symbol","iterator","r","e","ar","next","done","push","value","error","__spreadArray","to","from","pack","l","Array","slice","concat","globalContext","DEFAULT_REACT_OPTIONS","useSuspense","TolgeeProviderContext","React","createContext","undefined","useTolgeeContext","context","useContext","Error","useRerender","_a","useState","instance","setCounter","rerender","useCallback","num","useTranslateInternal","ns","options","tolgee","defaultOptions","namespaces","getFallback","namespacesJoined","getFallbackArray","join","currentOptions","_b","subscriptionRef","useRef","subscriptionQueue","current","isLoaded","useEffect","subscription","onNsUpdate","subscribeNs","forEach","unsubscribe","addActiveNs","removeActiveNs","props","fallbackNs","subscribeToNs","isLoading","wrapTagHandlers","params","result","entries","key","chunk","addReactKeys","isValidElement","el_1","children","cloneElement","val","isArray","Children","toArray","keyName","console","defaultValue","translation","noWrap","createElement","Fragment","fallback","loading","setLoading","run","then","stop","optionsWithDefault","Provider","Suspense","events","listeners","map","on","listener","tInternal","_i","getTranslateProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tolgee-react.cjs.min.js","sources":["../src/TolgeeProvider.tsx","../src/GlobalContextPlugin.tsx","../src/useTolgeeContext.ts","../src/hooks.ts","../src/useTranslateInternal.ts","../src/tagsTools.tsx","../src/T.tsx","../src/useTolgee.ts","../src/useTranslate.ts"],"sourcesContent":["import React, { Suspense, useEffect, useState } from 'react';\nimport { TolgeeInstance } from '@tolgee/web';\nimport { ReactOptions, TolgeeReactContext } from './types';\n\nexport const DEFAULT_REACT_OPTIONS: ReactOptions = {\n useSuspense: true,\n};\n\nexport const TolgeeProviderContext = React.createContext<\n TolgeeReactContext | undefined\n>(undefined);\n\ntype Props = {\n children?: React.ReactNode;\n tolgee: TolgeeInstance;\n options?: ReactOptions;\n fallback?: React.ReactNode;\n};\n\nexport const TolgeeProvider: React.FC<Props> = ({\n tolgee,\n options,\n children,\n fallback,\n}) => {\n const [loading, setLoading] = useState(!tolgee.isLoaded());\n\n useEffect(() => {\n tolgee.run().then(() => {\n setLoading(false);\n });\n return () => {\n tolgee.stop();\n };\n }, [tolgee]);\n\n const optionsWithDefault = { ...DEFAULT_REACT_OPTIONS, ...options };\n\n if (optionsWithDefault.useSuspense) {\n return (\n <TolgeeProviderContext.Provider\n value={{ tolgee, options: optionsWithDefault }}\n >\n {loading ? (\n fallback\n ) : (\n <Suspense fallback={fallback || null}>{children}</Suspense>\n )}\n </TolgeeProviderContext.Provider>\n );\n }\n\n return (\n <TolgeeProviderContext.Provider\n value={{ tolgee, options: optionsWithDefault }}\n >\n {loading ? fallback : children}\n </TolgeeProviderContext.Provider>\n );\n};\n","import type { TolgeePlugin } from '@tolgee/web';\nimport { DEFAULT_REACT_OPTIONS } from './TolgeeProvider';\nimport type { ReactOptions, TolgeeReactContext } from './types';\n\nlet globalContext: TolgeeReactContext | undefined;\n\nexport const GlobalContextPlugin =\n (options?: Partial<ReactOptions>): TolgeePlugin =>\n (tolgee) => {\n globalContext = {\n tolgee,\n options: { ...DEFAULT_REACT_OPTIONS, ...options },\n };\n return tolgee;\n };\n\nexport function getGlobalContext() {\n return globalContext;\n}\n","import { useContext } from 'react';\nimport { getGlobalContext } from './GlobalContextPlugin';\nimport { TolgeeProviderContext } from './TolgeeProvider';\n\nexport const useTolgeeContext = () => {\n const context = useContext(TolgeeProviderContext) || getGlobalContext();\n if (!context) {\n throw new Error(\n \"Couldn't find tolgee instance, did you forgot to use `TolgeeProvider`?\"\n );\n }\n return context;\n};\n","import { useCallback, useState } from 'react';\n\nexport const useRerender = () => {\n const [instance, setCounter] = useState(0);\n\n const rerender = useCallback(() => {\n setCounter((num) => num + 1);\n }, [setCounter]);\n return { instance, rerender };\n};\n","import { useCallback, useEffect, useRef } from 'react';\nimport {\n SubscriptionSelective,\n TranslateProps,\n NsFallback,\n getFallbackArray,\n getFallback,\n} from '@tolgee/web';\n\nimport { useTolgeeContext } from './useTolgeeContext';\nimport { ReactOptions } from './types';\nimport { useRerender } from './hooks';\n\nexport const useTranslateInternal = (\n ns?: NsFallback,\n options?: ReactOptions\n) => {\n const { tolgee, options: defaultOptions } = useTolgeeContext();\n const namespaces = getFallback(ns);\n const namespacesJoined = getFallbackArray(namespaces).join(':');\n\n const currentOptions = {\n ...defaultOptions,\n ...options,\n };\n\n // dummy state to enable re-rendering\n const { rerender, instance } = useRerender();\n\n const subscriptionRef = useRef<SubscriptionSelective>();\n\n const subscriptionQueue = useRef([] as NsFallback[]);\n subscriptionQueue.current = [];\n\n const subscribeToNs = (ns: NsFallback) => {\n subscriptionQueue.current.push(ns);\n subscriptionRef.current?.subscribeNs(ns);\n };\n\n const isLoaded = tolgee.isLoaded(namespaces);\n\n useEffect(() => {\n const subscription = tolgee.onNsUpdate(rerender);\n subscriptionRef.current = subscription;\n if (!isLoaded) {\n subscription.subscribeNs(namespaces);\n }\n subscriptionQueue.current.forEach((ns) => {\n subscription!.subscribeNs(ns);\n });\n\n return () => {\n subscription.unsubscribe();\n };\n }, [isLoaded, namespacesJoined, tolgee]);\n\n useEffect(() => {\n tolgee.addActiveNs(namespaces);\n return () => tolgee.removeActiveNs(namespaces);\n }, [namespacesJoined, tolgee]);\n\n const t = useCallback(\n (props: TranslateProps<any>) => {\n const fallbackNs = props.ns ?? namespaces?.[0];\n subscribeToNs(fallbackNs);\n return tolgee.t({ ...props, ns: fallbackNs }) as any;\n },\n [tolgee, instance]\n );\n\n if (currentOptions.useSuspense && !isLoaded) {\n throw tolgee.addActiveNs(namespaces, true);\n }\n\n return { t, isLoading: !isLoaded };\n};\n","import { TranslateParams } from '@tolgee/web';\nimport React from 'react';\n\nimport { ParamsTags } from './types';\n\nexport const wrapTagHandlers = (\n params: TranslateParams<ParamsTags> | undefined\n) => {\n if (!params) {\n return undefined;\n }\n\n const result: any = {};\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (typeof value === 'function') {\n result[key] = (chunk: any) => {\n return value(addReactKeys(chunk));\n };\n } else if (React.isValidElement(value as any)) {\n const el = value as React.ReactElement;\n result[key] = (chunk: any) => {\n return el.props.children !== undefined\n ? React.cloneElement(el)\n : React.cloneElement(el, {}, addReactKeys(chunk));\n };\n } else {\n result[key] = value;\n }\n });\n\n return result;\n};\n\nexport const addReactKeys = (\n val: React.ReactNode | React.ReactNode[] | undefined\n) => {\n if (Array.isArray(val)) {\n return React.Children.toArray(val);\n } else {\n return val;\n }\n};\n","import { NsType, TranslateParams } from '@tolgee/web';\nimport React, { FunctionComponent } from 'react';\nimport { addReactKeys, wrapTagHandlers } from './tagsTools';\n\nimport { ParamsTags } from './types';\nimport { useTranslateInternal } from './useTranslateInternal';\n\ntype TProps = {\n params?: TranslateParams<ParamsTags>;\n children?: string;\n noWrap?: boolean;\n keyName?: string;\n ns?: NsType;\n defaultValue?: string;\n};\n\nexport const T: FunctionComponent<TProps> = (props: TProps) => {\n const key = props.keyName || props.children;\n if (key === undefined) {\n // eslint-disable-next-line no-console\n console.error('T component: keyName not defined');\n }\n const defaultValue =\n props.defaultValue || (props.keyName ? props.children : undefined);\n\n const { t } = useTranslateInternal();\n\n const translation = addReactKeys(\n t({\n key: key!,\n params: wrapTagHandlers(props.params),\n defaultValue,\n noWrap: props.noWrap,\n ns: props.ns,\n })\n );\n\n return <>{translation}</>;\n};\n","import { TolgeeEvent, TolgeeInstance } from '@tolgee/web';\nimport { useEffect } from 'react';\nimport { useRerender } from './hooks';\nimport { useTolgeeContext } from './useTolgeeContext';\n\nexport const useTolgee = (events?: TolgeeEvent[]): TolgeeInstance => {\n const { tolgee } = useTolgeeContext();\n\n const { rerender } = useRerender();\n\n useEffect(() => {\n const listeners = events?.map((e) => tolgee.on(e, rerender));\n return () => {\n listeners?.forEach((listener) => listener.unsubscribe());\n };\n }, [events?.join(':')]);\n\n return tolgee;\n};\n","import { useCallback } from 'react';\nimport { TFnType, getTranslateProps, DefaultParamType } from '@tolgee/web';\n\nimport { useTranslateInternal } from './useTranslateInternal';\nimport { ReactOptions } from './types';\n\nexport const useTranslate = (\n ns?: string[] | string,\n options?: ReactOptions\n) => {\n const { t: tInternal, isLoading } = useTranslateInternal(ns, options);\n\n const t: TFnType<DefaultParamType, string> = useCallback(\n (...params: any) => {\n // @ts-ignore\n const props = getTranslateProps(...params);\n return tInternal(props);\n },\n [tInternal]\n );\n\n return { t, isLoading };\n};\n"],"names":["DEFAULT_REACT_OPTIONS","useSuspense","TolgeeProviderContext","React","createContext","undefined","globalContext","useTolgeeContext","context","useContext","Error","useRerender","instance","setCounter","useState","rerender","useCallback","num","useTranslateInternal","ns","options","tolgee","defaultOptions","namespaces","getFallback","namespacesJoined","getFallbackArray","join","currentOptions","Object","assign","subscriptionRef","useRef","subscriptionQueue","current","isLoaded","useEffect","subscription","onNsUpdate","subscribeNs","forEach","unsubscribe","addActiveNs","removeActiveNs","t","props","fallbackNs","_a","push","subscribeToNs","isLoading","wrapTagHandlers","params","result","entries","key","value","chunk","addReactKeys","isValidElement","el","children","cloneElement","val","Array","isArray","Children","toArray","keyName","console","error","defaultValue","translation","noWrap","createElement","Fragment","fallback","loading","setLoading","run","then","stop","optionsWithDefault","Provider","Suspense","events","listeners","map","e","on","listener","tInternal","getTranslateProps"],"mappings":"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"}
|