diff --git a/desktop/src/ui/components/ScrollableContainer.tsx b/desktop/src/ui/components/ScrollableContainer.tsx new file mode 100644 index 00000000..669caaed --- /dev/null +++ b/desktop/src/ui/components/ScrollableContainer.tsx @@ -0,0 +1,23 @@ +import { OverlayScrollbarsComponent } from 'overlayscrollbars-solid'; +import type { ParentProps } from 'solid-js'; + +type ScrollableContainerProps = ParentProps & { + title: string; +}; + +function ScrollableContainer(props: ScrollableContainerProps) { + return ( +
+

{props.title}

+
+ +
+ {props.children} +
+
+
+
+ ); +} + +export default ScrollableContainer; diff --git a/desktop/src/ui/pages/settings/components.tsx b/desktop/src/ui/pages/settings/components.tsx new file mode 100644 index 00000000..dbb1456c --- /dev/null +++ b/desktop/src/ui/pages/settings/components.tsx @@ -0,0 +1,31 @@ +import { type JSX, type ParentProps, createEffect } from 'solid-js'; + +type SettingsRowProps = ParentProps & { + title: string; + description: string; + icon: JSX.Element; + clickable?: () => any; +}; + +function SettingsRow(props: SettingsRowProps) { + const interactableClass = createEffect(() => props.clickable ? 'hover:bg-component-bg-hover active:bg-component-bg-pressed' : ''); + + return ( +
+
+ {props.icon} +
+ +
+

{props.title}

+

{props.description}

+
+ +
+ test +
+
+ ); +} + +export default SettingsRow; diff --git a/desktop/src/ui/pages/settings/launcher/SettingsGeneral.tsx b/desktop/src/ui/pages/settings/launcher/SettingsGeneral.tsx index d3fd90f2..55330fa5 100644 --- a/desktop/src/ui/pages/settings/launcher/SettingsGeneral.tsx +++ b/desktop/src/ui/pages/settings/launcher/SettingsGeneral.tsx @@ -1,8 +1,12 @@ +import { Code01Icon } from '@untitled-theme/icons-solid'; +import SettingsRow from '../components'; +import ScrollableContainer from '~ui/components/ScrollableContainer'; + function SettingsGeneral() { return ( -
-

General

-
+ + } /> + ); }