diff --git a/webui/src/pages/list/FilterToolbar.tsx b/webui/src/pages/list/FilterToolbar.tsx
index 92154ad240b0f83c7a4f81a7ffa94490c8dbf9a0..37f63b98f8d3f92cbd49fd7214f7b707db31f4cf 100644
--- a/webui/src/pages/list/FilterToolbar.tsx
+++ b/webui/src/pages/list/FilterToolbar.tsx
@@ -17,6 +17,7 @@ import {
} from './Filter';
import { useBugCountQuery } from './FilterToolbar.generated';
import { useListIdentitiesQuery } from './ListIdentities.generated';
+import { useListLabelsQuery } from './ListLabels.generated';
const useStyles = makeStyles((theme) => ({
toolbar: {
@@ -63,16 +64,29 @@ type Props = {
function FilterToolbar({ query, queryLocation }: Props) {
const classes = useStyles();
const params: Query = parse(query);
- const { data } = useListIdentitiesQuery();
+ const { data: identitiesData } = useListIdentitiesQuery();
+ const { data: labelsData } = useListLabelsQuery()
let identities: any = [];
+ let labels: any = [];
if (
- data?.repository &&
- data.repository.allIdentities &&
- data.repository.allIdentities.nodes
+ identitiesData?.repository &&
+ identitiesData.repository.allIdentities &&
+ identitiesData.repository.allIdentities.nodes
) {
- identities = data.repository.allIdentities.nodes.map((node) => [
+ identities = identitiesData.repository.allIdentities.nodes.map((node) => [
+ node.name,
+ node.name,
+ ]);
+ }
+
+ if (
+ labelsData?.repository &&
+ labelsData.repository.validLabels &&
+ labelsData.repository.validLabels.nodes
+ ) {
+ labels = labelsData.repository.validLabels.nodes.map((node) => [
node.name,
node.name,
]);
@@ -139,6 +153,13 @@ function FilterToolbar({ query, queryLocation }: Props) {
>
Author
+ hasValue('label', key)}
+ to={(key) => pipe(replaceParam('label', key), loc)(params)}
+ >
+ Label
+