diff --git a/src/app/components/generator/SchemaGenerator.tsx b/src/app/components/generator/SchemaGenerator.tsx index 4bc95205..ca58b9f2 100644 --- a/src/app/components/generator/SchemaGenerator.tsx +++ b/src/app/components/generator/SchemaGenerator.tsx @@ -204,9 +204,7 @@ export function SchemaGenerator({ gen, allowedVersions }: Props) { const loadPreset = async (id: string) => { try { - const preset = await fetchPreset(version, genPath(gen, version), id) - // TODO: sync random seed - return preset + return await fetchPreset(version, genPath(gen, version), id) } catch (e) { setError(`Cannot load preset ${id} in ${version}`) setCurrentPreset(undefined, true) @@ -235,27 +233,21 @@ export function SchemaGenerator({ gen, allowedVersions }: Props) { setShareUrl(`${location.origin}/${gen.url}/?version=${version}&preset=${currentPreset}`) setShareShown(true) copySharedId() - } else { - // TODO: check if files hasn't been modified compared to the default - if (false) { - setShareUrl(`${location.origin}/${gen.url}/?version=${version}`) - setShareShown(true) - } else if (doc) { - setShareLoading(true) - shareSnippet(gen.id, version, doc.getText(), previewShown) - .then(({ id, length, compressed, rate }) => { - Analytics.createSnippet(gen.id, id, version, length, compressed, rate) - const url = `${location.origin}/${gen.url}/?${SHARE_KEY}=${id}` - setShareUrl(url) - setShareShown(true) - }) - .catch(e => { - if (e instanceof Error) { - setError(e) - } - }) - .finally(() => setShareLoading(false)) - } + } else if (doc) { + setShareLoading(true) + shareSnippet(gen.id, version, doc.getText(), previewShown) + .then(({ id, length, compressed, rate }) => { + Analytics.createSnippet(gen.id, id, version, length, compressed, rate) + const url = `${location.origin}/${gen.url}/?${SHARE_KEY}=${id}` + setShareUrl(url) + setShareShown(true) + }) + .catch(e => { + if (e instanceof Error) { + setError(e) + } + }) + .finally(() => setShareLoading(false)) } } const copySharedId = () => { diff --git a/src/app/components/generator/SourcePanel.tsx b/src/app/components/generator/SourcePanel.tsx index 05c74b21..5a9bf511 100644 --- a/src/app/components/generator/SourcePanel.tsx +++ b/src/app/components/generator/SourcePanel.tsx @@ -148,7 +148,6 @@ export function SourcePanel({ docAndNode, doCopy, doDownload, doImport, copySucc } }, [highlighting]) - // TODO: when file contents change, retransform useEffect(() => { if (retransform.current && text !== undefined) { retransform.current() diff --git a/src/app/services/Spyglass.ts b/src/app/services/Spyglass.ts index 1f3ec5ab..192b30c3 100644 --- a/src/app/services/Spyglass.ts +++ b/src/app/services/Spyglass.ts @@ -160,7 +160,12 @@ export class SpyglassService { } private async notifyChange(doc: TextDocument) { - await this.service.project.onDidChange(doc.uri, [{ text: doc.getText() }], doc.version + 1) + const docAndNode = this.service.project.getClientManaged(doc.uri) + if (docAndNode) { + await this.service.project.onDidChange(doc.uri, [{ text: doc.getText() }], doc.version + 1) + } else { + await this.service.project.onDidOpen(doc.uri, doc.languageId, doc.version, doc.getText()) + } await this.service.project.ensureClientManagedChecked(doc.uri) }