Field Selector: Show scroll and add "suggested" section for fields (#113178)

* Show scrollbar

* ActiveFields: move suggested fields to another section

* Translations

* Update tests
This commit is contained in:
Matias Chomicki
2025-10-31 12:18:10 +01:00
committed by GitHub
parent 452fc04d1d
commit 52d758dc93
3 changed files with 27 additions and 9 deletions
@@ -44,12 +44,16 @@ export const ActiveFields = ({ activeFields, clear, fields, reorder, suggestedFi
(name) => fields.find((field) => field.name === name) ?? suggestedFields.find((field) => field.name === name)
)
.filter((field) => field !== undefined),
...suggestedFields.filter((suggestedField) => !activeFields.includes(suggestedField.name)),
],
[activeFields, fields, suggestedFields]
);
if (active.length) {
const suggested = useMemo(
() => suggestedFields.filter((suggestedField) => !activeFields.includes(suggestedField.name)),
[activeFields, suggestedFields]
);
if (active.length || suggested.length) {
return (
<>
<div className={styles.columnHeader}>
@@ -96,6 +100,20 @@ export const ActiveFields = ({ activeFields, clear, fields, reorder, suggestedFi
)}
</Droppable>
</DragDropContext>
{suggested.length > 0 && (
<>
<div className={styles.columnSubHeader}>
<Trans i18nKey="explore.logs-table-multi-select.suggested-fields">Suggested</Trans>
</div>
<div className={styles.columnWrapper}>
{suggested.map((field) => (
<div className={styles.wrap} key={field.name}>
<Field field={field} toggle={toggle} />
</div>
))}
</div>
</>
)}
</>
);
}
@@ -129,6 +147,10 @@ export function getLogsFieldsStyles(theme: GrafanaTheme2) {
zIndex: 3,
marginBottom: theme.spacing(2),
}),
columnSubHeader: css({
padding: theme.spacing(0, 0, 0.75, 0.5),
color: theme.colors.text.secondary,
}),
columnHeaderButton: css({
appearance: 'none',
background: 'none',
@@ -48,12 +48,7 @@ function getStyles(theme: GrafanaTheme2) {
sidebarWrap: css({
overflowY: 'scroll',
flex: 1,
/* Hide scrollbar for Chrome, Safari, and Opera */
'&::-webkit-scrollbar': {
display: 'none',
},
/* Hide scrollbar for Firefox */
scrollbarWidth: 'none',
scrollbarWidth: 'thin',
}),
columnHeader: css({
display: 'flex',
+2 -1
View File
@@ -7189,7 +7189,8 @@
"logs-table-multi-select": {
"fields": "Fields",
"reset": "Reset",
"selected-fields": "Selected fields"
"selected-fields": "Selected fields",
"suggested-fields": "Suggested"
},
"logs-table-wrap": {
"aria-label-select-query-by-name": "Select query by name",