diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/FeedbackGrid.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/FeedbackGrid.tsx
index 72e436c62bc7..5194af00fe31 100644
--- a/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/FeedbackGrid.tsx
+++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/FeedbackGrid.tsx
@@ -43,6 +43,9 @@ export const FeedbackGrid = ({
return getTsClient().registerOnFeedbackListener(weaveRef, query.refetch);
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
+ const hasAnnotationFeedback = query.result?.some(f =>
+ f.feedback_type.startsWith(ANNOTATION_PREFIX)
+ );
// Group by feedback on this object vs. descendent objects
const grouped = useMemo(() => {
@@ -127,6 +130,7 @@ export const FeedbackGrid = ({
);
diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/FeedbackGridInner.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/FeedbackGridInner.tsx
index b8b2f4154c28..92b59d06e4d6 100644
--- a/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/FeedbackGridInner.tsx
+++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/FeedbackGridInner.tsx
@@ -1,4 +1,8 @@
-import {GridColDef, GridRowHeightParams} from '@mui/x-data-grid-pro';
+import {
+ GridColDef,
+ GridRenderCellParams,
+ GridRowHeightParams,
+} from '@mui/x-data-grid-pro';
import React from 'react';
import {Timestamp} from '../../../../Timestamp';
@@ -9,16 +13,21 @@ import {Feedback} from '../pages/wfReactInterface/traceServerClientTypes';
import {StyledDataGrid} from '../StyledDataGrid';
import {FeedbackGridActions} from './FeedbackGridActions';
import {FeedbackTypeChip} from './FeedbackTypeChip';
-import {isHumanAnnotationType} from './StructuredFeedback/humanAnnotationTypes';
+import {
+ getHumanAnnotationNameFromFeedbackType,
+ isHumanAnnotationType,
+} from './StructuredFeedback/humanAnnotationTypes';
type FeedbackGridInnerProps = {
feedback: Feedback[];
currentViewerId: string | null;
+ showAnnotationName?: boolean;
};
export const FeedbackGridInner = ({
feedback,
currentViewerId,
+ showAnnotationName,
}: FeedbackGridInnerProps) => {
const columns: GridColDef[] = [
{
@@ -31,6 +40,25 @@ export const FeedbackGridInner = ({
),
},
+ ...(showAnnotationName
+ ? [
+ {
+ field: 'annotation_name',
+ headerName: 'Name',
+ flex: 1,
+ renderCell: (params: GridRenderCellParams) => {
+ const feedbackType = params.row.feedback_type;
+ const annotationName = isHumanAnnotationType(feedbackType)
+ ? getHumanAnnotationNameFromFeedbackType(feedbackType)
+ : null;
+ if (!annotationName) {
+ return null;
+ }
+ return ;
+ },
+ },
+ ]
+ : []),
{
field: 'payload',
headerName: 'Feedback',
@@ -61,8 +89,8 @@ export const FeedbackGridInner = ({
{
field: 'created_at',
headerName: 'Timestamp',
- minWidth: 120,
- width: 120,
+ minWidth: 105,
+ width: 105,
renderCell: params => (
),
@@ -70,7 +98,8 @@ export const FeedbackGridInner = ({
{
field: 'id',
headerName: 'ID',
- width: 50,
+ width: 48,
+ minWidth: 48,
display: 'flex',
renderCell: params => ,
},
@@ -98,7 +127,8 @@ export const FeedbackGridInner = ({
{
field: 'actions',
headerName: '',
- width: 50,
+ width: 36,
+ minWidth: 36,
filterable: false,
sortable: false,
resizable: false,
diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/StructuredFeedback/humanAnnotationTypes.ts b/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/StructuredFeedback/humanAnnotationTypes.ts
index ce28f3113fec..83bb501d9f0c 100644
--- a/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/StructuredFeedback/humanAnnotationTypes.ts
+++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/feedback/StructuredFeedback/humanAnnotationTypes.ts
@@ -26,3 +26,6 @@ export type HumanAnnotation = Feedback & {};
export const isHumanAnnotationType = (feedbackType: string) =>
feedbackType.startsWith(HUMAN_ANNOTATION_BASE_TYPE);
+
+export const getHumanAnnotationNameFromFeedbackType = (feedbackType: string) =>
+ feedbackType.split('.').pop();