refactor useProfile and useChannelProfile hooks

This commit is contained in:
Ren Amamiya
2023-04-27 10:28:07 +07:00
parent 8cadb7467f
commit 6918660a5c
24 changed files with 137 additions and 195 deletions

View File

@@ -2,6 +2,7 @@ import '@renderer/index.css';
import { Shell } from '@renderer/shell';
import { PageContextClient } from '@renderer/types';
import { StrictMode } from 'react';
import { Root, createRoot, hydrateRoot } from 'react-dom/client';
import 'vidstack/styles/defaults.css';
@@ -14,9 +15,11 @@ export async function render(pageContext: PageContextClient) {
if (!Page) throw new Error('Client-side render() hook expects pageContext.Page to be defined');
const page = (
<Shell pageContext={pageContext}>
<Page {...pageProps} />
</Shell>
<StrictMode>
<Shell pageContext={pageContext}>
<Page {...pageProps} />
</Shell>
</StrictMode>
);
const container = document.getElementById('app');

View File

@@ -1,6 +1,7 @@
import { Shell } from '@renderer/shell';
import { PageContextServer } from '@renderer/types';
import { StrictMode } from 'react';
import ReactDOMServer from 'react-dom/server';
import { dangerouslySkipEscape, escapeInject } from 'vite-plugin-ssr/server';
@@ -18,9 +19,11 @@ export function render(pageContext: PageContextServer) {
if (!Page) throw new Error('My render() hook expects pageContext.Page to be defined');
pageHtml = ReactDOMServer.renderToString(
<Shell pageContext={pageContext}>
<Page {...pageProps} />
</Shell>
<StrictMode>
<Shell pageContext={pageContext}>
<Page {...pageProps} />
</Shell>
</StrictMode>
);
}

View File

@@ -6,20 +6,17 @@ import { PageContextProvider } from '@utils/hooks/usePageContext';
import { PageContext } from '@renderer/types';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { StrictMode } from 'react';
const queryClient = new QueryClient();
export function Shell({ children, pageContext }: { children: React.ReactNode; pageContext: PageContext }) {
return (
<StrictMode>
<PageContextProvider pageContext={pageContext}>
<RelayProvider>
<AccountProvider>
<QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
</AccountProvider>
</RelayProvider>
</PageContextProvider>
</StrictMode>
<PageContextProvider pageContext={pageContext}>
<RelayProvider>
<AccountProvider>
<QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
</AccountProvider>
</RelayProvider>
</PageContextProvider>
);
}