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:
+7
-18
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user