@magic-translate/react 1.15.0 → 1.16.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/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.16.0](https://github.com/magic-translate/magic-translate-react/compare/v1.15.1...v1.16.0) (2025-02-28)
4
+
5
+
6
+ ### Features
7
+
8
+ * add language switcher hook ([dff729f](https://github.com/magic-translate/magic-translate-react/commit/dff729f1e8395a0c992a5f614d80fa00445be0ec))
9
+
10
+ ## [1.15.1](https://github.com/magic-translate/magic-translate-react/compare/v1.15.0...v1.15.1) (2023-09-26)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * fix conflicting types in translate component ([76a29b4](https://github.com/magic-translate/magic-translate-react/commit/76a29b41402826806f269138a8689761013a7f86))
16
+
3
17
  ## [1.15.0](https://github.com/magic-translate/magic-translate-react/compare/v1.14.0...v1.15.0) (2023-09-25)
4
18
 
5
19
 
@@ -1,6 +1,6 @@
1
1
  import DataLoader from 'dataloader';
2
2
  import React, { PropsWithChildren } from 'react';
3
- import { DataLoaderLoadParams, DataLoaderOptions, TranslateOptions, Language, MagicTranslateConfig } from '@magic-translate/core';
3
+ import { DataLoaderLoadParams, DataLoaderOptions, Language, MagicTranslateConfig, TranslateOptions } from '@magic-translate/core';
4
4
  export interface MagicTranslateProviderProps extends MagicTranslateConfig {
5
5
  /**
6
6
  * The API URL to use for the translate requests. This is only used for debugging purposes.
@@ -13,13 +13,20 @@ export interface MagicTranslateProviderProps extends MagicTranslateConfig {
13
13
  */
14
14
  _loaderFactory?: (options?: DataLoaderOptions) => (content: readonly DataLoaderLoadParams[]) => Promise<readonly string[]>;
15
15
  }
16
+ /**
17
+ * Type alias to make the language enum more flexible to also allow passing language strings
18
+ * instead of just the enum.
19
+ */
20
+ declare type Languages = `${Language}`;
16
21
  export interface MagicTranslateContextValue extends TranslateOptions {
17
22
  dataLoader: DataLoader<DataLoaderLoadParams, string>;
18
- language: `${Language}`;
19
- sourceLanguage?: `${Language}`;
23
+ language: Languages;
24
+ sourceLanguage?: Languages;
25
+ setLanguage: (language: Languages) => void;
20
26
  apiUrl?: string;
21
27
  apiKey: string;
22
28
  }
23
29
  export declare const MagicTranslateContext: React.Context<MagicTranslateContextValue | null>;
24
30
  export declare const MagicTranslateProvider: React.FunctionComponent<PropsWithChildren<MagicTranslateProviderProps>>;
31
+ export {};
25
32
  //# sourceMappingURL=MagicTranslateContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MagicTranslateContext.d.ts","sourceRoot":"","sources":["../../src/context/MagicTranslateContext.tsx"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,EAAE,EAAiB,iBAAiB,EAAW,MAAM,OAAO,CAAC;AACzE,OAAO,EAEL,oBAAoB,EACpB,iBAAiB,EAEjB,gBAAgB,EAChB,QAAQ,EACR,oBAAoB,EAErB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACvE;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,cAAc,CAAC,EAAE,CACf,OAAO,CAAC,EAAE,iBAAiB,KACxB,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,KAAK,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;CAC/E;AAED,MAAM,WAAW,0BAA2B,SAAQ,gBAAgB;IAClE,UAAU,EAAE,UAAU,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IAErD,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC;IAExB,cAAc,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,qBAAqB,kDACsB,CAAC;AAEzD,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,iBAAiB,CAC1D,iBAAiB,CAAC,2BAA2B,CAAC,CA0C/C,CAAC"}
1
+ {"version":3,"file":"MagicTranslateContext.d.ts","sourceRoot":"","sources":["../../src/context/MagicTranslateContext.tsx"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,EAAE,EAEZ,iBAAiB,EAGlB,MAAM,OAAO,CAAC;AACf,OAAO,EAEL,oBAAoB,EACpB,iBAAiB,EAEjB,QAAQ,EAER,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACvE;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,cAAc,CAAC,EAAE,CACf,OAAO,CAAC,EAAE,iBAAiB,KACxB,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,KAAK,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;CAC/E;AAED;;;GAGG;AACH,aAAK,SAAS,GAAG,GAAG,QAAQ,EAAE,CAAC;AAE/B,MAAM,WAAW,0BAA2B,SAAQ,gBAAgB;IAClE,UAAU,EAAE,UAAU,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACrD,QAAQ,EAAE,SAAS,CAAC;IACpB,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,WAAW,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,qBAAqB,kDACsB,CAAC;AAEzD,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,iBAAiB,CAC1D,iBAAiB,CAAC,2BAA2B,CAAC,CAkD/C,CAAC"}
@@ -1,12 +1,14 @@
1
1
  import DataLoader from 'dataloader';
2
- import React, { createContext, useMemo } from 'react';
2
+ import React, { createContext, useMemo, useState, } from 'react';
3
3
  import { cacheKeyFn, defaultLoaderFactory as defaultLoaderFactory, libraryWebsite, } from '@magic-translate/core';
4
4
  export var MagicTranslateContext = createContext(null);
5
5
  export var MagicTranslateProvider = function (_a) {
6
- var language = _a.language, sourceLanguage = _a.sourceLanguage, debug = _a.debug, apiKey = _a.apiKey, children = _a.children, _b = _a._loaderFactory, _loaderFactory = _b === void 0 ? defaultLoaderFactory : _b, _apiUrl = _a._apiUrl, formality = _a.formality;
6
+ var passedLanguage = _a.language, sourceLanguage = _a.sourceLanguage, debug = _a.debug, apiKey = _a.apiKey, children = _a.children, _b = _a._loaderFactory, _loaderFactory = _b === void 0 ? defaultLoaderFactory : _b, _apiUrl = _a._apiUrl, formality = _a.formality;
7
7
  if (!apiKey) {
8
8
  throw new Error("Missing API key. Please get one at ".concat(libraryWebsite));
9
9
  }
10
+ var _c = useState(null), languageFromContext = _c[0], setLanguage = _c[1];
11
+ var language = useMemo(function () { return languageFromContext !== null && languageFromContext !== void 0 ? languageFromContext : passedLanguage; }, [passedLanguage, languageFromContext]);
10
12
  var value = useMemo(function () { return ({
11
13
  dataLoader: new DataLoader(_loaderFactory({
12
14
  debug: !!debug,
@@ -21,6 +23,7 @@ export var MagicTranslateProvider = function (_a) {
21
23
  language: language,
22
24
  sourceLanguage: sourceLanguage,
23
25
  apiKey: apiKey,
26
+ setLanguage: setLanguage,
24
27
  }); }, [_loaderFactory, language, sourceLanguage, debug, apiKey, _apiUrl]);
25
28
  return (React.createElement(MagicTranslateContext.Provider, { value: value }, children));
26
29
  };
@@ -1 +1 @@
1
- {"version":3,"file":"MagicTranslateContext.js","sourceRoot":"","sources":["../../src/context/MagicTranslateContext.tsx"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,EAAE,EAAE,aAAa,EAAqB,OAAO,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,EACL,UAAU,EAGV,oBAAoB,IAAI,oBAAoB,EAI5C,cAAc,GACf,MAAM,uBAAuB,CAAC;AA8B/B,MAAM,CAAC,IAAM,qBAAqB,GAChC,aAAa,CAAoC,IAAI,CAAC,CAAC;AAEzD,MAAM,CAAC,IAAM,sBAAsB,GAE/B,UAAC,EASJ;QARC,QAAQ,cAAA,EACR,cAAc,oBAAA,EACd,KAAK,WAAA,EACL,MAAM,YAAA,EACN,QAAQ,cAAA,EACR,sBAAqC,EAArC,cAAc,mBAAG,oBAAoB,KAAA,EACrC,OAAO,aAAA,EACP,SAAS,eAAA;IAET,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,6CAAsC,cAAc,CAAE,CAAC,CAAC;KACzE;IAED,IAAM,KAAK,GAAG,OAAO,CACnB,cAAM,OAAA,CAAC;QACL,UAAU,EAAE,IAAI,UAAU,CACxB,cAAc,CAAC;YACb,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM,QAAA;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,cAAc;YAC1B,MAAM,EAAE,OAAO;YACf,SAAS,WAAA;SACV,CAAC,EACF;YACE,UAAU,EAAE,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC;SACzD,CACF;QACD,QAAQ,UAAA;QACR,cAAc,gBAAA;QACd,MAAM,QAAA;KACP,CAAC,EAjBI,CAiBJ,EACF,CAAC,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CACnE,CAAC;IAEF,OAAO,CACL,oBAAC,qBAAqB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IACzC,QAAQ,CACsB,CAClC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"MagicTranslateContext.js","sourceRoot":"","sources":["../../src/context/MagicTranslateContext.tsx"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,EAAE,EACZ,aAAa,EAEb,OAAO,EACP,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EACL,UAAU,EAGV,oBAAoB,IAAI,oBAAoB,EAE5C,cAAc,GAGf,MAAM,uBAAuB,CAAC;AAiC/B,MAAM,CAAC,IAAM,qBAAqB,GAChC,aAAa,CAAoC,IAAI,CAAC,CAAC;AAEzD,MAAM,CAAC,IAAM,sBAAsB,GAE/B,UAAC,EASJ;QARW,cAAc,cAAA,EACxB,cAAc,oBAAA,EACd,KAAK,WAAA,EACL,MAAM,YAAA,EACN,QAAQ,cAAA,EACR,sBAAqC,EAArC,cAAc,mBAAG,oBAAoB,KAAA,EACrC,OAAO,aAAA,EACP,SAAS,eAAA;IAET,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,6CAAsC,cAAc,CAAE,CAAC,CAAC;KACzE;IAEK,IAAA,KAAqC,QAAQ,CAAmB,IAAI,CAAC,EAApE,mBAAmB,QAAA,EAAE,WAAW,QAAoC,CAAC;IAE5E,IAAM,QAAQ,GAAG,OAAO,CACtB,cAAM,OAAA,mBAAmB,aAAnB,mBAAmB,cAAnB,mBAAmB,GAAI,cAAc,EAArC,CAAqC,EAC3C,CAAC,cAAc,EAAE,mBAAmB,CAAC,CACtC,CAAC;IAEF,IAAM,KAAK,GAAG,OAAO,CACnB,cAAM,OAAA,CAAC;QACL,UAAU,EAAE,IAAI,UAAU,CACxB,cAAc,CAAC;YACb,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM,QAAA;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,cAAc;YAC1B,MAAM,EAAE,OAAO;YACf,SAAS,WAAA;SACV,CAAC,EACF;YACE,UAAU,EAAE,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC;SACzD,CACF;QACD,QAAQ,UAAA;QACR,cAAc,gBAAA;QACd,MAAM,QAAA;QACN,WAAW,aAAA;KACZ,CAAC,EAlBI,CAkBJ,EACF,CAAC,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CACnE,CAAC;IAEF,OAAO,CACL,oBAAC,qBAAqB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IACzC,QAAQ,CACsB,CAClC,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Language } from '@magic-translate/core';
2
+ export declare function useLanguageSwitcher(): {
3
+ setLanguage: (language: `${Language}`) => void;
4
+ currentLanguage: `${Language}`;
5
+ };
6
+ //# sourceMappingURL=use-language-switcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-language-switcher.d.ts","sourceRoot":"","sources":["../../src/hooks/use-language-switcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,wBAAgB,mBAAmB,IAAI;IACrC,WAAW,EAAE,CAAC,QAAQ,EAAE,GAAG,QAAQ,EAAE,KAAK,IAAI,CAAC;IAC/C,eAAe,EAAE,GAAG,QAAQ,EAAE,CAAC;CAChC,CAOA"}
@@ -0,0 +1,7 @@
1
+ import { useMagicTranslate } from './use-magic-translate';
2
+ import { useMemo } from 'react';
3
+ export function useLanguageSwitcher() {
4
+ var _a = useMagicTranslate(), setLanguage = _a.setLanguage, language = _a.language;
5
+ return useMemo(function () { return ({ setLanguage: setLanguage, currentLanguage: language }); }, [setLanguage, language]);
6
+ }
7
+ //# sourceMappingURL=use-language-switcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-language-switcher.js","sourceRoot":"","sources":["../../src/hooks/use-language-switcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,MAAM,UAAU,mBAAmB;IAI3B,IAAA,KAA4B,iBAAiB,EAAE,EAA7C,WAAW,iBAAA,EAAE,QAAQ,cAAwB,CAAC;IAEtD,OAAO,OAAO,CACZ,cAAM,OAAA,CAAC,EAAE,WAAW,aAAA,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,EAA5C,CAA4C,EAClD,CAAC,WAAW,EAAE,QAAQ,CAAC,CACxB,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -2,4 +2,5 @@ export * from '@magic-translate/core';
2
2
  export * from './components/Translate';
3
3
  export * from './context/MagicTranslateContext';
4
4
  export * from './hooks/use-translate';
5
+ export * from './hooks/use-language-switcher';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC"}