refactor + bilder injection safer

This commit is contained in:
2026-04-13 15:22:47 +02:00
parent 57dd2f5955
commit ccb1e912df
15 changed files with 36 additions and 36 deletions

View File

@@ -3,20 +3,20 @@ import { createTheme, ThemeProvider, CssBaseline } from '@mui/material';
import { AuthProvider } from './context/AuthContext';
import PrivateRoute from './components/PrivateRoute';
import Layout from './components/Layout';
import LoginPage from './pages/LoginPage';
import RegisterPage from './pages/RegisterPage';
import UsersPage from './pages/UsersPage';
import PostsPage from './pages/PostsPage';
import CreateNewsPage from './pages/CreateNewsPage';
import OrganizationPage from './pages/OrganizationPage';
import PushPage from './pages/PushPage';
import EditAttractionPage from './pages/EditAttractionPage';
import AttractionPage from './pages/AttractionPage';
import HomePage from './pages/HomePage';
import EditOrganizationPage from "./pages/EditOrganizationPage.jsx";
import CompanyPage from "./pages/CompanyPage.jsx";
import EditCompanyPage from "./pages/EditCompanyPage.jsx";
import CalenderPostPage from "./pages/CalenderPostPage.jsx";
import LoginPage from './pages/Auth/LoginPage.jsx';
import RegisterPage from './pages/Auth/RegisterPage.jsx';
import UsersPage from './pages/Auth/UsersPage.jsx';
import PostsPage from './pages/News/PostsPage.jsx';
import CreateNewsPage from './pages/News/CreateNewsPage.jsx';
import OrganizationPage from './pages/Organization/OrganizationPage.jsx';
import PushPage from './pages/Notification/PushPage.jsx';
import EditAttractionPage from './pages/Attraction/EditAttractionPage.jsx';
import AttractionPage from './pages/Attraction/AttractionPage.jsx';
import HomePage from './pages/Home/HomePage.jsx';
import EditOrganizationPage from "./pages/Organization/EditOrganizationPage.jsx";
import CompanyPage from "./pages/Company/CompanyPage.jsx";
import EditCompanyPage from "./pages/Company/EditCompanyPage.jsx";
import CalenderPostPage from "./pages/Calender/CalenderPostPage.jsx";
const theme = createTheme({
palette: {

View File

@@ -8,7 +8,7 @@ import { DataGrid } from '@mui/x-data-grid';
import DeleteOutlineIcon from '@mui/icons-material/DeleteOutline';
import AddIcon from '@mui/icons-material/Add';
import { Chip } from '@mui/material';
import axiosInstance from '../api/axiosInstance';
import axiosInstance from '../../api/axiosInstance.js';
import EditOutlinedIcon from "@mui/icons-material/EditOutlined";
import {useNavigate} from "react-router-dom";

View File

@@ -16,7 +16,7 @@ import ArrowBackIcon from "@mui/icons-material/ArrowBack";
import StarIcon from "@mui/icons-material/Star";
import DeleteOutlineIcon from "@mui/icons-material/DeleteOutline";
import AddPhotoAlternateOutlinedIcon from "@mui/icons-material/AddPhotoAlternateOutlined";
import axiosInstance from "../api/axiosInstance.js";
import axiosInstance from "../../api/axiosInstance.js";
const EMPTY_FORM = {
description: '',
@@ -242,7 +242,7 @@ export default function EditAttractionPage() {
sx={{ mt: 0.5, px: 0, minWidth: 0, fontSize: 12 }}
>
Bild ersetzen
<input type="file" hidden accept="image/*" onChange={handleTitleImageChange} />
<input type="file" hidden accept="image/jpeg,image/png,image/webp" onChange={handleTitleImageChange} />
</Button>
</Box>
<IconButton size="small" color="error" onClick={handleRemoveTitleImage}>
@@ -258,7 +258,7 @@ export default function EditAttractionPage() {
sx={{ alignSelf: 'flex-start' }}
>
Titelbild hochladen
<input type="file" hidden accept="image/*" onChange={handleTitleImageChange} />
<input type="file" hidden accept="image/jpeg,image/png,image/webp" onChange={handleTitleImageChange} />
</Button>
)}
</Box>
@@ -329,7 +329,7 @@ export default function EditAttractionPage() {
sx={{ alignSelf: 'flex-start' }}
>
Bild hinzufügen
<input type="file" hidden accept="image/*" multiple onChange={handleOtherFilesChange} />
<input type="file" hidden accept="image/jpeg,image/png,image/webp" multiple onChange={handleOtherFilesChange} />
</Button>
</Stack>
</Box>

View File

@@ -5,7 +5,7 @@ import {
Divider, Link,
} from '@mui/material';
import LockOutlinedIcon from '@mui/icons-material/LockOutlined';
import { useAuth } from '../context/AuthContext';
import { useAuth } from '../../context/AuthContext.jsx';
export default function LoginPage() {
const { login } = useAuth();

View File

@@ -5,7 +5,7 @@ import {
Alert, CircularProgress, Link, Divider,
} from '@mui/material';
import PersonAddOutlinedIcon from '@mui/icons-material/PersonAddOutlined';
import axiosInstance from '../api/axiosInstance';
import axiosInstance from '../../api/axiosInstance.js';
export default function RegisterPage() {
const navigate = useNavigate();

View File

@@ -9,7 +9,7 @@ import { DataGrid } from '@mui/x-data-grid';
import EditOutlinedIcon from '@mui/icons-material/EditOutlined';
import LockResetIcon from '@mui/icons-material/LockReset';
import DeleteOutlineIcon from '@mui/icons-material/DeleteOutline';
import axiosInstance from '../api/axiosInstance';
import axiosInstance from '../../api/axiosInstance.js';
export default function UsersPage() {
const [rows, setRows] = useState([]);

View File

@@ -8,7 +8,7 @@ import { DataGrid } from '@mui/x-data-grid';
import DeleteOutlineIcon from '@mui/icons-material/DeleteOutline';
import EditIcon from '@mui/icons-material/Edit';
import AddIcon from '@mui/icons-material/Add';
import axiosInstance from '../api/axiosInstance';
import axiosInstance from '../../api/axiosInstance.js';
const emptyForm = {
title: '',

View File

@@ -8,7 +8,7 @@ import { DataGrid } from '@mui/x-data-grid';
import DeleteOutlineIcon from '@mui/icons-material/DeleteOutline';
import AddIcon from '@mui/icons-material/Add';
import { Chip } from '@mui/material';
import axiosInstance from '../api/axiosInstance';
import axiosInstance from '../../api/axiosInstance.js';
import EditOutlinedIcon from "@mui/icons-material/EditOutlined";
import {useNavigate} from "react-router-dom";

View File

@@ -18,7 +18,7 @@ import DeleteOutlineIcon from "@mui/icons-material/DeleteOutline";
import AddPhotoAlternateOutlinedIcon from "@mui/icons-material/AddPhotoAlternateOutlined";
import { useParams } from "react-router-dom";
import { useEffect } from "react";
import axiosInstance from "../api/axiosInstance.js";
import axiosInstance from "../../api/axiosInstance.js";
const EMPTY_FORM = {
description: '',
@@ -231,7 +231,7 @@ export default function EditCompanyPage() {
sx={{ mt: 0.5, px: 0, minWidth: 0, fontSize: 12 }}
>
Bild ersetzen
<input type="file" hidden accept="image/*" onChange={handleTitleImageChange} />
<input type="file" hidden accept="image/jpeg,image/png,image/webp" onChange={handleTitleImageChange} />
</Button>
</Box>
<IconButton size="small" color="error" onClick={handleRemoveTitleImage}>
@@ -247,7 +247,7 @@ export default function EditCompanyPage() {
sx={{ alignSelf: 'flex-start' }}
>
Titelbild hochladen
<input type="file" hidden accept="image/*" onChange={handleTitleImageChange} />
<input type="file" hidden accept="image/jpeg,image/png,image/webp" onChange={handleTitleImageChange} />
</Button>
)}
</Box>
@@ -320,7 +320,7 @@ export default function EditCompanyPage() {
sx={{ alignSelf: 'flex-start' }}
>
Bild hinzufügen
<input type="file" hidden accept="image/*" multiple onChange={handleOtherFilesChange} />
<input type="file" hidden accept="image/jpeg,image/png,image/webp" multiple onChange={handleOtherFilesChange} />
</Button>
</Stack>
</Box>

View File

@@ -11,7 +11,7 @@ import AddPhotoAlternateOutlinedIcon from '@mui/icons-material/AddPhotoAlternate
import NotificationsActiveIcon from '@mui/icons-material/NotificationsActive';
import NotificationsOffOutlinedIcon from '@mui/icons-material/NotificationsOffOutlined';
import StarIcon from '@mui/icons-material/Star';
import axiosInstance from '../api/axiosInstance';
import axiosInstance from '../../api/axiosInstance.js';
const EMPTY_FORM = {
title: '',
@@ -156,7 +156,7 @@ export default function CreateNewsPage() {
sx={{ alignSelf: 'flex-start' }}
>
{files.length === 0 ? 'Vorschaubild hinzufügen' : 'Weiteres Bild hinzufügen'}
<input type="file" hidden accept="image/*" multiple onChange={handleFileChange} />
<input type="file" hidden accept="image/jpeg,image/png,image/webp" multiple onChange={handleFileChange} />
</Button>
</Stack>
</Box>

View File

@@ -8,7 +8,7 @@ import { DataGrid } from '@mui/x-data-grid';
import DeleteOutlineIcon from '@mui/icons-material/DeleteOutline';
import AddIcon from '@mui/icons-material/Add';
import { useNavigate } from 'react-router-dom';
import axiosInstance from '../api/axiosInstance';
import axiosInstance from '../../api/axiosInstance.js';
export default function PostsPage() {
const [rows, setRows] = useState([]);

View File

@@ -4,7 +4,7 @@ import {
Alert, CircularProgress, FormControl, InputLabel, Select, MenuItem,
} from '@mui/material';
import SendIcon from '@mui/icons-material/Send';
import axiosInstance from '../api/axiosInstance';
import axiosInstance from '../../api/axiosInstance.js';
export default function PushPage() {
const [title, setTitle] = useState('');

View File

@@ -18,7 +18,7 @@ import DeleteOutlineIcon from "@mui/icons-material/DeleteOutline";
import AddPhotoAlternateOutlinedIcon from "@mui/icons-material/AddPhotoAlternateOutlined";
import { useParams } from "react-router-dom";
import { useEffect } from "react";
import axiosInstance from "../api/axiosInstance.js";
import axiosInstance from "../../api/axiosInstance.js";
const EMPTY_FORM = {
description: '',
@@ -231,7 +231,7 @@ export default function EditOrganizationPage() {
sx={{ mt: 0.5, px: 0, minWidth: 0, fontSize: 12 }}
>
Bild ersetzen
<input type="file" hidden accept="image/*" onChange={handleTitleImageChange} />
<input type="file" hidden accept="image/jpeg,image/png,image/webp" onChange={handleTitleImageChange} />
</Button>
</Box>
<IconButton size="small" color="error" onClick={handleRemoveTitleImage}>
@@ -247,7 +247,7 @@ export default function EditOrganizationPage() {
sx={{ alignSelf: 'flex-start' }}
>
Titelbild hochladen
<input type="file" hidden accept="image/*" onChange={handleTitleImageChange} />
<input type="file" hidden accept="image/jpeg,image/png,image/webp" onChange={handleTitleImageChange} />
</Button>
)}
</Box>

View File

@@ -8,7 +8,7 @@ import { DataGrid } from '@mui/x-data-grid';
import DeleteOutlineIcon from '@mui/icons-material/DeleteOutline';
import AddIcon from '@mui/icons-material/Add';
import { Chip } from '@mui/material';
import axiosInstance from '../api/axiosInstance';
import axiosInstance from '../../api/axiosInstance.js';
import EditOutlinedIcon from "@mui/icons-material/EditOutlined";
import {useNavigate} from "react-router-dom";