mirror of
https://github.com/misode/misode.github.io.git
synced 2026-04-23 07:10:41 +00:00
Fix issue when switching versions and generators at the same time
This commit is contained in:
@@ -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 = () => {
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user