Files
grungnet/src/components/ChangeNicknameButton.js

48 lines
1.2 KiB
JavaScript
Raw Normal View History

2020-04-08 17:00:56 +10:00
import React, { useState } from "react";
import { IconButton } from "theme-ui";
2020-04-08 17:00:56 +10:00
import ChangeNicknameModal from "../modals/ChangeNicknameModal";
import ChangeNicknameIcon from "../icons/ChangeNicknameIcon";
2020-04-08 17:00:56 +10:00
function ChangeNicknameButton({ nickname, onChange }) {
const [isChangeModalOpen, setIsChangeModalOpen] = useState(false);
function openModal() {
setIsChangeModalOpen(true);
}
function closeModal() {
setIsChangeModalOpen(false);
}
const [changedNickname, setChangedNickname] = useState(nickname);
function handleChangeSubmit(event) {
event.preventDefault();
onChange(changedNickname);
closeModal();
}
function handleChange(event) {
setChangedNickname(event.target.value);
}
return (
<>
<IconButton
m={1}
aria-label="Change Nickname"
title="Change Nickname"
onClick={openModal}
>
<ChangeNicknameIcon />
2020-04-08 17:00:56 +10:00
</IconButton>
<ChangeNicknameModal
isOpen={isChangeModalOpen}
onRequestClose={closeModal}
onChangeSubmit={handleChangeSubmit}
onChange={handleChange}
nickname={changedNickname}
/>
2020-04-08 17:00:56 +10:00
</>
);
}
export default ChangeNicknameButton;