aboutsummaryrefslogtreecommitdiff
path: root/extension/src/SettingsEditor.tsx
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2024-11-07 12:40:42 -0500
committersowgro <tpoke.ferrari@gmail.com>2024-11-07 12:40:42 -0500
commit03b7ccaa5c152c8d7ed73374be8ad4d4d034845b (patch)
tree7ce20a5749018fbe82c85ee1bd7c2a5c5083eb4b /extension/src/SettingsEditor.tsx
parent958ab3cd5edad8b48a3fa49e0f151b3285abdbfa (diff)
downloadbookmarks-home-03b7ccaa5c152c8d7ed73374be8ad4d4d034845b.tar.gz
bookmarks-home-03b7ccaa5c152c8d7ed73374be8ad4d4d034845b.tar.bz2
bookmarks-home-03b7ccaa5c152c8d7ed73374be8ad4d4d034845b.zip
Implement sorting and refactor
Diffstat (limited to 'extension/src/SettingsEditor.tsx')
-rw-r--r--extension/src/SettingsEditor.tsx94
1 files changed, 0 insertions, 94 deletions
diff --git a/extension/src/SettingsEditor.tsx b/extension/src/SettingsEditor.tsx
deleted file mode 100644
index ca0feeb..0000000
--- a/extension/src/SettingsEditor.tsx
+++ /dev/null
@@ -1,94 +0,0 @@
-import RadioButtonGroup from "./RadioButtonGroup.tsx";
-import React, {useContext} from "react";
-import imageUrl from "./assets/close.svg"
-import BookmarkTreeNode = browser.bookmarks.BookmarkTreeNode;
-import {Settings} from "./Body.tsx";
-
-function SettingsEditor(props: {tree: BookmarkTreeNode[], isOpen: [boolean, React.Dispatch<React.SetStateAction<boolean>>]}) {
- const [settings, setSettings] = useContext(Settings)
- const [open, setOpen] = props.isOpen;
-
- return (
- <div id="settings-menu" className={open ? "open" : "closed"}>
- <button id="settings-close" onClick={_ => setOpen(false)}>
- <img alt="close settings" src={imageUrl}/>
- </button>
- <h1>Settings</h1>
-
- <h3>Sort</h3>
- <RadioButtonGroup value={settings.sort}
- onChange={e => {
- setSettings({...settings, sort: e})
- }}>
- <option value={"from-bookmarks"}>From Bookmarks</option>
- <option value={"alphabetical"}>Alphabetical</option>
- <option value={"frequency"}>Frequency</option>
- <option value={"recent"}>Recently used</option>
- </RadioButtonGroup>
- <br/>
- <label>
- <input type={"checkbox"}
- checked={settings.foldersFirst}
- onChange={e => setSettings({...settings, foldersFirst: e.target.checked})}/>
- Sort Folders First
- </label>
-
- <h3>Background Type</h3>
- <RadioButtonGroup value={settings.backgroundMode}
- onChange={e => setSettings({...settings, backgroundMode: e})}>
- <option value={"theme"}>Default</option>
- <option value={"color"}>Solid Color</option>
- <option value={"image"}>Image</option>
- </RadioButtonGroup>
-
- {(() => {
- switch (settings.backgroundMode) {
- case "image":
- return (<>
- <h3>Background Image URL</h3>
- <input type={"url"}
- value={settings.backgroundImage}
- onChange={e => setSettings({...settings, backgroundImage: e.target.value})}/>
- </>)
- case "color":
- return (<>
- <h3>Background Color</h3>
- <input type={"color"}
- value={settings.backgroundColor}
- onChange={e => setSettings({...settings, backgroundColor: e.target.value})}/>
- </>)
- }
- })()}
-
- <h3>Root folder</h3>
- <select value={settings.rootFolder!}
- onChange={e => setSettings({...settings, rootFolder: e.target.value})}>
- {getFoldersFromTree(props.tree).map(i =>
- <option value={i.id}>{i.title ? i.title : "Untitled (id:" + i.id + ")"}</option>
- )}
- </select>
-
- {/*<br/>*/}
- {/*<span>sort: {settings.sort}</span>*/}
- {/*<span>rootFolder: {settings.rootFolder}</span>*/}
- {/*<span>bgmode: {settings.backgroundMode}</span>*/}
- </div>
-)
-}
-
-function getFoldersFromTree(tree: BookmarkTreeNode[]) {
- let folderList: BookmarkTreeNode[] = [];
- rec(tree);
-
- function rec(tree: BookmarkTreeNode[]) {
- tree.forEach(item => {
- if (item.children) {
- folderList.push(item);
- rec(item.children);
- }
- })
- }
- return folderList;
-}
-
-export default SettingsEditor; \ No newline at end of file