import React, { useEffect, useRef, useState } from "react"; import "../../App.css"; import Footer from "../../Footer"; import InputField from "../InputField"; import SubmitField from "../SubmitField"; import { Logger } from "@behametrics/logger-web"; import BehaviorStudyInfo from "../BehaviorStudyInfo"; import BehaviorNormal from "../BehaviorNormal"; import { Button } from "../Button"; import BehaviorPhone from "../BehaviorPhone"; import BehaviorStanding from "../BehaviorStanding"; export default function Study() { const _logger = useRef(0); useEffect(() => { _logger.current = new Logger({ //inputs: ["cursor", "wheel", "keyboard", "touch"], inputs: ["keyboard"], // apiUrl: "https://behavior.marcocamenzind.ch", apiUrl: "http://localhost:5000", logToConsole: true, }); _logger.current.init(); }, []); let username = ""; const setUsername = (tmp_username) => { username = tmp_username; }; let password = ""; const setPassword = (tmp_password) => { password = tmp_password; }; const [isStepStart, setIsStepStart] = useState(true); const [isStepNormal, setIsStepNormal] = useState(false); const [isStepPhone, setIsStepPhone] = useState(false); const [isStepStanding, setIsStepStanding] = useState(false); const [isStepEnd, setIsStepEnd] = useState(false); const handleLoggerOff = () => { _logger.current.stop(); console.log("Logger ausgeschaltet"); }; const handleLoggerOn = () => { _logger.current.start(); console.log("start logging "); }; const handlePasswordChange = (e) => { setPassword(e.target.value); }; const handleUsernameChange = (e) => { setUsername(e.target.value); }; const handleOnPasteEvent = (e) => { e.preventDefault(); return false; }; const handleClickAtStepStart = () => { setIsStepStart(false); setIsStepNormal(true); handleLoggerOn(); // forceUpdate(); }; const handleClickAtStepNormal = () => { setIsStepNormal(false); setIsStepPhone(true); }; const handleClickAtStepPhone = () => { setIsStepPhone(false); setIsStepStanding(true); }; const handleClickAtStepStanding = () => { setIsStepStanding(false); setIsStepEnd(true); handleLoggerOff(); }; const onSubmitClick = (e) => { e.preventDefault(); let opts = { username: username, password: password, }; fetch("/api/protected/behavior", { method: "post", body: JSON.stringify(opts), }).then((response) => { console.log(response.status); if (response.status === 401) { response.json().then((resp) => { console.log("nicht so wirklich gut"); // setErrorMessage(resp.message); }); } else { response.json().then((token) => { console.log("Alles gut :-)"); }); } }); }; const study_start = ( <> <BehaviorStudyInfo /> <Button className="btns" buttonStyle="btn--primary" buttonSize="btn--full" onClick={handleClickAtStepStart} newTo="study" > Starten mit der Studie </Button> </> ); const study_normal = ( <> <BehaviorNormal /> <form id="behaviorNormal"> <InputField LabelName="Benutzername" onChange={handleUsernameChange} InputType="text" InputName="Benutzername" InputPlaceHolder="Benutzername" onPaste={handleOnPasteEvent} /> <InputField LabelName="Passwort" onChange={handlePasswordChange} InputType="password" InputName="Passwort" InputPlaceHolder="Benutzername" onPaste={handleOnPasteEvent} /> <SubmitField LabelName="Weiter zur nächsten Situation" InputValue="next-situation" InputName="Weiter" onClick={handleClickAtStepNormal} /> </form> </> ); const study_phone = ( <> <BehaviorPhone /> <form id="behaviorPhone"> <InputField LabelName="Benutzername" onChange={handleUsernameChange} InputType="text" InputName="Benutzername" InputPlaceHolder="Benutzername" onPaste={handleOnPasteEvent} /> <InputField LabelName="Passwort" onChange={handlePasswordChange} InputType="password" InputName="Passwort" InputPlaceHolder="Benutzername" onPaste={handleOnPasteEvent} /> <SubmitField LabelName="Weiter zur nächsten Situation" InputValue="next-situation" InputName="Weiter" onClick={handleClickAtStepPhone} /> </form> </> ); const study_standing = ( <> <BehaviorStanding /> <form id="behaviorPhone"> <InputField LabelName="Benutzername" onChange={handleUsernameChange} InputType="text" InputName="Benutzername" InputPlaceHolder="Benutzername" onPaste={handleOnPasteEvent} /> <InputField LabelName="Passwort" onChange={handlePasswordChange} InputType="password" InputName="Passwort" InputPlaceHolder="Benutzername" onPaste={handleOnPasteEvent} /> <SubmitField LabelName="Studie beenden" InputValue="stopStudy" InputName="quit" onClick={handleClickAtStepStanding} /> </form> </> ); const study_end = <p>Merci :-)</p>; return ( <> <div className="sitePage"> <h1>Studie</h1> {isStepStart ? study_start : null} {isStepNormal ? study_normal : null} {isStepPhone ? study_phone : null} {isStepStanding ? study_standing : null} {isStepEnd ? study_end : null} </div> <Footer /> </> ); }