From 221cac2dc41a66a0a3f627169acec6c312c52c37 Mon Sep 17 00:00:00 2001 From: kwaroran Date: Thu, 30 May 2024 13:24:53 +0900 Subject: [PATCH] feat: new module menu --- .../Pages/Module/ModuleSettings.svelte | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/src/lib/Setting/Pages/Module/ModuleSettings.svelte b/src/lib/Setting/Pages/Module/ModuleSettings.svelte index 8971fb29..3ab25532 100644 --- a/src/lib/Setting/Pages/Module/ModuleSettings.svelte +++ b/src/lib/Setting/Pages/Module/ModuleSettings.svelte @@ -8,6 +8,7 @@ import { v4 } from "uuid"; import { tooltip } from "src/ts/gui/tooltip"; import { alertConfirm } from "src/ts/alert"; + import TextInput from "src/lib/UI/GUI/TextInput.svelte"; let tempModule:RisuModule = { name: '', description: '', @@ -15,15 +16,38 @@ } let mode = 0 let editModuleIndex = -1 + let moduleSearch = '' + + function sortModules(modules:RisuModule[], search:string){ + const db = $DataBase + return modules.filter((v) => { + if(search === '') return true + return v.name.toLowerCase().includes(search.toLowerCase()) + + }).sort((a, b) => { + let score = a.name.toLowerCase().localeCompare(b.name.toLowerCase()) + + if(db.enabledModules.includes(a.id)){ + score += 1000 + } + if(db.enabledModules.includes(b.id)){ + score -= 1000 + } + + return score + }) + } {#if mode === 0}

{language.modules}

-
+ + +
{#if $DataBase.modules.length === 0}
{language.noModules}
{:else} - {#each $DataBase.modules as rmodule, i} + {#each sortModules($DataBase.modules, moduleSearch) as rmodule, i} {#if i !== 0}
{/if}