From d10d343e742a8d520a12c87dfdb3449e45a43f91 Mon Sep 17 00:00:00 2001 From: Paul Sebastian Date: Mon, 16 Oct 2023 15:09:39 -0700 Subject: [PATCH] restructured sidebar fields to use exact same spacing/paneling as discover, so that field type icons look the same and field action buttons disappear if not hovered over Signed-off-by: Paul Sebastian --- .../common/field_icon/field_icon.tsx | 2 +- .../explorer/sidebar/field.tsx | 127 ++++++++++-------- .../explorer/sidebar/sidebar.scss | 16 +++ .../explorer/sidebar/sidebar.tsx | 120 ++++++++++------- 4 files changed, 157 insertions(+), 108 deletions(-) diff --git a/public/components/common/field_icon/field_icon.tsx b/public/components/common/field_icon/field_icon.tsx index 467c2c7c0..e5b2d0117 100644 --- a/public/components/common/field_icon/field_icon.tsx +++ b/public/components/common/field_icon/field_icon.tsx @@ -50,7 +50,7 @@ export const typeToEuiIconMap: Partial> = { export function FieldIcon({ type, label, - size = 'l', + size = 's', scripted, className, ...rest diff --git a/public/components/event_analytics/explorer/sidebar/field.tsx b/public/components/event_analytics/explorer/sidebar/field.tsx index b55f5ff2c..c11ea4bbd 100644 --- a/public/components/event_analytics/explorer/sidebar/field.tsx +++ b/public/components/event_analytics/explorer/sidebar/field.tsx @@ -73,57 +73,83 @@ export const Field = (props: IFieldProps) => { onToggleField(fields); }; - const getFieldActionDOM = () => { - return ( - <> - - <> - {isEqual(field.type, 'string') ? ( - isEqual(selectedPattern, field.name) ? ( - - Default Pattern - - ) : isOverridingPattern ? ( + return ( + + + + + + {field.name} + + + <> + {isEqual(field.type, 'string') ? ( + isEqual(selectedPattern, field.name) ? ( + + {' '} + + + Default Pattern + + + + ) : isOverridingPattern ? ( + - ) : ( + + ) : ( + handleOverridePattern(field)} data-test-subj="eventExplorer__overrideDefaultPattern" + className="dscSidebarField__actionButton" > Override - ) - ) : null} - - - - <> - {showTimestampOverrideButton && isEqual(field.type, 'timestamp') ? ( - isEqual(selectedTimestamp, field.name) ? ( - - Default Timestamp - - ) : isOverridingTimestamp ? ( + + ) + ) : null} + + + + <> + {showTimestampOverrideButton && isEqual(field.type, 'timestamp') ? ( + isEqual(selectedTimestamp, field.name) ? ( + + + {' '} + + Default Timestamp + + + + ) : isOverridingTimestamp ? ( + - ) : ( + + ) : ( + handleOverrideTimestamp(field)} data-test-subj="eventExplorer__overrideDefaultTimestamp" + className="dscSidebarField__actionButton" > Override - ) - ) : null} - - + + ) + ) : null} + + + { closePopover={() => setIsFieldDetailsOpen(false)} anchorPosition="rightUp" panelClassName="explorerSidebarItem__fieldPopoverPanel" - button={} + button={ + + } > @@ -146,6 +180,8 @@ export const Field = (props: IFieldProps) => { + + { isDisabled data-test-subj={`fieldToggle-${field.name}`} aria-label={selected ? removeLabelAria : addLabelAria} + className="dscSidebarField__actionButton" /> ) : ( { }} data-test-subj={`fieldToggle-${field.name}`} aria-label={selected ? removeLabelAria : addLabelAria} + className="dscSidebarField__actionButton" /> )} - - ); - }; - - return ( - } - fieldName={ - - {field.name} - - } - fieldAction={getFieldActionDOM()} - onClick={togglePopover} - /> + + ); }; diff --git a/public/components/event_analytics/explorer/sidebar/sidebar.scss b/public/components/event_analytics/explorer/sidebar/sidebar.scss index 325fcd36c..b9eeb45ff 100644 --- a/public/components/event_analytics/explorer/sidebar/sidebar.scss +++ b/public/components/event_analytics/explorer/sidebar/sidebar.scss @@ -3,6 +3,22 @@ * SPDX-License-Identifier: Apache-2.0 */ + .dscSidebarField { + &__actionButton { + opacity: 0; + transition: opacity $euiAnimSpeedFast; + + @include ouiBreakpoint("xs", "s", "m") { + opacity: 1; + } + } + + &:hover &__actionButton, + &:focus &__actionButton { + opacity: 1; + } +} + .explorerIndexPattern__container { display: flex; align-items: center; diff --git a/public/components/event_analytics/explorer/sidebar/sidebar.tsx b/public/components/event_analytics/explorer/sidebar/sidebar.tsx index f66e59d8e..a9b2a3eed 100644 --- a/public/components/event_analytics/explorer/sidebar/sidebar.tsx +++ b/public/components/event_analytics/explorer/sidebar/sidebar.tsx @@ -10,6 +10,7 @@ import { EuiFieldSearch, EuiTitle, EuiSplitPanel, + EuiPanel, } from '@elastic/eui'; import { FormattedMessage, I18nProvider } from '@osd/i18n/react'; import { isEmpty } from 'lodash'; @@ -173,25 +174,30 @@ export const Sidebar = (props: ISidebarProps) => { - + + + ); })} @@ -214,7 +220,7 @@ export const Sidebar = (props: ISidebarProps) => { className="dscSidebarList explorerFieldList--selected" aria-labelledby="selected_fields" data-test-subj={`fieldList-selected`} - droppableId="" + droppableId="SELECTED FIELDS" spacing="m" > {explorerData && @@ -225,25 +231,30 @@ export const Sidebar = (props: ISidebarProps) => { - + + + ); })} @@ -266,7 +277,7 @@ export const Sidebar = (props: ISidebarProps) => { }`} aria-labelledby="available_fields" data-test-subj={`fieldList-unpopular`} - droppableId="" + droppableId="AVAILABLE FIELDS" spacing="m" > {explorerFields?.availableFields && @@ -277,25 +288,30 @@ export const Sidebar = (props: ISidebarProps) => { - + + + ); })}