diff --git a/src/components/Pageselector/index.jsx b/src/components/Pageselector/index.jsx
index 48c9b2d..1f7dc0a 100644
--- a/src/components/Pageselector/index.jsx
+++ b/src/components/Pageselector/index.jsx
@@ -4,18 +4,16 @@ import { h } from "preact";
const Pageselector = (props) => {
-
- let start = 1;
- let end = 7;
+ var items = [];
+ if(!isNaN(props.start)&&!isNaN(props.end)&&!isNaN(props.current))
+ for(var i=props.start; i<=props.end; i++){
+ items.push(
{i});
+ }
+ items.push(>);
return (
- - 1
- - 2
- - 3
- - 4
- - 5
- - >
+ {items}
);
}
diff --git a/src/components/app.js b/src/components/app.js
index 62415f6..96b60c2 100644
--- a/src/components/app.js
+++ b/src/components/app.js
@@ -1,23 +1,57 @@
-import { createRef, h } from 'preact';
-import { Router } from 'preact-router';
-import Header from './header';
-import Login from '../routes/login';
-import Profile from '../routes/profile';
-import Menu from './menu';
-import Users from '../routes/users';
+import { Component, createRef, h } from "preact";
+import { Router } from "preact-router";
+import Header from "./header";
+import Login from "../routes/login";
+import Profile from "../routes/profile";
+import Menu from "./menu";
+import Users from "../routes/users";
+import { useCallback, useState } from "preact/hooks";
const menu = createRef();
+class App extends Component {
+ toggleMenu() {
+ const [visible, setValue] = useState(false);
+ const toggle = useCallback(() => {
+ setValue(!visible);
+ return !visible;
+ }, [visible]);
+ return { visible, toggle };
+ }
+ authenticateUser() {
+ const [session, setValue] = useState({ token: null });
+ const login = (username, password) => {
+ if (username == "admin" && password == "admin") {
+ setValue({ ...session, token: "ABCDEFG" });
+ return true;
+ }
+ };
+ const logout = () => setValue({ ...session, token: null });
+ const isAuthenticated = () => session.token != null;
+ return { login, logout, isAuthenticated };
+ }
-const App = () => (
-
-)
+ render() {
+ const menu = this.toggleMenu();
+ const auth = this.authenticateUser();
+ return (
+
+
+
+ {!menu.visible &&
+ (!auth.isAuthenticated() ? (
+
+ ) : (
+
+ ))}
+
+ );
+ }
+}
export default App;
diff --git a/src/components/header/index.jsx b/src/components/header/index.jsx
index e62e522..5188ee1 100644
--- a/src/components/header/index.jsx
+++ b/src/components/header/index.jsx
@@ -1,37 +1,21 @@
import { Component, createRef, h } from 'preact';
//import { Link } from 'preact-router/match';
-class Header extends Component {
- state = { shown: true }
- hamburger = createRef();
- togglemenu() {
- if (this.props.menu.current) {
- this.setState(prev => ({ shown: !prev.shown }));
- this.props.menu.current.toggle(this.state);
- if (this.state.shown) {
- this.hamburger.current.classList.add('hamburger-active');
- }
- else {
- this.hamburger.current.classList.remove('hamburger-active');
- }
- }
- }
+const Header = (props) => (
+
+);
+
-render(props){
- return (
-
- );
-}
-}
export default Header;
diff --git a/src/components/menu/index.jsx b/src/components/menu/index.jsx
index 339b4b0..db415de 100644
--- a/src/components/menu/index.jsx
+++ b/src/components/menu/index.jsx
@@ -1,36 +1,34 @@
import { Component, h } from 'preact';
-
+import { Link } from 'preact-router';
class Menu extends Component {
menu_items = [
{ text: "Übersicht", path: "/" },
- { text: "Benutzer", path: "/user" },
+ { text: "Benutzer", path: "/users" },
{ text: "System", path: "/system" },
{ text: "Backup", path: "/backup" },
- { text: "Abmelden", path: "/" }
+ { text: "Abmelden", path: "/logout" }
]
- state = { shown: false }
- toggle(val) {
- this.setState(val);
- }
+
getAlert() {
alert("getAlert from Child");
}
-
+ onClick = (e) => {
+ e.preventDefault();
+ this.props.menu.toggle();
+ }
render(props, state) {
+ if (props.menu.visible)
+ return (
+
+
- return ()
-
+
)
}
}
diff --git a/src/index.js b/src/index.js
index b921cb0..1d691c9 100644
--- a/src/index.js
+++ b/src/index.js
@@ -1,4 +1,6 @@
import './style/style.sass';
import App from './components/app';
+import { h, render, Component } from "preact"
-export default App;
+render(, document.body)
+//export default App;
diff --git a/src/routes/login/index.jsx b/src/routes/login/index.jsx
index 9fc3230..b41f4d8 100644
--- a/src/routes/login/index.jsx
+++ b/src/routes/login/index.jsx
@@ -2,12 +2,14 @@ import { Component, h } from 'preact';
import Breadcrumbs from '../../components/breadcrumbs';
class Login extends Component {
- state = { name: '', password: '' };
+ state = { username: '', password: '' };
navigation = ["Login"];
onSubmit = (e) => {
e.preventDefault();
console.log(this.state);
- this.setState({ name: '', password: '' });
+ this.setState({ username: '', password: '' });
+ if(!this.props.auth.login(this.state.username,this.state.password))
+ alert("Wrong login")
}
render() {
@@ -21,7 +23,7 @@ class Login extends Component {
Bitte melden Sie sich mit ihren Nutzerdaten an.
- this.setState(prev => ({ ...prev, name: e.target.value }))} value={this.state.name} />
+ this.setState(prev => ({ ...prev, username: e.target.value }))} value={this.state.username} />