Skip to content

Commit

Permalink
Repairs example urls
Browse files Browse the repository at this point in the history
  • Loading branch information
hediet committed Jun 12, 2023
1 parent 60a0876 commit 990456e
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 11 deletions.
6 changes: 6 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@
"order": 1
}
},
{
"name": "Website",
"type": "chrome",
"request": "launch",
"url": "http://localhost:8080/"
},
{
// Clone VS Code and make sure the task "Launch Http Server" runs.
// Then the editor is build from sources.
Expand Down
33 changes: 22 additions & 11 deletions website/src/website/pages/playground/PlaygroundModel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -322,12 +322,18 @@ function projectEquals(
project2: IPlaygroundProject
): boolean {
return (
project1.css === project2.css &&
project1.html === project2.html &&
project1.js === project2.js
normalizeLineEnding(project1.css) ===
normalizeLineEnding(project2.css) &&
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 {
public readonly dispose = Disposable.fn();

Expand Down Expand Up @@ -443,16 +449,21 @@ class StateUrlSerializer implements IHistoryModel {
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) {
this.model.selectedExample = getPlaygroundExamples()[0].examples[0];
} else if (hashValue.startsWith("example-")) {
const exampleName = hashValue.substring("example-".length);
const example = getPlaygroundExamples()
.flatMap((e) => e.examples)
.find((e) => e.id === exampleName);
if (example) {
this.model.selectedExample = example;
}
} else if ((example = findExample(hashValue))) {
this.model.selectedExample = example;
} else {
let p: IPlaygroundProject | undefined = undefined;
if (this.cachedState?.hash === hashValue) {
Expand Down

0 comments on commit 990456e

Please sign in to comment.