From 4144eae45e68fcee46d7acb5a59f7af0f596890c Mon Sep 17 00:00:00 2001 From: sowgro Date: Sun, 3 Nov 2024 01:31:09 -0400 Subject: State of settings now stored in SettingEditor --- extension/src/RadioButtonGroup.tsx | 52 +++++++++++------------- extension/src/SettingsEditor.tsx | 81 ++++++++++++-------------------------- extension/src/index.css | 8 +++- 3 files changed, 53 insertions(+), 88 deletions(-) diff --git a/extension/src/RadioButtonGroup.tsx b/extension/src/RadioButtonGroup.tsx index 14f348d..1e86e7e 100644 --- a/extension/src/RadioButtonGroup.tsx +++ b/extension/src/RadioButtonGroup.tsx @@ -1,38 +1,30 @@ -import React, {useId, useState} from "react"; +import React, {ReactElement, ReactNode, useId, useState} from "react"; -interface radioEntry { - label: string, - data: any, +interface RadioProps { + children: ReactElement[], + defaultValue: any, + onChange?: (arg0: any) => void } -interface IProps { - groupLabel: string, - items: radioEntry[], - defaultData: any -} - -function RadioButtonGroup(props: IProps) { - const [selected, setSelected] = useState(props.defaultData); +function RadioButtonGroup(props: RadioProps) { + const [selected, setSelected] = useState(props.defaultValue); + props.onChange && props.onChange(selected); return ( - <> -

{props.groupLabel}

-
- { props.items.map((item) => ( - - )) } -
- currently selected: {selected} - +
+ { props.children.map((item) => ( + + )) } +
) } diff --git a/extension/src/SettingsEditor.tsx b/extension/src/SettingsEditor.tsx index b10a705..7335a18 100644 --- a/extension/src/SettingsEditor.tsx +++ b/extension/src/SettingsEditor.tsx @@ -2,72 +2,41 @@ import RadioButtonGroup from "./RadioButtonGroup.tsx"; import React, {useState} from "react"; function SettingsEditor() { - const [selected, setSelected] = useState('0'); + const [backgroundType, setBackgroundType] = useState("fromTheme"); + const [sort, setSort] = useState("fromBookmarks"); + const [rootFolder, setRootFolder] = useState('0'); return (
- - +

Background Type

+ setBackgroundType(e)}> + + + + + +

Sort

+ setSort(e)}> + + + + +

Root folder

- setRootFolder(e.target.value)}> - currently selected: {selected} + +
+ value of bg type: {backgroundType} + value of sort: {sort} + value of root folder: {rootFolder} + ) } -export default SettingsEditor; - -//
-//

Settings

-// -//

Sort

-// -// -// -// -//

Background

-// -// -// -// -//

Root folder

-// -//
\ No newline at end of file +export default SettingsEditor; \ No newline at end of file diff --git a/extension/src/index.css b/extension/src/index.css index 82a8182..79b8adb 100644 --- a/extension/src/index.css +++ b/extension/src/index.css @@ -21,12 +21,16 @@ body { width: 300px; background-color: black; padding: 10px; - display: flex; - flex-direction: column; right: 0; animation: slideIn 0.3s ease-in-out; } +#settings-menu form { + display: flex; + flex-direction: column; + place-items: flex-start; +} + .radio-group { display: flex; flex-direction: column; -- cgit v1.2.3