Skip to content

Commit 357b526

Browse files
committed
chore: setRendering => add/removeLoading
1 parent b6e4d31 commit 357b526

File tree

5 files changed

+28
-16
lines changed

5 files changed

+28
-16
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ Visit: https://coldemo.github.io/
77
- [ ] vscode tsconfig src/\* alias (being reverted by npm-run-dev)
88
- [ ] antd4, safe js exec sandbox - see pureproxy
99
- [ ] storage list, responsive, screenshot, code-splitting
10-
- [ ] faked location/window, cookie/storage partition, setRendering.cancel
11-
- [ ] tag-filter/btn-back/reset/export/upload/fullscreen
10+
- [ ] faked location/window, cookie/storage partition
11+
- [ ] tag-filter/btn-back/reset/export/upload/fullscreen/popstate
1212
- [ ] lang rb/go/java/dart/kotlin, mjs-import/vite
13-
- [x] crank-jsx, vue-jsx, ts/tsx, py, vue
13+
- [x] crank-jsx, vue-jsx, ts/tsx, py, vue, add/removeRendering
1414
- [x] error-handling, assetsNode, load-parallel
1515
- [x] gh-pages, lang js/jsx, react/vue, umd-hack
1616
- [x] code read from url, storybook cards

public/code/espresso-todomvc.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,12 @@ let ToDoStore = Collection.extend({
6060
init: function() {
6161
this.clearCompleted = this.clearCompleted.bind(this);
6262
this.add = this.add.bind(this);
63-
this.reset(JSON.parse(localStorage.getItem(storageKey)));
63+
let storedTodos = JSON.parse(localStorage.getItem(storageKey));
64+
if (Array.isArray(storedTodos) && storedTodos.length) {
65+
this.reset(storedTodos);
66+
} else {
67+
localStorage.removeItem(storageKey);
68+
}
6469
this.addListener('change', this.save.bind(this));
6570
},
6671
add: function(txt) {
@@ -179,7 +184,9 @@ let App = Controller.extend({
179184
});
180185

181186
var store = new ToDoStore([
182-
// { id: 0, text: 'write todomvc', done: false },
187+
{ id: 0, text: 'respect to espresso.js', done: false },
188+
{ id: 1, text: 'espresso.js 520 stars including mine', done: false },
189+
{ id: 2, text: 'it\'s outdated but was in my early memory', done: false },
183190
]);
184191

185192
new App({ view: document.getElementById('todoapp') });

public/code/vanta.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ let VantaHeader = ({ theme }) => {
4545

4646
let loadVantaEffect = (el, theme) => {
4747
let promise = (async () => {
48-
setRendering(true)
48+
let removeLoading = addLoading()
4949
if (['halo', 'topology'].includes(theme)) {
5050
await loadJs('https://unpkg.com/[email protected]/vendor/p5.min.js')
5151
}
@@ -56,7 +56,7 @@ let loadVantaEffect = (el, theme) => {
5656
let ret = VANTA[method]({ el })
5757
let canvasHeight = el.querySelector('canvas').clientHeight
5858
el.style.height = `${canvasHeight}px`
59-
setRendering(false)
59+
removeLoading()
6060
return ret
6161
})()
6262
return () => {

src/playground/Playground.tsx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,15 @@ export let Playground: React.FC = () => {
126126

127127
let [preview, setPreview] = useState('');
128128
let [compiling, setCompiling] = useState(false);
129-
let [rendering, setRendering] = useState(false);
130-
let previewLoading = preloading || compiling || rendering;
129+
let [rendering, _setRendering] = useState(0);
130+
let previewLoading = preloading || compiling || rendering > 0;
131131

132-
Object.assign(window, { setRendering }); // without side-effect
132+
let addLoading = useCallback(() => {
133+
_setRendering(s => s + 1);
134+
return () => _setRendering(s => s - 1);
135+
}, []);
136+
137+
Object.assign(window, { addLoading }); // without side-effect
133138

134139
let doPreview = useCallback(
135140
async (code: string) => {

src/playground/codeTransform.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export let wrapVue = (code: string) => {
3131

3232
return `
3333
(async () => {
34-
setRendering(true)
34+
let removeLoading = addLoading()
3535
3636
let a0 = assetsNode
3737
a0.id = 'assetsNodeOutdated'
@@ -65,7 +65,7 @@ export let wrapVue = (code: string) => {
6565
console.error(['displayError', err])
6666
displayError(err)
6767
} finally {
68-
setRendering(false)
68+
removeLoading()
6969
}
7070
})()
7171
`.trim();
@@ -74,7 +74,7 @@ export let wrapVue = (code: string) => {
7474
export let wrapPy = (code: string) => {
7575
return `
7676
(async () => {
77-
setRendering(true)
77+
let removeLoading = addLoading()
7878
7979
let a0 = assetsNode
8080
a0.id = 'assetsNodeOutdated'
@@ -133,7 +133,7 @@ export let wrapPy = (code: string) => {
133133
console.error(['displayError', err])
134134
displayError(err)
135135
} finally {
136-
setRendering(false)
136+
removeLoading()
137137
}
138138
})()
139139
`.trim();
@@ -142,7 +142,7 @@ export let wrapPy = (code: string) => {
142142
export let wrapJs = (code: string) => {
143143
return `
144144
(async () => {
145-
setRendering(true)
145+
let removeLoading = addLoading()
146146
147147
let a0 = assetsNode
148148
a0.id = 'assetsNodeOutdated'
@@ -176,7 +176,7 @@ export let wrapJs = (code: string) => {
176176
console.error(['displayError', err])
177177
displayError(err)
178178
} finally {
179-
setRendering(false)
179+
removeLoading()
180180
}
181181
})()
182182
`.trim();

0 commit comments

Comments
 (0)