import { getAppsmithConfigs } from "@appsmith/configs"; import { ADMIN_SETTINGS, APPSMITH_DISPLAY_VERSION, CHAT_WITH_US, DOCUMENTATION, HELP, WHATS_NEW, createMessage, } from "@appsmith/constants/messages"; import { FEATURE_FLAG } from "@appsmith/entities/FeatureFlag"; import { getCurrentApplicationIdForCreateNewApp } from "@appsmith/selectors/applicationSelectors"; import { getTenantPermissions } from "@appsmith/selectors/tenantSelectors"; import { getAdminSettingsPath, getShowAdminSettings, } from "@appsmith/utils/BusinessFeatures/adminSettingsHelpers"; import { isAirgapped } from "@appsmith/utils/airgapHelpers"; import { ShowUpgradeMenuItem } from "@appsmith/utils/licenseHelpers"; import type { User } from "constants/userConstants"; import { Button, Menu, MenuContent, MenuItem, MenuSeparator, MenuTrigger, Tooltip, } from "design-system"; import React, { useState } from "react"; import { useDispatch, useSelector } from "react-redux"; import { useRouteMatch } from "react-router"; import { howMuchTimeBeforeText } from "utils/helpers"; import { useFeatureFlag } from "utils/hooks/useFeatureFlag"; import { DropdownOnSelectActions, getOnSelectAction, } from "../CustomizedDropdown/dropdownHelpers"; import { IntercomConsent } from "pages/Editor/HelpButton"; import { DOCS_BASE_URL } from "constants/ThirdPartyConstants"; import { ReduxActionTypes } from "@appsmith/constants/ReduxActionConstants"; import styled from "styled-components"; const { cloudHosting, intercomAppID } = getAppsmithConfigs(); export const VersionData = styled.div` display: flex; flex-direction: column; color: var(--ads-v2-color-fg-muted); font-size: 8px; position: relative; padding: 6px 12px 12px; gap: 4px; `; const HomepageHeaderAction = ({ setIsProductUpdatesModalOpen, user, }: { user: User; setIsProductUpdatesModalOpen: (val: boolean) => void; }) => { const dispatch = useDispatch(); const isFeatureEnabled = useFeatureFlag(FEATURE_FLAG.license_gac_enabled); const tenantPermissions = useSelector(getTenantPermissions); const isCreateNewAppFlow = useSelector( getCurrentApplicationIdForCreateNewApp, ); const isHomePage = useRouteMatch("/applications")?.isExact; const isAirgappedInstance = isAirgapped(); const { appVersion } = getAppsmithConfigs(); const howMuchTimeBefore = howMuchTimeBeforeText(appVersion.releaseDate); const [showIntercomConsent, setShowIntercomConsent] = useState(false); if (!isHomePage || !!isCreateNewAppFlow) return null; return (
{getShowAdminSettings(isFeatureEnabled, user) && (
); }; export default HomepageHeaderAction;