diff --git a/packages/settings-ui/package.json b/packages/settings-ui/package.json index d6530402..ebed03e2 100644 --- a/packages/settings-ui/package.json +++ b/packages/settings-ui/package.json @@ -8,6 +8,7 @@ }, "dependencies": { "@glzr/components": "1.0.0", + "@solidjs/router": "0.14.8", "smorf": "1.0.0", "solid-js": "1.9.2", "tailwindcss": "3.4.13 ", diff --git a/packages/settings-ui/src/index.css b/packages/settings-ui/src/index.css index 3b3ee9ac..56c45f47 100644 --- a/packages/settings-ui/src/index.css +++ b/packages/settings-ui/src/index.css @@ -8,6 +8,10 @@ body, height: 100%; } +.tabler-icon { + stroke-width: 1; +} + @layer base { :root { --background: 0 0% 100%; diff --git a/packages/settings-ui/src/index.tsx b/packages/settings-ui/src/index.tsx index 95afb8dd..b1e977ba 100644 --- a/packages/settings-ui/src/index.tsx +++ b/packages/settings-ui/src/index.tsx @@ -1,6 +1,14 @@ /* @refresh reload */ import './index.css'; +import { Route, Router } from '@solidjs/router'; import { render } from 'solid-js/web'; -import { App } from './App'; +import { WidgetSettings } from './settings/WidgetSettings'; -render(() => , document.getElementById('root')!); +render( + () => ( + + + + ), + document.getElementById('root')!, +); diff --git a/packages/settings-ui/src/FileTree.tsx b/packages/settings-ui/src/settings/WidgetConfigTree.tsx similarity index 94% rename from packages/settings-ui/src/FileTree.tsx rename to packages/settings-ui/src/settings/WidgetConfigTree.tsx index f7fb5974..7f63ea28 100644 --- a/packages/settings-ui/src/FileTree.tsx +++ b/packages/settings-ui/src/settings/WidgetConfigTree.tsx @@ -16,12 +16,15 @@ export interface FileItem { children?: FileItem[]; } -export interface FileTreeProps { +export interface WidgetConfigTreeProps { files: FileItem[]; onSelect: (file: FileItem) => void; } -export function FileTree({ files, onSelect }: FileTreeProps) { +export function WidgetConfigTree({ + files, + onSelect, +}: WidgetConfigTreeProps) { const [expanded, setExpanded] = createSignal>( {}, ); diff --git a/packages/settings-ui/src/App.tsx b/packages/settings-ui/src/settings/WidgetSettings.tsx similarity index 71% rename from packages/settings-ui/src/App.tsx rename to packages/settings-ui/src/settings/WidgetSettings.tsx index 28fe2f3c..0dda052a 100644 --- a/packages/settings-ui/src/App.tsx +++ b/packages/settings-ui/src/settings/WidgetSettings.tsx @@ -1,5 +1,5 @@ -import { FileItem, FileTree } from './FileTree'; -import { WidgetSettings } from './WidgetSettings'; +import { FileItem, WidgetConfigTree } from './WidgetConfigTree'; +import { WidgetSettingsForm } from './WidgetSettingsForm'; const initialFiles: FileItem[] = [ { @@ -26,13 +26,13 @@ const initialFiles: FileItem[] = [ children: [ { name: 'Vacation.jpg', - type: 'image', + type: 'file', size: '3.2 MB', modified: '2023-09-28', }, { name: 'Family.png', - type: 'image', + type: 'file', size: '2.9 MB', modified: '2023-09-29', }, @@ -40,23 +40,23 @@ const initialFiles: FileItem[] = [ }, { name: 'Music.mp3', - type: 'audio', + type: 'file', size: '5.4 MB', modified: '2023-10-01', }, { name: 'Video.mp4', - type: 'video', + type: 'file', size: '15.7 MB', modified: '2023-10-02', }, ]; -export function App() { +export function WidgetSettings() { return (
- {}} /> - + {}} /> +
); } diff --git a/packages/settings-ui/src/WidgetSettings.tsx b/packages/settings-ui/src/settings/WidgetSettingsForm.tsx similarity index 88% rename from packages/settings-ui/src/WidgetSettings.tsx rename to packages/settings-ui/src/settings/WidgetSettingsForm.tsx index 6f96112c..708b6954 100644 --- a/packages/settings-ui/src/WidgetSettings.tsx +++ b/packages/settings-ui/src/settings/WidgetSettingsForm.tsx @@ -46,8 +46,8 @@ type WidgetPreset = { }; }; -export function WidgetSettings() { - const widgetForm = createForm({ +export function WidgetSettingsForm() { + const settingsForm = createForm({ htmlPath: '', zOrder: 'normal', shownInTaskbar: false, @@ -59,7 +59,7 @@ export function WidgetSettings() { }); const presetNames = createMemo(() => - widgetForm.value.presets.map(preset => preset.name), + settingsForm.value.presets.map(preset => preset.name), ); const [selectedPreset, setSelectedPreset] = createSignal( @@ -67,7 +67,7 @@ export function WidgetSettings() { ); function addNewPreset() { - widgetForm.setValue('presets', presets => [ + settingsForm.setValue('presets', presets => [ ...presets, { name: presets.length ? `default${presets.length + 1}` : 'default', @@ -83,7 +83,7 @@ export function WidgetSettings() { ]); if (!selectedPreset()) { - setSelectedPreset(widgetForm.value.presets[0].name); + setSelectedPreset(settingsForm.value.presets[0].name); } } @@ -97,11 +97,11 @@ export function WidgetSettings() { - Widget Settings + Widget settings - + {inputProps => ( - + {inputProps => ( - + {inputProps => ( - + {inputProps => ( - + {inputProps => ( - + {inputProps => ( - {widgetForm.value.presets.map((_, index) => ( + {settingsForm.value.presets.map((_, index) => (
- + {inputProps => (
- + {inputProps => ( {inputProps => ( @@ -245,7 +245,7 @@ export function WidgetSettings() {
{/* TODO: Change to px/percent input. */} - + {inputProps => ( {/* TODO: Change to px/percent input. */} - + {inputProps => (