2022-04-19 07:30:56 +00:00
|
|
|
import React, { useEffect } from "react";
|
2022-03-11 08:04:09 +00:00
|
|
|
import PropTypes from "prop-types";
|
2022-04-20 09:45:36 +00:00
|
|
|
import { useLocation } from "react-router";
|
2022-04-10 15:23:21 +00:00
|
|
|
import Loaders from "@appserver/common/components/Loaders";
|
|
|
|
import { isTablet as isTabletUtils } from "@appserver/components/utils/device";
|
2022-05-30 11:23:51 +00:00
|
|
|
import { isTablet, isMobileOnly } from "react-device-detect";
|
2022-04-19 07:30:56 +00:00
|
|
|
import { inject, observer } from "mobx-react";
|
2022-03-11 08:04:09 +00:00
|
|
|
import {
|
2022-03-15 14:18:07 +00:00
|
|
|
StyledArticleHeader,
|
2022-03-11 08:04:09 +00:00
|
|
|
StyledHeading,
|
|
|
|
StyledIconBox,
|
|
|
|
StyledMenuIcon,
|
2022-03-15 14:18:07 +00:00
|
|
|
} from "../styled-article";
|
2022-03-11 08:04:09 +00:00
|
|
|
|
2022-04-10 15:23:21 +00:00
|
|
|
const ArticleHeader = ({
|
|
|
|
showText,
|
|
|
|
children,
|
|
|
|
onClick,
|
2022-04-19 07:30:56 +00:00
|
|
|
isLoadedPage,
|
|
|
|
isLoaded,
|
|
|
|
tReady,
|
|
|
|
setIsLoadedArticleHeader,
|
2022-05-12 12:05:28 +00:00
|
|
|
isBurgerLoading,
|
2022-04-10 15:23:21 +00:00
|
|
|
...rest
|
|
|
|
}) => {
|
2022-04-20 09:45:36 +00:00
|
|
|
const location = useLocation();
|
|
|
|
|
2022-04-19 07:30:56 +00:00
|
|
|
const isLoadedSetting = isLoaded;
|
2022-04-20 09:45:36 +00:00
|
|
|
|
|
|
|
const commonSettings =
|
2022-04-20 15:29:29 +00:00
|
|
|
location.pathname.includes("common/customization") ||
|
|
|
|
location.pathname === "/settings";
|
2022-04-19 07:30:56 +00:00
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
if (isLoadedSetting) setIsLoadedArticleHeader(isLoadedSetting);
|
|
|
|
}, [isLoadedSetting]);
|
2022-04-10 15:23:21 +00:00
|
|
|
|
2022-04-19 07:30:56 +00:00
|
|
|
const showLoader = commonSettings ? !isLoadedPage : false;
|
2022-04-20 09:45:36 +00:00
|
|
|
|
2022-05-30 11:23:51 +00:00
|
|
|
const isTabletView = (isTabletUtils() || isTablet) && !isMobileOnly;
|
2022-05-12 12:05:28 +00:00
|
|
|
|
|
|
|
return (
|
2022-03-15 14:18:07 +00:00
|
|
|
<StyledArticleHeader showText={showText} {...rest}>
|
2022-05-12 12:05:28 +00:00
|
|
|
{isTabletView && (isBurgerLoading || showLoader) ? (
|
2022-05-31 11:31:45 +00:00
|
|
|
<Loaders.ArticleHeader
|
|
|
|
height="20px"
|
|
|
|
width="20px"
|
|
|
|
style={{ height: "20px" }}
|
|
|
|
/>
|
2022-05-12 12:05:28 +00:00
|
|
|
) : (
|
|
|
|
<StyledIconBox name="article-burger">
|
|
|
|
<StyledMenuIcon onClick={onClick} />
|
|
|
|
</StyledIconBox>
|
|
|
|
)}
|
2022-03-11 08:04:09 +00:00
|
|
|
|
|
|
|
<StyledHeading showText={showText} size="large">
|
|
|
|
{children}
|
|
|
|
</StyledHeading>
|
2022-03-15 14:18:07 +00:00
|
|
|
</StyledArticleHeader>
|
2022-03-11 08:04:09 +00:00
|
|
|
);
|
|
|
|
};
|
|
|
|
|
2022-03-15 14:18:07 +00:00
|
|
|
ArticleHeader.propTypes = {
|
2022-03-11 08:04:09 +00:00
|
|
|
children: PropTypes.any,
|
|
|
|
showText: PropTypes.bool,
|
|
|
|
onClick: PropTypes.func,
|
|
|
|
};
|
|
|
|
|
2022-03-15 14:18:07 +00:00
|
|
|
ArticleHeader.displayName = "Header";
|
2022-03-11 08:04:09 +00:00
|
|
|
|
2022-05-12 12:05:28 +00:00
|
|
|
export default inject(({ common, auth }) => {
|
2022-04-19 07:30:56 +00:00
|
|
|
const { isLoaded, setIsLoadedArticleHeader } = common;
|
2022-05-12 12:05:28 +00:00
|
|
|
const { settingsStore } = auth;
|
|
|
|
const { isBurgerLoading } = settingsStore;
|
2022-04-19 07:30:56 +00:00
|
|
|
return {
|
|
|
|
isLoaded,
|
|
|
|
setIsLoadedArticleHeader,
|
2022-05-12 12:05:28 +00:00
|
|
|
isBurgerLoading,
|
2022-04-19 07:30:56 +00:00
|
|
|
};
|
|
|
|
})(observer(ArticleHeader));
|