Skip to content

Commit 023287b

Browse files
committed
Add redirect link after form submission
1 parent 83a0012 commit 023287b

File tree

2 files changed

+23
-20
lines changed

2 files changed

+23
-20
lines changed

app/javascript/components/pages/AddBook.jsx

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import React, { useState } from 'react';
2+
import { useNavigate } from 'react-router-dom';
23
import Button from 'react-bootstrap/Button';
34
import Form from 'react-bootstrap/Form';
45
import Card from 'react-bootstrap/Card';
@@ -11,16 +12,18 @@ const AddBook = () => {
1112
description: '',
1213
});
1314

15+
const navigate = useNavigate();
16+
1417
const handleInputChange = (event) => {
1518
const { name, value } = event.target;
1619
setBookData({ ...bookData, [name]: value });
1720
};
18-
const csrfToken = document
19-
.querySelector('meta[name="csrf-token"]')
20-
.getAttribute('content');
2121

2222
const handleSubmit = async (event) => {
2323
event.preventDefault();
24+
const csrfToken = document
25+
.querySelector('meta[name="csrf-token"]')
26+
.getAttribute('content');
2427
const response = await fetch('http://localhost:3000/api/v1/books', {
2528
method: 'POST',
2629
headers: {
@@ -34,10 +37,10 @@ const AddBook = () => {
3437
window.location.href = '/users/sign_in';
3538
return;
3639
}
37-
38-
const data = await response.json();
40+
const newBook = await response.json();
3941

4042
setBookData({ title: '', author: '', description: '' });
43+
navigate(`/books/${newBook.data.id}`);
4144
};
4245

4346
return (

app/views/shared/_navigation.html.erb

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,19 @@
99
<ul class="nav justify-content-end">
1010
<% if user_signed_in? %>
1111
<li class="nav-item d-flex align-items-center">
12-
<%# <span class="text-white me-3">Welcome, <%= current_user.name %>!</span>
13-
</li>
14-
<li class="nav-item">
15-
<%= button_to "Log Out", destroy_user_session_path, class: "btn btn-danger btn-sm", method: :delete %>
16-
</li>
17-
<% else %>
18-
<li class="nav-item">
19-
<%= link_to "Log In", new_user_session_path, class: "btn btn-outline-light btn-sm me-2" %>
20-
</li>
21-
<li class="nav-item">
22-
<%= link_to "Sign Up", new_user_registration_path, class: "btn btn-success btn-sm" %>
23-
</li>
24-
<% end %>
25-
</ul>
26-
</div>
12+
<span class="text-white me-3">Welcome, <%= current_user.email %></span>
13+
</li>
14+
<li class="nav-item">
15+
<%= button_to "Log Out", destroy_user_session_path, class: "btn btn-danger btn-sm", method: :delete %>
16+
</li>
17+
<% else %>
18+
<li class="nav-item">
19+
<%= link_to "Log In", new_user_session_path, class: "btn btn-outline-light btn-sm me-2" %>
20+
</li>
21+
<li class="nav-item">
22+
<%= link_to "Sign Up", new_user_registration_path, class: "btn btn-success btn-sm" %>
23+
</li>
24+
<% end %>
25+
</ul>
26+
</div>
2727
</nav>

0 commit comments

Comments
 (0)