feat: state parsing

This commit is contained in:
TrèsAbhi committed 2024-08-10 14:20:48 -05:00
1 parent acf36ec461
commit 33a0af1bcd
1 file changed
+24 -9
+24 -9
View File
@@ -1,8 +1,11 @@
'use client'; 'use client';
import { Code, Text } from '@radix-ui/themes'; import { Code, Heading } from '@radix-ui/themes';
import { useMemo } from 'react';
import PageWrapper from '../../../../../components/PageWrapper'; import PageWrapper from '../../../../../components/PageWrapper';
import * as EmbedState from '../../../../../stores/embedState';
import { configurations } from '../../configurations'; import { configurations } from '../../configurations';
import { extractEmbedConfigDefaults } from '../../utilities';
export interface EmbedPreviewControllerProps { export interface EmbedPreviewControllerProps {
configKey: string; configKey: string;
@@ -15,14 +18,26 @@ export default function Page({
params: { embed: keyof typeof configurations }; params: { embed: keyof typeof configurations };
searchParams: { state: string }; searchParams: { state: string };
}) { }) {
return ( const config = configurations[params.embed];
<PageWrapper> const initialState = useMemo(
<Text>{params.embed}</Text> () => ({
...extractEmbedConfigDefaults(config),
...(JSON.parse(searchParams.state) as EmbedState.EmbedState),
}),
[params.embed],
);
<Text></Text> return (
<Code color="gray"> <EmbedState.Provider data={initialState}>
<pre>{JSON.stringify(JSON.parse(searchParams['state']), null, 2)}</pre> <PageWrapper>
</Code> <Heading>
</PageWrapper> <Code>{params.embed}</Code>
</Heading>
<Code color="gray">
<pre>{JSON.stringify(initialState, null, 2)}</pre>
</Code>
</PageWrapper>
</EmbedState.Provider>
); );
} }