diff --git a/src/lib/SideBars/Toggles.svelte b/src/lib/SideBars/Toggles.svelte
index afefa2bd..c7b99d04 100644
--- a/src/lib/SideBars/Toggles.svelte
+++ b/src/lib/SideBars/Toggles.svelte
@@ -21,7 +21,7 @@
{#snippet toggles(reverse: boolean = false)}
- {#each parsedKv as toggle}
+ {#each parsedKv as toggle, index}
{#if toggle.type === 'select'}
{toggle.value}
@@ -37,6 +37,17 @@
{toggle.value}
+ {:else if toggle.type === 'divider'}
+ {@const prevToggle = parsedKv[index - 1]}
+
+ {#if index === 0 || prevToggle.type !== 'divider' || prevToggle.value !== toggle.value}
+
+ {#if toggle.value}
+ {toggle.value}
+ {/if}
+
+
+ {/if}
{:else}
{
diff --git a/src/ts/util.ts b/src/ts/util.ts
index c80360a2..3b12e5c6 100644
--- a/src/ts/util.ts
+++ b/src/ts/util.ts
@@ -1009,33 +1009,48 @@ export function parseKeyValue(template:string){
}
}
+type sidebarToggle =
+ | {
+ key?:string,
+ value?:string,
+ type:'divider',
+ options?:string[]
+ }
+ | {
+ key:string,
+ value:string,
+ type:'select',
+ options:string[]
+ }
+ | {
+ key:string,
+ value:string,
+ type:string|undefined,
+ options?:string[]
+ }
+
export function parseToggleSyntax(template:string){
try {
- console.log(template)
if(!template){
return []
}
- const keyValue:{
- key:string,
- value:string,
- type?:string,
- options?:string[]
- }[] = []
+ const keyValue:sidebarToggle[] = []
const splited = template.split('\n')
for(const line of splited){
const [key, value, type, option] = line.split('=')
- if(key && value){
+ if((key && value) || type === 'divider'){
keyValue.push({
- key, value, type, options: option ? option.split(',') : []
+ key,
+ value,
+ type,
+ options: option?.split(',') ?? []
})
}
}
- console.log(keyValue)
-
return keyValue
} catch (error) {
console.error(error)