related-ui-components 1.9.7 → 1.9.8

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.
@@ -1,42 +1,31 @@
1
1
  "use strict";
2
2
 
3
- import React, { createContext, useContext, useState, useEffect, useCallback } from "react";
4
- import { I18nManager, useColorScheme } from "react-native"; // Added Appearance
5
- import { lightTheme, darkTheme } from "./Colors.js"; // Assuming Colors.ts exists
3
+ import React, { createContext, useContext, useState } from "react";
4
+ import { I18nManager, useColorScheme } from "react-native";
5
+ import { lightTheme, darkTheme } from "./Colors.js";
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
7
  export const ThemeContext = /*#__PURE__*/createContext({
8
8
  theme: lightTheme,
9
- isDark: false,
10
- toggleTheme: () => console.warn("toggleTheme called outside of ThemeProvider"),
11
9
  isRTL: I18nManager.isRTL,
12
- setRTL: () => console.warn("setRTL called outside of ThemeProvider")
10
+ isDark: useColorScheme() === "dark",
11
+ toggleTheme: () => {}
13
12
  });
13
+
14
+ // Define props for ThemeProvider
15
+
16
+ // Provider component
14
17
  export const RelatedProvider = ({
15
18
  children,
16
19
  customLightTheme,
17
20
  customDarkTheme,
18
- initialDark,
19
- initialRTL
21
+ dark,
22
+ forceRTL
20
23
  }) => {
21
- const systemColorScheme = useColorScheme();
22
- const [isDark, setIsDark] = useState(initialDark ?? systemColorScheme === "dark");
23
- const [isRTL, setIsRTLState] = useState(initialRTL ?? I18nManager.isRTL);
24
- useEffect(() => {
25
- if (typeof initialDark === "boolean") {
26
- setIsDark(initialDark);
27
- }
28
- }, [initialDark]);
29
- useEffect(() => {
30
- if (typeof initialRTL === "boolean") {
31
- setIsRTLState(initialRTL);
32
- }
33
- }, [initialRTL]);
34
- useEffect(() => {
35
- if (initialDark === undefined) {
36
- setIsDark(useColorScheme() === "dark");
37
- }
38
- }, [initialDark]);
39
- const themes = React.useMemo(() => ({
24
+ const [isDark, setIsDark] = useState(dark || useColorScheme() === "dark");
25
+ const currentIsRTL = typeof forceRTL === "boolean" ? forceRTL : false;
26
+
27
+ // Allow custom themes to override defaults
28
+ const [themes, setThemes] = useState({
40
29
  light: {
41
30
  ...lightTheme,
42
31
  ...customLightTheme
@@ -45,25 +34,21 @@ export const RelatedProvider = ({
45
34
  ...darkTheme,
46
35
  ...customDarkTheme
47
36
  }
48
- }), [customLightTheme, customDarkTheme]);
37
+ });
38
+ const toggleTheme = () => setIsDark(prev => !prev);
49
39
  const currentTheme = isDark ? themes.dark : themes.light;
50
- const toggleTheme = useCallback(() => {
51
- setIsDark(prevIsDark => !prevIsDark);
52
- }, []);
53
- const setRTL = useCallback(rtlValue => {
54
- setIsRTLState(rtlValue);
55
- }, []);
56
40
  const contextValue = {
57
41
  theme: currentTheme,
42
+ isRTL: currentIsRTL,
58
43
  isDark,
59
- toggleTheme,
60
- isRTL,
61
- setRTL
44
+ toggleTheme
62
45
  };
63
46
  return /*#__PURE__*/_jsx(ThemeContext.Provider, {
64
47
  value: contextValue,
65
48
  children: children
66
49
  });
67
50
  };
51
+
52
+ // Hook for easy access
68
53
  export const useTheme = () => useContext(ThemeContext);
69
54
  //# sourceMappingURL=ThemeContext.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","createContext","useContext","useState","useEffect","useCallback","I18nManager","useColorScheme","lightTheme","darkTheme","jsx","_jsx","ThemeContext","theme","isDark","toggleTheme","console","warn","isRTL","setRTL","RelatedProvider","children","customLightTheme","customDarkTheme","initialDark","initialRTL","systemColorScheme","setIsDark","setIsRTLState","undefined","themes","useMemo","light","dark","currentTheme","prevIsDark","rtlValue","contextValue","Provider","value","useTheme"],"sourceRoot":"..\\..\\..\\src","sources":["theme/ThemeContext.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IACVC,aAAa,EACbC,UAAU,EACVC,QAAQ,EACRC,SAAS,EAETC,WAAW,QACN,OAAO;AACd,SAASC,WAAW,EAAEC,cAAc,QAAoB,cAAc,CAAC,CAAC;AACxE,SAASC,UAAU,EAAaC,SAAS,QAAQ,aAAU,CAAC,CAAC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAU7D,OAAO,MAAMC,YAAY,gBAAGX,aAAa,CAAsB;EAC7DY,KAAK,EAAEL,UAAU;EACjBM,MAAM,EAAE,KAAK;EACbC,WAAW,EAAEA,CAAA,KAAMC,OAAO,CAACC,IAAI,CAAC,6CAA6C,CAAC;EAC9EC,KAAK,EAAEZ,WAAW,CAACY,KAAK;EACxBC,MAAM,EAAEA,CAAA,KAAMH,OAAO,CAACC,IAAI,CAAC,wCAAwC;AACrE,CAAC,CAAC;AAUF,OAAO,MAAMG,eAA+C,GAAGA,CAAC;EAC9DC,QAAQ;EACRC,gBAAgB;EAChBC,eAAe;EACfC,WAAW;EACXC;AACF,CAAC,KAAK;EACJ,MAAMC,iBAAiB,GAAGnB,cAAc,CAAC,CAAC;EAC1C,MAAM,CAACO,MAAM,EAAEa,SAAS,CAAC,GAAGxB,QAAQ,CAClCqB,WAAW,IAAKE,iBAAiB,KAAK,MACxC,CAAC;EAED,MAAM,CAACR,KAAK,EAAEU,aAAa,CAAC,GAAGzB,QAAQ,CACrCsB,UAAU,IAAInB,WAAW,CAACY,KAC5B,CAAC;EAEDd,SAAS,CAAC,MAAM;IACd,IAAI,OAAOoB,WAAW,KAAK,SAAS,EAAE;MACpCG,SAAS,CAACH,WAAW,CAAC;IACxB;EACF,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;EAEjBpB,SAAS,CAAC,MAAM;IACd,IAAI,OAAOqB,UAAU,KAAK,SAAS,EAAE;MACnCG,aAAa,CAACH,UAAU,CAAC;IAC3B;EACF,CAAC,EAAE,CAACA,UAAU,CAAC,CAAC;EAEhBrB,SAAS,CAAC,MAAM;IACd,IAAIoB,WAAW,KAAKK,SAAS,EAAE;MAC3BF,SAAS,CAACpB,cAAc,CAAC,CAAC,KAAK,MAAM,CAAC;IAC1C;EACF,CAAC,EAAE,CAACiB,WAAW,CAAC,CAAC;EAEjB,MAAMM,MAAM,GAAG9B,KAAK,CAAC+B,OAAO,CAAC,OAAO;IAClCC,KAAK,EAAE;MAAE,GAAGxB,UAAU;MAAE,GAAGc;IAAiB,CAAc;IAC1DW,IAAI,EAAE;MAAE,GAAGxB,SAAS;MAAE,GAAGc;IAAgB;EAC3C,CAAC,CAAC,EAAE,CAACD,gBAAgB,EAAEC,eAAe,CAAC,CAAC;EAExC,MAAMW,YAAY,GAAGpB,MAAM,GAAGgB,MAAM,CAACG,IAAI,GAAGH,MAAM,CAACE,KAAK;EAExD,MAAMjB,WAAW,GAAGV,WAAW,CAAC,MAAM;IACpCsB,SAAS,CAACQ,UAAU,IAAI,CAACA,UAAU,CAAC;EACtC,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMhB,MAAM,GAAGd,WAAW,CAAE+B,QAAiB,IAAK;IAChDR,aAAa,CAACQ,QAAQ,CAAC;EACzB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,YAAiC,GAAG;IACxCxB,KAAK,EAAEqB,YAAY;IACnBpB,MAAM;IACNC,WAAW;IACXG,KAAK;IACLC;EACF,CAAC;EAED,oBACER,IAAA,CAACC,YAAY,CAAC0B,QAAQ;IAACC,KAAK,EAAEF,YAAa;IAAAhB,QAAA,EACxCA;EAAQ,CACY,CAAC;AAE5B,CAAC;AAED,OAAO,MAAMmB,QAAQ,GAAGA,CAAA,KAAMtC,UAAU,CAACU,YAAY,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","createContext","useContext","useState","I18nManager","useColorScheme","lightTheme","darkTheme","jsx","_jsx","ThemeContext","theme","isRTL","isDark","toggleTheme","RelatedProvider","children","customLightTheme","customDarkTheme","dark","forceRTL","setIsDark","currentIsRTL","themes","setThemes","light","prev","currentTheme","contextValue","Provider","value","useTheme"],"sourceRoot":"..\\..\\..\\src","sources":["theme/ThemeContext.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IACVC,aAAa,EACbC,UAAU,EACVC,QAAQ,QAGH,OAAO;AAEd,SAASC,WAAW,EAAEC,cAAc,QAAQ,cAAc;AAC1D,SAASC,UAAU,EAAaC,SAAS,QAAQ,aAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQ5D,OAAO,MAAMC,YAAY,gBAAGT,aAAa,CAAiB;EACxDU,KAAK,EAAEL,UAAU;EACjBM,KAAK,EAAER,WAAW,CAACQ,KAAK;EACxBC,MAAM,EAAER,cAAc,CAAC,CAAC,KAAK,MAAM;EACnCS,WAAW,EAAEA,CAAA,KAAM,CAAC;AACtB,CAAC,CAAC;;AAEF;;AASA;AACA,OAAO,MAAMC,eAA+C,GAAGA,CAAC;EAC9DC,QAAQ;EACRC,gBAAgB;EAChBC,eAAe;EACfC,IAAI;EACJC;AACF,CAAC,KAAK;EACJ,MAAM,CAACP,MAAM,EAAEQ,SAAS,CAAC,GAAGlB,QAAQ,CAClCgB,IAAI,IAAId,cAAc,CAAC,CAAC,KAAK,MAC/B,CAAC;EACD,MAAMiB,YAAY,GAAG,OAAOF,QAAQ,KAAK,SAAS,GAAGA,QAAQ,GAAG,KAAK;;EAErE;EACA,MAAM,CAACG,MAAM,EAAEC,SAAS,CAAC,GAAGrB,QAAQ,CAAC;IACnCsB,KAAK,EAAE;MAAE,GAAGnB,UAAU;MAAE,GAAGW;IAAiB,CAAc;IAC1DE,IAAI,EAAE;MAAE,GAAGZ,SAAS;MAAE,GAAGW;IAAgB;EAC3C,CAAC,CAAC;EAEF,MAAMJ,WAAW,GAAGA,CAAA,KAAMO,SAAS,CAAEK,IAAI,IAAK,CAACA,IAAI,CAAC;EAEpD,MAAMC,YAAY,GAAGd,MAAM,GAAGU,MAAM,CAACJ,IAAI,GAAGI,MAAM,CAACE,KAAK;EAExD,MAAMG,YAA4B,GAAG;IACnCjB,KAAK,EAAEgB,YAAY;IACnBf,KAAK,EAAEU,YAAY;IACnBT,MAAM;IACNC;EACF,CAAC;EAED,oBACEL,IAAA,CAACC,YAAY,CAACmB,QAAQ;IAACC,KAAK,EAAEF,YAAa;IAAAZ,QAAA,EACxCA;EAAQ,CACY,CAAC;AAE5B,CAAC;;AAED;AACA,OAAO,MAAMe,QAAQ,GAAGA,CAAA,KAAM7B,UAAU,CAACQ,YAAY,CAAC","ignoreList":[]}
@@ -1,21 +1,20 @@
1
1
  import React, { ReactNode } from "react";
2
2
  import { ThemeType } from "./Colors";
3
- interface RelatedContextValue {
3
+ interface RelatedContext {
4
4
  theme: ThemeType;
5
+ isRTL: boolean;
5
6
  isDark: boolean;
6
7
  toggleTheme: () => void;
7
- isRTL: boolean;
8
- setRTL: (rtl: boolean) => void;
9
8
  }
10
- export declare const ThemeContext: React.Context<RelatedContextValue>;
9
+ export declare const ThemeContext: React.Context<RelatedContext>;
11
10
  interface RelatedProviderProps {
12
11
  children: ReactNode;
13
12
  customLightTheme?: Partial<ThemeType>;
14
13
  customDarkTheme?: Partial<ThemeType>;
15
- initialDark?: boolean;
16
- initialRTL?: boolean;
14
+ dark?: boolean;
15
+ forceRTL?: boolean;
17
16
  }
18
17
  export declare const RelatedProvider: React.FC<RelatedProviderProps>;
19
- export declare const useTheme: () => RelatedContextValue;
18
+ export declare const useTheme: () => RelatedContext;
20
19
  export {};
21
20
  //# sourceMappingURL=ThemeContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeContext.d.ts","sourceRoot":"","sources":["../../../../src/theme/ThemeContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAKZ,SAAS,EAEV,MAAM,OAAO,CAAC;AAEf,OAAO,EAAc,SAAS,EAAa,MAAM,UAAU,CAAC;AAE5D,UAAU,mBAAmB;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CAChC;AAED,eAAO,MAAM,YAAY,oCAMvB,CAAC;AAEH,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,SAAS,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA8D1D,CAAC;AAEF,eAAO,MAAM,QAAQ,2BAAiC,CAAC"}
1
+ {"version":3,"file":"ThemeContext.d.ts","sourceRoot":"","sources":["../../../../src/theme/ThemeContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAKZ,SAAS,EACV,MAAM,OAAO,CAAC;AAGf,OAAO,EAAc,SAAS,EAAa,MAAM,UAAU,CAAC;AAE5D,UAAU,cAAc;IACtB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB;AACD,eAAO,MAAM,YAAY,+BAKvB,CAAC;AAGH,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,SAAS,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAGD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAkC1D,CAAC;AAGF,eAAO,MAAM,QAAQ,sBAAiC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "related-ui-components",
3
- "version": "1.9.7",
3
+ "version": "1.9.8",
4
4
  "main": "./lib\\module\\index.js",
5
5
  "scripts": {
6
6
  "start": "expo start",
@@ -4,90 +4,61 @@ import React, {
4
4
  useState,
5
5
  useEffect,
6
6
  ReactNode,
7
- useCallback,
8
7
  } from "react";
9
- import { I18nManager, useColorScheme, Appearance } from "react-native"; // Added Appearance
10
- import { lightTheme, ThemeType, darkTheme } from "./Colors"; // Assuming Colors.ts exists
11
8
 
12
- interface RelatedContextValue {
9
+ import { I18nManager, useColorScheme } from "react-native";
10
+ import { lightTheme, ThemeType, darkTheme } from "./Colors";
11
+
12
+ interface RelatedContext {
13
13
  theme: ThemeType;
14
- isDark: boolean; // Expose isDark for components to know the mode
15
- toggleTheme: () => void;
16
14
  isRTL: boolean;
17
- setRTL: (rtl: boolean) => void; // More explicit than a toggle
15
+ isDark: boolean,
16
+ toggleTheme: () => void;
18
17
  }
19
-
20
- export const ThemeContext = createContext<RelatedContextValue>({
18
+ export const ThemeContext = createContext<RelatedContext>({
21
19
  theme: lightTheme,
22
- isDark: false,
23
- toggleTheme: () => console.warn("toggleTheme called outside of ThemeProvider"),
24
20
  isRTL: I18nManager.isRTL,
25
- setRTL: () => console.warn("setRTL called outside of ThemeProvider"),
21
+ isDark: useColorScheme() === "dark",
22
+ toggleTheme: () => {}
26
23
  });
27
24
 
25
+ // Define props for ThemeProvider
28
26
  interface RelatedProviderProps {
29
27
  children: ReactNode;
30
28
  customLightTheme?: Partial<ThemeType>;
31
29
  customDarkTheme?: Partial<ThemeType>;
32
- initialDark?: boolean;
33
- initialRTL?: boolean;
30
+ dark?: boolean;
31
+ forceRTL?: boolean;
34
32
  }
35
33
 
34
+ // Provider component
36
35
  export const RelatedProvider: React.FC<RelatedProviderProps> = ({
37
36
  children,
38
37
  customLightTheme,
39
38
  customDarkTheme,
40
- initialDark,
41
- initialRTL,
39
+ dark,
40
+ forceRTL,
42
41
  }) => {
43
- const systemColorScheme = useColorScheme();
44
42
  const [isDark, setIsDark] = useState<boolean>(
45
- initialDark ?? (systemColorScheme === "dark")
46
- );
47
-
48
- const [isRTL, setIsRTLState] = useState<boolean>(
49
- initialRTL ?? I18nManager.isRTL
43
+ dark || useColorScheme() === "dark"
50
44
  );
45
+ const currentIsRTL = typeof forceRTL === "boolean" ? forceRTL : false;
51
46
 
52
- useEffect(() => {
53
- if (typeof initialDark === "boolean") {
54
- setIsDark(initialDark);
55
- }
56
- }, [initialDark]);
57
-
58
- useEffect(() => {
59
- if (typeof initialRTL === "boolean") {
60
- setIsRTLState(initialRTL);
61
- }
62
- }, [initialRTL]);
63
-
64
- useEffect(() => {
65
- if (initialDark === undefined) {
66
- setIsDark(useColorScheme() === "dark");
67
- }
68
- }, [initialDark]);
69
-
70
- const themes = React.useMemo(() => ({
47
+ // Allow custom themes to override defaults
48
+ const [themes, setThemes] = useState({
71
49
  light: { ...lightTheme, ...customLightTheme } as ThemeType,
72
50
  dark: { ...darkTheme, ...customDarkTheme } as ThemeType,
73
- }), [customLightTheme, customDarkTheme]);
51
+ });
74
52
 
75
- const currentTheme = isDark ? themes.dark : themes.light;
76
-
77
- const toggleTheme = useCallback(() => {
78
- setIsDark(prevIsDark => !prevIsDark);
79
- }, []);
53
+ const toggleTheme = () => setIsDark((prev) => !prev);
80
54
 
81
- const setRTL = useCallback((rtlValue: boolean) => {
82
- setIsRTLState(rtlValue);
83
- }, []);
55
+ const currentTheme = isDark ? themes.dark : themes.light;
84
56
 
85
- const contextValue: RelatedContextValue = {
57
+ const contextValue: RelatedContext = {
86
58
  theme: currentTheme,
59
+ isRTL: currentIsRTL,
87
60
  isDark,
88
- toggleTheme,
89
- isRTL,
90
- setRTL,
61
+ toggleTheme
91
62
  };
92
63
 
93
64
  return (
@@ -97,4 +68,5 @@ export const RelatedProvider: React.FC<RelatedProviderProps> = ({
97
68
  );
98
69
  };
99
70
 
100
- export const useTheme = () => useContext(ThemeContext);
71
+ // Hook for easy access
72
+ export const useTheme = () => useContext(ThemeContext);