Handle session provider rendering

This commit is contained in:
Shreyaschorge 2025-07-17 03:02:54 +05:30
parent 86b79e7f3f
commit 76ad200a22
No known key found for this signature in database
3 changed files with 18 additions and 13 deletions

View File

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

View File

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

View File

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