mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-10-28 00:12:25 +00:00
- Add ellipsis truncation for titles and usernames - Implement scroll-on-hover (desktop) and scroll-on-center (mobile) - Fix mobile layout blowout using min-width: 0 on flex containers - Add IntersectionObserver and ResizeObserver mocks for tests
72 lines
1.7 KiB
JavaScript
72 lines
1.7 KiB
JavaScript
if (typeof globalThis.window === "undefined") {
|
|
globalThis.window = {};
|
|
}
|
|
|
|
if (typeof globalThis.self === "undefined") {
|
|
globalThis.self = globalThis;
|
|
}
|
|
|
|
if (typeof globalThis.WebSocket === "undefined") {
|
|
globalThis.WebSocket = class WebSocket {};
|
|
}
|
|
|
|
if (typeof globalThis.navigator === "undefined") {
|
|
globalThis.navigator = { userAgent: "node" };
|
|
}
|
|
|
|
if (typeof globalThis.window.WebSocket === "undefined") {
|
|
globalThis.window.WebSocket = globalThis.WebSocket;
|
|
}
|
|
|
|
if (typeof globalThis.window.navigator === "undefined") {
|
|
globalThis.window.navigator = globalThis.navigator;
|
|
}
|
|
|
|
if (typeof globalThis.localStorage === "undefined") {
|
|
const store = new Map();
|
|
globalThis.localStorage = {
|
|
getItem(key) {
|
|
return store.has(key) ? store.get(key) : null;
|
|
},
|
|
setItem(key, value) {
|
|
store.set(String(key), String(value));
|
|
},
|
|
removeItem(key) {
|
|
store.delete(key);
|
|
},
|
|
clear() {
|
|
store.clear();
|
|
},
|
|
};
|
|
}
|
|
|
|
if (typeof globalThis.window.localStorage === "undefined") {
|
|
globalThis.window.localStorage = globalThis.localStorage;
|
|
}
|
|
|
|
if (typeof globalThis.structuredClone === "undefined") {
|
|
globalThis.structuredClone = (val) => JSON.parse(JSON.stringify(val));
|
|
}
|
|
|
|
if (typeof globalThis.IntersectionObserver === "undefined") {
|
|
globalThis.IntersectionObserver = class IntersectionObserver {
|
|
constructor(callback) {
|
|
this.callback = callback;
|
|
}
|
|
observe(element) {}
|
|
unobserve(element) {}
|
|
disconnect() {}
|
|
};
|
|
}
|
|
|
|
if (typeof globalThis.ResizeObserver === "undefined") {
|
|
globalThis.ResizeObserver = class ResizeObserver {
|
|
constructor(callback) {
|
|
this.callback = callback;
|
|
}
|
|
observe(element) {}
|
|
unobserve(element) {}
|
|
disconnect() {}
|
|
};
|
|
}
|