@tolgee/react 5.33.2 → 5.33.3-prerelease.4a586561.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/TolgeeProvider.d.ts +2 -2
- package/dist/createServerInstance.d.ts +2 -3
- package/dist/tolgee-react-server.cjs.js +5 -1
- package/dist/tolgee-react-server.cjs.js.map +1 -1
- package/dist/tolgee-react-server.cjs.min.js +1 -1
- package/dist/tolgee-react-server.cjs.min.js.map +1 -1
- package/dist/tolgee-react-server.esm.js +5 -1
- package/dist/tolgee-react-server.esm.js.map +1 -1
- package/dist/tolgee-react-server.esm.min.js +1 -1
- package/dist/tolgee-react-server.esm.min.js.map +1 -1
- package/dist/tolgee-react-server.esm.min.mjs +1 -1
- package/dist/tolgee-react-server.esm.min.mjs.map +1 -1
- package/dist/tolgee-react-server.esm.mjs +5 -1
- package/dist/tolgee-react-server.esm.mjs.map +1 -1
- package/dist/tolgee-react-server.umd.js +5 -1
- package/dist/tolgee-react-server.umd.js.map +1 -1
- package/dist/tolgee-react-server.umd.min.js +1 -1
- package/dist/tolgee-react-server.umd.min.js.map +1 -1
- package/dist/tolgee-react.cjs.js +9 -20
- 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 +9 -20
- package/dist/tolgee-react.esm.js.map +1 -1
- package/dist/tolgee-react.esm.min.js +1 -1
- package/dist/tolgee-react.esm.min.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.esm.mjs +9 -20
- package/dist/tolgee-react.esm.mjs.map +1 -1
- package/dist/tolgee-react.umd.js +9 -20
- 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/dist/useTolgeeSSR.d.ts +2 -2
- package/lib/TolgeeProvider.d.ts +2 -2
- package/lib/createServerInstance.d.ts +2 -3
- package/lib/useTolgeeSSR.d.ts +2 -2
- package/package.json +5 -5
- package/src/TolgeeProvider.tsx +3 -3
- package/src/__integration/namespaces.spec.tsx +7 -9
- package/src/__integration/useTolgee.spec.tsx +5 -0
- package/src/createServerInstance.tsx +14 -8
- package/src/useTolgeeSSR.ts +8 -6
- package/src/useTranslateInternal.ts +1 -15
package/dist/TolgeeProvider.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { TolgeeInstance,
|
|
2
|
+
import { TolgeeInstance, TolgeeStaticDataProp } from '@tolgee/web';
|
|
3
3
|
import { ReactOptions, TolgeeReactContext } from './types';
|
|
4
4
|
export declare const DEFAULT_REACT_OPTIONS: ReactOptions;
|
|
5
5
|
export declare const getProviderInstance: () => React.Context<TolgeeReactContext | undefined>;
|
|
@@ -11,7 +11,7 @@ export type SSROptions = {
|
|
|
11
11
|
/**
|
|
12
12
|
* If provided, static data will be hard set to Tolgee cache for initial render
|
|
13
13
|
*/
|
|
14
|
-
staticData?:
|
|
14
|
+
staticData?: TolgeeStaticDataProp;
|
|
15
15
|
};
|
|
16
16
|
export interface TolgeeProviderProps {
|
|
17
17
|
children?: React.ReactNode;
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { TFnType } from '@tolgee/web';
|
|
2
|
-
import { TProps } from './types';
|
|
3
1
|
import React from 'react';
|
|
2
|
+
import { TFnType } from '@tolgee/web';
|
|
4
3
|
import { TolgeeInstance } from '@tolgee/web';
|
|
4
|
+
import { TProps } from './types';
|
|
5
5
|
export type CreateServerInstanceOptions = {
|
|
6
6
|
createTolgee: (locale: string) => Promise<TolgeeInstance>;
|
|
7
7
|
getLocale: () => Promise<string>;
|
|
8
8
|
};
|
|
9
9
|
export declare const createServerInstance: ({ createTolgee, getLocale, }: CreateServerInstanceOptions) => {
|
|
10
|
-
getTolgeeInstance: (locale: string) => Promise<TolgeeInstance>;
|
|
11
10
|
getTolgee: () => Promise<TolgeeInstance>;
|
|
12
11
|
getTranslate: () => Promise<TFnType<import("@tolgee/web").DefaultParamType, string, import("@tolgee/web").TranslationKey>>;
|
|
13
12
|
T: (props: TProps) => Promise<React.JSX.Element>;
|
|
@@ -91,7 +91,11 @@ const createServerInstance = ({ createTolgee, getLocale, }) => {
|
|
|
91
91
|
const t = await getTranslate();
|
|
92
92
|
return React__default["default"].createElement(TBase, Object.assign({ t: t }, props));
|
|
93
93
|
}
|
|
94
|
-
return {
|
|
94
|
+
return {
|
|
95
|
+
getTolgee,
|
|
96
|
+
getTranslate,
|
|
97
|
+
T,
|
|
98
|
+
};
|
|
95
99
|
};
|
|
96
100
|
|
|
97
101
|
exports.TBase = TBase;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tolgee-react-server.cjs.js","sources":["../src/tagsTools.tsx","../src/TBase.tsx","../src/createServerInstance.tsx"],"sourcesContent":["import { TranslateParams } from '@tolgee/web';\nimport React from 'react';\n\nimport { ParamsTags } from './types';\n\nfunction unwrapSingleElementArray(value: any) {\n if (Array.isArray(value) && value.length === 1) {\n return value[0];\n } else {\n return value;\n }\n}\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 && chunk?.length\n ? React.cloneElement(el, {}, addReactKeys(chunk))\n : React.cloneElement(el);\n };\n } else {\n result[key] = value;\n }\n });\n\n return result;\n};\n\nexport const addReactKeys = (\n children: React.ReactNode | React.ReactNode[] | undefined\n) => {\n const val = unwrapSingleElementArray(children);\n if (Array.isArray(val)) {\n return val.map((item, i) => (\n <React.Fragment key={i}>{item}</React.Fragment>\n ));\n } else {\n return val;\n }\n};\n","import React from 'react';\nimport { addReactKeys, wrapTagHandlers } from './tagsTools';\nimport type { PropsWithKeyName, TBaseInterface } from './types';\n\nexport const TBase: TBaseInterface = (props) => {\n const key = (props as PropsWithKeyName).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 ||\n ((props as PropsWithKeyName).keyName ? props.children : undefined);\n\n const translation = addReactKeys(\n props.t({\n key: key!,\n params: wrapTagHandlers(props.params),\n defaultValue,\n noWrap: props.noWrap,\n ns: props.ns,\n language: props.language,\n })\n );\n\n return <>{translation}</>;\n};\n","// @ts-ignore\nimport { cache } from 'react';\nimport { TFnType } from '@tolgee/web';\
|
|
1
|
+
{"version":3,"file":"tolgee-react-server.cjs.js","sources":["../src/tagsTools.tsx","../src/TBase.tsx","../src/createServerInstance.tsx"],"sourcesContent":["import { TranslateParams } from '@tolgee/web';\nimport React from 'react';\n\nimport { ParamsTags } from './types';\n\nfunction unwrapSingleElementArray(value: any) {\n if (Array.isArray(value) && value.length === 1) {\n return value[0];\n } else {\n return value;\n }\n}\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 && chunk?.length\n ? React.cloneElement(el, {}, addReactKeys(chunk))\n : React.cloneElement(el);\n };\n } else {\n result[key] = value;\n }\n });\n\n return result;\n};\n\nexport const addReactKeys = (\n children: React.ReactNode | React.ReactNode[] | undefined\n) => {\n const val = unwrapSingleElementArray(children);\n if (Array.isArray(val)) {\n return val.map((item, i) => (\n <React.Fragment key={i}>{item}</React.Fragment>\n ));\n } else {\n return val;\n }\n};\n","import React from 'react';\nimport { addReactKeys, wrapTagHandlers } from './tagsTools';\nimport type { PropsWithKeyName, TBaseInterface } from './types';\n\nexport const TBase: TBaseInterface = (props) => {\n const key = (props as PropsWithKeyName).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 ||\n ((props as PropsWithKeyName).keyName ? props.children : undefined);\n\n const translation = addReactKeys(\n props.t({\n key: key!,\n params: wrapTagHandlers(props.params),\n defaultValue,\n noWrap: props.noWrap,\n ns: props.ns,\n language: props.language,\n })\n );\n\n return <>{translation}</>;\n};\n","// @ts-ignore\nimport { cache } from 'react';\nimport React from 'react';\nimport { TFnType } from '@tolgee/web';\nimport { TolgeeInstance } from '@tolgee/web';\n\nimport { TBase } from './TBase';\nimport { TProps, ParamsTags } from './types';\n\nexport type CreateServerInstanceOptions = {\n createTolgee: (locale: string) => Promise<TolgeeInstance>;\n getLocale: () => Promise<string>;\n};\n\nexport const createServerInstance = ({\n createTolgee,\n getLocale,\n}: CreateServerInstanceOptions) => {\n const getTolgeeInstance: (locale: string) => Promise<TolgeeInstance> = cache(\n async (locale: string) => {\n const tolgee = await createTolgee(locale);\n await tolgee.run();\n return tolgee;\n }\n );\n\n const getTolgee = async () => {\n const locale = await getLocale();\n const tolgee = await getTolgeeInstance(locale);\n return tolgee;\n };\n\n const getTranslate = async () => {\n const tolgee = await getTolgee();\n return tolgee.t;\n };\n\n async function T(props: TProps) {\n const t = await getTranslate();\n return <TBase t={t as TFnType<ParamsTags>} {...props} />;\n }\n\n return {\n getTolgee,\n getTranslate,\n T,\n };\n};\n"],"names":["React","cache"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@tolgee/web");function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@tolgee/web");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=r(e);const n=e=>{if(!e)return;const t={};return Object.entries(e||{}).forEach((([e,r])=>{if("function"==typeof r)t[e]=e=>r(o(e));else if(a.default.isValidElement(r)){const n=r;t[e]=e=>void 0===n.props.children&&(null==e?void 0:e.length)?a.default.cloneElement(n,{},o(e)):a.default.cloneElement(n)}else t[e]=r})),t},o=e=>{const t=(r=e,Array.isArray(r)&&1===r.length?r[0]:r);var r;return Array.isArray(t)?t.map(((e,t)=>a.default.createElement(a.default.Fragment,{key:t},e))):t},l=e=>{const t=e.keyName||e.children;void 0===t&&console.error("T component: keyName not defined");const r=e.defaultValue||(e.keyName?e.children:void 0),l=o(e.t({key:t,params:n(e.params),defaultValue:r,noWrap:e.noWrap,ns:e.ns,language:e.language}));return a.default.createElement(a.default.Fragment,null,l)};exports.TBase=l,exports.createServerInstance=({createTolgee:t,getLocale:r})=>{const n=e.cache((async e=>{const r=await t(e);return await r.run(),r})),o=async()=>{const e=await r();return await n(e)},c=async()=>(await o()).t;return{getTolgee:o,getTranslate:c,T:async function(e){const t=await c();return a.default.createElement(l,Object.assign({t:t},e))}}},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-server.cjs.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tolgee-react-server.cjs.min.js","sources":["../src/tagsTools.tsx","../src/TBase.tsx","../src/createServerInstance.tsx"],"sourcesContent":["import { TranslateParams } from '@tolgee/web';\nimport React from 'react';\n\nimport { ParamsTags } from './types';\n\nfunction unwrapSingleElementArray(value: any) {\n if (Array.isArray(value) && value.length === 1) {\n return value[0];\n } else {\n return value;\n }\n}\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 && chunk?.length\n ? React.cloneElement(el, {}, addReactKeys(chunk))\n : React.cloneElement(el);\n };\n } else {\n result[key] = value;\n }\n });\n\n return result;\n};\n\nexport const addReactKeys = (\n children: React.ReactNode | React.ReactNode[] | undefined\n) => {\n const val = unwrapSingleElementArray(children);\n if (Array.isArray(val)) {\n return val.map((item, i) => (\n <React.Fragment key={i}>{item}</React.Fragment>\n ));\n } else {\n return val;\n }\n};\n","import React from 'react';\nimport { addReactKeys, wrapTagHandlers } from './tagsTools';\nimport type { PropsWithKeyName, TBaseInterface } from './types';\n\nexport const TBase: TBaseInterface = (props) => {\n const key = (props as PropsWithKeyName).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 ||\n ((props as PropsWithKeyName).keyName ? props.children : undefined);\n\n const translation = addReactKeys(\n props.t({\n key: key!,\n params: wrapTagHandlers(props.params),\n defaultValue,\n noWrap: props.noWrap,\n ns: props.ns,\n language: props.language,\n })\n );\n\n return <>{translation}</>;\n};\n","// @ts-ignore\nimport { cache } from 'react';\nimport { TFnType } from '@tolgee/web';\
|
|
1
|
+
{"version":3,"file":"tolgee-react-server.cjs.min.js","sources":["../src/tagsTools.tsx","../src/TBase.tsx","../src/createServerInstance.tsx"],"sourcesContent":["import { TranslateParams } from '@tolgee/web';\nimport React from 'react';\n\nimport { ParamsTags } from './types';\n\nfunction unwrapSingleElementArray(value: any) {\n if (Array.isArray(value) && value.length === 1) {\n return value[0];\n } else {\n return value;\n }\n}\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 && chunk?.length\n ? React.cloneElement(el, {}, addReactKeys(chunk))\n : React.cloneElement(el);\n };\n } else {\n result[key] = value;\n }\n });\n\n return result;\n};\n\nexport const addReactKeys = (\n children: React.ReactNode | React.ReactNode[] | undefined\n) => {\n const val = unwrapSingleElementArray(children);\n if (Array.isArray(val)) {\n return val.map((item, i) => (\n <React.Fragment key={i}>{item}</React.Fragment>\n ));\n } else {\n return val;\n }\n};\n","import React from 'react';\nimport { addReactKeys, wrapTagHandlers } from './tagsTools';\nimport type { PropsWithKeyName, TBaseInterface } from './types';\n\nexport const TBase: TBaseInterface = (props) => {\n const key = (props as PropsWithKeyName).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 ||\n ((props as PropsWithKeyName).keyName ? props.children : undefined);\n\n const translation = addReactKeys(\n props.t({\n key: key!,\n params: wrapTagHandlers(props.params),\n defaultValue,\n noWrap: props.noWrap,\n ns: props.ns,\n language: props.language,\n })\n );\n\n return <>{translation}</>;\n};\n","// @ts-ignore\nimport { cache } from 'react';\nimport React from 'react';\nimport { TFnType } from '@tolgee/web';\nimport { TolgeeInstance } from '@tolgee/web';\n\nimport { TBase } from './TBase';\nimport { TProps, ParamsTags } from './types';\n\nexport type CreateServerInstanceOptions = {\n createTolgee: (locale: string) => Promise<TolgeeInstance>;\n getLocale: () => Promise<string>;\n};\n\nexport const createServerInstance = ({\n createTolgee,\n getLocale,\n}: CreateServerInstanceOptions) => {\n const getTolgeeInstance: (locale: string) => Promise<TolgeeInstance> = cache(\n async (locale: string) => {\n const tolgee = await createTolgee(locale);\n await tolgee.run();\n return tolgee;\n }\n );\n\n const getTolgee = async () => {\n const locale = await getLocale();\n const tolgee = await getTolgeeInstance(locale);\n return tolgee;\n };\n\n const getTranslate = async () => {\n const tolgee = await getTolgee();\n return tolgee.t;\n };\n\n async function T(props: TProps) {\n const t = await getTranslate();\n return <TBase t={t as TFnType<ParamsTags>} {...props} />;\n }\n\n return {\n getTolgee,\n getTranslate,\n T,\n };\n};\n"],"names":["wrapTagHandlers","params","result","Object","entries","forEach","key","value","chunk","addReactKeys","React","isValidElement","el","undefined","props","children","length","cloneElement","val","Array","isArray","map","item","i","Fragment","TBase","keyName","console","error","defaultValue","translation","t","noWrap","ns","language","createElement","createTolgee","getLocale","getTolgeeInstance","cache","async","locale","tolgee","run","getTolgee","getTranslate","T","assign"],"mappings":"uMAaO,MAAMA,EACXC,IAEA,IAAKA,EACH,OAGF,MAAMC,EAAc,CAAA,EAmBpB,OAjBAC,OAAOC,QAAQH,GAAU,CAAE,GAAEI,SAAQ,EAAEC,EAAKC,MAC1C,GAAqB,mBAAVA,EACTL,EAAOI,GAAQE,GACND,EAAME,EAAaD,SAEvB,GAAIE,EAAK,QAACC,eAAeJ,GAAe,CAC7C,MAAMK,EAAKL,EACXL,EAAOI,GAAQE,QACgBK,IAAtBD,EAAGE,MAAMC,WAA0BP,aAAK,EAALA,EAAOQ,QAC7CN,EAAK,QAACO,aAAaL,EAAI,CAAE,EAAEH,EAAaD,IACxCE,UAAMO,aAAaL,EAE1B,MACCV,EAAOI,GAAOC,CACf,IAGIL,CAAM,EAGFO,EACXM,IAEA,MAAMG,GAxC0BX,EAwCKQ,EAvCjCI,MAAMC,QAAQb,IAA2B,IAAjBA,EAAMS,OACzBT,EAAM,GAENA,GAJX,IAAkCA,EAyChC,OAAIY,MAAMC,QAAQF,GACTA,EAAIG,KAAI,CAACC,EAAMC,IACpBb,wBAACA,EAAK,QAACc,SAAQ,CAAClB,IAAKiB,GAAID,KAGpBJ,CACR,EChDUO,EAAyBX,IACpC,MAAMR,EAAOQ,EAA2BY,SAAWZ,EAAMC,cAC7CF,IAARP,GAEFqB,QAAQC,MAAM,oCAEhB,MAAMC,EACJf,EAAMe,eACJf,EAA2BY,QAAUZ,EAAMC,cAAWF,GAEpDiB,EAAcrB,EAClBK,EAAMiB,EAAE,CACNzB,IAAKA,EACLL,OAAQD,EAAgBc,EAAMb,QAC9B4B,eACAG,OAAQlB,EAAMkB,OACdC,GAAInB,EAAMmB,GACVC,SAAUpB,EAAMoB,YAIpB,OAAOxB,EAAAA,QAAAyB,cAAAzB,EAAAA,QAAAc,SAAA,KAAGM,EAAe,+CCXS,EAClCM,eACAC,gBAEA,MAAMC,EAAiEC,SACrEC,MAAOC,IACL,MAAMC,QAAeN,EAAaK,GAElC,aADMC,EAAOC,MACND,CAAM,IAIXE,EAAYJ,UAChB,MAAMC,QAAeJ,IAErB,aADqBC,EAAkBG,EAC1B,EAGTI,EAAeL,gBACEI,KACPb,EAQhB,MAAO,CACLa,YACAC,eACAC,EARFN,eAAiB1B,GACf,MAAMiB,QAAUc,IAChB,OAAOnC,UAAAyB,cAACV,EAAMtB,OAAA4C,OAAA,CAAAhB,EAAGA,GAA8BjB,GAChD,EAMA"}
|
|
@@ -83,7 +83,11 @@ const createServerInstance = ({ createTolgee, getLocale, }) => {
|
|
|
83
83
|
const t = await getTranslate();
|
|
84
84
|
return React.createElement(TBase, Object.assign({ t: t }, props));
|
|
85
85
|
}
|
|
86
|
-
return {
|
|
86
|
+
return {
|
|
87
|
+
getTolgee,
|
|
88
|
+
getTranslate,
|
|
89
|
+
T,
|
|
90
|
+
};
|
|
87
91
|
};
|
|
88
92
|
|
|
89
93
|
export { TBase, createServerInstance };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tolgee-react-server.esm.js","sources":["../src/tagsTools.tsx","../src/TBase.tsx","../src/createServerInstance.tsx"],"sourcesContent":["import { TranslateParams } from '@tolgee/web';\nimport React from 'react';\n\nimport { ParamsTags } from './types';\n\nfunction unwrapSingleElementArray(value: any) {\n if (Array.isArray(value) && value.length === 1) {\n return value[0];\n } else {\n return value;\n }\n}\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 && chunk?.length\n ? React.cloneElement(el, {}, addReactKeys(chunk))\n : React.cloneElement(el);\n };\n } else {\n result[key] = value;\n }\n });\n\n return result;\n};\n\nexport const addReactKeys = (\n children: React.ReactNode | React.ReactNode[] | undefined\n) => {\n const val = unwrapSingleElementArray(children);\n if (Array.isArray(val)) {\n return val.map((item, i) => (\n <React.Fragment key={i}>{item}</React.Fragment>\n ));\n } else {\n return val;\n }\n};\n","import React from 'react';\nimport { addReactKeys, wrapTagHandlers } from './tagsTools';\nimport type { PropsWithKeyName, TBaseInterface } from './types';\n\nexport const TBase: TBaseInterface = (props) => {\n const key = (props as PropsWithKeyName).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 ||\n ((props as PropsWithKeyName).keyName ? props.children : undefined);\n\n const translation = addReactKeys(\n props.t({\n key: key!,\n params: wrapTagHandlers(props.params),\n defaultValue,\n noWrap: props.noWrap,\n ns: props.ns,\n language: props.language,\n })\n );\n\n return <>{translation}</>;\n};\n","// @ts-ignore\nimport { cache } from 'react';\nimport { TFnType } from '@tolgee/web';\
|
|
1
|
+
{"version":3,"file":"tolgee-react-server.esm.js","sources":["../src/tagsTools.tsx","../src/TBase.tsx","../src/createServerInstance.tsx"],"sourcesContent":["import { TranslateParams } from '@tolgee/web';\nimport React from 'react';\n\nimport { ParamsTags } from './types';\n\nfunction unwrapSingleElementArray(value: any) {\n if (Array.isArray(value) && value.length === 1) {\n return value[0];\n } else {\n return value;\n }\n}\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 && chunk?.length\n ? React.cloneElement(el, {}, addReactKeys(chunk))\n : React.cloneElement(el);\n };\n } else {\n result[key] = value;\n }\n });\n\n return result;\n};\n\nexport const addReactKeys = (\n children: React.ReactNode | React.ReactNode[] | undefined\n) => {\n const val = unwrapSingleElementArray(children);\n if (Array.isArray(val)) {\n return val.map((item, i) => (\n <React.Fragment key={i}>{item}</React.Fragment>\n ));\n } else {\n return val;\n }\n};\n","import React from 'react';\nimport { addReactKeys, wrapTagHandlers } from './tagsTools';\nimport type { PropsWithKeyName, TBaseInterface } from './types';\n\nexport const TBase: TBaseInterface = (props) => {\n const key = (props as PropsWithKeyName).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 ||\n ((props as PropsWithKeyName).keyName ? props.children : undefined);\n\n const translation = addReactKeys(\n props.t({\n key: key!,\n params: wrapTagHandlers(props.params),\n defaultValue,\n noWrap: props.noWrap,\n ns: props.ns,\n language: props.language,\n })\n );\n\n return <>{translation}</>;\n};\n","// @ts-ignore\nimport { cache } from 'react';\nimport React from 'react';\nimport { TFnType } from '@tolgee/web';\nimport { TolgeeInstance } from '@tolgee/web';\n\nimport { TBase } from './TBase';\nimport { TProps, ParamsTags } from './types';\n\nexport type CreateServerInstanceOptions = {\n createTolgee: (locale: string) => Promise<TolgeeInstance>;\n getLocale: () => Promise<string>;\n};\n\nexport const createServerInstance = ({\n createTolgee,\n getLocale,\n}: CreateServerInstanceOptions) => {\n const getTolgeeInstance: (locale: string) => Promise<TolgeeInstance> = cache(\n async (locale: string) => {\n const tolgee = await createTolgee(locale);\n await tolgee.run();\n return tolgee;\n }\n );\n\n const getTolgee = async () => {\n const locale = await getLocale();\n const tolgee = await getTolgeeInstance(locale);\n return tolgee;\n };\n\n const getTranslate = async () => {\n const tolgee = await getTolgee();\n return tolgee.t;\n };\n\n async function T(props: TProps) {\n const t = await getTranslate();\n return <TBase t={t as TFnType<ParamsTags>} {...props} />;\n }\n\n return {\n getTolgee,\n getTranslate,\n T,\n };\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e,{cache as t}from"react";export*from"@tolgee/web";const n=t=>{if(!t)return;const n={};return Object.entries(t||{}).forEach((([t,r])=>{if("function"==typeof r)n[t]=e=>r(a(e));else if(e.isValidElement(r)){const o=r;n[t]=t=>void 0===o.props.children&&(null==t?void 0:t.length)?e.cloneElement(o,{},a(t)):e.cloneElement(o)}else n[t]=r})),n},a=t=>{const n=(a=t,Array.isArray(a)&&1===a.length?a[0]:a);var a;return Array.isArray(n)?n.map(((t,n)=>e.createElement(e.Fragment,{key:n},t))):n},r=t=>{const r=t.keyName||t.children;void 0===r&&console.error("T component: keyName not defined");const o=t.defaultValue||(t.keyName?t.children:void 0),c=a(t.t({key:r,params:n(t.params),defaultValue:o,noWrap:t.noWrap,ns:t.ns,language:t.language}));return e.createElement(e.Fragment,null,c)},o=({createTolgee:n,getLocale:a})=>{const o=t((async e=>{const t=await n(e);return await t.run(),t})),c=async()=>{const e=await a();return await o(e)},l=async()=>(await c()).t;return{
|
|
1
|
+
import e,{cache as t}from"react";export*from"@tolgee/web";const n=t=>{if(!t)return;const n={};return Object.entries(t||{}).forEach((([t,r])=>{if("function"==typeof r)n[t]=e=>r(a(e));else if(e.isValidElement(r)){const o=r;n[t]=t=>void 0===o.props.children&&(null==t?void 0:t.length)?e.cloneElement(o,{},a(t)):e.cloneElement(o)}else n[t]=r})),n},a=t=>{const n=(a=t,Array.isArray(a)&&1===a.length?a[0]:a);var a;return Array.isArray(n)?n.map(((t,n)=>e.createElement(e.Fragment,{key:n},t))):n},r=t=>{const r=t.keyName||t.children;void 0===r&&console.error("T component: keyName not defined");const o=t.defaultValue||(t.keyName?t.children:void 0),c=a(t.t({key:r,params:n(t.params),defaultValue:o,noWrap:t.noWrap,ns:t.ns,language:t.language}));return e.createElement(e.Fragment,null,c)},o=({createTolgee:n,getLocale:a})=>{const o=t((async e=>{const t=await n(e);return await t.run(),t})),c=async()=>{const e=await a();return await o(e)},l=async()=>(await c()).t;return{getTolgee:c,getTranslate:l,T:async function(t){const n=await l();return e.createElement(r,Object.assign({t:n},t))}}};export{r as TBase,o as createServerInstance};
|
|
2
2
|
//# sourceMappingURL=tolgee-react-server.esm.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tolgee-react-server.esm.min.js","sources":["../src/tagsTools.tsx","../src/TBase.tsx","../src/createServerInstance.tsx"],"sourcesContent":["import { TranslateParams } from '@tolgee/web';\nimport React from 'react';\n\nimport { ParamsTags } from './types';\n\nfunction unwrapSingleElementArray(value: any) {\n if (Array.isArray(value) && value.length === 1) {\n return value[0];\n } else {\n return value;\n }\n}\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 && chunk?.length\n ? React.cloneElement(el, {}, addReactKeys(chunk))\n : React.cloneElement(el);\n };\n } else {\n result[key] = value;\n }\n });\n\n return result;\n};\n\nexport const addReactKeys = (\n children: React.ReactNode | React.ReactNode[] | undefined\n) => {\n const val = unwrapSingleElementArray(children);\n if (Array.isArray(val)) {\n return val.map((item, i) => (\n <React.Fragment key={i}>{item}</React.Fragment>\n ));\n } else {\n return val;\n }\n};\n","import React from 'react';\nimport { addReactKeys, wrapTagHandlers } from './tagsTools';\nimport type { PropsWithKeyName, TBaseInterface } from './types';\n\nexport const TBase: TBaseInterface = (props) => {\n const key = (props as PropsWithKeyName).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 ||\n ((props as PropsWithKeyName).keyName ? props.children : undefined);\n\n const translation = addReactKeys(\n props.t({\n key: key!,\n params: wrapTagHandlers(props.params),\n defaultValue,\n noWrap: props.noWrap,\n ns: props.ns,\n language: props.language,\n })\n );\n\n return <>{translation}</>;\n};\n","// @ts-ignore\nimport { cache } from 'react';\nimport { TFnType } from '@tolgee/web';\
|
|
1
|
+
{"version":3,"file":"tolgee-react-server.esm.min.js","sources":["../src/tagsTools.tsx","../src/TBase.tsx","../src/createServerInstance.tsx"],"sourcesContent":["import { TranslateParams } from '@tolgee/web';\nimport React from 'react';\n\nimport { ParamsTags } from './types';\n\nfunction unwrapSingleElementArray(value: any) {\n if (Array.isArray(value) && value.length === 1) {\n return value[0];\n } else {\n return value;\n }\n}\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 && chunk?.length\n ? React.cloneElement(el, {}, addReactKeys(chunk))\n : React.cloneElement(el);\n };\n } else {\n result[key] = value;\n }\n });\n\n return result;\n};\n\nexport const addReactKeys = (\n children: React.ReactNode | React.ReactNode[] | undefined\n) => {\n const val = unwrapSingleElementArray(children);\n if (Array.isArray(val)) {\n return val.map((item, i) => (\n <React.Fragment key={i}>{item}</React.Fragment>\n ));\n } else {\n return val;\n }\n};\n","import React from 'react';\nimport { addReactKeys, wrapTagHandlers } from './tagsTools';\nimport type { PropsWithKeyName, TBaseInterface } from './types';\n\nexport const TBase: TBaseInterface = (props) => {\n const key = (props as PropsWithKeyName).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 ||\n ((props as PropsWithKeyName).keyName ? props.children : undefined);\n\n const translation = addReactKeys(\n props.t({\n key: key!,\n params: wrapTagHandlers(props.params),\n defaultValue,\n noWrap: props.noWrap,\n ns: props.ns,\n language: props.language,\n })\n );\n\n return <>{translation}</>;\n};\n","// @ts-ignore\nimport { cache } from 'react';\nimport React from 'react';\nimport { TFnType } from '@tolgee/web';\nimport { TolgeeInstance } from '@tolgee/web';\n\nimport { TBase } from './TBase';\nimport { TProps, ParamsTags } from './types';\n\nexport type CreateServerInstanceOptions = {\n createTolgee: (locale: string) => Promise<TolgeeInstance>;\n getLocale: () => Promise<string>;\n};\n\nexport const createServerInstance = ({\n createTolgee,\n getLocale,\n}: CreateServerInstanceOptions) => {\n const getTolgeeInstance: (locale: string) => Promise<TolgeeInstance> = cache(\n async (locale: string) => {\n const tolgee = await createTolgee(locale);\n await tolgee.run();\n return tolgee;\n }\n );\n\n const getTolgee = async () => {\n const locale = await getLocale();\n const tolgee = await getTolgeeInstance(locale);\n return tolgee;\n };\n\n const getTranslate = async () => {\n const tolgee = await getTolgee();\n return tolgee.t;\n };\n\n async function T(props: TProps) {\n const t = await getTranslate();\n return <TBase t={t as TFnType<ParamsTags>} {...props} />;\n }\n\n return {\n getTolgee,\n getTranslate,\n T,\n };\n};\n"],"names":["wrapTagHandlers","params","result","Object","entries","forEach","key","value","chunk","addReactKeys","React","isValidElement","el","undefined","props","children","length","cloneElement","val","Array","isArray","map","item","i","Fragment","TBase","keyName","console","error","defaultValue","translation","t","noWrap","ns","language","createElement","createServerInstance","createTolgee","getLocale","getTolgeeInstance","cache","async","locale","tolgee","run","getTolgee","getTranslate","T","assign"],"mappings":"0DAaO,MAAMA,EACXC,IAEA,IAAKA,EACH,OAGF,MAAMC,EAAc,CAAA,EAmBpB,OAjBAC,OAAOC,QAAQH,GAAU,CAAE,GAAEI,SAAQ,EAAEC,EAAKC,MAC1C,GAAqB,mBAAVA,EACTL,EAAOI,GAAQE,GACND,EAAME,EAAaD,SAEvB,GAAIE,EAAMC,eAAeJ,GAAe,CAC7C,MAAMK,EAAKL,EACXL,EAAOI,GAAQE,QACgBK,IAAtBD,EAAGE,MAAMC,WAA0BP,aAAK,EAALA,EAAOQ,QAC7CN,EAAMO,aAAaL,EAAI,CAAE,EAAEH,EAAaD,IACxCE,EAAMO,aAAaL,EAE1B,MACCV,EAAOI,GAAOC,CACf,IAGIL,CAAM,EAGFO,EACXM,IAEA,MAAMG,GAxC0BX,EAwCKQ,EAvCjCI,MAAMC,QAAQb,IAA2B,IAAjBA,EAAMS,OACzBT,EAAM,GAENA,GAJX,IAAkCA,EAyChC,OAAIY,MAAMC,QAAQF,GACTA,EAAIG,KAAI,CAACC,EAAMC,IACpBb,gBAACA,EAAMc,SAAQ,CAAClB,IAAKiB,GAAID,KAGpBJ,CACR,EChDUO,EAAyBX,IACpC,MAAMR,EAAOQ,EAA2BY,SAAWZ,EAAMC,cAC7CF,IAARP,GAEFqB,QAAQC,MAAM,oCAEhB,MAAMC,EACJf,EAAMe,eACJf,EAA2BY,QAAUZ,EAAMC,cAAWF,GAEpDiB,EAAcrB,EAClBK,EAAMiB,EAAE,CACNzB,IAAKA,EACLL,OAAQD,EAAgBc,EAAMb,QAC9B4B,eACAG,OAAQlB,EAAMkB,OACdC,GAAInB,EAAMmB,GACVC,SAAUpB,EAAMoB,YAIpB,OAAOxB,EAAAyB,cAAAzB,EAAAc,SAAA,KAAGM,EAAe,ECXdM,EAAuB,EAClCC,eACAC,gBAEA,MAAMC,EAAiEC,GACrEC,MAAOC,IACL,MAAMC,QAAeN,EAAaK,GAElC,aADMC,EAAOC,MACND,CAAM,IAIXE,EAAYJ,UAChB,MAAMC,QAAeJ,IAErB,aADqBC,EAAkBG,EAC1B,EAGTI,EAAeL,gBACEI,KACPd,EAQhB,MAAO,CACLc,YACAC,eACAC,EARFN,eAAiB3B,GACf,MAAMiB,QAAUe,IAChB,OAAOpC,EAAAyB,cAACV,EAAMtB,OAAA6C,OAAA,CAAAjB,EAAGA,GAA8BjB,GAChD,EAMA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e,{cache as t}from"react";export*from"@tolgee/web";const n=t=>{if(!t)return;const n={};return Object.entries(t||{}).forEach((([t,r])=>{if("function"==typeof r)n[t]=e=>r(a(e));else if(e.isValidElement(r)){const o=r;n[t]=t=>void 0===o.props.children&&(null==t?void 0:t.length)?e.cloneElement(o,{},a(t)):e.cloneElement(o)}else n[t]=r})),n},a=t=>{const n=(a=t,Array.isArray(a)&&1===a.length?a[0]:a);var a;return Array.isArray(n)?n.map(((t,n)=>e.createElement(e.Fragment,{key:n},t))):n},r=t=>{const r=t.keyName||t.children;void 0===r&&console.error("T component: keyName not defined");const o=t.defaultValue||(t.keyName?t.children:void 0),c=a(t.t({key:r,params:n(t.params),defaultValue:o,noWrap:t.noWrap,ns:t.ns,language:t.language}));return e.createElement(e.Fragment,null,c)},o=({createTolgee:n,getLocale:a})=>{const o=t((async e=>{const t=await n(e);return await t.run(),t})),c=async()=>{const e=await a();return await o(e)},l=async()=>(await c()).t;return{
|
|
1
|
+
import e,{cache as t}from"react";export*from"@tolgee/web";const n=t=>{if(!t)return;const n={};return Object.entries(t||{}).forEach((([t,r])=>{if("function"==typeof r)n[t]=e=>r(a(e));else if(e.isValidElement(r)){const o=r;n[t]=t=>void 0===o.props.children&&(null==t?void 0:t.length)?e.cloneElement(o,{},a(t)):e.cloneElement(o)}else n[t]=r})),n},a=t=>{const n=(a=t,Array.isArray(a)&&1===a.length?a[0]:a);var a;return Array.isArray(n)?n.map(((t,n)=>e.createElement(e.Fragment,{key:n},t))):n},r=t=>{const r=t.keyName||t.children;void 0===r&&console.error("T component: keyName not defined");const o=t.defaultValue||(t.keyName?t.children:void 0),c=a(t.t({key:r,params:n(t.params),defaultValue:o,noWrap:t.noWrap,ns:t.ns,language:t.language}));return e.createElement(e.Fragment,null,c)},o=({createTolgee:n,getLocale:a})=>{const o=t((async e=>{const t=await n(e);return await t.run(),t})),c=async()=>{const e=await a();return await o(e)},l=async()=>(await c()).t;return{getTolgee:c,getTranslate:l,T:async function(t){const n=await l();return e.createElement(r,Object.assign({t:n},t))}}};export{r as TBase,o as createServerInstance};
|
|
2
2
|
//# sourceMappingURL=tolgee-react-server.esm.min.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tolgee-react-server.esm.min.mjs","sources":["../src/tagsTools.tsx","../src/TBase.tsx","../src/createServerInstance.tsx"],"sourcesContent":["import { TranslateParams } from '@tolgee/web';\nimport React from 'react';\n\nimport { ParamsTags } from './types';\n\nfunction unwrapSingleElementArray(value: any) {\n if (Array.isArray(value) && value.length === 1) {\n return value[0];\n } else {\n return value;\n }\n}\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 && chunk?.length\n ? React.cloneElement(el, {}, addReactKeys(chunk))\n : React.cloneElement(el);\n };\n } else {\n result[key] = value;\n }\n });\n\n return result;\n};\n\nexport const addReactKeys = (\n children: React.ReactNode | React.ReactNode[] | undefined\n) => {\n const val = unwrapSingleElementArray(children);\n if (Array.isArray(val)) {\n return val.map((item, i) => (\n <React.Fragment key={i}>{item}</React.Fragment>\n ));\n } else {\n return val;\n }\n};\n","import React from 'react';\nimport { addReactKeys, wrapTagHandlers } from './tagsTools';\nimport type { PropsWithKeyName, TBaseInterface } from './types';\n\nexport const TBase: TBaseInterface = (props) => {\n const key = (props as PropsWithKeyName).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 ||\n ((props as PropsWithKeyName).keyName ? props.children : undefined);\n\n const translation = addReactKeys(\n props.t({\n key: key!,\n params: wrapTagHandlers(props.params),\n defaultValue,\n noWrap: props.noWrap,\n ns: props.ns,\n language: props.language,\n })\n );\n\n return <>{translation}</>;\n};\n","// @ts-ignore\nimport { cache } from 'react';\nimport { TFnType } from '@tolgee/web';\
|
|
1
|
+
{"version":3,"file":"tolgee-react-server.esm.min.mjs","sources":["../src/tagsTools.tsx","../src/TBase.tsx","../src/createServerInstance.tsx"],"sourcesContent":["import { TranslateParams } from '@tolgee/web';\nimport React from 'react';\n\nimport { ParamsTags } from './types';\n\nfunction unwrapSingleElementArray(value: any) {\n if (Array.isArray(value) && value.length === 1) {\n return value[0];\n } else {\n return value;\n }\n}\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 && chunk?.length\n ? React.cloneElement(el, {}, addReactKeys(chunk))\n : React.cloneElement(el);\n };\n } else {\n result[key] = value;\n }\n });\n\n return result;\n};\n\nexport const addReactKeys = (\n children: React.ReactNode | React.ReactNode[] | undefined\n) => {\n const val = unwrapSingleElementArray(children);\n if (Array.isArray(val)) {\n return val.map((item, i) => (\n <React.Fragment key={i}>{item}</React.Fragment>\n ));\n } else {\n return val;\n }\n};\n","import React from 'react';\nimport { addReactKeys, wrapTagHandlers } from './tagsTools';\nimport type { PropsWithKeyName, TBaseInterface } from './types';\n\nexport const TBase: TBaseInterface = (props) => {\n const key = (props as PropsWithKeyName).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 ||\n ((props as PropsWithKeyName).keyName ? props.children : undefined);\n\n const translation = addReactKeys(\n props.t({\n key: key!,\n params: wrapTagHandlers(props.params),\n defaultValue,\n noWrap: props.noWrap,\n ns: props.ns,\n language: props.language,\n })\n );\n\n return <>{translation}</>;\n};\n","// @ts-ignore\nimport { cache } from 'react';\nimport React from 'react';\nimport { TFnType } from '@tolgee/web';\nimport { TolgeeInstance } from '@tolgee/web';\n\nimport { TBase } from './TBase';\nimport { TProps, ParamsTags } from './types';\n\nexport type CreateServerInstanceOptions = {\n createTolgee: (locale: string) => Promise<TolgeeInstance>;\n getLocale: () => Promise<string>;\n};\n\nexport const createServerInstance = ({\n createTolgee,\n getLocale,\n}: CreateServerInstanceOptions) => {\n const getTolgeeInstance: (locale: string) => Promise<TolgeeInstance> = cache(\n async (locale: string) => {\n const tolgee = await createTolgee(locale);\n await tolgee.run();\n return tolgee;\n }\n );\n\n const getTolgee = async () => {\n const locale = await getLocale();\n const tolgee = await getTolgeeInstance(locale);\n return tolgee;\n };\n\n const getTranslate = async () => {\n const tolgee = await getTolgee();\n return tolgee.t;\n };\n\n async function T(props: TProps) {\n const t = await getTranslate();\n return <TBase t={t as TFnType<ParamsTags>} {...props} />;\n }\n\n return {\n getTolgee,\n getTranslate,\n T,\n };\n};\n"],"names":["wrapTagHandlers","params","result","Object","entries","forEach","key","value","chunk","addReactKeys","React","isValidElement","el","undefined","props","children","length","cloneElement","val","Array","isArray","map","item","i","Fragment","TBase","keyName","console","error","defaultValue","translation","t","noWrap","ns","language","createElement","createServerInstance","createTolgee","getLocale","getTolgeeInstance","cache","async","locale","tolgee","run","getTolgee","getTranslate","T","assign"],"mappings":"0DAaO,MAAMA,EACXC,IAEA,IAAKA,EACH,OAGF,MAAMC,EAAc,CAAA,EAmBpB,OAjBAC,OAAOC,QAAQH,GAAU,CAAE,GAAEI,SAAQ,EAAEC,EAAKC,MAC1C,GAAqB,mBAAVA,EACTL,EAAOI,GAAQE,GACND,EAAME,EAAaD,SAEvB,GAAIE,EAAMC,eAAeJ,GAAe,CAC7C,MAAMK,EAAKL,EACXL,EAAOI,GAAQE,QACgBK,IAAtBD,EAAGE,MAAMC,WAA0BP,aAAK,EAALA,EAAOQ,QAC7CN,EAAMO,aAAaL,EAAI,CAAE,EAAEH,EAAaD,IACxCE,EAAMO,aAAaL,EAE1B,MACCV,EAAOI,GAAOC,CACf,IAGIL,CAAM,EAGFO,EACXM,IAEA,MAAMG,GAxC0BX,EAwCKQ,EAvCjCI,MAAMC,QAAQb,IAA2B,IAAjBA,EAAMS,OACzBT,EAAM,GAENA,GAJX,IAAkCA,EAyChC,OAAIY,MAAMC,QAAQF,GACTA,EAAIG,KAAI,CAACC,EAAMC,IACpBb,gBAACA,EAAMc,SAAQ,CAAClB,IAAKiB,GAAID,KAGpBJ,CACR,EChDUO,EAAyBX,IACpC,MAAMR,EAAOQ,EAA2BY,SAAWZ,EAAMC,cAC7CF,IAARP,GAEFqB,QAAQC,MAAM,oCAEhB,MAAMC,EACJf,EAAMe,eACJf,EAA2BY,QAAUZ,EAAMC,cAAWF,GAEpDiB,EAAcrB,EAClBK,EAAMiB,EAAE,CACNzB,IAAKA,EACLL,OAAQD,EAAgBc,EAAMb,QAC9B4B,eACAG,OAAQlB,EAAMkB,OACdC,GAAInB,EAAMmB,GACVC,SAAUpB,EAAMoB,YAIpB,OAAOxB,EAAAyB,cAAAzB,EAAAc,SAAA,KAAGM,EAAe,ECXdM,EAAuB,EAClCC,eACAC,gBAEA,MAAMC,EAAiEC,GACrEC,MAAOC,IACL,MAAMC,QAAeN,EAAaK,GAElC,aADMC,EAAOC,MACND,CAAM,IAIXE,EAAYJ,UAChB,MAAMC,QAAeJ,IAErB,aADqBC,EAAkBG,EAC1B,EAGTI,EAAeL,gBACEI,KACPd,EAQhB,MAAO,CACLc,YACAC,eACAC,EARFN,eAAiB3B,GACf,MAAMiB,QAAUe,IAChB,OAAOpC,EAAAyB,cAACV,EAAMtB,OAAA6C,OAAA,CAAAjB,EAAGA,GAA8BjB,GAChD,EAMA"}
|
|
@@ -83,7 +83,11 @@ const createServerInstance = ({ createTolgee, getLocale, }) => {
|
|
|
83
83
|
const t = await getTranslate();
|
|
84
84
|
return React.createElement(TBase, Object.assign({ t: t }, props));
|
|
85
85
|
}
|
|
86
|
-
return {
|
|
86
|
+
return {
|
|
87
|
+
getTolgee,
|
|
88
|
+
getTranslate,
|
|
89
|
+
T,
|
|
90
|
+
};
|
|
87
91
|
};
|
|
88
92
|
|
|
89
93
|
export { TBase, createServerInstance };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tolgee-react-server.esm.mjs","sources":["../src/tagsTools.tsx","../src/TBase.tsx","../src/createServerInstance.tsx"],"sourcesContent":["import { TranslateParams } from '@tolgee/web';\nimport React from 'react';\n\nimport { ParamsTags } from './types';\n\nfunction unwrapSingleElementArray(value: any) {\n if (Array.isArray(value) && value.length === 1) {\n return value[0];\n } else {\n return value;\n }\n}\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 && chunk?.length\n ? React.cloneElement(el, {}, addReactKeys(chunk))\n : React.cloneElement(el);\n };\n } else {\n result[key] = value;\n }\n });\n\n return result;\n};\n\nexport const addReactKeys = (\n children: React.ReactNode | React.ReactNode[] | undefined\n) => {\n const val = unwrapSingleElementArray(children);\n if (Array.isArray(val)) {\n return val.map((item, i) => (\n <React.Fragment key={i}>{item}</React.Fragment>\n ));\n } else {\n return val;\n }\n};\n","import React from 'react';\nimport { addReactKeys, wrapTagHandlers } from './tagsTools';\nimport type { PropsWithKeyName, TBaseInterface } from './types';\n\nexport const TBase: TBaseInterface = (props) => {\n const key = (props as PropsWithKeyName).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 ||\n ((props as PropsWithKeyName).keyName ? props.children : undefined);\n\n const translation = addReactKeys(\n props.t({\n key: key!,\n params: wrapTagHandlers(props.params),\n defaultValue,\n noWrap: props.noWrap,\n ns: props.ns,\n language: props.language,\n })\n );\n\n return <>{translation}</>;\n};\n","// @ts-ignore\nimport { cache } from 'react';\nimport { TFnType } from '@tolgee/web';\
|
|
1
|
+
{"version":3,"file":"tolgee-react-server.esm.mjs","sources":["../src/tagsTools.tsx","../src/TBase.tsx","../src/createServerInstance.tsx"],"sourcesContent":["import { TranslateParams } from '@tolgee/web';\nimport React from 'react';\n\nimport { ParamsTags } from './types';\n\nfunction unwrapSingleElementArray(value: any) {\n if (Array.isArray(value) && value.length === 1) {\n return value[0];\n } else {\n return value;\n }\n}\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 && chunk?.length\n ? React.cloneElement(el, {}, addReactKeys(chunk))\n : React.cloneElement(el);\n };\n } else {\n result[key] = value;\n }\n });\n\n return result;\n};\n\nexport const addReactKeys = (\n children: React.ReactNode | React.ReactNode[] | undefined\n) => {\n const val = unwrapSingleElementArray(children);\n if (Array.isArray(val)) {\n return val.map((item, i) => (\n <React.Fragment key={i}>{item}</React.Fragment>\n ));\n } else {\n return val;\n }\n};\n","import React from 'react';\nimport { addReactKeys, wrapTagHandlers } from './tagsTools';\nimport type { PropsWithKeyName, TBaseInterface } from './types';\n\nexport const TBase: TBaseInterface = (props) => {\n const key = (props as PropsWithKeyName).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 ||\n ((props as PropsWithKeyName).keyName ? props.children : undefined);\n\n const translation = addReactKeys(\n props.t({\n key: key!,\n params: wrapTagHandlers(props.params),\n defaultValue,\n noWrap: props.noWrap,\n ns: props.ns,\n language: props.language,\n })\n );\n\n return <>{translation}</>;\n};\n","// @ts-ignore\nimport { cache } from 'react';\nimport React from 'react';\nimport { TFnType } from '@tolgee/web';\nimport { TolgeeInstance } from '@tolgee/web';\n\nimport { TBase } from './TBase';\nimport { TProps, ParamsTags } from './types';\n\nexport type CreateServerInstanceOptions = {\n createTolgee: (locale: string) => Promise<TolgeeInstance>;\n getLocale: () => Promise<string>;\n};\n\nexport const createServerInstance = ({\n createTolgee,\n getLocale,\n}: CreateServerInstanceOptions) => {\n const getTolgeeInstance: (locale: string) => Promise<TolgeeInstance> = cache(\n async (locale: string) => {\n const tolgee = await createTolgee(locale);\n await tolgee.run();\n return tolgee;\n }\n );\n\n const getTolgee = async () => {\n const locale = await getLocale();\n const tolgee = await getTolgeeInstance(locale);\n return tolgee;\n };\n\n const getTranslate = async () => {\n const tolgee = await getTolgee();\n return tolgee.t;\n };\n\n async function T(props: TProps) {\n const t = await getTranslate();\n return <TBase t={t as TFnType<ParamsTags>} {...props} />;\n }\n\n return {\n getTolgee,\n getTranslate,\n T,\n };\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -90,7 +90,11 @@
|
|
|
90
90
|
const t = await getTranslate();
|
|
91
91
|
return React__default["default"].createElement(TBase, Object.assign({ t: t }, props));
|
|
92
92
|
}
|
|
93
|
-
return {
|
|
93
|
+
return {
|
|
94
|
+
getTolgee,
|
|
95
|
+
getTranslate,
|
|
96
|
+
T,
|
|
97
|
+
};
|
|
94
98
|
};
|
|
95
99
|
|
|
96
100
|
exports.TBase = TBase;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tolgee-react-server.umd.js","sources":["../src/tagsTools.tsx","../src/TBase.tsx","../src/createServerInstance.tsx"],"sourcesContent":["import { TranslateParams } from '@tolgee/web';\nimport React from 'react';\n\nimport { ParamsTags } from './types';\n\nfunction unwrapSingleElementArray(value: any) {\n if (Array.isArray(value) && value.length === 1) {\n return value[0];\n } else {\n return value;\n }\n}\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 && chunk?.length\n ? React.cloneElement(el, {}, addReactKeys(chunk))\n : React.cloneElement(el);\n };\n } else {\n result[key] = value;\n }\n });\n\n return result;\n};\n\nexport const addReactKeys = (\n children: React.ReactNode | React.ReactNode[] | undefined\n) => {\n const val = unwrapSingleElementArray(children);\n if (Array.isArray(val)) {\n return val.map((item, i) => (\n <React.Fragment key={i}>{item}</React.Fragment>\n ));\n } else {\n return val;\n }\n};\n","import React from 'react';\nimport { addReactKeys, wrapTagHandlers } from './tagsTools';\nimport type { PropsWithKeyName, TBaseInterface } from './types';\n\nexport const TBase: TBaseInterface = (props) => {\n const key = (props as PropsWithKeyName).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 ||\n ((props as PropsWithKeyName).keyName ? props.children : undefined);\n\n const translation = addReactKeys(\n props.t({\n key: key!,\n params: wrapTagHandlers(props.params),\n defaultValue,\n noWrap: props.noWrap,\n ns: props.ns,\n language: props.language,\n })\n );\n\n return <>{translation}</>;\n};\n","// @ts-ignore\nimport { cache } from 'react';\nimport { TFnType } from '@tolgee/web';\
|
|
1
|
+
{"version":3,"file":"tolgee-react-server.umd.js","sources":["../src/tagsTools.tsx","../src/TBase.tsx","../src/createServerInstance.tsx"],"sourcesContent":["import { TranslateParams } from '@tolgee/web';\nimport React from 'react';\n\nimport { ParamsTags } from './types';\n\nfunction unwrapSingleElementArray(value: any) {\n if (Array.isArray(value) && value.length === 1) {\n return value[0];\n } else {\n return value;\n }\n}\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 && chunk?.length\n ? React.cloneElement(el, {}, addReactKeys(chunk))\n : React.cloneElement(el);\n };\n } else {\n result[key] = value;\n }\n });\n\n return result;\n};\n\nexport const addReactKeys = (\n children: React.ReactNode | React.ReactNode[] | undefined\n) => {\n const val = unwrapSingleElementArray(children);\n if (Array.isArray(val)) {\n return val.map((item, i) => (\n <React.Fragment key={i}>{item}</React.Fragment>\n ));\n } else {\n return val;\n }\n};\n","import React from 'react';\nimport { addReactKeys, wrapTagHandlers } from './tagsTools';\nimport type { PropsWithKeyName, TBaseInterface } from './types';\n\nexport const TBase: TBaseInterface = (props) => {\n const key = (props as PropsWithKeyName).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 ||\n ((props as PropsWithKeyName).keyName ? props.children : undefined);\n\n const translation = addReactKeys(\n props.t({\n key: key!,\n params: wrapTagHandlers(props.params),\n defaultValue,\n noWrap: props.noWrap,\n ns: props.ns,\n language: props.language,\n })\n );\n\n return <>{translation}</>;\n};\n","// @ts-ignore\nimport { cache } from 'react';\nimport React from 'react';\nimport { TFnType } from '@tolgee/web';\nimport { TolgeeInstance } from '@tolgee/web';\n\nimport { TBase } from './TBase';\nimport { TProps, ParamsTags } from './types';\n\nexport type CreateServerInstanceOptions = {\n createTolgee: (locale: string) => Promise<TolgeeInstance>;\n getLocale: () => Promise<string>;\n};\n\nexport const createServerInstance = ({\n createTolgee,\n getLocale,\n}: CreateServerInstanceOptions) => {\n const getTolgeeInstance: (locale: string) => Promise<TolgeeInstance> = cache(\n async (locale: string) => {\n const tolgee = await createTolgee(locale);\n await tolgee.run();\n return tolgee;\n }\n );\n\n const getTolgee = async () => {\n const locale = await getLocale();\n const tolgee = await getTolgeeInstance(locale);\n return tolgee;\n };\n\n const getTranslate = async () => {\n const tolgee = await getTolgee();\n return tolgee.t;\n };\n\n async function T(props: TProps) {\n const t = await getTranslate();\n return <TBase t={t as TFnType<ParamsTags>} {...props} />;\n }\n\n return {\n getTolgee,\n getTranslate,\n T,\n };\n};\n"],"names":["React","cache"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("@tolgee/web")):"function"==typeof define&&define.amd?define(["exports","react","@tolgee/web"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@tolgee/react"]={},e.React,e["@tolgee/web"])}(this,(function(e,t,n){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=a(t);const o=e=>{if(!e)return;const t={};return Object.entries(e||{}).forEach((([e,n])=>{if("function"==typeof n)t[e]=e=>n(l(e));else if(r.default.isValidElement(n)){const a=n;t[e]=e=>void 0===a.props.children&&(null==e?void 0:e.length)?r.default.cloneElement(a,{},l(e)):r.default.cloneElement(a)}else t[e]=n})),t},l=e=>{const t=(n=e,Array.isArray(n)&&1===n.length?n[0]:n);var n;return Array.isArray(t)?t.map(((e,t)=>r.default.createElement(r.default.Fragment,{key:t},e))):t},c=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),a=l(e.t({key:t,params:o(e.params),defaultValue:n,noWrap:e.noWrap,ns:e.ns,language:e.language}));return r.default.createElement(r.default.Fragment,null,a)};e.TBase=c,e.createServerInstance=({createTolgee:e,getLocale:n})=>{const a=t.cache((async t=>{const n=await e(t);return await n.run(),n})),o=async()=>{const e=await n();return await a(e)},l=async()=>(await o()).t;return{
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("@tolgee/web")):"function"==typeof define&&define.amd?define(["exports","react","@tolgee/web"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@tolgee/react"]={},e.React,e["@tolgee/web"])}(this,(function(e,t,n){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=a(t);const o=e=>{if(!e)return;const t={};return Object.entries(e||{}).forEach((([e,n])=>{if("function"==typeof n)t[e]=e=>n(l(e));else if(r.default.isValidElement(n)){const a=n;t[e]=e=>void 0===a.props.children&&(null==e?void 0:e.length)?r.default.cloneElement(a,{},l(e)):r.default.cloneElement(a)}else t[e]=n})),t},l=e=>{const t=(n=e,Array.isArray(n)&&1===n.length?n[0]:n);var n;return Array.isArray(t)?t.map(((e,t)=>r.default.createElement(r.default.Fragment,{key:t},e))):t},c=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),a=l(e.t({key:t,params:o(e.params),defaultValue:n,noWrap:e.noWrap,ns:e.ns,language:e.language}));return r.default.createElement(r.default.Fragment,null,a)};e.TBase=c,e.createServerInstance=({createTolgee:e,getLocale:n})=>{const a=t.cache((async t=>{const n=await e(t);return await n.run(),n})),o=async()=>{const e=await n();return await a(e)},l=async()=>(await o()).t;return{getTolgee:o,getTranslate:l,T:async function(e){const t=await l();return r.default.createElement(c,Object.assign({t:t},e))}}},Object.keys(n).forEach((function(t){"default"===t||e.hasOwnProperty(t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})})),Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
2
2
|
//# sourceMappingURL=tolgee-react-server.umd.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tolgee-react-server.umd.min.js","sources":["../src/tagsTools.tsx","../src/TBase.tsx","../src/createServerInstance.tsx"],"sourcesContent":["import { TranslateParams } from '@tolgee/web';\nimport React from 'react';\n\nimport { ParamsTags } from './types';\n\nfunction unwrapSingleElementArray(value: any) {\n if (Array.isArray(value) && value.length === 1) {\n return value[0];\n } else {\n return value;\n }\n}\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 && chunk?.length\n ? React.cloneElement(el, {}, addReactKeys(chunk))\n : React.cloneElement(el);\n };\n } else {\n result[key] = value;\n }\n });\n\n return result;\n};\n\nexport const addReactKeys = (\n children: React.ReactNode | React.ReactNode[] | undefined\n) => {\n const val = unwrapSingleElementArray(children);\n if (Array.isArray(val)) {\n return val.map((item, i) => (\n <React.Fragment key={i}>{item}</React.Fragment>\n ));\n } else {\n return val;\n }\n};\n","import React from 'react';\nimport { addReactKeys, wrapTagHandlers } from './tagsTools';\nimport type { PropsWithKeyName, TBaseInterface } from './types';\n\nexport const TBase: TBaseInterface = (props) => {\n const key = (props as PropsWithKeyName).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 ||\n ((props as PropsWithKeyName).keyName ? props.children : undefined);\n\n const translation = addReactKeys(\n props.t({\n key: key!,\n params: wrapTagHandlers(props.params),\n defaultValue,\n noWrap: props.noWrap,\n ns: props.ns,\n language: props.language,\n })\n );\n\n return <>{translation}</>;\n};\n","// @ts-ignore\nimport { cache } from 'react';\nimport { TFnType } from '@tolgee/web';\
|
|
1
|
+
{"version":3,"file":"tolgee-react-server.umd.min.js","sources":["../src/tagsTools.tsx","../src/TBase.tsx","../src/createServerInstance.tsx"],"sourcesContent":["import { TranslateParams } from '@tolgee/web';\nimport React from 'react';\n\nimport { ParamsTags } from './types';\n\nfunction unwrapSingleElementArray(value: any) {\n if (Array.isArray(value) && value.length === 1) {\n return value[0];\n } else {\n return value;\n }\n}\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 && chunk?.length\n ? React.cloneElement(el, {}, addReactKeys(chunk))\n : React.cloneElement(el);\n };\n } else {\n result[key] = value;\n }\n });\n\n return result;\n};\n\nexport const addReactKeys = (\n children: React.ReactNode | React.ReactNode[] | undefined\n) => {\n const val = unwrapSingleElementArray(children);\n if (Array.isArray(val)) {\n return val.map((item, i) => (\n <React.Fragment key={i}>{item}</React.Fragment>\n ));\n } else {\n return val;\n }\n};\n","import React from 'react';\nimport { addReactKeys, wrapTagHandlers } from './tagsTools';\nimport type { PropsWithKeyName, TBaseInterface } from './types';\n\nexport const TBase: TBaseInterface = (props) => {\n const key = (props as PropsWithKeyName).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 ||\n ((props as PropsWithKeyName).keyName ? props.children : undefined);\n\n const translation = addReactKeys(\n props.t({\n key: key!,\n params: wrapTagHandlers(props.params),\n defaultValue,\n noWrap: props.noWrap,\n ns: props.ns,\n language: props.language,\n })\n );\n\n return <>{translation}</>;\n};\n","// @ts-ignore\nimport { cache } from 'react';\nimport React from 'react';\nimport { TFnType } from '@tolgee/web';\nimport { TolgeeInstance } from '@tolgee/web';\n\nimport { TBase } from './TBase';\nimport { TProps, ParamsTags } from './types';\n\nexport type CreateServerInstanceOptions = {\n createTolgee: (locale: string) => Promise<TolgeeInstance>;\n getLocale: () => Promise<string>;\n};\n\nexport const createServerInstance = ({\n createTolgee,\n getLocale,\n}: CreateServerInstanceOptions) => {\n const getTolgeeInstance: (locale: string) => Promise<TolgeeInstance> = cache(\n async (locale: string) => {\n const tolgee = await createTolgee(locale);\n await tolgee.run();\n return tolgee;\n }\n );\n\n const getTolgee = async () => {\n const locale = await getLocale();\n const tolgee = await getTolgeeInstance(locale);\n return tolgee;\n };\n\n const getTranslate = async () => {\n const tolgee = await getTolgee();\n return tolgee.t;\n };\n\n async function T(props: TProps) {\n const t = await getTranslate();\n return <TBase t={t as TFnType<ParamsTags>} {...props} />;\n }\n\n return {\n getTolgee,\n getTranslate,\n T,\n };\n};\n"],"names":["wrapTagHandlers","params","result","Object","entries","forEach","key","value","chunk","addReactKeys","React","isValidElement","el","undefined","props","children","length","cloneElement","val","Array","isArray","map","item","i","Fragment","TBase","keyName","console","error","defaultValue","translation","t","noWrap","ns","language","createElement","createTolgee","getLocale","getTolgeeInstance","cache","async","locale","tolgee","run","getTolgee","getTranslate","T","assign"],"mappings":"saAaO,MAAMA,EACXC,IAEA,IAAKA,EACH,OAGF,MAAMC,EAAc,CAAA,EAmBpB,OAjBAC,OAAOC,QAAQH,GAAU,CAAE,GAAEI,SAAQ,EAAEC,EAAKC,MAC1C,GAAqB,mBAAVA,EACTL,EAAOI,GAAQE,GACND,EAAME,EAAaD,SAEvB,GAAIE,EAAK,QAACC,eAAeJ,GAAe,CAC7C,MAAMK,EAAKL,EACXL,EAAOI,GAAQE,QACgBK,IAAtBD,EAAGE,MAAMC,WAA0BP,aAAK,EAALA,EAAOQ,QAC7CN,EAAK,QAACO,aAAaL,EAAI,CAAE,EAAEH,EAAaD,IACxCE,UAAMO,aAAaL,EAE1B,MACCV,EAAOI,GAAOC,CACf,IAGIL,CAAM,EAGFO,EACXM,IAEA,MAAMG,GAxC0BX,EAwCKQ,EAvCjCI,MAAMC,QAAQb,IAA2B,IAAjBA,EAAMS,OACzBT,EAAM,GAENA,GAJX,IAAkCA,EAyChC,OAAIY,MAAMC,QAAQF,GACTA,EAAIG,KAAI,CAACC,EAAMC,IACpBb,wBAACA,EAAK,QAACc,SAAQ,CAAClB,IAAKiB,GAAID,KAGpBJ,CACR,EChDUO,EAAyBX,IACpC,MAAMR,EAAOQ,EAA2BY,SAAWZ,EAAMC,cAC7CF,IAARP,GAEFqB,QAAQC,MAAM,oCAEhB,MAAMC,EACJf,EAAMe,eACJf,EAA2BY,QAAUZ,EAAMC,cAAWF,GAEpDiB,EAAcrB,EAClBK,EAAMiB,EAAE,CACNzB,IAAKA,EACLL,OAAQD,EAAgBc,EAAMb,QAC9B4B,eACAG,OAAQlB,EAAMkB,OACdC,GAAInB,EAAMmB,GACVC,SAAUpB,EAAMoB,YAIpB,OAAOxB,EAAAA,QAAAyB,cAAAzB,EAAAA,QAAAc,SAAA,KAAGM,EAAe,mCCXS,EAClCM,eACAC,gBAEA,MAAMC,EAAiEC,SACrEC,MAAOC,IACL,MAAMC,QAAeN,EAAaK,GAElC,aADMC,EAAOC,MACND,CAAM,IAIXE,EAAYJ,UAChB,MAAMC,QAAeJ,IAErB,aADqBC,EAAkBG,EAC1B,EAGTI,EAAeL,gBACEI,KACPb,EAQhB,MAAO,CACLa,YACAC,eACAC,EARFN,eAAiB1B,GACf,MAAMiB,QAAUc,IAChB,OAAOnC,UAAAyB,cAACV,EAAMtB,OAAA4C,OAAA,CAAAhB,EAAGA,GAA8BjB,GAChD,EAMA"}
|
package/dist/tolgee-react.cjs.js
CHANGED
|
@@ -28,7 +28,7 @@ function getTolgeeWithDeactivatedWrapper(tolgee) {
|
|
|
28
28
|
* @param staticData static data for the language
|
|
29
29
|
* @param enabled if set to false, no action is taken
|
|
30
30
|
*/
|
|
31
|
-
function useTolgeeSSR(tolgeeInstance, language,
|
|
31
|
+
function useTolgeeSSR(tolgeeInstance, language, data, enabled = true) {
|
|
32
32
|
const [noWrappingTolgee] = React.useState(() => getTolgeeWithDeactivatedWrapper(tolgeeInstance));
|
|
33
33
|
const [initialRender, setInitialRender] = React.useState(enabled);
|
|
34
34
|
React.useEffect(() => {
|
|
@@ -40,20 +40,21 @@ function useTolgeeSSR(tolgeeInstance, language, staticData, enabled = true) {
|
|
|
40
40
|
// so translations are available right away
|
|
41
41
|
// events emitting must be off, to not trigger re-render while rendering
|
|
42
42
|
tolgeeInstance.setEmitterActive(false);
|
|
43
|
-
tolgeeInstance.addStaticData(
|
|
43
|
+
tolgeeInstance.addStaticData(data);
|
|
44
44
|
tolgeeInstance.changeLanguage(language);
|
|
45
45
|
tolgeeInstance.setEmitterActive(true);
|
|
46
46
|
}
|
|
47
|
-
}, [language,
|
|
47
|
+
}, [language, data, tolgeeInstance]);
|
|
48
48
|
React.useState(() => {
|
|
49
49
|
// running this function only on first render
|
|
50
50
|
if (!tolgeeInstance.isLoaded() && enabled) {
|
|
51
51
|
// warning user, that static data provided are not sufficient
|
|
52
52
|
// for proper SSR render
|
|
53
|
-
const
|
|
54
|
-
|
|
53
|
+
const requiredRecords = tolgeeInstance.getRequiredDescriptors(language);
|
|
54
|
+
const providedRecords = tolgeeInstance.getAllRecords();
|
|
55
|
+
const missingRecords = requiredRecords
|
|
55
56
|
.map(({ namespace, language }) => namespace ? `${namespace}:${language}` : language)
|
|
56
|
-
.filter((key) => !(
|
|
57
|
+
.filter((key) => !providedRecords.find((r) => (r === null || r === void 0 ? void 0 : r.cacheKey) === key));
|
|
57
58
|
// eslint-disable-next-line no-console
|
|
58
59
|
console.warn(`Tolgee: Missing records in "staticData" for proper SSR functionality: ${missingRecords.map((key) => `"${key}"`).join(', ')}`);
|
|
59
60
|
}
|
|
@@ -62,7 +63,7 @@ function useTolgeeSSR(tolgeeInstance, language, staticData, enabled = true) {
|
|
|
62
63
|
}
|
|
63
64
|
|
|
64
65
|
const DEFAULT_REACT_OPTIONS = {
|
|
65
|
-
useSuspense:
|
|
66
|
+
useSuspense: false,
|
|
66
67
|
};
|
|
67
68
|
let ProviderInstance;
|
|
68
69
|
const getProviderInstance = () => {
|
|
@@ -141,22 +142,11 @@ const useTranslateInternal = (ns, options) => {
|
|
|
141
142
|
const currentOptions = Object.assign(Object.assign({}, defaultOptions), options);
|
|
142
143
|
// dummy state to enable re-rendering
|
|
143
144
|
const { rerender, instance } = useRerender();
|
|
144
|
-
const subscriptionRef = React.useRef();
|
|
145
145
|
const subscriptionQueue = React.useRef([]);
|
|
146
146
|
subscriptionQueue.current = [];
|
|
147
|
-
const subscribeToNs = (ns) => {
|
|
148
|
-
var _a;
|
|
149
|
-
subscriptionQueue.current.push(ns);
|
|
150
|
-
(_a = subscriptionRef.current) === null || _a === void 0 ? void 0 : _a.subscribeNs(ns);
|
|
151
|
-
};
|
|
152
147
|
const isLoaded = tolgee.isLoaded(namespaces);
|
|
153
148
|
React.useEffect(() => {
|
|
154
|
-
const subscription = tolgee.
|
|
155
|
-
subscriptionRef.current = subscription;
|
|
156
|
-
subscription.subscribeNs(namespaces);
|
|
157
|
-
subscriptionQueue.current.forEach((ns) => {
|
|
158
|
-
subscription.subscribeNs(ns);
|
|
159
|
-
});
|
|
149
|
+
const subscription = tolgee.on('update', rerender);
|
|
160
150
|
return () => {
|
|
161
151
|
subscription.unsubscribe();
|
|
162
152
|
};
|
|
@@ -168,7 +158,6 @@ const useTranslateInternal = (ns, options) => {
|
|
|
168
158
|
const t = React.useCallback((props) => {
|
|
169
159
|
var _a;
|
|
170
160
|
const fallbackNs = (_a = props.ns) !== null && _a !== void 0 ? _a : namespaces === null || namespaces === void 0 ? void 0 : namespaces[0];
|
|
171
|
-
subscribeToNs(fallbackNs);
|
|
172
161
|
return tolgee.t(Object.assign(Object.assign({}, props), { ns: fallbackNs }));
|
|
173
162
|
}, [tolgee, instance]);
|
|
174
163
|
if (currentOptions.useSuspense && !isLoaded) {
|