Merge pull request #22 from neynarxyz/shreyas/neyn-5928-resolve-customer-issue-with-broken-nsk-script

Handle session provider rendering
This commit is contained in:
Shreyaschorge 2025-07-17 03:04:45 +05:30 committed by GitHub
commit 2edd1bd2ae
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 18 additions and 13 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "@neynar/create-farcaster-mini-app", "name": "@neynar/create-farcaster-mini-app",
"version": "1.7.7", "version": "1.7.8",
"type": "module", "type": "module",
"private": false, "private": false,
"access": "public", "access": "public",

View File

@ -1,8 +1,8 @@
import type { Metadata } from "next"; import type { Metadata } from 'next';
import "~/app/globals.css"; import '~/app/globals.css';
import { Providers } from "~/app/providers"; import { Providers } from '~/app/providers';
import { APP_NAME, APP_DESCRIPTION } from "~/lib/constants"; import { APP_NAME, APP_DESCRIPTION } from '~/lib/constants';
export const metadata: Metadata = { export const metadata: Metadata = {
title: APP_NAME, title: APP_NAME,
@ -13,15 +13,16 @@ export default async function RootLayout({
children, children,
}: Readonly<{ }: Readonly<{
children: React.ReactNode; children: React.ReactNode;
}>) { }>) {
// Only get session if sponsored signer is enabled or seed phrase is provided // Only get session if sponsored signer is enabled or seed phrase is provided
const sponsorSigner = process.env.SPONSOR_SIGNER === 'true'; const sponsorSigner = process.env.SPONSOR_SIGNER === 'true';
const hasSeedPhrase = !!process.env.SEED_PHRASE; const hasSeedPhrase = !!process.env.SEED_PHRASE;
const shouldUseSession = sponsorSigner || hasSeedPhrase;
let session = null; let session = null;
if (sponsorSigner || hasSeedPhrase) { if (shouldUseSession) {
try { try {
const { getSession } = await import("~/auth"); const { getSession } = await import('~/auth');
session = await getSession(); session = await getSession();
} catch (error) { } catch (error) {
console.warn('Failed to get session:', error); console.warn('Failed to get session:', error);
@ -31,7 +32,9 @@ export default async function RootLayout({
return ( return (
<html lang="en"> <html lang="en">
<body> <body>
<Providers session={session}>{children}</Providers> <Providers session={session} shouldUseSession={shouldUseSession}>
{children}
</Providers>
</body> </body>
</html> </html>
); );

View File

@ -18,15 +18,17 @@ const WagmiProvider = dynamic(
export function Providers({ export function Providers({
session, session,
children, children,
shouldUseSession = false,
}: { }: {
session: Session | null; session: Session | null;
children: React.ReactNode; children: React.ReactNode;
shouldUseSession?: boolean;
}) { }) {
const solanaEndpoint = const solanaEndpoint =
process.env.SOLANA_RPC_ENDPOINT || 'https://solana-rpc.publicnode.com'; process.env.SOLANA_RPC_ENDPOINT || 'https://solana-rpc.publicnode.com';
// Only wrap with SessionProvider if next auth is used // Only wrap with SessionProvider if next auth is used
if (process.env.SPONSOR_SIGNER === 'true' || process.env.SEED_PHRASE) { if (shouldUseSession) {
return ( return (
<SessionProvider session={session}> <SessionProvider session={session}>
<WagmiProvider> <WagmiProvider>
@ -42,7 +44,7 @@ export function Providers({
</SessionProvider> </SessionProvider>
); );
} }
// Return without SessionProvider if no session // Return without SessionProvider if no session
return ( return (
<WagmiProvider> <WagmiProvider>