From a7aebab65cdcc31560da4f1e17ff104bf879204c Mon Sep 17 00:00:00 2001 From: bangonicdd <157843588+bangonicdd2@users.noreply.github.com> Date: Sat, 19 Apr 2025 15:34:52 +0900 Subject: [PATCH] fix: preserve selected persona after sorting --- src/lib/Setting/Pages/PersonaSettings.svelte | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lib/Setting/Pages/PersonaSettings.svelte b/src/lib/Setting/Pages/PersonaSettings.svelte index f533ca2a..6e2e70c6 100644 --- a/src/lib/Setting/Pages/PersonaSettings.svelte +++ b/src/lib/Setting/Pages/PersonaSettings.svelte @@ -14,13 +14,17 @@ import { setDatabase } from "src/ts/storage/database.svelte"; import { DBState } from 'src/ts/stores.svelte'; import { get } from "svelte/store"; + import { v4 } from "uuid" let stb: Sortable = null let ele: HTMLDivElement = $state() let sorted = $state(0) + let selectedId:string = null const createStb = () => { stb = Sortable.create(ele, { onStart: async () => { + DBState.db.personas[DBState.db.selectedPersona].id ??= v4() + selectedId = DBState.db.personas[DBState.db.selectedPersona].id saveUserPersona() }, onEnd: async () => { @@ -39,7 +43,8 @@ newValue.push(DBState.db.personas[i]) }) DBState.db.personas = newValue - changeUserPersona(0, 'noSave') + const selectedPersona = DBState.db.personas.findIndex((e) => e.id === selectedId) + changeUserPersona(selectedPersona !== -1 ? selectedPersona : 0, 'noSave') try { stb.destroy() } catch (error) {}