80 lines
2.0 KiB
JavaScript

import React, { useState, useEffect } from "react";
import PropTypes from "prop-types";
import { useDispatch } from "react-redux";
import { editPolochonUser } from "../../actions/polochon";
import Toggle from "react-bootstrap-toggle";
import { FormModal } from "../forms/modal";
import { FormInput } from "../forms/input";
export const PolochonUser = ({
polochonId,
id,
name,
initialToken,
initialActivated,
}) => {
const dispatch = useDispatch();
const [edit, setEdit] = useState(false);
const [token, setToken] = useState(initialToken);
const [activated, setActivated] = useState(initialActivated);
useEffect(() => {
setActivated(initialActivated);
setToken(initialToken);
}, [initialActivated, initialToken]);
const handleSubmit = () => {
dispatch(
editPolochonUser({
polochonId,
id,
token,
activated,
})
);
setEdit(false);
};
return (
<tr>
<td>{name}</td>
<td>{activated ? "Activated" : "Not activated"}</td>
<td>
<i className="fa fa-edit ml-2" onClick={() => setEdit(true)} />
<FormModal
show={edit}
setShow={setEdit}
title="Edit polochon's user"
icon="edit"
handleSubmit={handleSubmit}
>
<FormInput label="Token" value={token} updateValue={setToken} />
<div className="form-group">
<label>Activated</label>
<Toggle
className="pull-right"
on="yes"
off="no"
active={activated}
offstyle="info"
handlestyle="secondary"
onClick={() => setActivated(!activated)}
/>
</div>
</FormModal>
</td>
</tr>
);
};
PolochonUser.propTypes = {
polochonId: PropTypes.string,
id: PropTypes.string,
name: PropTypes.string,
initialToken: PropTypes.string,
initialActivated: PropTypes.bool,
editPolochonUser: PropTypes.func,
};