All files / src/components/profile profile-title.tsx

0% Statements 0/17
0% Branches 0/4
0% Functions 0/4
0% Lines 0/13

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33                                                                 
import React, { useState } from "react";
import { useDispatch } from "react-redux";
 
import * as user from "src/store/user/actions";
 
import ProfileTitleReadonly from "./profile-title-readonly";
import ProfileTitleEditable from "./profile-title-editable";
 
export default function ProfileTitle(): JSX.Element {
	const [ editable, setEditable ] = useState(false);
	const dispatch = useDispatch();
 
	const finish = (action: "submit" | "cancel") => (name?: string): void => {
		if (action === "submit") dispatch(user.setName(name!));
		setEditable(false);
	};
 
	return (
		<header className="d-flex flex-column">
			{editable ? (
				<ProfileTitleEditable
					onSubmit={finish("submit")}
					onCancel={finish("cancel")}
				/>
			) : (
				<ProfileTitleReadonly
					onRename={(): void => setEditable(true)}
				/>
			)}
		</header>
	);
}