import React from 'react';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { loginAs, logout } from 'src/actions/Session/sessionActions';
import Container from '../ControlPanel/Container/Container';
import ListItem from '../ControlPanel/ListItem/ListItem';
import { useDispatch, useSelector } from 'react-redux';
import { Link } from 'react-router-dom';
import './User.scss';
const User = ({ data, toggleFav, handleModal, checkItem }) => {
const { i18n, userName } = useSelector(state => state.session);
const session = useSelector(state => state.session);
const dispatch = useDispatch();
const printNameServers = servers => {
let serversArray = servers.split(',');
return serversArray.map(
(server, index) =>
{server}
);
}
const signInAs = username => {
dispatch(loginAs(username));
}
const signOut = () => {
dispatch(logout());
}
const printLoginActionButton = user => {
let currentUser = session.userName;
if (currentUser === user) {
return (
);
} else {
return (
);
}
}
const toggleFavorite = (starred) => {
if (starred) {
toggleFav(data.NAME, 'add');
} else {
toggleFav(data.NAME, 'delete');
}
}
const checkItemName = () => {
checkItem(data.NAME);
}
const handleSuspend = () => {
let suspendedStatus = data.SUSPENDED === 'yes' ? 'unsuspend' : 'suspend';
handleModal(data.spnd_conf, `/api/v1/${suspendedStatus}/user/index.php?user=${data.NAME}`);
}
const handleDelete = () => {
handleModal(data.delete_conf, `/api/v1/delete/user/index.php?user=${data.NAME}`);
}
return (
{data.NAME}
{data.FNAME} {data.LNAME}
{i18n.Bandwidth} {data.U_BANDWIDTH} {i18n.mb}
{i18n.Disk}: {data.U_DISK} {i18n.mb}
{i18n.Web}: {data.U_DISK_WEB} {i18n.mb}
{i18n.Mail}: {data.U_DISK_MAIL} {i18n.mb}
{i18n.Databases}: {data.U_DATABASES} {i18n.mb}
{i18n['User Directories']}: {data.U_DISK_DIRS} {i18n.mb}
{i18n['Web Domains']}: {data.U_WEB_DOMAINS} / {data.WEB_DOMAINS}
{i18n['DNS Domains']}: {data.U_DNS_DOMAINS} / {data.DNS_DOMAINS}
{i18n['Mail Domains']}: {data.U_MAIL_DOMAINS} / {data.MAIL_DOMAINS}
{i18n.Databases}: {data.U_DATABASES} / {data.DATABASES}
{i18n['Cron Jobs']}: {data.U_CRON_JOBS} / {data.CRON_JOBS}
{i18n.Backups}: {data.U_BACKUPS} / {data.BACKUPS}
{i18n.Email}: {data.CONTACT}
{i18n.Package}: {data.PACKAGE}
{i18n['SSH Access']}: {data.SHELL}
{i18n['IP Addresses']}: {data.IP_OWNED}
{i18n['Name Servers']}: {printNameServers(data.NS)}
{printLoginActionButton(data.NAME)}
{i18n.edit}
{data.FOCUSED ? ↩ : }
);
}
export default User;