feat: providers working

Still need to flesh out real demo components and handle the case where there isn't a solana provider injected
This commit is contained in:
Quazia 2025-05-22 14:24:47 -04:00
parent 9f748076db
commit 7f10d4e8c0
No known key found for this signature in database
3 changed files with 29 additions and 1 deletions

View File

@ -1,9 +1,11 @@
"use client";
import * as React from "react";
import dynamic from "next/dynamic";
import type { Session } from "next-auth"
import { SessionProvider } from "next-auth/react"
import { FrameProvider } from "~/components/providers/FrameProvider";
import { SolanaWalletDemo } from "../components/SolanaWalletDemo";
const WagmiProvider = dynamic(
() => import("~/components/providers/WagmiProvider"),
@ -12,12 +14,21 @@ const WagmiProvider = dynamic(
}
);
const FarcasterSolanaProvider = dynamic(
() => import('@farcaster/mini-app-solana').then(mod => mod.FarcasterSolanaProvider),
{ ssr: false }
);
export function Providers({ session, children }: { session: Session | null, children: React.ReactNode }) {
const solanaEndpoint = process.env.NEXT_PUBLIC_SOLANA_ENDPOINT || "https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY";
return (
<SessionProvider session={session}>
<WagmiProvider>
<FrameProvider>
{children}
<FarcasterSolanaProvider endpoint={solanaEndpoint}>
<SolanaWalletDemo />
{children}
</FarcasterSolanaProvider>
</FrameProvider>
</WagmiProvider>
</SessionProvider>

View File

@ -0,0 +1,16 @@
import * as React from "react";
import { useWallet } from "@solana/wallet-adapter-react";
export function SolanaWalletDemo() {
const { publicKey } = useWallet();
const solanaAddress = publicKey?.toBase58() ?? "";
return (
<div style={{ padding: 16, background: "#f6f6f6", borderRadius: 8, margin: 16 }}>
<h3>Solana Wallet Demo</h3>
<div>
<strong>Solana Address:</strong>
<span style={{ marginLeft: 8 }}>{solanaAddress || "Not connected"}</span>
</div>
</div>
);
}

1
tester1234 Submodule

@ -0,0 +1 @@
Subproject commit fcc893a97697c733e50207412f5c7346e737f812