diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 717cbde..fec13ab 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -19,6 +19,8 @@ import EditEscapeRoom from './pages/EditEscapeRoom' import EscapeRoomDetails from './pages/EscapeRoomDetails' import Girls from './pages/Girls'; +import CreateGirl from './pages/CreateGirl'; +import EditGirl from './pages/EditGirl'; import UnderConstruction from './pages/UnderConstruction' import UserProfileView from './pages/UserProfieView' @@ -79,6 +81,8 @@ function App() { } /> } /> } /> + } /> + } /> } /> } /> } /> diff --git a/frontend/src/components/Girl.jsx b/frontend/src/components/Girl.jsx index 2226df8..08a28f4 100644 --- a/frontend/src/components/Girl.jsx +++ b/frontend/src/components/Girl.jsx @@ -2,7 +2,7 @@ import { useNavigate, Link } from "react-router-dom" import api from "../api" -export default function Girl({ girl }) { +export default function Girl({ girl, onDeleteGirl }) { const navigate = useNavigate(); const onDelete = async (id) => { @@ -10,7 +10,9 @@ export default function Girl({ girl }) { .then(response => { if (response.status === 204) { console.log("Girl deleted successfully!"); - navigate('/girls/', { replace: true }); + console.log(id); + onDeleteGirl(id); + // navigate('/girls/', { replace: true }); } else { console.log("Girl was not deleted!"); } diff --git a/frontend/src/components/Service.jsx b/frontend/src/components/Service.jsx index 079e075..7334ef5 100644 --- a/frontend/src/components/Service.jsx +++ b/frontend/src/components/Service.jsx @@ -1,7 +1,7 @@ import api from '../api'; import { useNavigate } from "react-router-dom"; -export default function Service({ service }) { +export default function Service({ service, onDeleteService }) { const navigate = useNavigate(); @@ -10,8 +10,7 @@ export default function Service({ service }) { .then((res) => { if (res.status === 204) { console.log("Service deleted successfully!"); - // This app should have been SPA, but in some cases it's easier to reload pages - navigate('/services/', { replace: true }); + onDeleteService(id); } else { console.log("Service was not deleted!"); } diff --git a/frontend/src/pages/CreateGirl.jsx b/frontend/src/pages/CreateGirl.jsx new file mode 100644 index 0000000..ea2d9a3 --- /dev/null +++ b/frontend/src/pages/CreateGirl.jsx @@ -0,0 +1,138 @@ +import { useNavigate } from 'react-router-dom'; +import api from '../api'; +import { useState } from 'react'; + +export default function CreateGirl() { + const [image, setImage] = useState(""); + const [name, setName] = useState(""); + const [bio, setBio] = useState(""); + const [age, setAge] = useState(""); + const [height, setHeight] = useState(""); + const [skinColor, setSkinColor] = useState(""); + const [hairColor, setHairColor] = useState(""); + const [eyeColor, setEyeColor] = useState(""); + const navigate = useNavigate(); + + const createEvent = async (e) => { + e.preventDefault(); + api.post("/api/girls/create/", { image, name, bio, age, skin_color: skinColor, hair_color: hairColor, eye_color: eyeColor, height }) + .then((res) => { + if (res.status === 201) { + console.log("Girl addes successfully!"); + navigate('/strip-club/'); + + } else { + console.log("Girl was not added!"); + } + + }) + .catch((error) => console.error(`Error: ${error}`)); + + } + + return ( +
+

Create Girl

+
+ + setImage(e.target.value)} + value={image} + /> + {/^https?:\/\/\S+$/.test(image) ? '' : Enter a valid web address. It should start with http:// or https://} + + setName(e.target.value)} + value={name} + /> + {(name) ? null : This field is required} + +