diff --git a/frontend/src/AppEditable.jsx b/frontend/src/AppEditable.jsx index b17ab99..70ccb07 100755 --- a/frontend/src/AppEditable.jsx +++ b/frontend/src/AppEditable.jsx @@ -60,7 +60,6 @@ function AppEditable() { "darkTheme": JSON.parse(responseData["dark_theme"]), "lightTheme": JSON.parse(responseData["light_theme"]) }) - setGlobalTheme(responseData["default_theme"]) } ) } diff --git a/frontend/src/components/editable/home.jsx b/frontend/src/components/editable/home.jsx index 9b41330..fb7fe0a 100755 --- a/frontend/src/components/editable/home.jsx +++ b/frontend/src/components/editable/home.jsx @@ -1,4 +1,4 @@ -import { Container, Spinner, Input, InputGroup, InputGroupText, Button, ButtonGroup } from 'reactstrap'; +import { Container, Spinner, Input, InputGroup, InputGroupText, Button, ButtonGroup, FormFeedback } from 'reactstrap'; import {useEffect, useState, useRef} from 'react'; import EditorComponent from './shared/tiptap'; import MediaService from '../../services/media-service' @@ -6,6 +6,7 @@ import MediaService from '../../services/media-service' function HomePage(props) { const [introContent, setIntroContent] = useState("") const [saveKeyReady, setSaveKeyReady] = useState(true) + const [nameFieldInvalid, setNameFieldInvalid] = useState(false) const nameField = useRef(null) const UserData = props.UserData ? props.UserData : Loading... const GlobalTheme = props.GlobalTheme; @@ -20,10 +21,20 @@ function HomePage(props) { console.log(response) if (response === 200) props.notificationToggler("Data saved successfully!") - if ([500, 404, 403].includes(response)) + if ([500, 404, 403, 400].includes(response)) props.notificationToggler("Something failed!", "danger") } + const showError = (elementValue, fieldType) => { + console.log(elementValue) + if (fieldType === 'nameField'){ + if (elementValue === '') + setNameFieldInvalid(true) + else + setNameFieldInvalid(false) + } + } + useEffect(() => { setIntroContent(UserData.introContent) }, [UserData]) @@ -39,7 +50,10 @@ function HomePage(props) { Name - + showError(nameField.current.value, 'nameField')}/> + {nameFieldInvalid ? + This field cannot be empty + :''} diff --git a/frontend/src/components/editable/shared/footer.jsx b/frontend/src/components/editable/shared/footer.jsx index a9b2bdb..01fc953 100755 --- a/frontend/src/components/editable/shared/footer.jsx +++ b/frontend/src/components/editable/shared/footer.jsx @@ -18,7 +18,7 @@ const Footer = (props) => { const ThemeConfig = props.ThemeConfig; const UserData = props.UserData; - const setInfo = async (color, colorArea) => { + const setInfo = async (colorArea, color) => { let localThemeConfig = {...ThemeConfig} localThemeConfig[GlobalTheme].footer[colorArea] = `${color}` let response = await props.setInfo('/data/shared/update/theme-config/', GlobalTheme === "darkTheme" ? { @@ -42,39 +42,39 @@ const Footer = (props) => { - + onClick={() => setInfo('text', 'text-white')}>White +
diff --git a/frontend/src/components/editable/shared/navbar.jsx b/frontend/src/components/editable/shared/navbar.jsx index 42b40c1..48c460a 100755 --- a/frontend/src/components/editable/shared/navbar.jsx +++ b/frontend/src/components/editable/shared/navbar.jsx @@ -26,13 +26,19 @@ function Header(props) { const [collapseClasses, setCollapseClasses] = useState(''); const [themeSelected, setThemeSelected] = useState('lightTheme'); + const [defaultThemeConfig, setDefaultThemeConfig] = useState('lightTheme'); - const setInfo = async (color, colorArea) => { + const setInfo = async (colorArea, color, defaultThemeConfig) => { let localThemeConfig = {...ThemeConfig} - localThemeConfig[GlobalTheme].navBar[colorArea] = `${color}` + + if (colorArea && color) + localThemeConfig[GlobalTheme].navBar[colorArea] = `${color}` + let response = await props.setInfo('/data/shared/update/theme-config/', GlobalTheme === "darkTheme" ? { + "default_theme": defaultThemeConfig, "dark_theme": JSON.stringify(localThemeConfig[GlobalTheme]), }:{ + "default_theme": defaultThemeConfig, "light_theme": JSON.stringify(localThemeConfig[GlobalTheme]), }) if (response === 200) @@ -47,6 +53,7 @@ function Header(props) { useEffect(() => { setThemeSelected(props.ThemeConfig.defaultTheme) + setDefaultThemeConfig(props.ThemeConfig.defaultTheme) }, []) if (GlobalTheme && ThemeConfig && UserData) @@ -102,41 +109,52 @@ function Header(props) { + color='light' + onClick={() => setInfo('buttonColor', 'light', ThemeConfig['defaultTheme'])}>White + + + + + onClick={() => setInfo(null, null, 'lightTheme')}>Light Theme +