Merge branch 'next'

This commit is contained in:
hzrd149 2023-07-14 11:11:02 -05:00
commit a256df2569
4 changed files with 41 additions and 18 deletions

View File

@ -0,0 +1,5 @@
---
"nostrudel": patch
---
Fix broken post button

View File

@ -34,6 +34,7 @@ import UserAboutTab from "./views/user/about";
import UserLikesTab from "./views/user/likes";
import useSetColorMode from "./hooks/use-set-color-mode";
import UserStreamsTab from "./views/user/streams";
import { PageProviders } from "./providers";
const StreamsView = React.lazy(() => import("./views/streams"));
const StreamView = React.lazy(() => import("./views/streams/stream"));
@ -43,12 +44,14 @@ const RootPage = () => {
useSetColorMode();
return (
<Layout>
<ScrollRestoration />
<Suspense fallback={<Spinner />}>
<Outlet />
</Suspense>
</Layout>
<PageProviders>
<Layout>
<ScrollRestoration />
<Suspense fallback={<Spinner />}>
<Outlet />
</Suspense>
</Layout>
</PageProviders>
);
};
@ -63,7 +66,14 @@ const router = createHashRouter([
{ path: "nsec", element: <LoginNsecView /> },
],
},
{ path: "streams/:naddr", element: <StreamView /> },
{
path: "streams/:naddr",
element: (
<PageProviders>
<StreamView />
</PageProviders>
),
},
{
path: "/",
element: <RootPage />,

View File

@ -1,6 +1,6 @@
import { createRoot } from "react-dom/client";
import { App } from "./app";
import { Providers } from "./providers";
import { GlobalProviders } from "./providers";
// setup dayjs
import dayjs from "dayjs";
@ -21,7 +21,7 @@ const element = document.getElementById("root");
if (!element) throw new Error("missing mount point");
const root = createRoot(element);
root.render(
<Providers>
<GlobalProviders>
<App />
</Providers>
</GlobalProviders>
);

View File

@ -7,19 +7,27 @@ import { InvoiceModalProvider } from "./invoice-modal";
import NotificationTimelineProvider from "./notification-timeline";
import PostModalProvider from "./post-modal-provider";
export const Providers = ({ children }: { children: React.ReactNode }) => {
// Top level providers, should be render as close to the root as possible
export const GlobalProviders = ({ children }: { children: React.ReactNode }) => {
const { primaryColor } = useAppSettings();
const theme = useMemo(() => createTheme(primaryColor), [primaryColor]);
return (
<ChakraProvider theme={theme} colorModeManager={localStorageManager}>
<SigningProvider>
<InvoiceModalProvider>
<NotificationTimelineProvider>
<PostModalProvider>{children}</PostModalProvider>
</NotificationTimelineProvider>
</InvoiceModalProvider>
</SigningProvider>
{children}
</ChakraProvider>
);
};
/** Providers that provider functionality to pages (needs to be rendered under a router) */
export function PageProviders({ children }: { children: React.ReactNode }) {
return (
<SigningProvider>
<InvoiceModalProvider>
<NotificationTimelineProvider>
<PostModalProvider>{children}</PostModalProvider>
</NotificationTimelineProvider>
</InvoiceModalProvider>
</SigningProvider>
);
}