import React from 'react'
export const Header = () => {
return (
<div>Header</div>
)
}
///////////////////////////////////
import React from 'react'
import { Footer } from './Footer'
import { Header } from './Header'
export const Layout = ({children}) => {
return (
<div>
<Header/>
<main style={{minHeight:"80vh"}}> {children}</main>
<Footer/>
</div>
)
}
////////////////////////////////////////
import { Routes,Route } from 'react-router-dom';
import './App.css';
import {Register} from './pages/Register';
import { About } from './pages/About';
function App() {
return (
<>
<Routes>
<Route path='/Register' element={<Register/>}/>
<Route path='/about' element={<About/>}/>
</Routes>
</>
);
}
export default App;
//////////////////////////////////
"axios": "^1.5.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router-dom": "^6.15.0",
"react-scripts": "5.0.1",
"web-vitals": "^2.1.4"
////////////////////////////////
"start": "node server.js",
"server": "nodemon server ",
"client": "npm start --prefix client",
"dev": "concurrently \" npm run server\" \" npm run client\""
},
"author": "M srikant",
"license": "ISC",
"dependencies": {
"concurrently": "^8.2.1",
"cors": "^2.8.5",
"dotenv": "^16.3.1",
"express": "^4.18.2",
"mongodb": "^6.0.0",
"mongoose": "^7.5.0"
////////////////////////////
import React, { useState } from "react";
const Index = () => {
const [list, setList] = useState([]);
const [message, setMessage] = useState({
text: "",
id: "",
});
const [editingItem, setEditingItem] = useState({
id: "",
isEditing: false,
});
const changeMessage = (e) => {
setMessage({
...message,
text: e.target.value,
});
};
const handleSubmit = (e) => {
e.preventDefault();
let newTodo = {
text: message.text,
id: new Date().getTime().toString(),
};
setList([...list, newTodo]);
setMessage({
text: "",
id: "",
});
};
const handleDelete = (id) => {
let newTodos = list.filter((each) => {
return each.id !== id;
});
setList(newTodos);
};
const changeEditState = (id) => {
setEditingItem({
...editingItem,
id: id,
isEditing: true,
});
let editableItem = list.find((eachItem) => eachItem.id === id);
setMessage({
...message,
text: editableItem.text,
id: editableItem.id,
});
};
const handleEdit = (e) => {
e.preventDefault();
console.log("previous todos", list);
let newTodos = list.map((eachItem) => {
if (eachItem.id === editingItem.id) {
return {
text: message.text,
id: editingItem.id,
};
} else {
return eachItem;
}
});
setList(newTodos);
setMessage({
text: "",
id: "",
});
setEditingItem({
id: "",
isEditing: false,
});
};
return (
<div>
<form>
<input
type="text"
name="message"
id="message"
placeholder="enter some text"
value={message.text}
onChange={changeMessage}
/>
{editingItem.isEditing ? (
<button onClick={handleEdit} type="submit">
edit
</button>
) : (
<button onClick={handleSubmit} type="submit">
add
</button>
)}
</form>
<hr />
{list.length === 0 && <h4>There is no items in the list</h4>}
<ul>
{list.map((eachItem) => {
const { text, id } = eachItem;
return (
<li key={id}>
<span>{text}</span>
<button onClick={() => changeEditState(id)}>edit</button>
<button onClick={() => handleDelete(id)}>delete</button>
</li>
);
})}
</ul>
</div>
);
};
export default Index;
import React, { useState } from "react";
const Index = () => {
const [firstName, setFirstName] = useState("");
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
const handleSubmit = (e) => {
e.preventDefault();
let userObj = {
firstName: firstName,
email: email,
password: password,
};
console.log(userObj);
};
return (
<div>
<form onSubmit={handleSubmit}>
<div className="form-content">
<input
type="text"
name="firstname"
id="firstname"
value={firstName}
placeholder="enter your name"
onChange={(e) => setFirstName(e.target.value)}
/>
</div>
<div className="form-content">
<div className="form-content">
<input
type="email"
name="email"
id="email"
value={email}
placeholder="enter your email"
onChange={(e) => setEmail(e.target.value)}
/>
</div>
</div>
<div className="form-content">
<input
type="password"
name="password"
id="password"
value={password}
placeholder="enter your password"
onChange={(e) => setPassword(e.target.value)}
/>
</div>
<div className="form-button">
<button type="submit">submit</button>
</div>
</form>
</div>
);
};
export default Index;
//////useeeffect////import React, { useState, useEffect } from "react";
const URL = "https://www.thecocktaildb.com/api/json/v1/1/search.php?s=";
const Final = () => {
const [drinksData, setDrinksData] = useState([]);
const [searchTerm, setSearchTerm] = useState("");
const [loading, setLoading] = useState(false);
const [isError, setIsError] = useState({ status: false, msg: "" });
const fetchDrink = async (apiURL) => {
setLoading(true);
setIsError({ status: false, msg: "" });
try {
const response = await fetch(apiURL);
const { drinks } = await response.json();
setDrinksData(drinks);
setLoading(false);
setIsError({ status: false, msg: "" });
if (!drinks) {
throw new Error("data not found");
}
} catch (error) {
console.log(error);
setLoading(false);
setIsError({
status: true,
msg: error.message || "something went wrong...",
});
}
};
useEffect(() => {
const correctURL = `${URL}${searchTerm}`;
fetchDrink(correctURL);
}, [searchTerm]);
return (
<div>
<form>
<input
type="text"
name="search"
id="search"
placeholder="search something new..."
value={searchTerm}
onChange={(e) => setSearchTerm(e.target.value)}
/>
</form>
<hr />
{!loading && !isError?.status && (
<ul className="cocktail-data">
{drinksData.map((eachDrink) => {
const { idDrink, strDrink, strDrinkThumb } = eachDrink;
return (
<li key={idDrink}>
<div>
<img src={strDrinkThumb} alt={strDrink} />
</div>
<div className="text">
<h3>{strDrink}</h3>
</div>
</li>
);
})}
</ul>
)}
</div>
);
};
export default Final;
.jpeg)
.jpeg)
.jpeg)
.jpeg)
.jpeg)
.jpeg)
.jpeg)
.jpeg)
.jpeg)
.jpeg)
.jpeg)
.jpeg)

Comments
Post a Comment