aboutsummaryrefslogtreecommitdiff
path: root/extension/src/components/Body.tsx
diff options
context:
space:
mode:
authorTyler Ferrari <69283684+Sowgro@users.noreply.github.com>2024-12-03 13:48:05 -0500
committerGitHub <noreply@github.com>2024-12-03 13:48:05 -0500
commita2689fd6ed8f39d4aee98ad193973c743ec1ae4d (patch)
tree70a6af461bb92721ce93ef073ca9839dceb57905 /extension/src/components/Body.tsx
parentafa44751b7f9d39c4842d5a91a9e3ce28d74bfce (diff)
parent37f9cb4a0dbb83aad1aaae0d88fd488edc5e56ac (diff)
downloadbookmarks-home-a2689fd6ed8f39d4aee98ad193973c743ec1ae4d.tar.gz
bookmarks-home-a2689fd6ed8f39d4aee98ad193973c743ec1ae4d.tar.bz2
bookmarks-home-a2689fd6ed8f39d4aee98ad193973c743ec1ae4d.zip
Merge pull request #1 from ATO-b2/drag-n-drop
Drag n drop
Diffstat (limited to 'extension/src/components/Body.tsx')
-rw-r--r--extension/src/components/Body.tsx19
1 files changed, 14 insertions, 5 deletions
diff --git a/extension/src/components/Body.tsx b/extension/src/components/Body.tsx
index e575d89..70f8fce 100644
--- a/extension/src/components/Body.tsx
+++ b/extension/src/components/Body.tsx
@@ -1,7 +1,7 @@
import React, {useEffect, useState} from "react";
import SettingsEditor from "./SettingsEditor.tsx";
import SettingsIcon from "../assets/settings.svg?react";
-import EditIcon from "../assets/edit.svg?react";
+import EditIcon from "../assets/move.svg?react";
import BookmarkTreeNode = browser.bookmarks.BookmarkTreeNode;
import FolderBody from "./FolderBody.tsx";
import {defaultSettings, ISettings, loadSettings, writeSettings} from "../Settings.ts";
@@ -9,9 +9,15 @@ import {getBrowser} from "../main.tsx";
export const Settings =
React.createContext<[ISettings, (arg0: ISettings) => void]>([
- defaultSettings,
- () => {}
-]);
+ defaultSettings,
+ () => {}
+ ]);
+
+export const ActiveDrag =
+ React.createContext<[BookmarkTreeNode | null, (arg0: BookmarkTreeNode | null) => void]>([
+ null,
+ () => {}
+ ])
/**
* A component for the full body of the application
@@ -22,6 +28,7 @@ function Body() {
const [settings, setSettings] = useState<ISettings>(defaultSettings);
const [selectedBookmarkTree, setSelectedBookmarkTree] = useState<BookmarkTreeNode[]>([])
const [fullBookmarkTree, setFullBookmarkTree] = useState<BookmarkTreeNode[] | null>([])
+ const [activeDrag, setActiveDrag] = useState<BookmarkTreeNode | null>(null);
useEffect(() => {
loadSettings().then(r => {
@@ -47,6 +54,7 @@ function Body() {
return (
<Settings.Provider value={[settings!, setSettings]}>
+ <ActiveDrag.Provider value={[activeDrag, setActiveDrag]}>
{(() => {switch (settings.backgroundMode) {
case "color": return (<style>{"body {background-color: " + settings.backgroundColor + "; }"}</style>)
case "image": return (<style>{"body {background-image: url(\"" + settings.backgroundImage + "\"); }"}</style>)
@@ -55,7 +63,7 @@ function Body() {
<div id={"action-area"}>
{settings.editMode && <span>Move mode: Drag bookmarks to change order</span>}
<button onClick={_ => setSettings({...settings, editMode: !settings.editMode})}>
- <EditIcon fill={settings.editMode? "lime" : "currentColor"}/>
+ <EditIcon className={settings.editMode? "enabled" : ""}/>
</button>
<button onClick={_ => setSettingsOpen(!settingsOpen)}>
<SettingsIcon/>
@@ -63,6 +71,7 @@ function Body() {
</div>
<SettingsEditor tree={fullBookmarkTree!} isOpen={[settingsOpen, setSettingsOpen]}/>
{selectedBookmarkTree[0] && (<FolderBody data={selectedBookmarkTree[0]}/>)}
+ </ActiveDrag.Provider>
</Settings.Provider>
)
}