Fix warning and remove logging
This commit is contained in:
Binary file not shown.
@@ -1,7 +1,7 @@
|
||||
import { Box, Button, Dialog, DialogActions, DialogContent, DialogTitle, Link, TextField } from "@mui/material";
|
||||
import { useQuery } from "@tanstack/react-query";
|
||||
import i18next from "i18next";
|
||||
import React, { useState } from "react";
|
||||
import React, { useEffect, useState } from "react";
|
||||
import AccountType from "../../components/Account";
|
||||
import { useAccount } from "../AccountProvider";
|
||||
import { fetchAccount, submitLogin, submitRegister } from "../query/Queries"; // Importiere die Funktion für die Registrierung
|
||||
@@ -21,6 +21,17 @@ const LoginDialog: React.FC<LoginDialogProps> = ({ open, onClose, loginData, set
|
||||
const [showErrorRegister, setShowErrorRegister] = useState(false); // Neuer Zustand für die Anzeige der Fehlermeldung
|
||||
const [showErrorLogin, setShowErrorLogin] = useState(false); // Neuer Zustand für die Anzeige der Login-Fehlermeldung
|
||||
|
||||
useEffect(() => {
|
||||
if (open) {
|
||||
const active = document.activeElement as HTMLElement | null;
|
||||
if (active && typeof active.blur === "function") {
|
||||
active.blur();
|
||||
}
|
||||
}
|
||||
}, [open]);
|
||||
|
||||
|
||||
|
||||
// useQuery für Login
|
||||
const { refetch: refetchLogin, isLoading: isLoadingLogin, error: errorLogin } = useQuery({
|
||||
queryKey: ["submitLogin", loginData],
|
||||
@@ -82,7 +93,7 @@ const LoginDialog: React.FC<LoginDialogProps> = ({ open, onClose, loginData, set
|
||||
};
|
||||
|
||||
return (
|
||||
<Dialog open={open} onClose={onClose}>
|
||||
<Dialog open={open} onClose={onClose} disableEnforceFocus>
|
||||
<DialogTitle>{showRegister ? "Registrieren" : "Login"}</DialogTitle>
|
||||
<DialogContent>
|
||||
{showRegister ? (
|
||||
|
||||
@@ -84,6 +84,7 @@ export default function NavBar() {
|
||||
setLoginOpen(false);
|
||||
};
|
||||
|
||||
|
||||
// useQuery, um die Item-Namen zu laden
|
||||
const { data: items = [] } = useQuery<Item[]>({
|
||||
queryKey: ["fetchItemList"],
|
||||
@@ -108,140 +109,140 @@ export default function NavBar() {
|
||||
|
||||
return (
|
||||
<>
|
||||
<AppBar className="navbar" color="primary" elevation={4}>
|
||||
<Toolbar
|
||||
disableGutters
|
||||
sx={{
|
||||
display: 'flex',
|
||||
justifyContent: 'space-between',
|
||||
px: 3
|
||||
}}
|
||||
>
|
||||
<Box sx={{ display: "flex", alignItems: "center", minWidth: "0px" }}>
|
||||
<AdbIcon className='navbar-logo' />
|
||||
<Typography
|
||||
variant="h6"
|
||||
noWrap
|
||||
component="a"
|
||||
href="/"
|
||||
sx={{
|
||||
fontFamily: "monospace",
|
||||
fontWeight: 700,
|
||||
letterSpacing: ".3rem",
|
||||
color: "white",
|
||||
textDecoration: "none",
|
||||
ml: 1,
|
||||
}}
|
||||
>
|
||||
Digitaler Produktionsshop
|
||||
</Typography>
|
||||
</Box>
|
||||
|
||||
<Box sx={{ flexGrow: 1, display: "flex", justifyContent: "center", px: 3 }}>
|
||||
<Autocomplete
|
||||
sx={{ flexGrow: 1, minWidth: "150px", maxWidth: "600px" }}
|
||||
freeSolo
|
||||
options={itemNames} // Item-Namen für Autocomplete
|
||||
onInputChange={handleSearch} // Suche auslösen
|
||||
renderInput={(params) => (
|
||||
<TextField
|
||||
{...params}
|
||||
placeholder={t("search") + "..."}
|
||||
InputProps={{
|
||||
...params.InputProps,
|
||||
startAdornment: (
|
||||
<SearchIcon sx={{ color: "white", mr: 1 }} />
|
||||
),
|
||||
}}
|
||||
sx={{
|
||||
'& .MuiOutlinedInput-root': {
|
||||
'& fieldset': {
|
||||
borderColor: 'white',
|
||||
borderWidth: '1px',
|
||||
},
|
||||
'&:hover fieldset': {
|
||||
borderColor: 'white',
|
||||
},
|
||||
'&.Mui-focused fieldset': {
|
||||
borderColor: 'white',
|
||||
},
|
||||
},
|
||||
input: {
|
||||
color: 'white',
|
||||
},
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
/>
|
||||
</Box>
|
||||
|
||||
<Box sx={{ display: "flex", alignItems: "center", gap: 2, marginLeft: 'auto' }}>
|
||||
<Box sx={{ display: { xs: "none", md: "flex" }, gap: 2 }}>
|
||||
{pages.map(({ key, label }) => (
|
||||
<Button
|
||||
key={key}
|
||||
onClick={() => handleCloseNavMenu(key)}
|
||||
sx={{ color: "white", fontWeight: 500 }}
|
||||
>
|
||||
{label}
|
||||
</Button>
|
||||
))}
|
||||
<AppBar className="navbar" color="primary" elevation={4}>
|
||||
<Toolbar
|
||||
disableGutters
|
||||
sx={{
|
||||
display: 'flex',
|
||||
justifyContent: 'space-between',
|
||||
px: 3
|
||||
}}
|
||||
>
|
||||
<Box sx={{ display: "flex", alignItems: "center", minWidth: "0px" }}>
|
||||
<AdbIcon className='navbar-logo' />
|
||||
<Typography
|
||||
variant="h6"
|
||||
noWrap
|
||||
component="a"
|
||||
href="/"
|
||||
sx={{
|
||||
fontFamily: "monospace",
|
||||
fontWeight: 700,
|
||||
letterSpacing: ".3rem",
|
||||
color: "white",
|
||||
textDecoration: "none",
|
||||
ml: 1,
|
||||
}}
|
||||
>
|
||||
Digitaler Produktionsshop
|
||||
</Typography>
|
||||
</Box>
|
||||
|
||||
<Box sx={{ display: { xs: "flex", md: "none" } }}>
|
||||
<IconButton
|
||||
size="large"
|
||||
aria-label="menu"
|
||||
onClick={handleOpenNavMenu}
|
||||
color="inherit"
|
||||
>
|
||||
<MenuIcon />
|
||||
</IconButton>
|
||||
<Menu
|
||||
anchorEl={anchorElNav}
|
||||
anchorOrigin={{ vertical: "top", horizontal: "right" }}
|
||||
transformOrigin={{ vertical: "top", horizontal: "right" }}
|
||||
open={Boolean(anchorElNav)}
|
||||
onClose={() => setAnchorElNav(null)}
|
||||
>
|
||||
<Box sx={{ flexGrow: 1, display: "flex", justifyContent: "center", px: 3 }}>
|
||||
<Autocomplete
|
||||
sx={{ flexGrow: 1, minWidth: "150px", maxWidth: "600px" }}
|
||||
freeSolo
|
||||
options={itemNames} // Item-Namen für Autocomplete
|
||||
onInputChange={handleSearch} // Suche auslösen
|
||||
renderInput={(params) => (
|
||||
<TextField
|
||||
{...params}
|
||||
placeholder={t("search") + "..."}
|
||||
InputProps={{
|
||||
...params.InputProps,
|
||||
startAdornment: (
|
||||
<SearchIcon sx={{ color: "white", mr: 1 }} />
|
||||
),
|
||||
}}
|
||||
sx={{
|
||||
'& .MuiOutlinedInput-root': {
|
||||
'& fieldset': {
|
||||
borderColor: 'white',
|
||||
borderWidth: '1px',
|
||||
},
|
||||
'&:hover fieldset': {
|
||||
borderColor: 'white',
|
||||
},
|
||||
'&.Mui-focused fieldset': {
|
||||
borderColor: 'white',
|
||||
},
|
||||
},
|
||||
input: {
|
||||
color: 'white',
|
||||
},
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
/>
|
||||
</Box>
|
||||
|
||||
<Box sx={{ display: "flex", alignItems: "center", gap: 2, marginLeft: 'auto' }}>
|
||||
<Box sx={{ display: { xs: "none", md: "flex" }, gap: 2 }}>
|
||||
{pages.map(({ key, label }) => (
|
||||
<MenuItem key={key} onClick={() => handleCloseNavMenu(key)}>
|
||||
<Typography>{label}</Typography>
|
||||
<Button
|
||||
key={key}
|
||||
onClick={() => handleCloseNavMenu(key)}
|
||||
sx={{ color: "white", fontWeight: 500 }}
|
||||
>
|
||||
{label}
|
||||
</Button>
|
||||
))}
|
||||
</Box>
|
||||
|
||||
<Box sx={{ display: { xs: "flex", md: "none" } }}>
|
||||
<IconButton
|
||||
size="large"
|
||||
aria-label="menu"
|
||||
onClick={handleOpenNavMenu}
|
||||
color="inherit"
|
||||
>
|
||||
<MenuIcon />
|
||||
</IconButton>
|
||||
<Menu
|
||||
anchorEl={anchorElNav}
|
||||
anchorOrigin={{ vertical: "top", horizontal: "right" }}
|
||||
transformOrigin={{ vertical: "top", horizontal: "right" }}
|
||||
open={Boolean(anchorElNav)}
|
||||
onClose={() => setAnchorElNav(null)}
|
||||
>
|
||||
{pages.map(({ key, label }) => (
|
||||
<MenuItem key={key} onClick={() => handleCloseNavMenu(key)}>
|
||||
<Typography>{label}</Typography>
|
||||
</MenuItem>
|
||||
))}
|
||||
</Menu>
|
||||
</Box>
|
||||
|
||||
<ThemeToggle />
|
||||
<Tooltip title={t('openSettings')} placement='bottom-end'>
|
||||
<IconButton onClick={handleOpenUserMenu} sx={{ p: 0 }}>
|
||||
<Avatar alt="Florian Speicher" src="/static/images/avatar/2.jpg" />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
<Menu
|
||||
sx={{ mt: "15px" }}
|
||||
id="menu-appbar-user"
|
||||
anchorEl={anchorElUser}
|
||||
open={Boolean(anchorElUser)}
|
||||
onClose={() => setAnchorElUser(null)}
|
||||
>
|
||||
{settings.map(({ key, label }) => (
|
||||
<MenuItem key={key} onClick={() => handleCloseUserMenu(key)}>
|
||||
<Typography sx={{ textAlign: "center" }}>{label}</Typography>
|
||||
</MenuItem>
|
||||
))}
|
||||
</Menu>
|
||||
</Box>
|
||||
|
||||
<ThemeToggle />
|
||||
<Tooltip title={t('openSettings')} placement='bottom-end'>
|
||||
<IconButton onClick={handleOpenUserMenu} sx={{ p: 0 }}>
|
||||
<Avatar alt="Florian Speicher" src="/static/images/avatar/2.jpg" />
|
||||
</IconButton>
|
||||
</Tooltip>
|
||||
<Menu
|
||||
sx={{ mt: "15px" }}
|
||||
id="menu-appbar-user"
|
||||
anchorEl={anchorElUser}
|
||||
open={Boolean(anchorElUser)}
|
||||
onClose={() => setAnchorElUser(null)}
|
||||
>
|
||||
{settings.map(({ key, label }) => (
|
||||
<MenuItem key={key} onClick={() => handleCloseUserMenu(key)}>
|
||||
<Typography sx={{ textAlign: "center" }}>{label}</Typography>
|
||||
</MenuItem>
|
||||
))}
|
||||
</Menu>
|
||||
</Box>
|
||||
</Toolbar>
|
||||
</AppBar>
|
||||
<LoginDialog
|
||||
open={loginOpen}
|
||||
onClose={() => setLoginOpen(false)}
|
||||
onSubmit={handleLoginSubmit}
|
||||
loginData={loginData}
|
||||
setLoginData={setLoginData}
|
||||
/>
|
||||
<div className="navbar-offset"/>
|
||||
</>
|
||||
</Toolbar>
|
||||
</AppBar>
|
||||
<LoginDialog
|
||||
open={loginOpen}
|
||||
onClose={() => setLoginOpen(false)}
|
||||
onSubmit={handleLoginSubmit}
|
||||
loginData={loginData}
|
||||
setLoginData={setLoginData}
|
||||
/>
|
||||
<div className="navbar-offset" />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -26,7 +26,6 @@ export default function Account() {
|
||||
|
||||
// Aktualisiere den `user`-State, wenn sich `userData` ändert
|
||||
useEffect(() => {
|
||||
console.log("UserData changed:", userData);
|
||||
if (userData?.customerId) {
|
||||
setUser((prev) => ({
|
||||
...prev,
|
||||
|
||||
Reference in New Issue
Block a user