diff --git a/ui/src/pages/feature-views/FeatureViewLineageTab.tsx b/ui/src/pages/feature-views/FeatureViewLineageTab.tsx index 65c4b472f31..39c31e17dbd 100644 --- a/ui/src/pages/feature-views/FeatureViewLineageTab.tsx +++ b/ui/src/pages/feature-views/FeatureViewLineageTab.tsx @@ -1,11 +1,20 @@ -import React, { useContext } from "react"; +import React, { useContext, useState } from "react"; import { useParams } from "react-router-dom"; -import { EuiEmptyPrompt, EuiLoadingSpinner } from "@elastic/eui"; +import { + EuiEmptyPrompt, + EuiLoadingSpinner, + EuiSpacer, + EuiSelect, + EuiFormRow, + EuiFlexGroup, + EuiFlexItem, +} from "@elastic/eui"; import { feast } from "../../protos"; import useLoadRegistry from "../../queries/useLoadRegistry"; import RegistryPathContext from "../../contexts/RegistryPathContext"; import RegistryVisualization from "../../components/RegistryVisualization"; import { FEAST_FCO_TYPES } from "../../parsers/types"; +import { filterPermissionsByAction } from "../../utils/permissionUtils"; interface FeatureViewLineageTabProps { data: feast.core.IFeatureView; @@ -20,6 +29,7 @@ const FeatureViewLineageTab = ({ data }: FeatureViewLineageTabProps) => { data: registryData, } = useLoadRegistry(registryUrl); const { featureViewName } = useParams(); + const [selectedPermissionAction, setSelectedPermissionAction] = useState(""); const filterNode = { type: FEAST_FCO_TYPES.featureView, @@ -47,12 +57,45 @@ const FeatureViewLineageTab = ({ data }: FeatureViewLineageTabProps) => { /> )} {isSuccess && registryData && ( - + <> + + + + + setSelectedPermissionAction(e.target.value)} + aria-label="Filter by permissions" + /> + + + + + )} );