diff --git a/Client/src/Components/Inputs/Field/index.jsx b/Client/src/Components/Inputs/Field/index.jsx index 06594450a..cb18c42af 100644 --- a/Client/src/Components/Inputs/Field/index.jsx +++ b/Client/src/Components/Inputs/Field/index.jsx @@ -21,6 +21,7 @@ import { useState } from "react"; * @param {string} [props.label] - Label for the input field. * @param {boolean} [props.isRequired] - Indicates if the field is required, will display a red asterisk. * @param {boolean} [props.isOptional] - Indicates if the field is optional, will display optional text. + * @param {string} [props.optionalLabel] - Optional label for the input field. * @param {boolean} [props.hasCopy] - Indicates if the field supports copying. * @param {string} [props.autoComplete] - Autocomplete value for the input field. * @param {string} [props.placeholder] - Placeholder text for the input field. @@ -36,6 +37,7 @@ const Field = ({ label, isRequired, isOptional, + optionalLabel, hasCopy, autoComplete, placeholder, @@ -61,7 +63,13 @@ const Field = ({ {label} {isRequired ? * : ""} - {isOptional ? (optional) : ""} + {isOptional ? ( + + {optionalLabel || "(optional)"} + + ) : ( + "" + )} )} { const levelConfig = { primary: {}, - secondary: {}, + secondary: { + color: theme.palette.otherColors.bluishGray, + sx: { + ":hover": { + color: theme.palette.otherColors.bluishGray, + }, + }, + }, tertiary: { color: theme.palette.tertiary.main, sx: { textDecoration: "underline", textDecorationStyle: "dashed", textDecorationColor: theme.palette.primary.main, + textUnderlineOffset: "1px", ":hover": { color: theme.palette.tertiary.main, textDecorationColor: theme.palette.primary.main, @@ -33,7 +41,13 @@ const Link = ({ level, label, url }) => { }; const { sx, color } = levelConfig[level]; return ( - + {label} ); diff --git a/Client/src/Pages/Settings/index.css b/Client/src/Pages/Settings/index.css index e69de29bb..738757f77 100644 --- a/Client/src/Pages/Settings/index.css +++ b/Client/src/Pages/Settings/index.css @@ -0,0 +1,36 @@ +.settings a.MuiTypography-root, +.settings h2.MuiTypography-root, +.settings span.MuiTypography-root, +.settings button, +.settings p.MuiTypography-root { + font-size: var(--env-var-font-size-medium); +} +.settings h1.MuiTypography-root, +.settings h2.MuiTypography-root, +.settings p.MuiTypography-root { + color: var(--env-var-color-5); +} +.settings h1.MuiTypography-root { + font-size: var(--env-var-font-size-large); +} +.settings h1.MuiTypography-root, +.settings h2.MuiTypography-root { + font-weight: 600; +} +.settings button { + height: 34px; +} +.settings span.MuiTypography-root { + opacity: 0.6; + margin-right: 4px; +} +.settings .config-box { + padding: var(--env-var-spacing-4) 50px; + padding-bottom: 60px; + border: 1px solid var(--env-var-color-16); + border-radius: var(--env-var-radius-1); +} +.settings .config-box .MuiBox-root, +.settings .config-box .MuiStack-root { + flex: 1; +} diff --git a/Client/src/Pages/Settings/index.jsx b/Client/src/Pages/Settings/index.jsx index 3ca261a80..c2ef71666 100644 --- a/Client/src/Pages/Settings/index.jsx +++ b/Client/src/Pages/Settings/index.jsx @@ -1,7 +1,126 @@ -import React from "react"; +import { useTheme } from "@emotion/react"; +import { Box, Stack, Typography } from "@mui/material"; +import Button from "../../Components/Button"; + +import "./index.css"; +import Field from "../../Components/Inputs/Field"; +import Link from "../../Components/Link"; const Settings = () => { - return
Settings
; + const theme = useTheme(); + + return ( + +
+ + + + General Settings + + Display timezone- The + timezone of the dashboard you publicly display. + + + Server timezone- The + timezone of your server. + + + + {/* TODO - build select component */} + console.log("Disabled")} + /> + console.log("Disabled")} + /> + + + + + History and monitoring + + Define here for how long you want to keep the data. You can also + remove all past data. + + + + console.log("Disabled")} + /> + + Clear all stats. This is irreversible. +