Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

import React, { useState } from 'react';

function ProfileDetails(props) {
const { user } = props;
const [isEditing, setIsEditing] = useState(false);
const [showBio, setShowBio] = useState(false);

function handleEditClick() {
setIsEditing(true);
}

function handleSaveClick() {
// Save the updated user details here, then
setIsEditing(false);
}

function handleCancelClick() {
setIsEditing(false);
}

function handleShowBioClick() {
setShowBio(true);
}

function handleHideBioClick() {
setShowBio(false);
}

return (
<div className="profile-details">
<div className="profile-details__avatar">
<img src={user.avatarUrl} alt="user avatar" />
</div>
<div className="profile-details__name">
{isEditing ? (
<input type="text" value={user.name} />
) : (
user.name
)}
</div>
<div className="profile-details__username">{user.username}</div>
<div className="profile-details__location">
{isEditing ? (
<input type="text" value={user.location} />
) : (
user.location
)}
</div>
<div className="profile-details__website">
{isEditing ? (
<input type="text" value={user.website} />
) : (
user.website
)}
</div>
{showBio ? (
<div className="profile-details__bio">
{isEditing ? (
<textarea value={user.bio} />
) : (
user.bio
)}
<button onClick={handleHideBioClick}>Hide Bio</button>
</div>
) : (
<div className="profile-details__bio">
<button onClick={handleShowBioClick}>Show Bio</button>
</div>
)}
{isEditing ? (
<div className="profile-details__actions">
<button onClick={handleSaveClick}>Save</button>
<button onClick={handleCancelClick}>Cancel</button>
</div>
) : (
<div className="profile-details__actions">
<button onClick={handleEditClick}>Edit</button>
</div>
)}
</div>
);
}

You might also like