refactor + bilder injection safer
This commit is contained in:
28
src/App.jsx
28
src/App.jsx
@@ -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: {
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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>
|
||||
@@ -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();
|
||||
@@ -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();
|
||||
@@ -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([]);
|
||||
@@ -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: '',
|
||||
@@ -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";
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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([]);
|
||||
@@ -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('');
|
||||
@@ -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>
|
||||
@@ -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";
|
||||
|
||||
Reference in New Issue
Block a user