From 53942a1551495cc1e8b8a3f349c638701f951082 Mon Sep 17 00:00:00 2001 From: Manuel Ruwe Date: Tue, 10 Jan 2023 21:51:52 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20=20Add=20migrator=20for=20search=20?= =?UTF-8?q?engine?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/tools/config/migrateConfig.ts | 47 ++++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 7 deletions(-) diff --git a/src/tools/config/migrateConfig.ts b/src/tools/config/migrateConfig.ts index 6997f7753..e147496c5 100644 --- a/src/tools/config/migrateConfig.ts +++ b/src/tools/config/migrateConfig.ts @@ -4,6 +4,7 @@ import { AppIntegrationType, AppType, IntegrationType } from '../../types/app'; import { AreaType } from '../../types/area'; import { CategoryType } from '../../types/category'; import { ConfigType } from '../../types/config'; +import { SearchEngineCommonSettingsType } from '../../types/settings'; import { IBitTorrent } from '../../widgets/bitTorrent/BitTorrentTile'; import { ICalendarWidget } from '../../widgets/calendar/CalendarTile'; import { IDashDotTile } from '../../widgets/dashDot/DashDotTile'; @@ -25,13 +26,7 @@ export function migrateConfig(config: Config): ConfigType { apps: [], settings: { common: { - searchEngine: { - type: 'google', - properties: { - enabled: true, - openInNewTab: true, - }, - }, + searchEngine: migrateSearchEngine(config), defaultConfig: 'default', }, customization: { @@ -86,6 +81,44 @@ export function migrateConfig(config: Config): ConfigType { return newConfig; } +const migrateSearchEngine = (config: Config): SearchEngineCommonSettingsType => { + switch (config.settings.searchUrl) { + case 'https://bing.com/search?q=': + return { + type: 'bing', + properties: { + enabled: true, + openInNewTab: true, + }, + }; + case 'https://google.com/search?q=': + return { + type: 'google', + properties: { + enabled: true, + openInNewTab: true, + }, + }; + case 'https://duckduckgo.com/?q=': + return { + type: 'duckDuckGo', + properties: { + enabled: true, + openInNewTab: true, + }, + }; + default: + return { + type: 'custom', + properties: { + enabled: true, + openInNewTab: true, + template: config.settings.searchUrl, + }, + }; + } +}; + const getConfigAndCreateIfNotExsists = ( config: ConfigType, categoryName: string