From 726b8d836f5bfc8cf84c7cb986c12ccac0fa1ab3 Mon Sep 17 00:00:00 2001 From: Candace Park <56409205+parkiino@users.noreply.github.com> Date: Tue, 7 Jan 2025 13:30:27 -0500 Subject: [PATCH] [AVC Banner] Updates the AVC Banner for 2025 (#205467) ## Summary - [x] Updates the AVC banner title and blog link - [x] Banner will remain visible until EOY 2025 - [x] Confirm that the original AVC banner code (not the part that hides it EOY of 2024) is present in 8.16, 8.17 and 8.x branches # Screenshots ![image](https://github.com/user-attachments/assets/c2ec37fc-4d42-45f9-aaa1-47b5a6cc715a) --------- Co-authored-by: Elastic Machine (cherry picked from commit 08535f54a0d9b172f8cd695a5330bcd87f896d7c) # Conflicts: # api_docs/kbn_avc_banner.devdocs.json # packages/kbn-doc-links/src/get_doc_links.ts # x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/overview/overview.tsx # x-pack/plugins/security_solution/public/onboarding/components/onboarding_banner/onboarding_banner.tsx --- api_docs/kbn_avc_banner.devdocs.json | 10 +++++----- packages/kbn-avc-banner/src/index.tsx | 10 +++++----- packages/kbn-doc-links/src/get_doc_links.ts | 3 ++- .../sections/epm/screens/detail/overview/overview.tsx | 6 +++--- .../components/onboarding_banner/onboarding_banner.tsx | 10 +++++----- 5 files changed, 20 insertions(+), 19 deletions(-) diff --git a/api_docs/kbn_avc_banner.devdocs.json b/api_docs/kbn_avc_banner.devdocs.json index 84622adb07ab7..ad72ade6f630a 100644 --- a/api_docs/kbn_avc_banner.devdocs.json +++ b/api_docs/kbn_avc_banner.devdocs.json @@ -5,10 +5,10 @@ "functions": [ { "parentPluginId": "@kbn/avc-banner", - "id": "def-public.AVCResultsBanner2024", + "id": "def-public.AVCResultsBanner", "type": "Function", "tags": [], - "label": "AVCResultsBanner2024", + "label": "AVCResultsBanner", "description": [], "signature": [ "({ onDismiss }: React.PropsWithChildren<{ onDismiss: () => void; }>) => JSX.Element" @@ -19,8 +19,8 @@ "children": [ { "parentPluginId": "@kbn/avc-banner", - "id": "def-public.AVCResultsBanner2024.$1", - "type": "CompoundType", + "id": "def-public.AVCResultsBanner.$1", + "type": "Object", "tags": [], "label": "{ onDismiss }", "description": [], @@ -75,4 +75,4 @@ "misc": [], "objects": [] } -} \ No newline at end of file +} diff --git a/packages/kbn-avc-banner/src/index.tsx b/packages/kbn-avc-banner/src/index.tsx index d1fe09df6c0a0..8c4a1f36e072d 100644 --- a/packages/kbn-avc-banner/src/index.tsx +++ b/packages/kbn-avc-banner/src/index.tsx @@ -15,18 +15,18 @@ import { FormattedMessage } from '@kbn/i18n-react'; import { useKibana } from '@kbn/kibana-react-plugin/public'; import avcBannerBackground from './avc_banner_background.svg'; -// Logic to hide banner at EOY 2024 -export const useIsStillYear2024: () => boolean = () => { +// Logic to hide banner at EOY 2025 +export const useIsStillYear2025: () => boolean = () => { return useMemo(() => { - return new Date().getFullYear() === 2024; + return new Date().getFullYear() === 2025; }, []); }; -export const AVCResultsBanner2024: React.FC<{ onDismiss: () => void }> = ({ onDismiss }) => { +export const AVCResultsBanner: React.FC<{ onDismiss: () => void }> = ({ onDismiss }) => { const { docLinks } = useKibana().services; const { euiTheme } = useEuiTheme(); const bannerTitle = i18n.translate('avcBanner.title', { - defaultMessage: '100% protection with zero false positives.', + defaultMessage: 'Proven defense with zero false positives', }); const calloutStyles = css({ diff --git a/packages/kbn-doc-links/src/get_doc_links.ts b/packages/kbn-doc-links/src/get_doc_links.ts index 649153208164e..b53f206e58452 100644 --- a/packages/kbn-doc-links/src/get_doc_links.ts +++ b/packages/kbn-doc-links/src/get_doc_links.ts @@ -471,7 +471,8 @@ export const getDocLinks = ({ kibanaBranch, buildFlavor }: GetDocLinkOptions): D }, securitySolution: { artifactControl: `${SECURITY_SOLUTION_DOCS}artifact-control.html`, - avcResults: `${ELASTIC_WEBSITE_URL}blog/elastic-av-comparatives-business-security-test`, + avcResults: `${ELASTIC_WEBSITE_URL}blog/elastic-security-av-comparatives-business-test`, + bidirectionalIntegrations: `${SECURITY_SOLUTION_DOCS}third-party-actions.html`, trustedApps: `${SECURITY_SOLUTION_DOCS}trusted-apps-ov.html`, eventFilters: `${SECURITY_SOLUTION_DOCS}event-filters.html`, blocklist: `${SECURITY_SOLUTION_DOCS}blocklist.html`, diff --git a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/overview/overview.tsx b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/overview/overview.tsx index e96e74b1bb96c..49e9561c1a26b 100644 --- a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/overview/overview.tsx +++ b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/overview/overview.tsx @@ -22,7 +22,7 @@ import { FormattedMessage } from '@kbn/i18n-react'; import { useKibana } from '@kbn/kibana-react-plugin/public'; -import { AVCResultsBanner2024, useIsStillYear2024 } from '@kbn/avc-banner'; +import { AVCResultsBanner, useIsStillYear2025 } from '@kbn/avc-banner'; import { isIntegrationPolicyTemplate, @@ -315,9 +315,9 @@ export const OverviewPage: React.FC = memo( {isUnverified && } - {useIsStillYear2024() && isElasticDefend && showAVCBanner && ( + {useIsStillYear2025() && isElasticDefend && showAVCBanner && ( <> - + )} diff --git a/x-pack/plugins/security_solution/public/onboarding/components/onboarding_banner/onboarding_banner.tsx b/x-pack/plugins/security_solution/public/onboarding/components/onboarding_banner/onboarding_banner.tsx index 201fae862b43c..f2345aef155dd 100644 --- a/x-pack/plugins/security_solution/public/onboarding/components/onboarding_banner/onboarding_banner.tsx +++ b/x-pack/plugins/security_solution/public/onboarding/components/onboarding_banner/onboarding_banner.tsx @@ -7,21 +7,21 @@ import React, { useCallback } from 'react'; -import { AVCResultsBanner2024, useIsStillYear2024 } from '@kbn/avc-banner'; -import { useStoredIsAVCBannerDismissed } from '../../hooks/use_stored_state'; +import { AVCResultsBanner, useIsStillYear2025 } from '@kbn/avc-banner'; +import { useStoredIsAVCBannerDismissed } from '../hooks/use_stored_state'; export const OnboardingBanner = React.memo(() => { const [isAVCBannerDismissed, setIsAVCBannerDismissed] = useStoredIsAVCBannerDismissed(); - const isStillYear2024 = useIsStillYear2024(); + const isStillYear2025 = useIsStillYear2025(); const dismissAVCBanner = useCallback(() => { setIsAVCBannerDismissed(true); }, [setIsAVCBannerDismissed]); - if (isAVCBannerDismissed || !isStillYear2024) { + if (isAVCBannerDismissed || !isStillYear2025) { return null; } - return ; + return ; }); OnboardingBanner.displayName = 'OnboardingBanner';