Fix loading of demos
This commit is contained in:
parent
0a99893f77
commit
b76ac89d44
3 changed files with 19 additions and 6 deletions
|
|
@ -61,7 +61,7 @@ window.addEventListener('load', async () => {
|
|||
|
||||
registerCustomAppHeightCSSProperty();
|
||||
|
||||
const fs = await createEditorFS({prefix: '/', allowPersistence: isInStandaloneMode});
|
||||
const fs = await createEditorFS({prefix: '/libraries/', allowPersistence: isInStandaloneMode});
|
||||
|
||||
await registerOpenSCADLanguage(fs, '/', zipArchives);
|
||||
|
||||
|
|
|
|||
|
|
@ -93,6 +93,11 @@ addEventListener('message', async (e) => {
|
|||
if (inputs) {
|
||||
for (const source of inputs) {
|
||||
try {
|
||||
if (source.path.startsWith('/libraries/')) {
|
||||
console.log(`Skipping ${source.path}`);
|
||||
continue;
|
||||
}
|
||||
console.log(`Writing ${source.path}`);
|
||||
instance.FS.writeFile(source.path, await fetchSource(source));
|
||||
} catch (e) {
|
||||
console.trace(e);
|
||||
|
|
|
|||
|
|
@ -118,17 +118,24 @@ export class Model {
|
|||
}
|
||||
|
||||
openFile(path: string) {
|
||||
// alert(`TODO: open ${path}`);
|
||||
// console.log(`openFile: ${path}`);
|
||||
if (this.mutate(s => {
|
||||
if (s.params.activePath != path) {
|
||||
s.params.activePath = path;
|
||||
if (!s.params.sources.find(src => src.path === path)) {
|
||||
let content = '';
|
||||
const readSource = (path: string) => {
|
||||
try {
|
||||
content = new TextDecoder("utf-8").decode(this.fs.readFileSync(path));
|
||||
return new TextDecoder("utf-8").decode(this.fs.readFileSync(path));
|
||||
} catch (e) {
|
||||
console.error('Error while reading file:', e);
|
||||
return '';
|
||||
}
|
||||
};
|
||||
// Remove source of previous active path if it's unmodified
|
||||
const activePathContent = readSource(s.params.activePath);
|
||||
s.params.sources = s.params.sources.filter(src => src.path !== s.params.activePath || src.content != activePathContent);
|
||||
|
||||
s.params.activePath = path;
|
||||
if (!s.params.sources.find(src => src.path === path)) {
|
||||
const content = readSource(path);
|
||||
s.params.sources = [...s.params.sources, {path, content}];
|
||||
}
|
||||
s.lastCheckerRun = undefined;
|
||||
|
|
@ -307,6 +314,7 @@ export class Model {
|
|||
}
|
||||
|
||||
async render({isPreview, mountArchives, now, retryInOtherDim}: {isPreview: boolean, mountArchives?: boolean, now: boolean, retryInOtherDim?: boolean}) {
|
||||
// console.log(JSON.stringify(this.state, null, 2));
|
||||
mountArchives ??= true;
|
||||
retryInOtherDim ??= true;
|
||||
const setRendering = (s: State, value: boolean) => {
|
||||
|
|
|
|||
Loading…
Reference in a new issue