dhre-ui-kit 0.0.373 → 0.0.375

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/lib/index.d.ts CHANGED
@@ -483,6 +483,7 @@ interface TypoTextProps extends TextProps {
483
483
  variant: keyof typeof FONT_STYLES;
484
484
  text?: string;
485
485
  testID?: string;
486
+ translateToArabic?: boolean;
486
487
  }
487
488
  declare const CustomTypography: React$1.FC<TypoTextProps>;
488
489
 
package/lib/index.js CHANGED
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var React = require('react');
6
6
  var reactRedux = require('react-redux');
7
7
  var reactNative = require('react-native');
8
+ var translate = require('google-translate-api-x');
8
9
  var Modal = require('react-native-modal');
9
10
  var Clipboard = require('@react-native-clipboard/clipboard');
10
11
  var LottieView = require('lottie-react-native');
@@ -41,6 +42,7 @@ function _interopNamespace(e) {
41
42
  }
42
43
 
43
44
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
45
+ var translate__default = /*#__PURE__*/_interopDefaultLegacy(translate);
44
46
  var Modal__default = /*#__PURE__*/_interopDefaultLegacy(Modal);
45
47
  var Clipboard__default = /*#__PURE__*/_interopDefaultLegacy(Clipboard);
46
48
  var LottieView__default = /*#__PURE__*/_interopDefaultLegacy(LottieView);
@@ -374,14 +376,55 @@ const FONT_STYLES = {
374
376
  [FontStyle.L3_REGULAR]: createFontStyle("MeraasAktiv-Regular", 10, 14)
375
377
  };
376
378
 
379
+ const translateToArabic = async (text) => {
380
+ if (!text || text.trim() === "") {
381
+ return text;
382
+ }
383
+ try {
384
+ const result = await translate__default["default"](text, { to: "ar" });
385
+ return result.text || text;
386
+ } catch (error) {
387
+ console.error("Translation error:", error);
388
+ return text;
389
+ }
390
+ };
391
+ const useArabicTranslation = (text, shouldTranslate = false) => {
392
+ const [translatedText, setTranslatedText] = React.useState(text || "");
393
+ const [isTranslating, setIsTranslating] = React.useState(false);
394
+ const [error, setError] = React.useState(null);
395
+ React.useEffect(() => {
396
+ if (!shouldTranslate || !text) {
397
+ setTranslatedText(text || "");
398
+ return;
399
+ }
400
+ const translate2 = async () => {
401
+ setIsTranslating(true);
402
+ setError(null);
403
+ try {
404
+ const translated = await translateToArabic(text);
405
+ setTranslatedText(translated);
406
+ } catch (err) {
407
+ setError(err instanceof Error ? err.message : "Translation failed");
408
+ setTranslatedText(text);
409
+ } finally {
410
+ setIsTranslating(false);
411
+ }
412
+ };
413
+ translate2();
414
+ }, [text, shouldTranslate]);
415
+ return { translatedText, isTranslating, error };
416
+ };
417
+
377
418
  const CustomTypography = ({
378
419
  variant,
379
420
  style,
380
421
  text,
381
422
  testID = "CUSTOM_TYPOGRAPHY",
423
+ translateToArabic = true,
382
424
  ...props
383
425
  }) => {
384
426
  const textStyle = FONT_STYLES[variant];
427
+ const { translatedText } = useArabicTranslation(text, translateToArabic);
385
428
  return /* @__PURE__ */ React__default["default"].createElement(
386
429
  reactNative.Text,
387
430
  {
@@ -389,7 +432,7 @@ const CustomTypography = ({
389
432
  style: [textStyle, styles$B.container, style],
390
433
  ...props
391
434
  },
392
- "Testing"
435
+ translatedText
393
436
  );
394
437
  };
395
438
  const styles$B = reactNative.StyleSheet.create({
@@ -408,7 +451,7 @@ const CustomText = ({
408
451
  CustomTypography,
409
452
  {
410
453
  variant,
411
- text: "Testing",
454
+ text: text || "",
412
455
  style: [{ color: theme[textColor] }, style],
413
456
  ...props
414
457
  }