From e4743faf5f1b798c903f21e95a125b3e4522ae8d Mon Sep 17 00:00:00 2001 From: WardPearce Date: Sun, 1 Sep 2024 13:57:29 +1200 Subject: [PATCH 01/10] Added logos --- logo/Materialious.png | Bin 0 -> 35274 bytes logo/MaterialiousNoBg.svg | 1 + logo/MaterialiousNoBgNoCrop.svg | 57 +++++++++++++++++++++ logo/MaterialiousS.png | Bin 0 -> 43380 bytes logo/Meterialious.svg | 60 ++++++++++++++++++++++ logo/MeterialiousS.svg | 79 +++++++++++++++++++++++++++++ logo/splash.png | Bin 0 -> 38951 bytes materialious/electron/package.json | 1 + materialious/tsconfig.json | 16 ++++-- 9 files changed, 210 insertions(+), 4 deletions(-) create mode 100644 logo/Materialious.png create mode 100644 logo/MaterialiousNoBg.svg create mode 100644 logo/MaterialiousNoBgNoCrop.svg create mode 100644 logo/MaterialiousS.png create mode 100644 logo/Meterialious.svg create mode 100644 logo/MeterialiousS.svg create mode 100644 logo/splash.png diff --git a/logo/Materialious.png b/logo/Materialious.png new file mode 100644 index 0000000000000000000000000000000000000000..1aa00eed54ae491d83123345c2a5ab08a1288dd5 GIT binary patch literal 35274 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 \ No newline at end of file diff --git a/logo/MaterialiousNoBgNoCrop.svg b/logo/MaterialiousNoBgNoCrop.svg new file mode 100644 index 00000000..3936441d --- /dev/null +++ b/logo/MaterialiousNoBgNoCrop.svg @@ -0,0 +1,57 @@ + + + + diff --git a/logo/MaterialiousS.png b/logo/MaterialiousS.png new file mode 100644 index 0000000000000000000000000000000000000000..bf47baacccf1eea1938c2eebe9cf31577f8c1c58 GIT binary patch literal 43380 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 literal 0 HcmV?d00001 diff --git a/logo/Meterialious.svg b/logo/Meterialious.svg new file mode 100644 index 00000000..302a27bf --- /dev/null +++ b/logo/Meterialious.svg @@ -0,0 +1,60 @@ + + + + diff --git a/logo/MeterialiousS.svg b/logo/MeterialiousS.svg new file mode 100644 index 00000000..0d7c7c07 --- /dev/null +++ b/logo/MeterialiousS.svg @@ -0,0 +1,79 @@ + + + + diff --git a/logo/splash.png b/logo/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..c480c02fdf528ac00a15d2774c75047e9438dfbb GIT binary patch literal 38951 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 X?skRVwTn(QR3QB20^XHn8-MvXXOgJ; literal 0 HcmV?d00001 diff --git a/materialious/electron/package.json b/materialious/electron/package.json index 0b6ad8c4..934638c6 100644 --- a/materialious/electron/package.json +++ b/materialious/electron/package.json @@ -2,6 +2,7 @@ "name": "Materialious", "version": "1.1.10", "description": "Modern material design for Invidious.", + "type": "commonjs", "author": { "name": "Ward Pearce", "email": "wardpearce@pm.me" diff --git a/materialious/tsconfig.json b/materialious/tsconfig.json index f8f9f3fe..be94989f 100644 --- a/materialious/tsconfig.json +++ b/materialious/tsconfig.json @@ -10,12 +10,20 @@ "sourceMap": true, "strict": true, "moduleResolution": "bundler", - "types": ["vidstack/svelte"] + "types": [ + "vidstack/svelte" + ] }, - "include": ["src/**/*.ts", "src/**/*.d.ts"], - "exclude": ["node_modules", "dist"] + "include": [ + "src/**/*.ts", + "src/**/*.d.ts" + ], + "exclude": [ + "node_modules", + "dist" + ] // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias // // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes // from the referenced tsconfig.json - TypeScript does not merge them in -} +} \ No newline at end of file From c00dc4a884abe919d4eded2e0939d5dfcecc2847 Mon Sep 17 00:00:00 2001 From: WardPearce Date: Sun, 1 Sep 2024 14:08:21 +1200 Subject: [PATCH 02/10] Include electron build dir --- materialious/electron/.gitignore | 1 - .../electron/build/capacitor.config.js | 14 ++ materialious/electron/build/logo.png | Bin 0 -> 3059 bytes materialious/electron/build/src/index.js | 61 ++++++ materialious/electron/build/src/preload.js | 4 + .../electron/build/src/rt/electron-plugins.js | 2 + .../electron/build/src/rt/electron-rt.js | 68 ++++++ materialious/electron/build/src/setup.js | 202 ++++++++++++++++++ 8 files changed, 351 insertions(+), 1 deletion(-) create mode 100644 materialious/electron/build/capacitor.config.js create mode 100644 materialious/electron/build/logo.png create mode 100644 materialious/electron/build/src/index.js create mode 100644 materialious/electron/build/src/preload.js create mode 100644 materialious/electron/build/src/rt/electron-plugins.js create mode 100644 materialious/electron/build/src/rt/electron-rt.js create mode 100644 materialious/electron/build/src/setup.js diff --git a/materialious/electron/.gitignore b/materialious/electron/.gitignore index c340937a..67a91a7c 100644 --- a/materialious/electron/.gitignore +++ b/materialious/electron/.gitignore @@ -3,6 +3,5 @@ # And the CLI then renames it app node_modules -build dist logs diff --git a/materialious/electron/build/capacitor.config.js b/materialious/electron/build/capacitor.config.js new file mode 100644 index 00000000..d5819777 --- /dev/null +++ b/materialious/electron/build/capacitor.config.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const config = { + appId: 'us.materialio.app', + appName: 'Materialious', + webDir: 'build', + bundledWebRuntime: false, + plugins: { + CapacitorHttp: { + enabled: true + } + }, +}; +exports.default = config; diff --git a/materialious/electron/build/logo.png b/materialious/electron/build/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6f3a662cd24ca8759b0baf0040521a66b0bd185c GIT binary patch literal 3059 zcmbW3_fu2b7RS#yo@fde4iI9vj}lN(Ohnoh5QTsRlzJsJL5YB3dy1e4DsVJ_!HUwQ z7!?o#61qrBgecO2=tYrcsEPs#h!|R4?wh%PzP zmVZTDzR#DW)eZ77%Zeu_XbyrW(?sXUj+VtorkEo(ROP_05yzB^^4ujQWqfq$9lZFU zjDPvjJGjQH>l1&=X$QfN(h@#Ywp?7mL;FPVVqwAN%S$rP&&4^f&%ph1@LZ{OPKQ%O z-VhGy^x-O_aT~_W1KsBD(+|wUxo_+JiUQQXw?EY3n9(lj7Hq+9-q9JdFymyYdjdLQ zzKh2ag))Ae7pq=89Eo8ZKQVinQxkvZ2!GsR;9bS%HYe`%ueT)tCSv*cS1wZPH8>TT zZBezTQ8Rnyz#wegX4Agg>{ogpoJ+3@9iNh09HD&MPMV{H z&-|Rl(wTsEH5T&uACwzOP27iD@v$LW4s_^N?2 zv5F;hb3|K z#r+;S{TxRiZ=*>kOM3HDGxbzYytN|<8MN;lwIAM>c$HA>lit)MJYTkA)YQdc>2+MJJ$E`Mq`q>d zhn9pfUrffl@6|zx0d1{CG;v&P{Iie@C^%i$T4yx#%7;54F_koNM(j_sqbdPh3m?)p zlb;heT#9(L6k#ftXC&HLp1)m7m^xTP>w4WEmxPJoZfi@5?O9f)=Qo$8tfPJR!gjfj#CW-$l0Qd>-42&OW?6Sz zY;hl9`KRVieio3=N9=Jm>vPEOd9WT$iv1&vyX`}VVvZPhXjR4@*G#oBERu{-;|7I4 ze8jv}+MOP&>nLmUEqIf%Wo@#A@qv#lFh*u3hI(7B{HCrrRKjVBp(^R#%}H}h+e&CK=aZ=M6j#aaOdR=! zQT|19tqA^_5Uq-vrL_oaxLZ6ID1qbwhgjw^+YG_{Oy$K;U1Mh7~Vh= zG~5J}adFv5uo7hoXJ82i5q;etIQ*<_7SMU<1LVI!*b3WbvSi}Jeum>Ht@aIpvh-w6 z+J;-VI-$b#!bO-OtsJhx$5kM~M9PSRZW2W6Phpe*ID&x_s6_J3gtDkYZ;Wk-bt?n) zk50)4n(zkhpx!}Cj}jo(k^KQ5I6MD*AI8>&Ey2f)c4 wM|wcC~JeT0Au?nJB)xx zqf(v$Qv`!x@ZraVK|T5p>f3P)+nX&RAYlRNwZNT7yB#Q?7~#Dy0XRb_hCwV()B7~I z@!b9jz<^MU1+_;xa-cTJR}0!n74C!CNi3PTvR`14eB`tI|fw4a9XdJQ}<&gqBClnilS1h-#bwuer%>*i4 z9F1-R>q)+sp{N5`TOwun>#B8lqzti>A+FdKw9Z7X6Di``c6b#^@1q^o7;K2k-U6UA zVgQ0S3WG3M2Kxmb$wdexN-M6I30@)kHbJni@Gb^BHE;C+f=#tZo9O6!g=P|ku9dV2 zl|I^0kNMtiH3t16`A+>U66jY3!n+JaM0?Z$5hmI1=m4Mk_A3Q-(mF^0FNM5(Zw=i3 z_{Kv4+!o;-v>ndnDzuOU5`NtlsFF0O0(wWLTw?)+(V@G5_xgt^=n1WZODmmku>ui6 zF~Y-($vHGQkSffF7^ir8zS`*9mw|S`Q>zrLcpuvws!T62R21YPPcebNN5ukq>xBnE zwfcmcfV^tIia^W$1D46ZF`+21u$N$&k=DIy(4}%e3&j1|S=mQ4ypM909RruiSwl zX$A!iJD-=mIpX**t;LC(@)f%B7=uZ{uRYNbt1Mhm!hiIvRVmY9NthP^w`eEr1r z0@s)Y?DvrKo*W=Ky2}QA`nW&|Q`s808Pq$Uybk|er(p@s{i0k9)iecKg8fl>_8>`h zQdh7mrJ2at_pfEh`@f;I?mCE8&&UO?_lWwT^s9LcP-NKagO=*6Q0cDf5<(y;#}|{! z { + // Wait for electron app to be ready. + await electron_2.app.whenReady(); + // Security - Set Content-Security-Policy based on whether or not we are in dev mode. + (0, setup_1.setupContentSecurityPolicy)(myCapacitorApp.getCustomURLScheme()); + // Initialize our app, build windows, and load content. + await myCapacitorApp.init(); + // Check for updates if we are in a packaged app. + electron_updater_1.autoUpdater.checkForUpdatesAndNotify(); +})(); +// Handle when all of our windows are close (platforms have their own expectations). +electron_2.app.on('window-all-closed', function () { + // On OS X it is common for applications and their menu bar + // to stay active until the user quits explicitly with Cmd + Q + if (process.platform !== 'darwin') { + electron_2.app.quit(); + } +}); +// When the dock icon is clicked. +electron_2.app.on('activate', async function () { + // On OS X it's common to re-create a window in the app when the + // dock icon is clicked and there are no other windows open. + if (myCapacitorApp.getMainWindow().isDestroyed()) { + await myCapacitorApp.init(); + } +}); +// Place all ipc or other electron api calls and custom functionality under this line diff --git a/materialious/electron/build/src/preload.js b/materialious/electron/build/src/preload.js new file mode 100644 index 00000000..c817d3b7 --- /dev/null +++ b/materialious/electron/build/src/preload.js @@ -0,0 +1,4 @@ +require('./rt/electron-rt'); +////////////////////////////// +// User Defined Preload scripts below +console.log('User Preload!'); diff --git a/materialious/electron/build/src/rt/electron-plugins.js b/materialious/electron/build/src/rt/electron-plugins.js new file mode 100644 index 00000000..0141d0c9 --- /dev/null +++ b/materialious/electron/build/src/rt/electron-plugins.js @@ -0,0 +1,2 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ +module.exports = {}; diff --git a/materialious/electron/build/src/rt/electron-rt.js b/materialious/electron/build/src/rt/electron-rt.js new file mode 100644 index 00000000..6260d86a --- /dev/null +++ b/materialious/electron/build/src/rt/electron-rt.js @@ -0,0 +1,68 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const crypto_1 = require("crypto"); +const electron_1 = require("electron"); +const events_1 = require("events"); +//////////////////////////////////////////////////////// +// eslint-disable-next-line @typescript-eslint/no-var-requires +const plugins = require('./electron-plugins'); +const randomId = (length = 5) => (0, crypto_1.randomBytes)(length).toString('hex'); +const contextApi = {}; +Object.keys(plugins).forEach((pluginKey) => { + Object.keys(plugins[pluginKey]) + .filter((className) => className !== 'default') + .forEach((classKey) => { + const functionList = Object.getOwnPropertyNames(plugins[pluginKey][classKey].prototype).filter((v) => v !== 'constructor'); + if (!contextApi[classKey]) { + contextApi[classKey] = {}; + } + functionList.forEach((functionName) => { + if (!contextApi[classKey][functionName]) { + contextApi[classKey][functionName] = (...args) => electron_1.ipcRenderer.invoke(`${classKey}-${functionName}`, ...args); + } + }); + // Events + if (plugins[pluginKey][classKey].prototype instanceof events_1.EventEmitter) { + const listeners = {}; + const listenersOfTypeExist = (type) => !!Object.values(listeners).find((listenerObj) => listenerObj.type === type); + Object.assign(contextApi[classKey], { + addListener(type, callback) { + const id = randomId(); + // Deduplicate events + if (!listenersOfTypeExist(type)) { + electron_1.ipcRenderer.send(`event-add-${classKey}`, type); + } + const eventHandler = (_, ...args) => callback(...args); + electron_1.ipcRenderer.addListener(`event-${classKey}-${type}`, eventHandler); + listeners[id] = { type, listener: eventHandler }; + return id; + }, + removeListener(id) { + if (!listeners[id]) { + throw new Error('Invalid id'); + } + const { type, listener } = listeners[id]; + electron_1.ipcRenderer.removeListener(`event-${classKey}-${type}`, listener); + delete listeners[id]; + if (!listenersOfTypeExist(type)) { + electron_1.ipcRenderer.send(`event-remove-${classKey}-${type}`); + } + }, + removeAllListeners(type) { + Object.entries(listeners).forEach(([id, listenerObj]) => { + if (!type || listenerObj.type === type) { + electron_1.ipcRenderer.removeListener(`event-${classKey}-${listenerObj.type}`, listenerObj.listener); + electron_1.ipcRenderer.send(`event-remove-${classKey}-${listenerObj.type}`); + delete listeners[id]; + } + }); + }, + }); + } + }); +}); +electron_1.contextBridge.exposeInMainWorld('CapacitorCustomPlatform', { + name: 'electron', + plugins: contextApi, +}); +//////////////////////////////////////////////////////// diff --git a/materialious/electron/build/src/setup.js b/materialious/electron/build/src/setup.js new file mode 100644 index 00000000..859ca4d7 --- /dev/null +++ b/materialious/electron/build/src/setup.js @@ -0,0 +1,202 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ElectronCapacitorApp = void 0; +exports.setupReloadWatcher = setupReloadWatcher; +exports.setupContentSecurityPolicy = setupContentSecurityPolicy; +const tslib_1 = require("tslib"); +const electron_1 = require("@capacitor-community/electron"); +const chokidar_1 = tslib_1.__importDefault(require("chokidar")); +const electron_2 = require("electron"); +const electron_is_dev_1 = tslib_1.__importDefault(require("electron-is-dev")); +const electron_serve_1 = tslib_1.__importDefault(require("electron-serve")); +const electron_window_state_1 = tslib_1.__importDefault(require("electron-window-state")); +const path_1 = require("path"); +// Define components for a watcher to detect when the webapp is changed so we can reload in Dev mode. +const reloadWatcher = { + debouncer: null, + ready: false, + watcher: null, +}; +function setupReloadWatcher(electronCapacitorApp) { + reloadWatcher.watcher = chokidar_1.default + .watch((0, path_1.join)(electron_2.app.getAppPath(), 'app'), { + ignored: /[/\\]\./, + persistent: true, + }) + .on('ready', () => { + reloadWatcher.ready = true; + }) + .on('all', (_event, _path) => { + if (reloadWatcher.ready) { + clearTimeout(reloadWatcher.debouncer); + reloadWatcher.debouncer = setTimeout(async () => { + electronCapacitorApp.getMainWindow().webContents.reload(); + reloadWatcher.ready = false; + clearTimeout(reloadWatcher.debouncer); + reloadWatcher.debouncer = null; + reloadWatcher.watcher = null; + setupReloadWatcher(electronCapacitorApp); + }, 1500); + } + }); +} +// Define our class to manage our app. +class ElectronCapacitorApp { + constructor(capacitorFileConfig, trayMenuTemplate, appMenuBarMenuTemplate) { + var _a, _b; + this.MainWindow = null; + this.SplashScreen = null; + this.TrayIcon = null; + this.TrayMenuTemplate = [ + new electron_2.MenuItem({ label: 'Quit App', role: 'quit' }), + ]; + this.AppMenuBarMenuTemplate = [ + { role: process.platform === 'darwin' ? 'appMenu' : 'fileMenu' }, + { role: 'viewMenu' }, + ]; + this.CapacitorFileConfig = capacitorFileConfig; + this.customScheme = (_b = (_a = this.CapacitorFileConfig.electron) === null || _a === void 0 ? void 0 : _a.customUrlScheme) !== null && _b !== void 0 ? _b : 'capacitor-electron'; + if (trayMenuTemplate) { + this.TrayMenuTemplate = trayMenuTemplate; + } + if (appMenuBarMenuTemplate) { + this.AppMenuBarMenuTemplate = appMenuBarMenuTemplate; + } + // Setup our web app loader, this lets us load apps like react, vue, and angular without changing their build chains. + this.loadWebApp = (0, electron_serve_1.default)({ + directory: (0, path_1.join)(electron_2.app.getAppPath(), 'app'), + scheme: this.customScheme, + }); + } + // Helper function to load in the app. + async loadMainWindow(thisRef) { + await thisRef.loadWebApp(thisRef.MainWindow); + } + // Expose the mainWindow ref for use outside of the class. + getMainWindow() { + return this.MainWindow; + } + getCustomURLScheme() { + return this.customScheme; + } + async init() { + var _a, _b, _c, _d; + const icon = electron_2.nativeImage.createFromPath((0, path_1.join)(electron_2.app.getAppPath(), 'assets', process.platform === 'win32' ? 'appIcon.ico' : 'appIcon.png')); + this.mainWindowState = (0, electron_window_state_1.default)({ + defaultWidth: 1000, + defaultHeight: 800, + }); + // Setup preload script path and construct our main window. + const preloadPath = (0, path_1.join)(electron_2.app.getAppPath(), 'build', 'src', 'preload.js'); + this.MainWindow = new electron_2.BrowserWindow({ + icon, + show: false, + x: this.mainWindowState.x, + y: this.mainWindowState.y, + width: this.mainWindowState.width, + height: this.mainWindowState.height, + webPreferences: { + nodeIntegration: true, + contextIsolation: true, + webSecurity: false, + // Use preload to inject the electron varriant overrides for capacitor plugins. + // preload: join(app.getAppPath(), "node_modules", "@capacitor-community", "electron", "dist", "runtime", "electron-rt.js"), + preload: preloadPath, + }, + }); + this.mainWindowState.manage(this.MainWindow); + if (this.CapacitorFileConfig.backgroundColor) { + this.MainWindow.setBackgroundColor(this.CapacitorFileConfig.electron.backgroundColor); + } + // If we close the main window with the splashscreen enabled we need to destory the ref. + this.MainWindow.on('closed', () => { + var _a; + if (((_a = this.SplashScreen) === null || _a === void 0 ? void 0 : _a.getSplashWindow()) && !this.SplashScreen.getSplashWindow().isDestroyed()) { + this.SplashScreen.getSplashWindow().close(); + } + }); + // When the tray icon is enabled, setup the options. + if ((_a = this.CapacitorFileConfig.electron) === null || _a === void 0 ? void 0 : _a.trayIconAndMenuEnabled) { + this.TrayIcon = new electron_2.Tray(icon); + this.TrayIcon.on('double-click', () => { + if (this.MainWindow) { + if (this.MainWindow.isVisible()) { + this.MainWindow.hide(); + } + else { + this.MainWindow.show(); + this.MainWindow.focus(); + } + } + }); + this.TrayIcon.on('click', () => { + if (this.MainWindow) { + if (this.MainWindow.isVisible()) { + this.MainWindow.hide(); + } + else { + this.MainWindow.show(); + this.MainWindow.focus(); + } + } + }); + this.TrayIcon.setToolTip(electron_2.app.getName()); + this.TrayIcon.setContextMenu(electron_2.Menu.buildFromTemplate(this.TrayMenuTemplate)); + } + // Setup the main manu bar at the top of our window. + electron_2.Menu.setApplicationMenu(electron_2.Menu.buildFromTemplate(this.AppMenuBarMenuTemplate)); + // If the splashscreen is enabled, show it first while the main window loads then switch it out for the main window, or just load the main window from the start. + if ((_b = this.CapacitorFileConfig.electron) === null || _b === void 0 ? void 0 : _b.splashScreenEnabled) { + this.SplashScreen = new electron_1.CapacitorSplashScreen({ + imageFilePath: (0, path_1.join)(electron_2.app.getAppPath(), 'assets', (_d = (_c = this.CapacitorFileConfig.electron) === null || _c === void 0 ? void 0 : _c.splashScreenImageName) !== null && _d !== void 0 ? _d : 'splash.png'), + windowWidth: 400, + windowHeight: 400, + }); + this.SplashScreen.init(this.loadMainWindow, this); + } + else { + this.loadMainWindow(this); + } + // Security + this.MainWindow.webContents.setWindowOpenHandler((details) => { + if (!details.url.includes(this.customScheme)) { + return { action: 'deny' }; + } + else { + return { action: 'allow' }; + } + }); + this.MainWindow.webContents.on('will-navigate', (event, _newURL) => { + if (!this.MainWindow.webContents.getURL().includes(this.customScheme)) { + event.preventDefault(); + } + }); + // Link electron plugins into the system. + (0, electron_1.setupCapacitorElectronPlugins)(); + // When the web app is loaded we hide the splashscreen if needed and show the mainwindow. + this.MainWindow.webContents.on('dom-ready', () => { + var _a, _b; + if ((_a = this.CapacitorFileConfig.electron) === null || _a === void 0 ? void 0 : _a.splashScreenEnabled) { + this.SplashScreen.getSplashWindow().hide(); + } + if (!((_b = this.CapacitorFileConfig.electron) === null || _b === void 0 ? void 0 : _b.hideMainWindowOnLaunch)) { + this.MainWindow.show(); + } + setTimeout(() => { + if (electron_is_dev_1.default) { + this.MainWindow.webContents.openDevTools(); + } + electron_1.CapElectronEventEmitter.emit('CAPELECTRON_DeeplinkListenerInitialized', ''); + }, 400); + }); + } +} +exports.ElectronCapacitorApp = ElectronCapacitorApp; +// Set a CSP up for our application based on the custom scheme +function setupContentSecurityPolicy(customScheme) { + electron_2.session.defaultSession.webRequest.onHeadersReceived((details, callback) => { + callback({ + responseHeaders: Object.assign({}, details.responseHeaders), + }); + }); +} From 918299af69ba633277daa5fb460cef071813832d Mon Sep 17 00:00:00 2001 From: WardPearce Date: Sun, 1 Sep 2024 14:28:32 +1200 Subject: [PATCH 03/10] Improved thumbnails more --- materialious/src/lib/Thumbnail.svelte | 70 +++++++++++++++------------ 1 file changed, 40 insertions(+), 30 deletions(-) diff --git a/materialious/src/lib/Thumbnail.svelte b/materialious/src/lib/Thumbnail.svelte index 4eec9018..2c2a60f6 100644 --- a/materialious/src/lib/Thumbnail.svelte +++ b/materialious/src/lib/Thumbnail.svelte @@ -74,8 +74,10 @@ function disableSideways() { if (!startedSideways) return; - if (window.innerWidth <= 1500) sideways = false; - else sideways = true; + if (window.innerWidth <= 1500) { + sideways = false; + if (typeof authorImg === 'undefined') loadAuthor(); + } else sideways = true; } async function loadAuthor() { @@ -100,7 +102,9 @@ } // Load author details in background. - loadAuthor(); + if (!sideways) { + loadAuthor(); + } // Check if sideways should be enabled or disabled. disableSideways(); @@ -328,34 +332,35 @@ {/if} -
- - {letterCase(video.title.trimEnd())} - - -
- {#if !('publishedText' in video) && 'viewCountText' in video} - - {video.viewCountText} - {$_('views')} - - {/if} - - {#if 'publishedText' in video} -
- {cleanNumber(video.viewCount)} • {video.publishedText} -
- {/if} - -
+
+ {#if !sideways} +
{#if authorImg !== ''} Author {:else} {/if} - {video.author} +
+ {/if} +
+ + {letterCase(video.title.trimEnd())} + + +
+ {video.author} + {#if !('publishedText' in video) && 'viewCountText' in video} + + • {video.viewCountText} + {$_('views')} + + {/if} + + {#if 'publishedText' in video} +
+ {cleanNumber(video.viewCount)} • {video.publishedText} +
+ {/if}
@@ -366,13 +371,10 @@