Web:People: changed check for rendering PageLayout.ArticleMainButton

This commit is contained in:
Artem Tarasov 2020-09-14 14:34:42 +03:00
parent 2bcf9ca3bb
commit b4d0776ca4
6 changed files with 73 additions and 56 deletions

View File

@ -5,7 +5,7 @@ import { withRouter } from "react-router";
import { MainButton, DropDownItem, toastr } from "asc-web-components";
import { InviteDialog } from "./../../dialogs";
import { withTranslation, I18nextProvider } from "react-i18next";
import { store, utils } from "asc-web-common";
import { utils } from "asc-web-common";
import { createI18N } from "../../../helpers/i18n";
const i18n = createI18N({
@ -14,7 +14,6 @@ const i18n = createI18N({
});
const { changeLanguage } = utils;
const { isAdmin } = store.auth.selectors;
class PureArticleMainButtonContent extends React.Component {
constructor(props) {
@ -52,10 +51,10 @@ class PureArticleMainButtonContent extends React.Component {
render() {
console.log("People ArticleMainButtonContent render");
const { isAdmin, settings, t } = this.props;
const { settings, t } = this.props;
const { userCaption, guestCaption, groupCaption } = settings.customNames;
const { dialogVisible } = this.state;
return isAdmin ? (
return (
<>
<MainButton isDisabled={false} isDropdown={true} text={t("Actions")}>
<DropDownItem
@ -103,8 +102,6 @@ class PureArticleMainButtonContent extends React.Component {
/>
)}
</>
) : (
<></>
);
}
}
@ -125,13 +122,11 @@ const ArticleMainButtonContent = props => {
};
ArticleMainButtonContent.propTypes = {
isAdmin: PropTypes.bool.isRequired,
history: PropTypes.object.isRequired
};
const mapStateToProps = state => {
return {
isAdmin: isAdmin(state.auth.user),
settings: state.auth.settings
};
};

View File

@ -1,7 +1,7 @@
import React, { useEffect } from "react";
import { connect } from "react-redux";
import { Loader } from "asc-web-components";
import { PageLayout, utils } from "asc-web-common";
import { PageLayout, utils, store } from "asc-web-common";
import {
ArticleHeaderContent,
ArticleMainButtonContent,
@ -16,6 +16,7 @@ const i18n = createI18N({
localesPath: "pages/GroupAction"
});
const { changeLanguage } = utils;
const { isAdmin } = store.auth.selectors;
class GroupAction extends React.Component {
componentDidMount() {
@ -44,7 +45,7 @@ class GroupAction extends React.Component {
render() {
console.log("GroupAction render");
const { group, match } = this.props;
const { group, match, isAdmin } = this.props;
return (
<I18nextProvider i18n={i18n}>
@ -54,9 +55,11 @@ class GroupAction extends React.Component {
<ArticleHeaderContent />
</PageLayout.ArticleHeader>
<PageLayout.ArticleMainButton>
<ArticleMainButtonContent />
</PageLayout.ArticleMainButton>
{isAdmin && (
<PageLayout.ArticleMainButton>
<ArticleMainButtonContent />
</PageLayout.ArticleMainButton>
)}
<PageLayout.ArticleBody>
<ArticleBodyContent />
@ -71,24 +74,26 @@ class GroupAction extends React.Component {
</PageLayout.SectionBody>
</PageLayout>
) : (
<PageLayout>
<PageLayout.ArticleHeader>
<ArticleHeaderContent />
</PageLayout.ArticleHeader>
<PageLayout>
<PageLayout.ArticleHeader>
<ArticleHeaderContent />
</PageLayout.ArticleHeader>
<PageLayout.ArticleMainButton>
<ArticleMainButtonContent />
</PageLayout.ArticleMainButton>
{isAdmin && (
<PageLayout.ArticleMainButton>
<ArticleMainButtonContent />
</PageLayout.ArticleMainButton>
)}
<PageLayout.ArticleBody>
<ArticleBodyContent />
</PageLayout.ArticleBody>
<PageLayout.ArticleBody>
<ArticleBodyContent />
</PageLayout.ArticleBody>
<PageLayout.SectionBody>
<Loader className="pageLoader" type="rombs" size="40px" />
</PageLayout.SectionBody>
</PageLayout>
)}
<PageLayout.SectionBody>
<Loader className="pageLoader" type="rombs" size="40px" />
</PageLayout.SectionBody>
</PageLayout>
)}
</I18nextProvider>
);
}
@ -110,7 +115,8 @@ const GroupActionContainer = props => {
function mapStateToProps(state) {
return {
settings: state.auth.settings,
group: state.group.targetGroup
group: state.group.targetGroup,
isAdmin: isAdmin(state.auth.user)
};
}

View File

@ -3,7 +3,7 @@ import { connect } from "react-redux";
import PropTypes from "prop-types";
import { withRouter } from "react-router";
import { RequestLoader } from "asc-web-components";
import { PageLayout, utils } from "asc-web-common";
import { PageLayout, utils, store } from "asc-web-common";
import { withTranslation, I18nextProvider } from "react-i18next";
import {
ArticleHeaderContent,
@ -24,6 +24,7 @@ const i18n = createI18N({
localesPath: "pages/Home"
});
const { changeLanguage } = utils;
const { isAdmin } = store.auth.selectors;
class PureHome extends React.Component {
constructor(props) {
@ -91,7 +92,7 @@ class PureHome extends React.Component {
isHeaderChecked,
selected
} = this.state;
const { t } = this.props;
const { t, isAdmin } = this.props;
return (
<>
<RequestLoader
@ -108,9 +109,11 @@ class PureHome extends React.Component {
<ArticleHeaderContent />
</PageLayout.ArticleHeader>
<PageLayout.ArticleMainButton>
<ArticleMainButtonContent />
</PageLayout.ArticleMainButton>
{isAdmin && (
<PageLayout.ArticleMainButton>
<ArticleMainButtonContent />
</PageLayout.ArticleMainButton>
)}
<PageLayout.ArticleBody>
<ArticleBodyContent />
@ -167,7 +170,8 @@ const Home = props => {
Home.propTypes = {
users: PropTypes.array,
history: PropTypes.object.isRequired,
isLoaded: PropTypes.bool
isLoaded: PropTypes.bool,
isAdmin: PropTypes.bool
};
function mapStateToProps(state) {
@ -179,7 +183,8 @@ function mapStateToProps(state) {
selectedGroup,
groups,
isLoaded: state.auth.isLoaded,
organizationName: state.auth.settings.organizationName
organizationName: state.auth.settings.organizationName,
isAdmin: isAdmin(state.auth.user)
};
}

View File

@ -2,7 +2,7 @@ import React, { useEffect } from "react";
import { connect } from "react-redux";
import PropTypes from "prop-types";
import { Loader, toastr } from "asc-web-components";
import { PageLayout, utils } from "asc-web-common";
import { PageLayout, utils, store } from "asc-web-common";
import {
ArticleHeaderContent,
ArticleMainButtonContent,
@ -17,6 +17,7 @@ const i18n = createI18N({
localesPath: "pages/Profile"
});
const { changeLanguage } = utils;
const { isAdmin } = store.auth.selectors;
class PureProfile extends React.Component {
constructor(props) {
@ -62,7 +63,7 @@ class PureProfile extends React.Component {
render() {
//console.log("Profile render")
const { profile, isVisitor } = this.props;
const { profile, isVisitor, isAdmin } = this.props;
return (
<PageLayout withBodyAutoFocus={true}>
@ -71,7 +72,7 @@ class PureProfile extends React.Component {
<ArticleHeaderContent />
</PageLayout.ArticleHeader>
)}
{!isVisitor && (
{(!isVisitor && isAdmin) && (
<PageLayout.ArticleMainButton>
<ArticleMainButtonContent />
</PageLayout.ArticleMainButton>
@ -92,8 +93,8 @@ class PureProfile extends React.Component {
{profile ? (
<SectionBodyContent />
) : (
<Loader className="pageLoader" type="rombs" size="40px" />
)}
<Loader className="pageLoader" type="rombs" size="40px" />
)}
</PageLayout.SectionBody>
</PageLayout>
);
@ -119,13 +120,15 @@ Profile.propTypes = {
history: PropTypes.object.isRequired,
isLoaded: PropTypes.bool,
match: PropTypes.object.isRequired,
profile: PropTypes.object
profile: PropTypes.object,
isAdmin: PropTypes.bool
};
function mapStateToProps(state) {
return {
isVisitor: state.auth.user.isVisitor,
profile: state.profile.targetUser
profile: state.profile.targetUser,
isAdmin: isAdmin(state.auth.user)
};
}

View File

@ -2,7 +2,7 @@ import React, { useEffect } from "react";
import { connect } from "react-redux";
import PropTypes from "prop-types";
import { Loader } from "asc-web-components";
import { PageLayout, utils } from "asc-web-common";
import { PageLayout, utils, store } from "asc-web-common";
import {
ArticleHeaderContent,
ArticleMainButtonContent,
@ -21,6 +21,7 @@ const i18n = createI18N({
localesPath: "pages/ProfileAction"
});
const { changeLanguage } = utils;
const { isAdmin } = store.auth.selectors;
class ProfileAction extends React.Component {
componentDidMount() {
@ -50,7 +51,7 @@ class ProfileAction extends React.Component {
console.log("ProfileAction render");
let loaded = false;
const { profile, isVisitor, match } = this.props;
const { profile, isVisitor, match, isAdmin } = this.props;
const { userId, type } = match.params;
if (type) {
@ -67,7 +68,7 @@ class ProfileAction extends React.Component {
<ArticleHeaderContent />
</PageLayout.ArticleHeader>
)}
{!isVisitor && (
{(!isVisitor && isAdmin) && (
<PageLayout.ArticleMainButton>
<ArticleMainButtonContent />
</PageLayout.ArticleMainButton>
@ -89,11 +90,11 @@ class ProfileAction extends React.Component {
type ? (
<CreateUserForm />
) : (
<UpdateUserForm />
)
<UpdateUserForm />
)
) : (
<Loader className="pageLoader" type="rombs" size="40px" />
)}
<Loader className="pageLoader" type="rombs" size="40px" />
)}
</PageLayout.SectionBody>
</PageLayout>
</I18nextProvider>
@ -104,7 +105,8 @@ class ProfileAction extends React.Component {
ProfileAction.propTypes = {
fetchProfile: PropTypes.func.isRequired,
match: PropTypes.object.isRequired,
profile: PropTypes.object
profile: PropTypes.object,
isAdmin: PropTypes.bool
};
const ProfileActionTranslate = withTranslation()(ProfileAction);
@ -124,7 +126,8 @@ const ProfileActionContainer = props => {
function mapStateToProps(state) {
return {
isVisitor: state.auth.user.isVisitor,
profile: state.profile.targetUser
profile: state.profile.targetUser,
isAdmin: isAdmin(state.auth.user)
};
}

View File

@ -1,7 +1,7 @@
import React from "react";
import { connect } from "react-redux";
// import PropTypes from "prop-types";
import { PageLayout } from "asc-web-common";
import { PageLayout, store } from "asc-web-common";
import {
ArticleHeaderContent,
ArticleMainButtonContent,
@ -16,6 +16,7 @@ const i18n = createI18N({
page: "Reassign",
localesPath: "pages/Reassign"
});
const { isAdmin } = store.auth.selectors;
class Reassign extends React.Component {
componentDidMount() {
@ -36,6 +37,7 @@ class Reassign extends React.Component {
}
render() {
const { isAdmin } = this.props;
console.log("Reassign render");
// let loaded = false;
@ -55,9 +57,11 @@ class Reassign extends React.Component {
<ArticleHeaderContent />
</PageLayout.ArticleHeader>
<PageLayout.ArticleMainButton>
<ArticleMainButtonContent />
</PageLayout.ArticleMainButton>
{isAdmin && (
<PageLayout.ArticleMainButton>
<ArticleMainButtonContent />
</PageLayout.ArticleMainButton>
)}
<PageLayout.ArticleBody>
<ArticleBodyContent />
@ -84,6 +88,7 @@ Reassign.propTypes = {
function mapStateToProps(state) {
return {
isAdmin: isAdmin(state.auth.user)
// profile: state.profile.targetUser
};
}