* Icon component deleted and changed the imports in refrence places * design system package version changed * import changes * Delete TextInput.tsx * Change imports * Change single named import * Update package * Update package * Delete ScrollIndicator.tsx * Change imports * Icon import completed * Event type added * Changed Button component imports * import change button * Button onclick type fix * Label with Tooltip import changes * Changed breadcrumbs import * EmojiPicker and Emoji Reaction import changes * AppIcon import change * import bug fix * Menu Item import chnages * Icon selector imports changed * Delete LabelWithTooltip.tsx * Change imports across the app * Update package version * Update version number for design-system * Delete Checkbox.tsx * Remove the exports * Add lock file for ds package update * Change imports * default import -> named * Update release version * Make arg type explicit * Updated design-system to latest release * Missing file mysteriously comes back and is updated accordingly * changes design-system package version * Add types to arguments in the onChange for text input * onBlur type fix * Search component in property pane * WDS button changes reverted * package version bumped * conflict fix * Remove Dropdown, change imports * Category import fix * fix: table icon size import * Bump version of design system package * Yarn lock Co-authored-by: Tanvi Bhakta <tanvibhakta@gmail.com>
112 lines
2.9 KiB
TypeScript
112 lines
2.9 KiB
TypeScript
import React, { useEffect } from "react";
|
|
import styled, { createGlobalStyle, withTheme } from "styled-components";
|
|
import { Popover, Position } from "@blueprintjs/core";
|
|
|
|
import DocumentationSearch from "components/designSystems/appsmith/help/DocumentationSearch";
|
|
import { Icon, IconSize } from "design-system";
|
|
|
|
import { HELP_MODAL_WIDTH } from "constants/HelpConstants";
|
|
import AnalyticsUtil from "utils/AnalyticsUtil";
|
|
import { Theme } from "constants/DefaultTheme";
|
|
import { getCurrentUser } from "selectors/usersSelectors";
|
|
import { useSelector } from "react-redux";
|
|
import bootIntercom from "utils/bootIntercom";
|
|
import { Colors } from "constants/Colors";
|
|
import { TooltipComponent } from "design-system";
|
|
import {
|
|
createMessage,
|
|
HELP_RESOURCE_TOOLTIP,
|
|
} from "@appsmith/constants/messages";
|
|
import { TOOLTIP_HOVER_ON_DELAY } from "constants/AppConstants";
|
|
import { useCallback } from "react";
|
|
import { useState } from "react";
|
|
|
|
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;
|
|
background: ${(props) =>
|
|
props.theme.colors.globalSearch.helpButtonBackground};
|
|
|
|
&:hover {
|
|
border: 1.5px solid ${Colors.GREY_10};
|
|
}
|
|
`;
|
|
|
|
type TriggerProps = {
|
|
tooltipsDisabled: boolean;
|
|
theme: Theme;
|
|
};
|
|
|
|
const Trigger = withTheme(({ theme, tooltipsDisabled }: TriggerProps) => (
|
|
<TooltipComponent
|
|
content={createMessage(HELP_RESOURCE_TOOLTIP)}
|
|
disabled={tooltipsDisabled}
|
|
hoverOpenDelay={TOOLTIP_HOVER_ON_DELAY}
|
|
position="bottom"
|
|
>
|
|
<StyledTrigger>
|
|
<Icon
|
|
fillColor={theme.colors.globalSearch.helpIcon}
|
|
name="help"
|
|
size={IconSize.LARGE}
|
|
/>
|
|
</StyledTrigger>
|
|
</TooltipComponent>
|
|
));
|
|
|
|
function HelpButton() {
|
|
const user = useSelector(getCurrentUser);
|
|
const [isHelpOpen, setIsHelpOpen] = useState(false);
|
|
|
|
useEffect(() => {
|
|
bootIntercom(user);
|
|
}, [user?.email]);
|
|
|
|
const onOpened = useCallback(() => {
|
|
AnalyticsUtil.logEvent("OPEN_HELP", { page: "Editor" });
|
|
setIsHelpOpen(true);
|
|
}, []);
|
|
|
|
const onClose = useCallback(() => {
|
|
setIsHelpOpen(false);
|
|
}, []);
|
|
|
|
return (
|
|
<Popover
|
|
minimal
|
|
modifiers={{
|
|
offset: {
|
|
enabled: true,
|
|
offset: "0, 6",
|
|
},
|
|
}}
|
|
onClosed={onClose}
|
|
onOpened={onOpened}
|
|
popoverClassName="navbar-help-popover"
|
|
position={Position.BOTTOM_RIGHT}
|
|
>
|
|
<>
|
|
<HelpPopoverStyle />
|
|
<Trigger tooltipsDisabled={isHelpOpen} />
|
|
</>
|
|
<div style={{ width: HELP_MODAL_WIDTH }}>
|
|
<DocumentationSearch hideMinimizeBtn hideSearch hitsPerPage={4} />
|
|
</div>
|
|
</Popover>
|
|
);
|
|
}
|
|
|
|
export default HelpButton;
|