diff --git a/datahub-web-react/src/app/context/userContext.tsx b/datahub-web-react/src/app/context/userContext.tsx index c552234648..1ba3a4964a 100644 --- a/datahub-web-react/src/app/context/userContext.tsx +++ b/datahub-web-react/src/app/context/userContext.tsx @@ -8,6 +8,7 @@ export type LocalState = { selectedViewUrn?: string | null; selectedPath?: string | null; selectedSearch?: string | null; + showBrowseV2Sidebar?: boolean | null; }; /** diff --git a/datahub-web-react/src/app/search/SearchResults.tsx b/datahub-web-react/src/app/search/SearchResults.tsx index 29d81d2bcc..8a0e31e1fb 100644 --- a/datahub-web-react/src/app/search/SearchResults.tsx +++ b/datahub-web-react/src/app/search/SearchResults.tsx @@ -23,10 +23,8 @@ import BrowseSidebar from './sidebar'; import ToggleSidebarButton from './ToggleSidebarButton'; import { SidebarProvider } from './sidebar/SidebarContext'; import { BrowseProvider } from './sidebar/BrowseContext'; -import analytics from '../analytics/analytics'; -import useToggle from '../shared/useToggle'; -import { EventType } from '../analytics'; import { useIsBrowseV2, useIsSearchV2 } from './useSearchAndBrowseVersion'; +import useToggleSidebar from './useToggleSidebar'; const SearchResultsWrapper = styled.div<{ showUpdatedStyles: boolean }>` display: flex; @@ -151,6 +149,7 @@ export const SearchResults = ({ }: Props) => { const showSearchFiltersV2 = useIsSearchV2(); const showBrowseV2 = useIsBrowseV2(); + const { isSidebarOpen, toggleSidebar } = useToggleSidebar(); const pageStart = searchResponse?.start || 0; const pageSize = searchResponse?.count || 0; const totalResults = searchResponse?.total || 0; @@ -161,15 +160,6 @@ export const SearchResults = ({ const searchResultUrns = combinedSiblingSearchResults.map((result) => result.entity.urn) || []; const selectedEntityUrns = selectedEntities.map((entity) => entity.urn); - const { isOpen: isSidebarOpen, toggle: toggleSidebar } = useToggle({ - initialValue: true, - onToggle: (isNowOpen: boolean) => - analytics.event({ - type: EventType.BrowseV2ToggleSidebarEvent, - action: isNowOpen ? 'open' : 'close', - }), - }); - return ( <> {loading && } diff --git a/datahub-web-react/src/app/search/ToggleSidebarButton.tsx b/datahub-web-react/src/app/search/ToggleSidebarButton.tsx index bdfc1e77d7..0f5d00fcd7 100644 --- a/datahub-web-react/src/app/search/ToggleSidebarButton.tsx +++ b/datahub-web-react/src/app/search/ToggleSidebarButton.tsx @@ -1,6 +1,6 @@ -import React, { memo } from 'react'; +import React, { memo, useState } from 'react'; import Icon from '@ant-design/icons/lib/components/Icon'; -import { Button } from 'antd'; +import { Button, Tooltip } from 'antd'; import styled from 'styled-components'; import { ReactComponent as ExpandIcon } from '../../images/expand.svg'; import { ReactComponent as CollapseIcon } from '../../images/collapse.svg'; @@ -12,9 +12,37 @@ const ToggleIcon = styled(Icon)` } `; -const ToggleSidebarButton = ({ isOpen, onClick }: { isOpen: boolean; onClick: () => void }) => { +type Props = { + isOpen: boolean; + onClick: () => void; +}; + +const ToggleSidebarButton = ({ isOpen, onClick }: Props) => { + const [pauseTooltip, setPauseTooltip] = useState(false); + const title = isOpen ? 'Hide the navigation panel' : 'Open the navigation panel'; + const placement = isOpen ? 'bottom' : 'bottomRight'; + + const onClickButton = () => { + setPauseTooltip(true); + window.setTimeout(() => setPauseTooltip(false), 250); + onClick(); + }; + + const button = ( +