From dde24785b8f3a98ef7e1caa315d46a9e34a927a0 Mon Sep 17 00:00:00 2001 From: Panagiotis Papadopoulos Date: Fri, 21 Feb 2025 22:22:37 +0100 Subject: [PATCH] entrypoint: add missing login entry point and port to TS --- src/public/app/login.ts | 32 ++++++++++++++++++++++++++++++++ src/views/login.ejs | 30 ------------------------------ webpack.config.ts | 1 + 3 files changed, 33 insertions(+), 30 deletions(-) create mode 100644 src/public/app/login.ts diff --git a/src/public/app/login.ts b/src/public/app/login.ts new file mode 100644 index 000000000..ed37e9e95 --- /dev/null +++ b/src/public/app/login.ts @@ -0,0 +1,32 @@ +import "../stylesheets/bootstrap.scss"; + +// @ts-ignore - module = undefined +// Required for correct loading of scripts in Electron +if (typeof module === 'object') {window.module = module; module = undefined;} + +const device = getDeviceType() +console.log("Setting device cookie to:", device); +setCookie("trilium-device", device); + +function setCookie(name: string, value?: string) { + const date = new Date(Date.now() + 10 * 365 * 24 * 60 * 60 * 1000); + const expires = "; expires=" + date.toUTCString(); + + document.cookie = name + "=" + (value || "") + expires + "; path=/"; +} + +function getDeviceType() { + if (window.location.search === '?desktop') return "desktop"; + if (window.location.search === '?mobile') return "mobile"; + return isMobile() ? "mobile" : "desktop"; +} + +// https://stackoverflow.com/a/73731646/944162 +function isMobile() { + const mQ = matchMedia?.('(pointer:coarse)'); + if (mQ?.media === '(pointer:coarse)') return !!mQ.matches; + + if ('orientation' in window) return true; + const userAgentsRegEx = /\b(Android|iPhone|iPad|iPod|Windows Phone|BlackBerry|webOS|IEMobile)\b/i + return userAgentsRegEx.test(navigator.userAgent) +} \ No newline at end of file diff --git a/src/views/login.ejs b/src/views/login.ejs index 63d7fa252..53b2a94ce 100644 --- a/src/views/login.ejs +++ b/src/views/login.ejs @@ -46,36 +46,6 @@ - diff --git a/webpack.config.ts b/webpack.config.ts index 69a22c7c3..a6c01424c 100644 --- a/webpack.config.ts +++ b/webpack.config.ts @@ -10,6 +10,7 @@ const config: Configuration = { mode: "production", entry: { setup: "./src/public/app/setup.js", + login: "./src/public/app/login.js", mobile: "./src/public/app/mobile.js", desktop: "./src/public/app/desktop.js", share: "./src/public/app/share.js",