82 lines
2.5 KiB
JavaScript
82 lines
2.5 KiB
JavaScript
import { useQuery } from "@apollo/client/react";
|
|
import { Button } from "antd";
|
|
import { useTranslation } from "react-i18next";
|
|
import { connect } from "react-redux";
|
|
import { createStructuredSelector } from "reselect";
|
|
import { QUERY_SHOP_ASSOCIATIONS } from "../../graphql/user.queries";
|
|
import { selectBodyshop } from "../../redux/user/user.selectors";
|
|
import AlertComponent from "../alert/alert.component";
|
|
import LayoutFormRow from "../layout-form-row/layout-form-row.component";
|
|
import RbacWrapper from "../rbac-wrapper/rbac-wrapper.component";
|
|
import ResponsiveTable from "../responsive-table/responsive-table.component";
|
|
import ShopUsersAuthEdit from "../shop-users-auth-edit/shop-users-auth-edit.component";
|
|
|
|
const mapStateToProps = createStructuredSelector({
|
|
//currentUser: selectCurrentUser
|
|
bodyshop: selectBodyshop
|
|
});
|
|
const mapDispatchToProps = () => ({
|
|
//setUserLanguage: language => dispatch(setUserLanguage(language))
|
|
});
|
|
export default connect(mapStateToProps, mapDispatchToProps)(ShopInfoUsersComponent);
|
|
|
|
export function ShopInfoUsersComponent({ bodyshop }) {
|
|
const { t } = useTranslation();
|
|
const { loading, error, data } = useQuery(QUERY_SHOP_ASSOCIATIONS, {
|
|
variables: { shopid: bodyshop.id },
|
|
fetchPolicy: "network-only",
|
|
nextFetchPolicy: "network-only"
|
|
});
|
|
const columns = [
|
|
{
|
|
title: t("user.fields.email"),
|
|
dataIndex: "email",
|
|
key: "email",
|
|
render: (text, record) => record.user.email
|
|
},
|
|
{
|
|
title: t("user.fields.authlevel"),
|
|
dataIndex: "authlevel",
|
|
key: "authlevel",
|
|
render: (text, record) => (
|
|
<RbacWrapper action="users:editaccess">
|
|
<ShopUsersAuthEdit association={record} />
|
|
</RbacWrapper>
|
|
)
|
|
},
|
|
{
|
|
title: t("user.labels.actions"),
|
|
dataIndex: "actions",
|
|
key: "actions",
|
|
render: () => (
|
|
<div>
|
|
<Button
|
|
disabled
|
|
onClick={() => {
|
|
// NO OP
|
|
}}
|
|
>
|
|
{t("general.actions.delete")}
|
|
</Button>
|
|
</div>
|
|
)
|
|
}
|
|
];
|
|
|
|
if (error) {
|
|
return <AlertComponent type="error" title={JSON.stringify(error)} />;
|
|
}
|
|
return (
|
|
<LayoutFormRow title={t("bodyshop.labels.licensing")}>
|
|
<ResponsiveTable
|
|
loading={loading}
|
|
pagination={{ placement: "top" }}
|
|
columns={columns}
|
|
mobileColumnKeys={["email", "authlevel", "actions"]}
|
|
rowKey="id"
|
|
dataSource={data && data.associations}
|
|
/>
|
|
</LayoutFormRow>
|
|
);
|
|
}
|