feat: fix bridge
This commit is contained in:
parent
846954f059
commit
65d23707ab
3 changed files with 24 additions and 5 deletions
|
|
@ -33,7 +33,7 @@ declare global {
|
|||
}
|
||||
}
|
||||
|
||||
export const ProviderPreviewBridge: FC<{ provider: string }> = ({
|
||||
const ProviderPreviewBridge: FC<{ provider: string }> = ({
|
||||
provider,
|
||||
}) => {
|
||||
// Read __PROVIDER_INIT__ in an effect, not via a useState lazy
|
||||
|
|
@ -44,10 +44,10 @@ export const ProviderPreviewBridge: FC<{ provider: string }> = ({
|
|||
// after mount; useForm's `values` prop then reactively resets the
|
||||
// form to the seed AFTER any field-level `register('x', { value })`
|
||||
// defaults have been applied, so the seed wins.
|
||||
const [init, setInit] = useState<InitPayload>({});
|
||||
const [init, setInit] = useState<InitPayload>(null);
|
||||
useEffect(() => {
|
||||
if (typeof window !== 'undefined' && window.__PROVIDER_INIT__) {
|
||||
setInit(window.__PROVIDER_INIT__);
|
||||
setInit(window.__PROVIDER_INIT__ || {});
|
||||
}
|
||||
}, []);
|
||||
|
||||
|
|
@ -75,6 +75,10 @@ export const ProviderPreviewBridge: FC<{ provider: string }> = ({
|
|||
};
|
||||
}, []);
|
||||
|
||||
if (!init) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<ProviderPreviewComponent
|
||||
provider={provider}
|
||||
|
|
@ -86,3 +90,5 @@ export const ProviderPreviewBridge: FC<{ provider: string }> = ({
|
|||
/>
|
||||
);
|
||||
};
|
||||
|
||||
export default ProviderPreviewBridge;
|
||||
|
|
|
|||
13
apps/frontend/src/app/(provider)/provider/[p]/in-bridge.tsx
Normal file
13
apps/frontend/src/app/(provider)/provider/[p]/in-bridge.tsx
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
'use client';
|
||||
import dynamic from 'next/dynamic';
|
||||
import { FC } from 'react';
|
||||
const Bridge = dynamic(
|
||||
() =>
|
||||
import(
|
||||
'@gitroom/frontend/components/provider-preview/preview.provider.component'
|
||||
).then((mod) => mod.ProviderPreviewComponent),
|
||||
{ ssr: false }
|
||||
);
|
||||
export const InBridge: FC<{ provider: string }> = ({ provider }) => {
|
||||
return <Bridge provider={provider} />;
|
||||
};
|
||||
|
|
@ -55,7 +55,7 @@
|
|||
* If a different channel is needed, adjust ./bridge.tsx — this page is only
|
||||
* a server wrapper that forwards the `:p` route param.
|
||||
*/
|
||||
import { ProviderPreviewBridge } from './bridge';
|
||||
import { InBridge } from '@gitroom/frontend/app/(provider)/provider/[p]/in-bridge';
|
||||
|
||||
export default async function Page({
|
||||
params,
|
||||
|
|
@ -63,5 +63,5 @@ export default async function Page({
|
|||
params: Promise<{ p: string }>;
|
||||
}) {
|
||||
const { p } = await params;
|
||||
return <ProviderPreviewBridge provider={p} />;
|
||||
return <InBridge provider={p} />;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue