@b3dotfun/sdk 0.0.40-alpha.7 → 0.0.40-alpha.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.
Files changed (41) hide show
  1. package/dist/cjs/anyspend/react/components/AnySpend.js +1 -1
  2. package/dist/cjs/anyspend/react/components/AnyspendDepositHype.js +1 -1
  3. package/dist/cjs/anyspend/react/components/common/CryptoReceiveSection.js +38 -36
  4. package/dist/cjs/anyspend/react/components/common/PanelOnramp.d.ts +3 -1
  5. package/dist/cjs/anyspend/react/components/common/PanelOnramp.js +7 -6
  6. package/dist/cjs/anyspend/react/contexts/FeatureFlagsContext.d.ts +11 -0
  7. package/dist/cjs/anyspend/react/contexts/FeatureFlagsContext.js +21 -0
  8. package/dist/cjs/anyspend/react/hooks/useAnyspendFlow.d.ts +1 -65
  9. package/dist/cjs/anyspend/react/providers/AnyspendProvider.d.ts +5 -2
  10. package/dist/cjs/anyspend/react/providers/AnyspendProvider.js +5 -3
  11. package/dist/cjs/anyspend/react/providers/index.d.ts +1 -0
  12. package/dist/cjs/anyspend/react/providers/index.js +3 -0
  13. package/dist/cjs/anyspend/types/api_req_res.d.ts +8 -1
  14. package/dist/esm/anyspend/react/components/AnySpend.js +1 -1
  15. package/dist/esm/anyspend/react/components/AnyspendDepositHype.js +1 -1
  16. package/dist/esm/anyspend/react/components/common/CryptoReceiveSection.js +38 -36
  17. package/dist/esm/anyspend/react/components/common/PanelOnramp.d.ts +3 -1
  18. package/dist/esm/anyspend/react/components/common/PanelOnramp.js +7 -6
  19. package/dist/esm/anyspend/react/contexts/FeatureFlagsContext.d.ts +11 -0
  20. package/dist/esm/anyspend/react/contexts/FeatureFlagsContext.js +17 -0
  21. package/dist/esm/anyspend/react/hooks/useAnyspendFlow.d.ts +1 -65
  22. package/dist/esm/anyspend/react/providers/AnyspendProvider.d.ts +5 -2
  23. package/dist/esm/anyspend/react/providers/AnyspendProvider.js +5 -3
  24. package/dist/esm/anyspend/react/providers/index.d.ts +1 -0
  25. package/dist/esm/anyspend/react/providers/index.js +1 -0
  26. package/dist/esm/anyspend/types/api_req_res.d.ts +8 -1
  27. package/dist/types/anyspend/react/components/common/PanelOnramp.d.ts +3 -1
  28. package/dist/types/anyspend/react/contexts/FeatureFlagsContext.d.ts +11 -0
  29. package/dist/types/anyspend/react/hooks/useAnyspendFlow.d.ts +1 -65
  30. package/dist/types/anyspend/react/providers/AnyspendProvider.d.ts +5 -2
  31. package/dist/types/anyspend/react/providers/index.d.ts +1 -0
  32. package/dist/types/anyspend/types/api_req_res.d.ts +8 -1
  33. package/package.json +1 -1
  34. package/src/anyspend/react/components/AnySpend.tsx +1 -0
  35. package/src/anyspend/react/components/AnyspendDepositHype.tsx +1 -0
  36. package/src/anyspend/react/components/common/CryptoReceiveSection.tsx +56 -45
  37. package/src/anyspend/react/components/common/PanelOnramp.tsx +22 -16
  38. package/src/anyspend/react/contexts/FeatureFlagsContext.tsx +34 -0
  39. package/src/anyspend/react/providers/AnyspendProvider.tsx +11 -6
  40. package/src/anyspend/react/providers/index.ts +1 -0
  41. package/src/anyspend/types/api_req_res.ts +10 -1
@@ -0,0 +1,34 @@
1
+ "use client";
2
+
3
+ import { createContext, useContext, ReactNode } from "react";
4
+
5
+ export interface FeatureFlags {
6
+ showPoints?: boolean;
7
+ }
8
+
9
+ interface FeatureFlagsContextType {
10
+ featureFlags: FeatureFlags;
11
+ }
12
+
13
+ const FeatureFlagsContext = createContext<FeatureFlagsContextType | undefined>(undefined);
14
+
15
+ interface FeatureFlagsProviderProps {
16
+ children: ReactNode;
17
+ featureFlags?: FeatureFlags;
18
+ }
19
+
20
+ const defaultFeatureFlags: FeatureFlags = {
21
+ showPoints: false,
22
+ };
23
+
24
+ export function FeatureFlagsProvider({ children, featureFlags = defaultFeatureFlags }: FeatureFlagsProviderProps) {
25
+ return <FeatureFlagsContext.Provider value={{ featureFlags }}>{children}</FeatureFlagsContext.Provider>;
26
+ }
27
+
28
+ export function useFeatureFlags(): FeatureFlags {
29
+ const context = useContext(FeatureFlagsContext);
30
+ if (!context) {
31
+ return defaultFeatureFlags;
32
+ }
33
+ return context.featureFlags;
34
+ }
@@ -3,10 +3,12 @@
3
3
  import { TooltipProvider } from "@b3dotfun/sdk/global-account/react";
4
4
  import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
5
5
  import { ReactNode, useState } from "react";
6
+ import { FeatureFlags, FeatureFlagsProvider } from "../contexts/FeatureFlagsContext";
6
7
  import { StripeRedirectHandler } from "./StripeRedirectHandler";
7
8
 
8
9
  interface AnyspendProviderProps {
9
10
  children: ReactNode;
11
+ featureFlags?: FeatureFlags;
10
12
  }
11
13
 
12
14
  const defaultQueryClientConfig = {
@@ -29,27 +31,30 @@ const defaultQueryClientConfig = {
29
31
  * - Safe to use at the application root
30
32
  * - Configures sensible defaults for query caching
31
33
  * - Handles Stripe payment redirects and modal state
34
+ * - Provides feature flags configuration
32
35
  *
33
36
  * @example
34
37
  * ```tsx
35
38
  * function App() {
36
39
  * return (
37
- * <AnyspendProvider>
40
+ * <AnyspendProvider featureFlags={{ showPoints: true }}>
38
41
  * <YourApp />
39
42
  * </AnyspendProvider>
40
43
  * );
41
44
  * }
42
45
  * ```
43
46
  */
44
- export const AnyspendProvider = function AnyspendProvider({ children }: AnyspendProviderProps) {
47
+ export const AnyspendProvider = function AnyspendProvider({ children, featureFlags }: AnyspendProviderProps) {
45
48
  const [queryClient] = useState(() => new QueryClient(defaultQueryClientConfig));
46
49
 
47
50
  return (
48
51
  <QueryClientProvider client={queryClient}>
49
- <TooltipProvider>
50
- <StripeRedirectHandler />
51
- {children}
52
- </TooltipProvider>
52
+ <FeatureFlagsProvider featureFlags={featureFlags}>
53
+ <TooltipProvider>
54
+ <StripeRedirectHandler />
55
+ {children}
56
+ </TooltipProvider>
57
+ </FeatureFlagsProvider>
53
58
  </QueryClientProvider>
54
59
  );
55
60
  };
@@ -1,2 +1,3 @@
1
1
  export * from "./AnyspendProvider";
2
2
  export * from "./StripeRedirectHandler";
3
+ export { useFeatureFlags, type FeatureFlags } from "../contexts/FeatureFlagsContext";
@@ -3,7 +3,16 @@ import { paths } from "./api";
3
3
  export type GetOrderAndTxsResponse =
4
4
  paths["/orders/{orderId}"]["get"]["responses"]["200"]["content"]["application/json"];
5
5
  export type GetQuoteRequest = paths["/orders/quote"]["post"]["requestBody"]["content"]["application/json"];
6
- export type GetQuoteResponse = paths["/orders/quote"]["post"]["responses"]["200"]["content"]["application/json"];
6
+ // Base type from auto-generated API
7
+ type BaseGetQuoteResponse = paths["/orders/quote"]["post"]["responses"]["200"]["content"]["application/json"];
8
+
9
+ // Extended type with additional points fields
10
+ export type GetQuoteResponse = BaseGetQuoteResponse & {
11
+ data: BaseGetQuoteResponse["data"] & {
12
+ pointsAmount?: number;
13
+ pointsMultiplier?: number;
14
+ };
15
+ };
7
16
  export type GetCoinbaseOnrampOptionsResponse =
8
17
  paths["/onramp/coinbase/options"]["get"]["responses"]["200"]["content"]["application/json"];
9
18
  export type GetOrderHistoryResponse = paths["/orders"]["get"]["responses"]["200"]["content"]["application/json"];