From c6dde10e4e713489b67bbeb3a2e345150012323e Mon Sep 17 00:00:00 2001 From: sowgro Date: Wed, 6 Nov 2024 18:08:30 -0500 Subject: Finish implementing setting system --- extension/src/SettingsEditor.tsx | 54 ++++++++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 21 deletions(-) (limited to 'extension/src/SettingsEditor.tsx') diff --git a/extension/src/SettingsEditor.tsx b/extension/src/SettingsEditor.tsx index a5b9224..9bbf153 100644 --- a/extension/src/SettingsEditor.tsx +++ b/extension/src/SettingsEditor.tsx @@ -1,13 +1,11 @@ import RadioButtonGroup from "./RadioButtonGroup.tsx"; -import React, {useContext, useState} from "react"; +import React, {useContext} from "react"; import imageUrl from "./assets/close.svg" import BookmarkTreeNode = browser.bookmarks.BookmarkTreeNode; -import {RootFolder} from "./Body.tsx"; +import {Settings} from "./Body.tsx"; -function SettingsEditor(props: {tree: BookmarkTreeNode[], closer: (arg0: boolean) => void, setBackgroundURL: (arg0: string) => void}) { - const [backgroundType, setBackgroundType] = useState("fromTheme"); - const [sort, setSort] = useState("fromBookmarks"); - const {rootFolder, setRootFolder} = useContext(RootFolder) +function SettingsEditor(props: {tree: BookmarkTreeNode[], closer: (arg0: boolean) => void}) { + const [settings, setSettings] = useContext(Settings) return (
@@ -17,26 +15,43 @@ function SettingsEditor(props: {tree: BookmarkTreeNode[], closer: (arg0: boolean

Settings

Sort

- setSort(e)}> - + {setSettings({...settings, sort: e})}}> + +

Background Type

- setBackgroundType(e)}> - - + setSettings({...settings, backgroundMode: e})}> + + -

Background URL

- props.setBackgroundURL(e.target.value)}/> + {(() => { switch (settings.backgroundMode) { + case "image": return (<> +

Background Color

+ setSettings({...settings, backgroundImage: e.target.value})}/> + ) + case "color": return (<> +

Background URL

+ setSettings({...settings, backgroundColor: e.target.value})}/> + ) + }})()}

Edit mode

Root folder

- setSettings({...settings, rootFolder: e.target.value})}> {getFoldersFromTree(props.tree).map(i => - + )} -
- value of bg type: {backgroundType} - value of sort: {sort} - value of root folder: {rootFolder} -
) } @@ -63,6 +74,7 @@ function SettingsEditor(props: {tree: BookmarkTreeNode[], closer: (arg0: boolean function getFoldersFromTree(tree: BookmarkTreeNode[]) { let folderList: BookmarkTreeNode[] = []; rec(tree); + function rec(tree: BookmarkTreeNode[]) { tree.forEach(item => { if (item.children) { -- cgit v1.2.3