PromucFlow_constructor/app/client/src/pages/Editor/HelpButton.tsx

83 lines
2.1 KiB
TypeScript
Raw Normal View History

import React, { useEffect } from "react";
import styled, { createGlobalStyle, withTheme } from "styled-components";
2021-03-08 08:24:12 +00:00
import { Popover, Position } from "@blueprintjs/core";
import DocumentationSearch, {
bootIntercom,
} from "components/designSystems/appsmith/help/DocumentationSearch";
2021-03-08 08:24:12 +00:00
import Icon, { IconSize } from "components/ads/Icon";
import { HELP_MODAL_WIDTH } from "constants/HelpConstants";
import AnalyticsUtil from "utils/AnalyticsUtil";
import { Theme } from "constants/DefaultTheme";
import { getAppsmithConfigs } from "../../configs";
import { getCurrentUser } from "../../selectors/usersSelectors";
import { useSelector } from "react-redux";
2021-03-08 08:24:12 +00:00
const HelpPopoverStyle = createGlobalStyle`
.bp3-popover.bp3-minimal.navbar-help-popover {
margin-top: 0 !important;
}
`;
const StyledTrigger = styled.div`
cursor: pointer;
width: 25px;
height: 25px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin: 0 ${(props) => props.theme.spaces[4]}px;
2021-03-08 08:24:12 +00:00
background: ${(props) =>
props.theme.colors.globalSearch.helpButtonBackground};
`;
const Trigger = withTheme(({ theme }: { theme: Theme }) => (
2021-03-08 08:24:12 +00:00
<StyledTrigger>
<Icon
fillColor={theme.colors.globalSearch.helpIcon}
name="help"
size={IconSize.XS}
/>
2021-03-08 08:24:12 +00:00
</StyledTrigger>
));
2021-03-08 08:24:12 +00:00
const onOpened = () => {
AnalyticsUtil.logEvent("OPEN_HELP", { page: "Editor" });
};
const { intercomAppID } = getAppsmithConfigs();
function HelpButton() {
const user = useSelector(getCurrentUser);
useEffect(() => {
bootIntercom(intercomAppID, user);
}, [user?.email]);
2021-03-08 08:24:12 +00:00
return (
<Popover
minimal
2021-03-08 08:24:12 +00:00
modifiers={{
offset: {
enabled: true,
offset: "0, 6",
},
}}
onOpened={onOpened}
popoverClassName="navbar-help-popover"
position={Position.BOTTOM_RIGHT}
2021-03-08 08:24:12 +00:00
>
<>
<HelpPopoverStyle />
<Trigger />
</>
<div style={{ width: HELP_MODAL_WIDTH }}>
<DocumentationSearch hideMinimizeBtn hideSearch hitsPerPage={4} />
2021-03-08 08:24:12 +00:00
</div>
</Popover>
);
}
2021-03-08 08:24:12 +00:00
export default HelpButton;