Remove multiTs from location hash (#340)

Just keep as regular property on Item, as no need to read it from user
input, as multiTs is looked up from wabac API.
This commit is contained in:
Ilya Kreymer
2024-06-21 15:46:47 -07:00
committed by GitHub
parent 105562abf9
commit 11ca78c5b6
+7 -18
View File
@@ -99,7 +99,6 @@ export type EmbedReplayEvent = EmbedReplayData & {
}; };
export type TabData = EmbedReplayData & { export type TabData = EmbedReplayData & {
multiTs?: string[];
currList?: number; currList?: number;
urlSearchType?: string; urlSearchType?: string;
currMime?: string; currMime?: string;
@@ -189,6 +188,9 @@ class Item extends LitElement {
@property({ type: Boolean }) @property({ type: Boolean })
replayNotFoundError = false; replayNotFoundError = false;
@property({ type: Array })
multiTs?: string[] = [];
private splitter: Split.Instance | null = null; private splitter: Split.Instance | null = null;
private _replaceLoc = false; private _replaceLoc = false;
@@ -262,10 +264,11 @@ class Item extends LitElement {
window.encodeURIComponent(this.tabData.url), window.encodeURIComponent(this.tabData.url),
); );
if (resp.status !== 200) { if (resp.status !== 200) {
this.multiTs = [];
return; return;
} }
const json = await resp.json(); const json = await resp.json();
this.updateTabData({ multiTs: json.timestamps }, true); this.multiTs = json.timestamps;
} }
willUpdate(changedProperties: Map<string, Record<string, unknown>>) { willUpdate(changedProperties: Map<string, Record<string, unknown>>) {
@@ -274,12 +277,8 @@ class Item extends LitElement {
const tabData: TabData = {}; const tabData: TabData = {};
Object.entries(this.tabData).forEach(([key, value]) => { Object.entries(this.tabData).forEach(([key, value]) => {
if (!value) return; if (!value) return;
if (key === "multiTs" && typeof value === "string") {
tabData[key] = value.split(",");
} else {
// @ts-expect-error [// TODO: Fix this the next time the file is edited.] - TS7053 - Element implicitly has an 'any' type because expression of type 'string' can't be used to index type '{}'. // @ts-expect-error [// TODO: Fix this the next time the file is edited.] - TS7053 - Element implicitly has an 'any' type because expression of type 'string' can't be used to index type '{}'.
tabData[key] = value; tabData[key] = value;
}
}); });
this.tabData = tabData; this.tabData = tabData;
@@ -291,18 +290,8 @@ class Item extends LitElement {
} }
updated(changedProperties: PropertyValues<this>) { updated(changedProperties: PropertyValues<this>) {
// if (changedProperties.has("url") || changedProperties.has("ts")) {
// if (this.url.startsWith("rwp?")) {
// this.tabData = Object.fromEntries(new URLSearchParams(this.url.slice(4)).entries());
// } else {
// this.tabData = {view: "replay", url: this.url, ts: this.ts};
// }
// }
if (changedProperties.has("sourceUrl")) { if (changedProperties.has("sourceUrl")) {
// TODO: Fix this the next time the file is edited. void this.doUpdateInfo();
// eslint-disable-next-line @typescript-eslint/no-floating-promises
this.doUpdateInfo();
} }
if (changedProperties.has("editable")) { if (changedProperties.has("editable")) {
if (this.editable && this.autoUpdateInterval && !this._autoUpdater) { if (this.editable && this.autoUpdateInterval && !this._autoUpdater) {
@@ -1422,7 +1411,7 @@ class Item extends LitElement {
private renderTimestamp() { private renderTimestamp() {
const timestampStrs: { date: string; label: string }[] = []; const timestampStrs: { date: string; label: string }[] = [];
this.tabData.multiTs?.forEach((ts) => { this.multiTs?.forEach((ts) => {
// Filter out invalid dates // Filter out invalid dates
try { try {
const date = getDateFromTS(+ts); const date = getDateFromTS(+ts);