From ab43f4b01a3bd62ff068ad5e09e0f0b2a2069f30 Mon Sep 17 00:00:00 2001 From: André Oliveira <37463445+SpecialAro@users.noreply.github.com> Date: Fri, 10 Jun 2022 03:46:56 +0530 Subject: Add the native dark mode theme for Instagram (#44) --- recipes/instagram/package.json | 2 +- recipes/instagram/webview.js | 33 ++++++++++++++++++++++++++------- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/recipes/instagram/package.json b/recipes/instagram/package.json index 820872c..4b8f7ac 100644 --- a/recipes/instagram/package.json +++ b/recipes/instagram/package.json @@ -1,7 +1,7 @@ { "id": "instagram", "name": "Instagram", - "version": "2.4.0", + "version": "2.4.1", "license": "MIT", "config": { "serviceURL": "https://instagram.com/direct/inbox", diff --git a/recipes/instagram/webview.js b/recipes/instagram/webview.js index 66d89e6..e363ad3 100644 --- a/recipes/instagram/webview.js +++ b/recipes/instagram/webview.js @@ -14,16 +14,35 @@ module.exports = Ferdium => { // https://github.com/ferdium/ferdium-recipes/blob/9d715597a600710c20f75412d3dcd8cdb7b3c39e/docs/frontend_api.md#usage-4 // Helper that activates DarkReader and injects your darkmode.css at the same time - Ferdium.handleDarkMode((isEnabled, helpers) => { + Ferdium.handleDarkMode((isEnabled) => { + + var url = new URL(window.location.href); + var searchParams = url.searchParams; + var isDarkModeParam = searchParams.get('theme'); + var changedParams = false; + if (isEnabled) { - helpers.enableDarkMode(); - if (!helpers.isDarkModeStyleInjected()) { - helpers.injectDarkModeStyle(); - } + isDarkModeParam ? null : + ( + searchParams.set('theme', 'dark'), + changedParams = true + ); } else { - helpers.disableDarkMode(); - helpers.removeDarkModeStyle(); + isDarkModeParam ? + ( + searchParams.delete('theme', 'dark'), + changedParams = true + ) + : null; } + + changedParams ? + ( + url.search = searchParams.toString(), + window.location.href = url.toString() + ) + : null; + }); Ferdium.injectCSS(_path.default.join(__dirname, 'service.css')); -- cgit v1.2.3-54-g00ecf