test LiveCodes
This commit is contained in:
parent
a0a9f91501
commit
b6e67b790f
@ -27,6 +27,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@codesandbox/sandpack-react": "^2.20.0",
|
"@codesandbox/sandpack-react": "^2.20.0",
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
|
"livecodes": "^0.11.1",
|
||||||
"react": "^19.1.0",
|
"react": "^19.1.0",
|
||||||
"react-dom": "^19.1.0"
|
"react-dom": "^19.1.0"
|
||||||
},
|
},
|
||||||
|
8
pnpm-lock.yaml
generated
8
pnpm-lock.yaml
generated
@ -14,6 +14,9 @@ importers:
|
|||||||
clsx:
|
clsx:
|
||||||
specifier: ^2.1.1
|
specifier: ^2.1.1
|
||||||
version: 2.1.1
|
version: 2.1.1
|
||||||
|
livecodes:
|
||||||
|
specifier: ^0.11.1
|
||||||
|
version: 0.11.1
|
||||||
react:
|
react:
|
||||||
specifier: ^19.1.0
|
specifier: ^19.1.0
|
||||||
version: 19.1.0
|
version: 19.1.0
|
||||||
@ -832,6 +835,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==}
|
resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==}
|
||||||
engines: {node: '>= 12.0.0'}
|
engines: {node: '>= 12.0.0'}
|
||||||
|
|
||||||
|
livecodes@0.11.1:
|
||||||
|
resolution: {integrity: sha512-v+TF4pD4wVk+7jYV7WD+PGMxU/zWlATZ80Y7ze6gAgPCJMdWNwbz5Y16+BSbwmfPjFeyMTSGWSYuiCEwEBkSzw==}
|
||||||
|
|
||||||
lru-cache@5.1.1:
|
lru-cache@5.1.1:
|
||||||
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
|
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
|
||||||
|
|
||||||
@ -1747,6 +1753,8 @@ snapshots:
|
|||||||
lightningcss-win32-arm64-msvc: 1.30.1
|
lightningcss-win32-arm64-msvc: 1.30.1
|
||||||
lightningcss-win32-x64-msvc: 1.30.1
|
lightningcss-win32-x64-msvc: 1.30.1
|
||||||
|
|
||||||
|
livecodes@0.11.1: {}
|
||||||
|
|
||||||
lru-cache@5.1.1:
|
lru-cache@5.1.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
yallist: 3.1.1
|
yallist: 3.1.1
|
||||||
|
100
src/App.tsx
100
src/App.tsx
@ -1,62 +1,50 @@
|
|||||||
import { SandpackPreviewRef, useSandpack, SandpackPreview, SandpackFileExplorer, Sandpack } from '@codesandbox/sandpack-react';
|
// import LiveCodes from 'livecodes/react';
|
||||||
import { useEffect, useRef } from 'react';
|
import { createPlayground } from 'livecodes';
|
||||||
import { SandpackProvider, SandpackLayout, SandpackCodeEditor } from '@codesandbox/sandpack-react';
|
import { useEffect } from 'react';
|
||||||
|
|
||||||
|
const config = {
|
||||||
|
markup: {
|
||||||
|
language: 'markdown',
|
||||||
|
content: '# Hello World!',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
// const Playground = () => (
|
||||||
|
// <LiveCodes
|
||||||
|
// config={{
|
||||||
|
// markup: {
|
||||||
|
// language: 'markdown',
|
||||||
|
// content: '# Hello World!',
|
||||||
|
// },
|
||||||
|
// }}
|
||||||
|
// view='result'
|
||||||
|
// />
|
||||||
|
// );
|
||||||
|
|
||||||
export const App = () => {
|
export const App = () => {
|
||||||
|
useEffect(() => {
|
||||||
|
init();
|
||||||
|
}, []);
|
||||||
|
const init = async () => {
|
||||||
|
const playground = await createPlayground('#container', {
|
||||||
|
// template: 'react',
|
||||||
|
// other embed options
|
||||||
|
config: {
|
||||||
|
markup: {
|
||||||
|
language: 'markdown',
|
||||||
|
content: '# Hello World!',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const config = await playground.getConfig();
|
||||||
|
// @ts-ignore
|
||||||
|
window.playground = playground;
|
||||||
|
console.log(config, playground);
|
||||||
|
};
|
||||||
return (
|
return (
|
||||||
<div>
|
<div className='App'>
|
||||||
<h1>Welcome to the App</h1>
|
<h1>LiveCodes Playground</h1>
|
||||||
<p>This is a simple React application.</p>
|
{/* <Playground /> */}
|
||||||
<div>
|
<div id='container'></div>
|
||||||
{/* <SandpackProvider template='react'>
|
|
||||||
<SandpackLayout>
|
|
||||||
<SandpackFileExplorer />
|
|
||||||
<SandpackCodeEditor />
|
|
||||||
</SandpackLayout>
|
|
||||||
</SandpackProvider> */}
|
|
||||||
{/* <SandpackPreviewClient /> */}
|
|
||||||
|
|
||||||
<Sandpack
|
|
||||||
template='react'
|
|
||||||
// template='node'
|
|
||||||
// options={{
|
|
||||||
// layout: 'console', // preview | tests | console
|
|
||||||
// }}
|
|
||||||
options={{
|
|
||||||
showNavigator: true,
|
|
||||||
// bundlerURL: 'https://sandpack-bundler.vercel.app',
|
|
||||||
bundlerURL: 'http://localhost:3000',
|
|
||||||
// bundlerURL: 'https://2-19-8-sandpack.codesandbox.io',
|
|
||||||
}}
|
|
||||||
files={{
|
|
||||||
'/App.js': `export default function App() { return <h1>Hello Sandpack!</h1>; }`,
|
|
||||||
'./index.html': {
|
|
||||||
code: `<html>12345</html>`,
|
|
||||||
},
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const SandpackPreviewClient: React.FC = () => {
|
|
||||||
const { sandpack } = useSandpack();
|
|
||||||
const previewRef = useRef<SandpackPreviewRef>(null);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
const client = previewRef.current?.getClient();
|
|
||||||
const clientId = previewRef.current?.clientId;
|
|
||||||
|
|
||||||
if (client && clientId) {
|
|
||||||
console.log(client);
|
|
||||||
console.log(sandpack.clients[clientId]);
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* NOTE: In order to make sure that the client will be available
|
|
||||||
* use the whole `sandpack` object as a dependency.
|
|
||||||
*/
|
|
||||||
}, [sandpack]);
|
|
||||||
|
|
||||||
return <SandpackPreview ref={previewRef} />;
|
|
||||||
};
|
|
||||||
|
62
src/sanpack/App.tsx
Normal file
62
src/sanpack/App.tsx
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
import { SandpackPreviewRef, useSandpack, SandpackPreview, SandpackFileExplorer, Sandpack } from '@codesandbox/sandpack-react';
|
||||||
|
import { useEffect, useRef } from 'react';
|
||||||
|
import { SandpackProvider, SandpackLayout, SandpackCodeEditor } from '@codesandbox/sandpack-react';
|
||||||
|
|
||||||
|
export const App = () => {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<h1>Welcome to the App</h1>
|
||||||
|
<p>This is a simple React application.</p>
|
||||||
|
<div>
|
||||||
|
{/* <SandpackProvider template='react'>
|
||||||
|
<SandpackLayout>
|
||||||
|
<SandpackFileExplorer />
|
||||||
|
<SandpackCodeEditor />
|
||||||
|
</SandpackLayout>
|
||||||
|
</SandpackProvider> */}
|
||||||
|
{/* <SandpackPreviewClient /> */}
|
||||||
|
|
||||||
|
<Sandpack
|
||||||
|
template='react'
|
||||||
|
// template='node'
|
||||||
|
// options={{
|
||||||
|
// layout: 'console', // preview | tests | console
|
||||||
|
// }}
|
||||||
|
options={{
|
||||||
|
showNavigator: true,
|
||||||
|
// bundlerURL: 'https://sandpack-bundler.vercel.app',
|
||||||
|
bundlerURL: 'http://localhost:3000',
|
||||||
|
// bundlerURL: 'https://2-19-8-sandpack.codesandbox.io',
|
||||||
|
}}
|
||||||
|
files={{
|
||||||
|
'/App.js': `export default function App() { return <h1>Hello Sandpack!</h1>; }`,
|
||||||
|
'./index.html': {
|
||||||
|
code: `<html>12345</html>`,
|
||||||
|
},
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
const SandpackPreviewClient: React.FC = () => {
|
||||||
|
const { sandpack } = useSandpack();
|
||||||
|
const previewRef = useRef<SandpackPreviewRef>(null);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const client = previewRef.current?.getClient();
|
||||||
|
const clientId = previewRef.current?.clientId;
|
||||||
|
|
||||||
|
if (client && clientId) {
|
||||||
|
console.log(client);
|
||||||
|
console.log(sandpack.clients[clientId]);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* NOTE: In order to make sure that the client will be available
|
||||||
|
* use the whole `sandpack` object as a dependency.
|
||||||
|
*/
|
||||||
|
}, [sandpack]);
|
||||||
|
|
||||||
|
return <SandpackPreview ref={previewRef} />;
|
||||||
|
};
|
Loading…
x
Reference in New Issue
Block a user