Skip to content

Commit eda6b7d

Browse files
committed
fix: assetsNode clean imrprove & css update&preview
1 parent bdfa90c commit eda6b7d

File tree

8 files changed

+29
-17
lines changed

8 files changed

+29
-17
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Visit: https://coldemo.github.io/
88
- [ ] antd4, safe js exec sandbox - see pureproxy
99
- [ ] lang ts/tsx/vue/py/rb/java
1010
- [ ] storage list, reset btn, responsive, screenshot
11-
- [ ] error-handling, sandboxNode
11+
- [ ] error-handling, assetsNode
1212
- [x] gh-pages, lang js/jsx, react/vue, umd-hack
1313
- [x] code read from url, storybook cards
1414
- [x] web worker for babel transform

public/code/vue-at.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,17 @@ await loadJsForceUmd({
1010

1111
appendCss(`
1212
.container { padding: 20px }
13-
.editor { padding:4px 8px; height:120px; border:solid 1px gray; white-space:pre-wrap }
13+
.editor { margin-top:20px; padding:4px 8px; height:120px; border:solid 1px gray; white-space:pre-wrap }
1414
`)
1515

1616
let App = {
1717
components: { At: VueAt },
1818
template: `
1919
<div class="container">
2020
<h1>Vue At</h1>
21-
<div style="margin-top:20px">
22-
<at :members="members" v-model="input">
23-
<div class="editor" contenteditable></div>
24-
</at>
25-
</div>
21+
<at :members="members" v-model="input">
22+
<div class="editor" contenteditable></div>
23+
</at>
2624
</div>
2725
`,
2826
data() {

src/gallery/page.css

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@
2020
height: 100%;
2121
}
2222

23-
@media (max-width: 360px) {
23+
/* @media (max-width: 360px) {
2424
.page-gallery .ant-col-xs-12 {
2525
width: 100% !important;
2626
}
27-
}
27+
} */
2828

2929
@media (min-width: 640px) and (max-width: 899px) {
3030
.page-gallery .ant-col-sm-12 {
@@ -42,9 +42,11 @@
4242
.ant-card-body {
4343
padding: 12px;
4444
}
45+
4546
.ant-card-meta-title {
4647
font-size: 12px;
4748
}
49+
4850
.page-gallery .ant-card-cover {
4951
height: 120px;
5052
}

src/playground/Playground.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,7 @@ export let Playground: React.FC = () => {
181181
<MainCol style={{ flex: 1, overflowX: 'auto' }}>
182182
<GentleSpin spinning={previewLoading}>
183183
<MountNode id="mountNode" />
184+
<div id="assetsNode" />
184185
</GentleSpin>
185186
</MainCol>
186187
<DragSizing

src/playground/page.css

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,9 @@
77
height: 100%;
88
}
99

10-
.page-playground #mountNode {
11-
min-height: 100px;
12-
overflow-y: auto;
13-
word-break: break-word;
10+
.page-playground #assetsNode,
11+
.page-playground #assetsNodeOutdated {
12+
display: none;
1413
}
1514

1615
.page-playground .ant-spin-nested-loading,

src/playground/styled.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ export let MainCol = styled(Col)`
2727

2828
export let MountNode = styled.div`
2929
height: 100%;
30+
min-height: 100px;
31+
overflow-y: auto;
32+
word-break: break-word;
3033
`;
3134

3235
export let ErrorInfo = styled.pre`

src/playground/types.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
interface Window {
2+
assetsNode: HTMLDivElement;
23
mountNode: HTMLDivElement;
34
}

src/playground/util.tsx

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ export let loadJs = (url: string) => {
5050
el.onerror = e => {
5151
reject(new Error(`loadJs onerror - ${url}`));
5252
};
53-
window.mountNode.appendChild(el);
53+
window.assetsNode.appendChild(el);
5454
});
5555
};
5656

@@ -65,26 +65,33 @@ export let loadCss = (url: string) => {
6565
el.onerror = e => {
6666
reject(new Error(`loadCss onerror - ${url}`));
6767
};
68-
window.mountNode.appendChild(el);
68+
window.assetsNode.appendChild(el);
6969
});
7070
};
7171

7272
export let appendJs = (code: string) => {
7373
let el = document.createElement('script');
7474
el.innerHTML = code;
75-
window.mountNode.appendChild(el);
75+
window.assetsNode.appendChild(el);
7676
};
7777

7878
export let appendCss = (code: string) => {
7979
let el = document.createElement('style');
8080
el.innerHTML = code;
81-
window.mountNode.appendChild(el);
81+
window.assetsNode.appendChild(el);
8282
};
8383

8484
export let wrapCode = (code: string) => {
8585
return `
8686
(async () => {
8787
setRendering(true)
88+
89+
let a0 = assetsNode
90+
a0.id = 'assetsNodeOutdated'
91+
let a1 = document.createElement('div')
92+
a1.id = 'assetsNode'
93+
a0.parentNode.appendChild(a1)
94+
8895
// mountNode.innerHTML = '' // can cause error in react
8996
ReactDOM.unmountComponentAtNode(mountNode)
9097
try {
@@ -102,6 +109,7 @@ export let wrapCode = (code: string) => {
102109
} else {
103110
ReactDOM.render(React.createElement(App), mountNode)
104111
}
112+
a0.parentNode.removeChild(a0)
105113
} catch (err) {
106114
console.error(['displayError', err])
107115
displayError(err)

0 commit comments

Comments
 (0)