import { EuiEmptyPrompt, EuiSkeletonText } from "@elastic/eui"; import React, { useContext } from "react"; import { Outlet, useParams } from "react-router-dom"; import { ProjectListContext, useLoadProjectsList, } from "../contexts/ProjectListContext"; import ProjectSelector from "./ProjectSelector"; const NoProjectGuard = () => { const { projectName } = useParams(); const { isLoading, isError, data } = useLoadProjectsList(); const projectListContext = useContext(ProjectListContext); if (isLoading && !data) { return ; } if (isError) { return ( Error Loading Project List} body={ projectListContext?.isCustom ? (

Unable to fetch project list. Check the promise provided to Feast UI in projectListPromise.

) : (

Unable to find projects-list.json. Check that you have a project list file defined.

) } /> ); } const currentProject = data?.projects.find((project) => { return project.id === projectName; }); if (currentProject === undefined) { return ( Error Loading Project} body={

There is no project with id {projectName} in{" "} projects-list.json. Check that you have the correct project id.

You can also select one of the project in the following list:

} /> ); } return ; }; export default NoProjectGuard;