Merge pull request #4019 from microsoft/hediet/b/right-raccoon

Repairs example urls
This commit is contained in:
Henning Dieterichs 2023-06-12 11:59:38 +02:00 committed by GitHub
commit d514ddaa8d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 11 deletions

6
.vscode/launch.json vendored
View file

@ -15,6 +15,12 @@
"order": 1 "order": 1
} }
}, },
{
"name": "Website",
"type": "chrome",
"request": "launch",
"url": "http://localhost:8080/"
},
{ {
// Clone VS Code and make sure the task "Launch Http Server" runs. // Clone VS Code and make sure the task "Launch Http Server" runs.
// Then the editor is build from sources. // Then the editor is build from sources.

View file

@ -322,12 +322,18 @@ function projectEquals(
project2: IPlaygroundProject project2: IPlaygroundProject
): boolean { ): boolean {
return ( return (
project1.css === project2.css && normalizeLineEnding(project1.css) ===
project1.html === project2.html && normalizeLineEnding(project2.css) &&
project1.js === project2.js normalizeLineEnding(project1.html) ===
normalizeLineEnding(project2.html) &&
normalizeLineEnding(project1.js) === normalizeLineEnding(project2.js)
); );
} }
function normalizeLineEnding(str: string): string {
return str.replace(/\r\n/g, "\n");
}
class StateUrlSerializer implements IHistoryModel { class StateUrlSerializer implements IHistoryModel {
public readonly dispose = Disposable.fn(); public readonly dispose = Disposable.fn();
@ -443,16 +449,21 @@ class StateUrlSerializer implements IHistoryModel {
this._sourceOverride = source; this._sourceOverride = source;
} }
function findExample(hashValue: string): PlaygroundExample | undefined {
if (hashValue.startsWith("example-")) {
hashValue = hashValue.substring("example-".length);
}
return getPlaygroundExamples()
.flatMap((e) => e.examples)
.find((e) => e.id === hashValue);
}
let example: PlaygroundExample | undefined;
if (!hashValue) { if (!hashValue) {
this.model.selectedExample = getPlaygroundExamples()[0].examples[0]; this.model.selectedExample = getPlaygroundExamples()[0].examples[0];
} else if (hashValue.startsWith("example-")) { } else if ((example = findExample(hashValue))) {
const exampleName = hashValue.substring("example-".length); this.model.selectedExample = example;
const example = getPlaygroundExamples()
.flatMap((e) => e.examples)
.find((e) => e.id === exampleName);
if (example) {
this.model.selectedExample = example;
}
} else { } else {
let p: IPlaygroundProject | undefined = undefined; let p: IPlaygroundProject | undefined = undefined;
if (this.cachedState?.hash === hashValue) { if (this.cachedState?.hash === hashValue) {