From b0ecce5eab2a6d0eed3ade7c43e252ca9bac7edb Mon Sep 17 00:00:00 2001 From: kytwb <412895+kytwb@users.noreply.github.com> Date: Sat, 12 Jun 2021 19:51:28 +0200 Subject: Fix active Todos service behaviour (#1481) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Return false instead of null in isTodosServiceAdded * Resolve from TODOS_RECIPES_ID instead of hardcoded TODOS_RECIPE_ID * Fix TodosWebview width toggling when isTodosServiceActive * Add more todo service recipe IDs * Refactor todos state management * Moved todos service URL and recipe ID computation logic to todos/store * Simplified TodosWebview by delegating to the store for the URL and removing the (unused) payment logic * Made the todos service computation logic in the Service model depend on the logic in todos/store * Made ServicesStore depend on the todos service logic from the Service model * Todos appearance fixes * Hide double horizontal rules if todo settings are hidden due to an added todo service * Hide todos panel border when the panel is hidden or expanded * Make expanded todos panel obey sidebar width and vertical style settings * Make todos/store use isValidExternalURL * Harden isValidExternalURL against malformed URLs * Reduce todo URL string duplication in config.js Co-authored-by: Kristóf Marussy --- src/models/Service.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/models') diff --git a/src/models/Service.js b/src/models/Service.js index 0d1dff431..d0c6a7103 100644 --- a/src/models/Service.js +++ b/src/models/Service.js @@ -4,7 +4,7 @@ import { webContents } from '@electron/remote'; import normalizeUrl from 'normalize-url'; import path from 'path'; -import { TODOS_RECIPE_ID, todosStore } from '../features/todos'; +import { todosStore } from '../features/todos'; import { isValidExternalURL } from '../helpers/url-helpers'; import UserAgent from './UserAgent'; @@ -184,8 +184,12 @@ export default class Service { }; } + @computed get isTodosService() { + return this.recipe.id === todosStore.todoRecipeId; + } + get webview() { - if (this.recipe.id === TODOS_RECIPE_ID) { + if (this.isTodosService) { return todosStore.webview; } @@ -243,7 +247,6 @@ export default class Service { return this.recipe.partition || `persist:service-${this.id}`; } - initializeWebViewEvents({ handleIPCMessage, openWindow, stores }) { const webviewWebContents = webContents.fromId(this.webview.getWebContentsId()); -- cgit v1.2.3-70-g09d2