create idea

This commit is contained in:
j.mei7
2022-04-03 18:03:33 +02:00
parent 12dd3f9e53
commit 9b77bdfdf9
8 changed files with 63 additions and 7 deletions

Binary file not shown.

View File

@@ -22,7 +22,7 @@ app.use(function(req, res, next) {
app.listen(port, () => console.log(`Listening on port ${port}`)); app.listen(port, () => console.log(`Listening on port ${port}`));
app.get('/idea/:id', (req, res) => { app.get('/idea/get/:id', (req, res) => {
db.all(`SELECT * FROM ideas WHERE id = ${req.params.id}`, (err, rows) => { db.all(`SELECT * FROM ideas WHERE id = ${req.params.id}`, (err, rows) => {
if (err) { if (err) {
@@ -42,7 +42,7 @@ app.get('/idea/:id', (req, res) => {
}); });
app.get('/ideas', (req, res) => { app.get('/ideas', (req, res) => {
db.all(`SELECT * FROM ideas`, (err, rows) => { db.all(`SELECT * FROM ideas ORDER BY id DESC`, (err, rows) => {
if (err) { if (err) {
res.send({title: "Error", content: "Error fetching ideas"}); res.send({title: "Error", content: "Error fetching ideas"});
}else{ }else{
@@ -94,4 +94,23 @@ app.post('/idea/update/:id', (req, res) => {
res.send({title: "Success", type:"saving", message: "Idea updated"}); res.send({title: "Success", type:"saving", message: "Idea updated"});
} }
}); });
});
app.get('/idea/create', (req, res) => {
console.log("CREATE")
// Create new idea
db.run(`INSERT INTO ideas (title, content) VALUES ('New Idea', 'New Content')`, (err) => {
if (err) {
res.send({title: "Error", type:"create", message: "Error creating new idea"});
}else{
// SELECT id from last idea
db.all(`SELECT * FROM ideas ORDER BY id DESC LIMIT 1`, (err, rows) => {
if (err) {
res.send({title: "Error", type:"create", message: "Error fetching new idea id"});
}else{
res.send({title: "Success", type:"create", id:rows[0].id, message: "New idea created"});
}
});
}
});
}); });

View File

@@ -9,7 +9,7 @@ function Idea({ideaId, title, description, timestamp}){
const fetchIdea = async () => { const fetchIdea = async () => {
const data = await fetch( const data = await fetch(
'http://localhost:5000/idea/' + params.ideaId 'http://localhost:5000/idea/get/' + params.ideaId
); );
const idea = await data.json(); const idea = await data.json();

View File

@@ -66,7 +66,7 @@ function IdeaContent(){
const fetchIdea = async () => { const fetchIdea = async () => {
// fetch and check for error // fetch and check for error
const data = await fetch( const data = await fetch(
'http://localhost:5000/idea/' + params.ideaId 'http://localhost:5000/idea/get/' + params.ideaId
); );
const idea = await data.json(); const idea = await data.json();

View File

@@ -9,6 +9,20 @@ function IdeaList() {
let selectedIdeaId = params.ideaId; let selectedIdeaId = params.ideaId;
let [ideas, setIdeas] = useState([]); let [ideas, setIdeas] = useState([]);
const createIdea = async() => {
console.log('createIdea');
const data = await fetch(
'http://localhost:5000/idea/create'
);
const result = await data.json();
console.log(result)
if(result.title === "Success"){
window.location = '/idea/' + result.id;
}
}
const fetchIdeas = async () => { const fetchIdeas = async () => {
const data = await fetch( const data = await fetch(
'http://localhost:5000/ideas/' 'http://localhost:5000/ideas/'
@@ -32,7 +46,7 @@ function IdeaList() {
<img src="/" alt="" /> <img src="/" alt="" />
<div className="newIdea"> <div className="newIdea">
<p>+</p> <p onClick={createIdea}>+</p>
</div> </div>
</div> </div>

View File

@@ -2,9 +2,10 @@
display:block; display:block;
background-color: rgb(32, 32, 32); background-color: rgb(32, 32, 32);
width: 20%; width: 20%;
height: 100%; height: 100vh;
min-height: 100vh; min-height: 100vh;
float:left; float:left;
overflow: auto;
} }
.content{ .content{

View File

@@ -49,9 +49,10 @@
} }
.textAreaContainer{ .textAreaContainer{
width: 100%; width: calc(100% - 10px);
height: 700px; height: 700px;
display: block; display: block;
padding-left: 10px;
textarea{ textarea{
outline: 0; outline: 0;

View File

@@ -10,4 +10,25 @@
body, html{ body, html{
background: #282727; background: #282727;
min-height: 100%; min-height: 100%;
}
// SCROLLBAR
* {
scrollbar-width: auto;
scrollbar-color: #62cba3 transparent;
}
/* Chrome, Edge, and Safari */
*::-webkit-scrollbar {
width: 5px;
}
*::-webkit-scrollbar-track {
background: transparent;
}
*::-webkit-scrollbar-thumb {
background-color: #62cba3;
border-radius: 10px;
border: 3px solid transparent;
} }