{
>
{'Gruppe beitreten'}
-
{
>
E-Mail
-
{
required
fullWidth
variant="outlined"
- onBlur={validateEmail}
+ onBlur={isMailValid}
onChange={event => setEmail(event.target.value)}
+ value={email}
color={emailError ? 'error' : 'primary'} />
{'Gruppencode'}
{
required
fullWidth
variant="outlined"
- onBlur={validateGroup}
+ onBlur={isGroupValid}
onChange={event => setGroup(event.target.value)}
+ value={group}
color={groupError ? 'error' : 'primary'} />
-
-
-
{
{'Gruppencode vergessen?'}
-
oder
-
);
-};
+});
export default SignIn;
\ No newline at end of file
diff --git a/src/client/frontend.tsx b/src/client/frontend.tsx
index c2c1a8f..d618bd9 100644
--- a/src/client/frontend.tsx
+++ b/src/client/frontend.tsx
@@ -1,3 +1,4 @@
+/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/**
* This file is the entry point for the React app, it sets up the root
* element and renders the App component to the DOM.
@@ -6,19 +7,25 @@
*/
import { StrictMode } from 'react';
-import { createRoot } from 'react-dom/client';
+import { createRoot, type Root } from 'react-dom/client';
import App from './App';
+import { Store, StoreContext } from './Store';
const elem = document.getElementById('root')!;
+
+const store = new Store();
+
const app = (