Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -581,6 +581,9 @@ const AppsLineIcon = importRemixIcon(
const ProtectedIcon = importRemixIcon(
async () => import("remixicon-react/ShieldKeyholeLineIcon"),
);
const PriceTagIcon = importRemixIcon(
async () => import("remixicon-react/PriceTag3LineIcon"),
);

const CornerDownLeftLineIcon = importSvg(
async () => import("../__assets__/icons/ads/corner-down-left-line.svg"),
Expand Down Expand Up @@ -1492,6 +1495,7 @@ const ICON_LOOKUP = {
"widgets-v3": WidgetsV3Icon,
"workflows-mono": WorkflowsMonochromeIcon,
"protected-icon": ProtectedIcon,
pricetag: PriceTagIcon,
billing: BillingIcon,
binding: Binding,
book: BookIcon,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ import { MenuItem } from "@appsmith/ads";
import { CONNECT_TO_GIT_OPTION, createMessage } from "ee/constants/messages";
import AnalyticsUtil from "ee/utils/AnalyticsUtil";
import noop from "lodash/noop";
import useConnected from "git/hooks/useConnected";
import { useGitContext } from "../GitContextProvider";

interface DeployMenuItemsViewProps {
toggleConnectModal: (open: boolean) => void;
Expand All @@ -11,13 +13,20 @@ interface DeployMenuItemsViewProps {
function DeployMenuItemsView({
toggleConnectModal = noop,
}: DeployMenuItemsViewProps) {
const isConnected = useConnected();
const { isConnectPermitted } = useGitContext();

const handleClickOnConnect = useCallback(() => {
AnalyticsUtil.logEvent("GS_CONNECT_GIT_CLICK", {
source: "Deploy button",
});
toggleConnectModal(true);
}, [toggleConnectModal]);

if (isConnected || !isConnectPermitted) {
return null;
}

return (
<MenuItem
data-testid="t--git-deploy-menu-connect"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import type { ReactNode } from "react";
import React, { useCallback } from "react";
import { Menu, MenuItem, MenuContent, MenuTrigger } from "@appsmith/ads";
import { useSelector, useDispatch } from "react-redux";
Expand All @@ -11,12 +10,8 @@ import {
} from "ee/constants/messages";
import { Button } from "@appsmith/ads";
import { KBEditorMenuItem } from "ee/pages/Editor/KnowledgeBase/KBEditorMenuItem";
import { useHasConnectToGitPermission } from "pages/Editor/gitSync/hooks/gitPermissionHooks";
import { getIsAnvilEnabledInCurrentApplication } from "layoutSystems/anvil/integrations/selectors";
import {
useGitConnected,
useGitModEnabled,
} from "pages/Editor/gitSync/hooks/modHooks";
import { useGitModEnabled } from "pages/Editor/gitSync/hooks/modHooks";
import { GitDeployMenuItems as GitDeployMenuItemsNew } from "git";

function GitDeployMenuItems() {
Expand Down Expand Up @@ -49,19 +44,22 @@ function GitDeployMenuItems() {
);
}

interface Props {
trigger: ReactNode;
link: string;
interface ChevronMenuProps {
deployLink: string;
}

export const DeployLinkButton = (props: Props) => {
const isGitConnected = useGitConnected();
const isConnectToGitPermitted = useHasConnectToGitPermission();
export const ChevronMenu = ({ deployLink }: ChevronMenuProps) => {
// We check if the current application is an Anvil application.
// If it is an Anvil application, we remove the Git features from the deploy button
// as they donot yet work correctly with Anvil.
const isAnvilEnabled = useSelector(getIsAnvilEnabledInCurrentApplication);

const handleClickOnLatestDeployed = useCallback(() => {
if (window) {
window.open(deployLink, "_blank")?.focus();
}
}, [deployLink]);

return (
<Menu>
<MenuTrigger>
Expand All @@ -74,16 +72,10 @@ export const DeployLinkButton = (props: Props) => {
/>
</MenuTrigger>
<MenuContent>
{!isGitConnected && isConnectToGitPermitted && !isAnvilEnabled && (
<GitDeployMenuItems />
)}
{!isAnvilEnabled && <GitDeployMenuItems />}
<MenuItem
className="t--current-deployed-preview-btn"
onClick={() => {
if (window) {
window.open(props.link, "_blank")?.focus();
}
}}
onClick={handleClickOnLatestDeployed}
startIcon="share-box-line"
>
{CURRENT_DEPLOY_PREVIEW_OPTION()}
Expand All @@ -94,4 +86,4 @@ export const DeployLinkButton = (props: Props) => {
);
};

export default DeployLinkButton;
export default ChevronMenu;
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ import AppInviteUsersForm from "pages/workspace/AppInviteUsersForm";
import { getEmbedSnippetForm } from "ee/utils/BusinessFeatures/privateEmbedHelpers";
import CommunityTemplatesPublishInfo from "pages/Editor/CommunityTemplates/Modals/CommunityTemplatesPublishInfo";
import PublishCommunityTemplateModal from "pages/Editor/CommunityTemplates/Modals/PublishCommunityTemplate";
import DeployLinkButtonDialog from "components/designSystems/appsmith/header/DeployLinkButton";
import { useFeatureFlag } from "utils/hooks/useFeatureFlag";
import { FEATURE_FLAG } from "ee/entities/FeatureFlag";
import { getAppsmithConfigs } from "ee/configs";
Expand All @@ -65,6 +64,7 @@ import useLibraryHeaderTitle from "ee/pages/AppIDE/layouts/components/Header/use
import { AppsmithLink } from "pages/Editor/AppsmithLink";
import DeployButton from "./DeployButton";
import { GitApplicationContextProvider } from "git-artifact-helpers/application/components";
import ChevronMenu from "./ChevronMenu";

const StyledDivider = styled(Divider)`
height: 50%;
Expand Down Expand Up @@ -259,7 +259,7 @@ const Header = () => {
/>
<div className="flex items-center">
<DeployButton />
<DeployLinkButtonDialog link={deployLink} trigger="" />
<ChevronMenu deployLink={deployLink} />
</div>
</IDEHeader.Right>
</IDEHeader>
Expand Down
Loading