aboutsummaryrefslogtreecommitdiffstats
path: root/src/pages
diff options
context:
space:
mode:
Diffstat (limited to 'src/pages')
-rw-r--r--src/pages/Dashboard.jsx14
-rw-r--r--src/pages/Login.jsx46
-rw-r--r--src/pages/ManageAds.jsx53
-rw-r--r--src/pages/Register.jsx43
4 files changed, 156 insertions, 0 deletions
diff --git a/src/pages/Dashboard.jsx b/src/pages/Dashboard.jsx
new file mode 100644
index 0000000..ce3472e
--- /dev/null
+++ b/src/pages/Dashboard.jsx
@@ -0,0 +1,14 @@
+import React from 'react';
+import Navbar from '../components/Navbar';
+
+const Dashboard = () => {
+ return (
+ <div>
+ <Navbar />
+ <h1>Dashboard</h1>
+ {/* Add dashboard content here */}
+ </div>
+ );
+};
+
+export default Dashboard;
diff --git a/src/pages/Login.jsx b/src/pages/Login.jsx
new file mode 100644
index 0000000..9d38aa9
--- /dev/null
+++ b/src/pages/Login.jsx
@@ -0,0 +1,46 @@
+import React, { useState } from 'react';
+import axios from 'axios';
+import { useNavigate } from 'react-router-dom';
+
+const Login = () => {
+ const [username, setUsername] = useState('');
+ const [password, setPassword] = useState('');
+ const navigate = useNavigate();
+
+ const handleLogin = async (e) => {
+ e.preventDefault();
+ try {
+ const response = await axios.post('http://localhost:5000/login', {
+ username,
+ password,
+ });
+ localStorage.setItem('token', response.data.token);
+ navigate('/dashboard');
+ } catch (error) {
+ console.error(error);
+ }
+ };
+
+ return (
+ <div>
+ <h1>Login</h1>
+ <form onSubmit={handleLogin}>
+ <input
+ type="text"
+ placeholder="Username"
+ value={username}
+ onChange={(e) => setUsername(e.target.value)}
+ />
+ <input
+ type="password"
+ placeholder="Password"
+ value={password}
+ onChange={(e) => setPassword(e.target.value)}
+ />
+ <button type="submit">Login</button>
+ </form>
+ </div>
+ );
+};
+
+export default Login;
diff --git a/src/pages/ManageAds.jsx b/src/pages/ManageAds.jsx
new file mode 100644
index 0000000..cceca06
--- /dev/null
+++ b/src/pages/ManageAds.jsx
@@ -0,0 +1,53 @@
+import React, { useState, useEffect } from 'react';
+import AdCard from '../components/AdCard';
+import UploadForm from '../components/UploadForm';
+import ViewAds from '../components/ViewAds';
+import { fetchAds, addAd } from '../utils/api';
+
+const ManageAds = () => {
+ const [ads, setAds] = useState([]);
+ const [showUploadedAds, setShowUploadedAds] = useState(false);
+ const [uploadedUrls, setUploadedUrls] = useState([]);
+
+ useEffect(() => {
+ const getAds = async () => {
+ const adsData = await fetchAds();
+ setAds(adsData);
+ };
+ getAds();
+ }, []);
+
+ const handleAddAd = async (ad) => {
+ await addAd(ad);
+ setAds([...ads, ad]);
+ };
+
+ const toggleViewAds = () => {
+ setShowUploadedAds(!showUploadedAds);
+ };
+
+ const handleUploadComplete = (url) => {
+ setUploadedUrls([...uploadedUrls, url]);
+ };
+
+ return (
+ <div>
+ <h1>Manage Ads</h1>
+ <UploadForm onUploadComplete={handleUploadComplete} />
+ <button onClick={toggleViewAds}>
+ {showUploadedAds ? 'Hide Uploaded Ads' : 'View Uploaded Ads'}
+ </button>
+ {showUploadedAds ? (
+ <ViewAds />
+ ) : (
+ <div>
+ {ads.map((ad) => (
+ <AdCard key={ad.id} ad={ad} />
+ ))}
+ </div>
+ )}
+ </div>
+ );
+};
+
+export default ManageAds;
diff --git a/src/pages/Register.jsx b/src/pages/Register.jsx
new file mode 100644
index 0000000..f0acf58
--- /dev/null
+++ b/src/pages/Register.jsx
@@ -0,0 +1,43 @@
+import React, { useState } from 'react';
+import axios from 'axios';
+
+const Register = () => {
+ const [username, setUsername] = useState('');
+ const [password, setPassword] = useState('');
+
+ const handleRegister = async (e) => {
+ e.preventDefault();
+ try {
+ const response = await axios.post('http://localhost:5000/register', {
+ username,
+ password,
+ });
+ console.log(response.data);
+ } catch (error) {
+ console.error(error);
+ }
+ };
+
+ return (
+ <div>
+ <h1>Register</h1>
+ <form onSubmit={handleRegister}>
+ <input
+ type="text"
+ placeholder="Username"
+ value={username}
+ onChange={(e) => setUsername(e.target.value)}
+ />
+ <input
+ type="password"
+ placeholder="Password"
+ value={password}
+ onChange={(e) => setPassword(e.target.value)}
+ />
+ <button type="submit">Register</button>
+ </form>
+ </div>
+ );
+};
+
+export default Register;