mirror of
https://github.com/neynarxyz/create-farcaster-mini-app.git
synced 2025-11-16 08:08:56 -05:00
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:
parent
9f748076db
commit
7f10d4e8c0
@ -1,9 +1,11 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
|
import * as React from "react";
|
||||||
import dynamic from "next/dynamic";
|
import dynamic from "next/dynamic";
|
||||||
import type { Session } from "next-auth"
|
import type { Session } from "next-auth"
|
||||||
import { SessionProvider } from "next-auth/react"
|
import { SessionProvider } from "next-auth/react"
|
||||||
import { FrameProvider } from "~/components/providers/FrameProvider";
|
import { FrameProvider } from "~/components/providers/FrameProvider";
|
||||||
|
import { SolanaWalletDemo } from "../components/SolanaWalletDemo";
|
||||||
|
|
||||||
const WagmiProvider = dynamic(
|
const WagmiProvider = dynamic(
|
||||||
() => import("~/components/providers/WagmiProvider"),
|
() => 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 }) {
|
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 (
|
return (
|
||||||
<SessionProvider session={session}>
|
<SessionProvider session={session}>
|
||||||
<WagmiProvider>
|
<WagmiProvider>
|
||||||
<FrameProvider>
|
<FrameProvider>
|
||||||
|
<FarcasterSolanaProvider endpoint={solanaEndpoint}>
|
||||||
|
<SolanaWalletDemo />
|
||||||
{children}
|
{children}
|
||||||
|
</FarcasterSolanaProvider>
|
||||||
</FrameProvider>
|
</FrameProvider>
|
||||||
</WagmiProvider>
|
</WagmiProvider>
|
||||||
</SessionProvider>
|
</SessionProvider>
|
||||||
|
|||||||
16
src/components/SolanaWalletDemo.tsx
Normal file
16
src/components/SolanaWalletDemo.tsx
Normal 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
1
tester1234
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit fcc893a97697c733e50207412f5c7346e737f812
|
||||||
Loading…
x
Reference in New Issue
Block a user