diff --git a/src/App.js b/src/App.js index 189aab8..d97e7f7 100644 --- a/src/App.js +++ b/src/App.js @@ -11,6 +11,9 @@ import PostsPage from "./pages/posts/PostsPage"; import { useCurrentUser } from "./contexts/CurrentUserContext"; import PostEditForm from "./pages/posts/PostEditForm"; import TravelerPage from "./pages/travelers/TravelerPage"; +import UsernameForm from "./pages/travelers/UsernameForm"; +import UserPasswordForm from "./pages/travelers/UserPasswordForm"; +import TravelerEditForm from "./pages/travelers/TravelerEditForm"; function App() { const currentUser = useCurrentUser(); @@ -56,6 +59,9 @@ function App() { } /> } /> } /> + } /> + } /> + } />

Page not found!

} /> diff --git a/src/components/MoreDropdown.js b/src/components/MoreDropdown.js index 7ad926d..6ba422d 100644 --- a/src/components/MoreDropdown.js +++ b/src/components/MoreDropdown.js @@ -3,6 +3,7 @@ import Dropdown from "react-bootstrap/Dropdown"; import styles from "../styles/MoreDropdown.module.css" import OverlayTrigger from "react-bootstrap/OverlayTrigger"; import Tooltip from "react-bootstrap/Tooltip"; +import { useHistory } from "react-router-dom"; // The forwardRef is important!! // Dropdown needs access to the DOM node in order to position the Menu @@ -17,6 +18,37 @@ const ThreeDots = React.forwardRef(({ onClick }, ref) => ( /> )); + export function TravelerEditDropdown({ id }) { + const history = useHistory(); + return ( + + + + history.push(`/travelers/${id}/edit`)} + aria-label="edit-traveler" + > + edit traveler + + history.push(`/travelers/${id}/edit/username`)} + aria-label="edit-username" + > + + change username + + history.push(`/travelers/${id}/edit/password`)} + aria-label="edit-password" + > + + change password + + + + ); + } + export const MoreDropdown = ({ handleEdit, handleDelete }) => { return ( diff --git a/src/pages/travelers/TravelerPage.js b/src/pages/travelers/TravelerPage.js index 737fa5b..f8f3f27 100644 --- a/src/pages/travelers/TravelerPage.js +++ b/src/pages/travelers/TravelerPage.js @@ -24,6 +24,7 @@ import InfiniteScroll from "react-infinite-scroll-component"; import Post from "../posts/Post"; import { fetchMoreData } from "../../utils/utils"; import NoResult from "../../assets/no-results.png"; +import { ProfileEditDropdown, TravelerEditDropdown } from "../../components/MoreDropdown" function TravelerPage() { const [hasLoaded, setHasLoaded] = useState(false); @@ -59,6 +60,7 @@ function TravelerPage() { const mainTraveler = ( <> + {traveler?.is_owner && }