2025-04-25 09:50:32 -05:00
|
|
|
// NOTE: This file should normally not be modified unless you are adding a new provider.
|
|
|
|
// To add new routes, edit the AppRouter.tsx file.
|
|
|
|
|
2025-06-01 16:26:09 -05:00
|
|
|
import { Suspense } from 'react';
|
2025-04-17 14:24:41 -05:00
|
|
|
import NostrProvider from '@/components/NostrProvider'
|
2025-04-16 21:43:54 -05:00
|
|
|
import { Toaster } from "@/components/ui/toaster";
|
|
|
|
import { Toaster as Sonner } from "@/components/ui/sonner";
|
|
|
|
import { TooltipProvider } from "@/components/ui/tooltip";
|
|
|
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
2025-04-17 14:24:41 -05:00
|
|
|
import { NostrLoginProvider } from '@nostrify/react/login';
|
2025-06-02 21:44:52 -05:00
|
|
|
import { AppProvider } from '@/components/AppProvider';
|
2025-06-04 10:04:39 -05:00
|
|
|
import { AppConfig } from '@/contexts/AppContext';
|
2025-04-17 16:53:23 -05:00
|
|
|
import AppRouter from './AppRouter';
|
2025-04-17 14:24:41 -05:00
|
|
|
|
2025-04-18 12:05:24 -05:00
|
|
|
const queryClient = new QueryClient({
|
|
|
|
defaultOptions: {
|
|
|
|
queries: {
|
|
|
|
refetchOnWindowFocus: false,
|
|
|
|
staleTime: 60000, // 1 minute
|
|
|
|
gcTime: Infinity,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
});
|
2025-04-16 21:43:54 -05:00
|
|
|
|
2025-06-04 10:04:39 -05:00
|
|
|
const defaultConfig: AppConfig = {
|
|
|
|
theme: "light",
|
|
|
|
relayUrl: "wss://relay.nostr.band",
|
|
|
|
};
|
|
|
|
|
2025-06-04 10:20:10 -05:00
|
|
|
const presetRelays = [
|
|
|
|
{ url: 'wss://ditto.pub/relay', name: 'Ditto' },
|
|
|
|
{ url: 'wss://relay.nostr.band', name: 'Nostr.Band' },
|
|
|
|
{ url: 'wss://relay.damus.io', name: 'Damus' },
|
|
|
|
{ url: 'wss://relay.primal.net', name: 'Primal' },
|
|
|
|
];
|
|
|
|
|
2025-04-17 16:53:23 -05:00
|
|
|
export function App() {
|
|
|
|
return (
|
2025-06-04 10:20:10 -05:00
|
|
|
<AppProvider storageKey="nostr:app-config" defaultConfig={defaultConfig} presetRelays={presetRelays}>
|
2025-06-04 09:42:53 -05:00
|
|
|
<QueryClientProvider client={queryClient}>
|
|
|
|
<NostrLoginProvider storageKey='nostr:login'>
|
|
|
|
<NostrProvider>
|
|
|
|
<TooltipProvider>
|
|
|
|
<Toaster />
|
|
|
|
<Sonner />
|
|
|
|
<Suspense>
|
|
|
|
<AppRouter />
|
|
|
|
</Suspense>
|
|
|
|
</TooltipProvider>
|
|
|
|
</NostrProvider>
|
|
|
|
</NostrLoginProvider>
|
|
|
|
</QueryClientProvider>
|
|
|
|
</AppProvider>
|
2025-04-17 16:53:23 -05:00
|
|
|
);
|
|
|
|
}
|
2025-04-16 21:43:54 -05:00
|
|
|
|
|
|
|
export default App;
|