diff --git a/src/lang/en.ts b/src/lang/en.ts
index 236e8d1a..73c685f5 100644
--- a/src/lang/en.ts
+++ b/src/lang/en.ts
@@ -353,4 +353,8 @@ export const languageEnglish = {
inputBotGenerationPrompt: "Input Bot Generation Prompt",
createBotAI: "Create OC Bot from AI",
createBotwithAI: "Create Bot from AI",
+ changeFolderName: "Input the new folder name (blank to cancel)",
+ cancel: "Cancel",
+ renameFolder: "Rename Folder",
+ changeFolderColor: "Change Folder Color",
}
\ No newline at end of file
diff --git a/src/lib/SideBars/Sidebar.svelte b/src/lib/SideBars/Sidebar.svelte
index caa7d9cf..e4ecd2eb 100644
--- a/src/lib/SideBars/Sidebar.svelte
+++ b/src/lib/SideBars/Sidebar.svelte
@@ -40,6 +40,7 @@
import { BotCreator } from "src/ts/creation/creator";
import Button from "../UI/GUI/Button.svelte";
import { fly } from "svelte/transition";
+ import { alertInput, alertSelect } from "src/ts/alert";
let openPresetList = false;
let sideBarMode = 0;
let editMode = false;
@@ -90,7 +91,7 @@
}
type sortTypeNormal = { type:'normal',img: string, index: number, name:string }
- type sortType = sortTypeNormal|{type:'folder',folder:sortTypeNormal[],id:string, name:string}
+ type sortType = sortTypeNormal|{type:'folder',folder:sortTypeNormal[],id:string, name:string, color:string}
let charImages: sortType[] = [];
let IconRounded = false
let openFolders:string[] = []
@@ -132,7 +133,8 @@
folder: folderCharImages,
type: "folder",
id: folder.id,
- name: folder.name
+ name: folder.name,
+ color: folder.color
});
}
}
@@ -407,30 +409,73 @@
{#if char.type === 'normal'}
{:else if char.type === "folder"}
- {
- if(char.type !== 'folder'){
- return
- }
- if(openFolders.includes(char.id)){
- openFolders.splice(openFolders.indexOf(char.id), 1)
- }
- else{
- openFolders.push(char.id)
- }
- openFolders = openFolders
- }}>
- {#if openFolders.includes(char.id)}
-
- {:else}
-
- {/if}
-
+ {#key char.color}
+ {#key char.name}
+ {
+ e.preventDefault()
+ const sel = parseInt(await alertSelect([language.renameFolder,language.changeFolderColor,language.cancel]))
+ if(sel === 0){
+ const v = await alertInput(language.changeFolderName)
+ const db = get(DataBase)
+ if(v){
+ const oder = db.characterOrder[ind]
+ if(typeof(oder) === 'string'){
+ return
+ }
+ oder.name = v
+ db.characterOrder[ind] = oder
+ setDatabase(db)
+ }
+ }
+ else if(sel === 1){
+ const colors = ["red","green","blue","yellow","indigo","purple","pink","default"]
+ const sel = parseInt(await alertSelect(colors))
+ const db = get(DataBase)
+ const oder = db.characterOrder[ind]
+ if(typeof(oder) === 'string'){
+ return
+ }
+ oder.color = colors[sel].toLocaleLowerCase()
+ db.characterOrder[ind] = oder
+ setDatabase(db)
+ }
+ }}
+ onClick={() => {
+ if(char.type !== 'folder'){
+ return
+ }
+ if(openFolders.includes(char.id)){
+ openFolders.splice(openFolders.indexOf(char.id), 1)
+ }
+ else{
+ openFolders.push(char.id)
+ }
+ openFolders = openFolders
+ }}>
+ {#if openFolders.includes(char.id)}
+
+ {:else}
+
+ {/if}
+
+ {/key}
+ {/key}
{/if}
{#if char.type === 'folder' && openFolders.includes(char.id)}
+ {#key char.color}
-
+
{
e.preventDefault()
e.dataTransfer.dropEffect = 'move'
@@ -491,6 +536,7 @@
}} on:dragenter={preventAll}/>
{/each}
+ {/key}
{/if}
{
e.dataTransfer.dropEffect = 'move'
diff --git a/src/lib/SideBars/SidebarAvatar.svelte b/src/lib/SideBars/SidebarAvatar.svelte
index 8b90d2eb..31149578 100644
--- a/src/lib/SideBars/SidebarAvatar.svelte
+++ b/src/lib/SideBars/SidebarAvatar.svelte
@@ -7,6 +7,7 @@
export let size = "22";
export let onClick = () => {}
export let bordered = false
+ export let color:string = ''
@@ -14,11 +15,22 @@
class:border = {bordered}
class:border-selected={bordered}
class:rounded-md={bordered}
+ on:contextmenu
on:click={onClick} use:tooltipRight={name}>
{#if src}
{#if src === "slot"}