From 5b0b8cb4bf5bd70f40a1279248145716b77ac786 Mon Sep 17 00:00:00 2001 From: Adela Almasan <88068998+adela-almasan@users.noreply.github.com> Date: Fri, 22 Mar 2024 14:39:26 -0600 Subject: [PATCH] DashboardAI: UX improvements (#84934) --- packages/grafana-data/src/types/icon.ts | 3 ++ .../components/GenAI/GenAIButton.tsx | 21 ++++----- .../components/GenAI/GenAIHistory.tsx | 46 ++++++++++++------- .../GenAI/GenerationHistoryCarousel.tsx | 21 +++++---- .../components/GenAI/QuickFeedback.tsx | 7 ++- 5 files changed, 58 insertions(+), 40 deletions(-) diff --git a/packages/grafana-data/src/types/icon.ts b/packages/grafana-data/src/types/icon.ts index d79208807fe..4b6761b33b4 100644 --- a/packages/grafana-data/src/types/icon.ts +++ b/packages/grafana-data/src/types/icon.ts @@ -85,10 +85,12 @@ export const availableIconsIndex = { 'dice-three': true, docker: true, 'document-info': true, + 'document-layout-left': true, 'download-alt': true, draggabledots: true, edit: true, 'ellipsis-v': true, + enter: true, envelope: true, 'exchange-alt': true, 'exclamation-triangle': true, @@ -176,6 +178,7 @@ export const availableIconsIndex = { monitor: true, palette: true, 'panel-add': true, + paragraph: true, 'pathfinder-unite': true, pause: true, pen: true, diff --git a/public/app/features/dashboard/components/GenAI/GenAIButton.tsx b/public/app/features/dashboard/components/GenAI/GenAIButton.tsx index c8e43b17c6e..566dd8e7ede 100644 --- a/public/app/features/dashboard/components/GenAI/GenAIButton.tsx +++ b/public/app/features/dashboard/components/GenAI/GenAIButton.tsx @@ -43,15 +43,7 @@ export const GenAIButton = ({ }: GenAIButtonProps) => { const styles = useStyles2(getStyles); - const { - messages: streamMessages, - setMessages, - setStopGeneration, - reply, - value, - error, - streamStatus, - } = useOpenAIStream(model, temperature); + const { setMessages, setStopGeneration, reply, value, error, streamStatus } = useOpenAIStream(model, temperature); const [history, setHistory] = useState([]); const [showHistory, setShowHistory] = useState(false); @@ -68,7 +60,7 @@ export const GenAIButton = ({ } else { if (!hasHistory) { onClickProp?.(e); - setMessages(typeof messages === 'function' ? messages() : messages); + setMessages(getMessages()); } else { setShowHistory(true); } @@ -158,6 +150,13 @@ export const GenAIButton = ({ ); + const getMessages = () => { + if (typeof messages === 'function') { + return messages(); + } + return messages; + }; + const renderButtonWithToggletip = () => { if (hasHistory) { const title = {toggleTipTitle}; @@ -168,7 +167,7 @@ export const GenAIButton = ({ content={ )} + + +
+ +
+ + > + Send + } value={customFeedback} onChange={onChangeCustomFeedback} onKeyDown={onKeyDownCustomFeedbackInput} /> -
- - -
+
+
This content is AI-generated using the{' '} ({ width: 520, maxHeight: 350, // This is the space the footer height - paddingBottom: 35, + paddingBottom: 25, }), applySuggestion: css({ - marginTop: theme.spacing(1), + paddingTop: theme.spacing(2), }), actions: css({ display: 'flex', @@ -206,4 +214,10 @@ const getStyles = (theme: GrafanaTheme2) => ({ infoColor: css({ color: theme.colors.info.main, }), + actionButtons: css({ + display: 'flex', + flexDirection: 'row', + justifyContent: 'space-between', + padding: '24px 0 8px 0', + }), }); diff --git a/public/app/features/dashboard/components/GenAI/GenerationHistoryCarousel.tsx b/public/app/features/dashboard/components/GenAI/GenerationHistoryCarousel.tsx index c590ab04093..58e5bdee4d0 100644 --- a/public/app/features/dashboard/components/GenAI/GenerationHistoryCarousel.tsx +++ b/public/app/features/dashboard/components/GenAI/GenerationHistoryCarousel.tsx @@ -35,18 +35,18 @@ export const GenerationHistoryCarousel = ({ return ( <> -
{getHistoryText()}
+ ); }; @@ -63,8 +63,11 @@ const getStyles = (theme: GrafanaTheme2) => ({ flexBasis: '100%', flexGrow: 3, whiteSpace: 'pre-wrap', - marginTop: 20, - height: 110, + maxHeight: 110, overflowY: 'scroll', + backgroundColor: theme.colors.background.secondary, + border: `1px solid ${theme.colors.border.weak}`, + padding: theme.spacing(1), + minHeight: 60, }), }); diff --git a/public/app/features/dashboard/components/GenAI/QuickFeedback.tsx b/public/app/features/dashboard/components/GenAI/QuickFeedback.tsx index 811048fcbf0..d555368814c 100644 --- a/public/app/features/dashboard/components/GenAI/QuickFeedback.tsx +++ b/public/app/features/dashboard/components/GenAI/QuickFeedback.tsx @@ -20,6 +20,7 @@ export const QuickFeedback = ({ onSuggestionClick, isGenerating }: QuickActionsP onClick={() => onSuggestionClick(QuickFeedbackType.Shorter)} size="sm" variant="secondary" + icon="paragraph" disabled={isGenerating} > {QuickFeedbackType.Shorter} @@ -28,12 +29,14 @@ export const QuickFeedback = ({ onSuggestionClick, isGenerating }: QuickActionsP onClick={() => onSuggestionClick(QuickFeedbackType.MoreDescriptive)} size="sm" variant="secondary" + icon="document-layout-left" disabled={isGenerating} > {QuickFeedbackType.MoreDescriptive}