@umituz/react-native-subscription 3.1.32 → 3.1.34

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umituz/react-native-subscription",
3
- "version": "3.1.32",
3
+ "version": "3.1.34",
4
4
  "description": "Complete subscription management with RevenueCat, paywall UI, and credits system for React Native apps",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",
@@ -1,7 +1,10 @@
1
1
  import { useCallback, useState } from "react";
2
2
  import { getCreditsRepository } from "../../infrastructure/CreditsRepositoryManager";
3
+ import { createLogger } from "../../../../shared/utils/logger";
3
4
  import type { UseDeductCreditParams, UseDeductCreditResult } from "./types";
4
5
 
6
+ const logger = createLogger("useDeductCredit");
7
+
5
8
  export const useDeductCredit = ({
6
9
  userId,
7
10
  onCreditsExhausted,
@@ -15,26 +18,22 @@ export const useDeductCredit = ({
15
18
  setIsDeducting(true);
16
19
  try {
17
20
  const res = await repository.deductCredit(userId, cost);
18
- if (__DEV__) console.log('[useDeductCredit] deduction result:', JSON.stringify(res));
21
+ logger.debug("Deduction result", { result: res });
19
22
 
20
23
  if (!res.success) {
21
- if (__DEV__) console.log('[useDeductCredit] deduction FAILED:', res.error?.code, res.error?.message);
24
+ logger.warn("Deduction failed", { code: res.error?.code, message: res.error?.message });
22
25
 
23
26
  if (res.error?.code === "CREDITS_EXHAUSTED" || res.error?.code === "DEDUCT_ERR" || res.error?.code === "NO_CREDITS") {
24
- if (__DEV__) console.log('[useDeductCredit] Credits exhausted, calling onCreditsExhausted callback');
27
+ logger.info("Credits exhausted, calling onCreditsExhausted callback");
25
28
  onCreditsExhausted?.();
26
29
  }
27
30
  return false;
28
31
  }
29
32
 
30
- if (__DEV__) console.log('[useDeductCredit] deduction SUCCESS, remaining:', res.remainingCredits);
33
+ logger.debug("Deduction success", { remainingCredits: res.remainingCredits });
31
34
  return true;
32
35
  } catch (error) {
33
- if (__DEV__) console.error('[useDeductCredit] UNEXPECTED ERROR during credit deduction', {
34
- cost,
35
- userId,
36
- error: error instanceof Error ? error.message : String(error)
37
- });
36
+ logger.error("Unexpected error during credit deduction", error, { cost, userId });
38
37
  return false;
39
38
  } finally {
40
39
  setIsDeducting(false);
@@ -52,13 +51,7 @@ export const useDeductCredit = ({
52
51
  const result = await repository.refundCredit(userId, amount);
53
52
  return result.success;
54
53
  } catch (error) {
55
- if (__DEV__) {
56
- console.error('[useDeductCredit] Unexpected error during credit refund', {
57
- amount,
58
- userId,
59
- error: error instanceof Error ? error.message : String(error),
60
- });
61
- }
54
+ logger.error("Unexpected error during credit refund", error, { amount, userId });
62
55
  return false;
63
56
  }
64
57
  }, [userId, repository]);
@@ -28,7 +28,7 @@ export const useCredits = (): UseCreditsResult => {
28
28
  const hasUser = isAuthenticated(userId);
29
29
  const queryEnabled = hasUser && isConfigured;
30
30
 
31
- const { credits, isLoading, error } = useCreditsRealTime(userId);
31
+ const { credits, isLoading, error, refetch } = useCreditsRealTime(userId);
32
32
 
33
33
  const derivedValues = useMemo(() => {
34
34
  const has = (credits?.credits ?? 0) > 0;
@@ -53,7 +53,7 @@ export const useCredits = (): UseCreditsResult => {
53
53
  error,
54
54
  hasCredits: derivedValues.hasCredits,
55
55
  creditsPercent: derivedValues.creditsPercent,
56
- refetch: async () => {},
56
+ refetch,
57
57
  canAfford,
58
58
  };
59
59
  };