From e91f16fc46b678618ed2b9e7d222714ce5113e1b Mon Sep 17 00:00:00 2001 From: Adela Almasan <88068998+adela-almasan@users.noreply.github.com> Date: Tue, 6 Aug 2024 10:10:37 -0600 Subject: [PATCH] Datalinks: UX improvements (#91352) --- .../DataLinksInlineEditor.tsx | 5 ++- .../DataLinksListItem.tsx | 45 ++++++++----------- 2 files changed, 22 insertions(+), 28 deletions(-) diff --git a/packages/grafana-ui/src/components/DataLinks/DataLinksInlineEditor/DataLinksInlineEditor.tsx b/packages/grafana-ui/src/components/DataLinks/DataLinksInlineEditor/DataLinksInlineEditor.tsx index 2a949194a1e..bac90657022 100644 --- a/packages/grafana-ui/src/components/DataLinks/DataLinksInlineEditor/DataLinksInlineEditor.tsx +++ b/packages/grafana-ui/src/components/DataLinks/DataLinksInlineEditor/DataLinksInlineEditor.tsx @@ -166,11 +166,14 @@ export const DataLinksInlineEditor = ({ const getDataLinksInlineEditorStyles = (theme: GrafanaTheme2) => ({ wrapper: css({ marginBottom: theme.spacing(2), + display: 'flex', + flexDirection: 'column', + gap: 16, }), oneClickOverlay: css({ height: 'auto', + minHeight: 69, border: `1px dashed ${theme.colors.border.medium}`, - paddingBottom: 10, fontSize: 10, color: theme.colors.text.link, }), diff --git a/packages/grafana-ui/src/components/DataLinks/DataLinksInlineEditor/DataLinksListItem.tsx b/packages/grafana-ui/src/components/DataLinks/DataLinksInlineEditor/DataLinksListItem.tsx index 495717102c8..6b172810c22 100644 --- a/packages/grafana-ui/src/components/DataLinks/DataLinksInlineEditor/DataLinksListItem.tsx +++ b/packages/grafana-ui/src/components/DataLinks/DataLinksInlineEditor/DataLinksListItem.tsx @@ -4,7 +4,7 @@ import { Draggable } from '@hello-pangea/dnd'; import { DataFrame, DataLink, GrafanaTheme2 } from '@grafana/data'; import { useStyles2 } from '../../../themes'; -import { isCompactUrl } from '../../../utils/dataLinks'; +import { isCompactUrl } from '../../../utils'; import { FieldValidationMessage } from '../../Forms/FieldValidationMessage'; import { Icon } from '../../Icon/Icon'; import { IconButton } from '../../IconButton/IconButton'; @@ -39,10 +39,6 @@ export const DataLinksListItem = ({ link, onEdit, onRemove, index, itemKey }: Da {...provided.draggableProps} key={index} > -
- -
-
{hasTitle ? title : 'Data link title not provided'} @@ -59,9 +55,12 @@ export const DataLinksListItem = ({ link, onEdit, onRemove, index, itemKey }: Da )}
-
- - +
+ + +
+ +
@@ -78,17 +77,16 @@ const getDataLinkListItemStyles = (theme: GrafanaTheme2) => { alignItems: 'center', justifyContent: 'space-between', width: '100%', - marginBottom: theme.spacing(2), - padding: '10px 0 0 10px', - '&:last-child': { - marginBottom: 0, - }, + padding: '5px 0 5px 10px', + borderRadius: theme.shape.radius.default, + background: theme.colors.background.secondary, + gap: 8, }), linkDetails: css({ display: 'flex', flexDirection: 'column', flexGrow: 1, - maxWidth: '80%', + maxWidth: `calc(100% - 100px)`, }), errored: css({ color: theme.colors.error.text, @@ -118,20 +116,13 @@ const getDataLinkListItemStyles = (theme: GrafanaTheme2) => { alignItems: 'center', gap: 8, }), - dragHandle: css({ + dragIcon: css({ cursor: 'grab', - // create focus ring around the whole row when the drag handle is tab-focused - // needs position: relative on the drag row to work correctly - '&:focus-visible&:after': { - bottom: 0, - content: '""', - left: 0, - position: 'absolute', - right: 0, - top: 0, - outline: `2px solid ${theme.colors.primary.main}`, - outlineOffset: '-2px', - }, + color: theme.colors.text.secondary, + margin: theme.spacing(0, 0.5), + }), + icon: css({ + color: theme.colors.text.secondary, }), }; };