diff --git a/packages/sites/genomics-site/webapp/wdkCustomization/js/client/components/Pathfinder.scss b/packages/sites/genomics-site/webapp/wdkCustomization/js/client/components/Pathfinder.scss new file mode 100644 index 0000000000..7b45b52fc0 --- /dev/null +++ b/packages/sites/genomics-site/webapp/wdkCustomization/js/client/components/Pathfinder.scss @@ -0,0 +1,17 @@ +@import '@veupathdb/web-common/lib/styles/collapsed-header-mixins.scss'; + +body.vpdb-Body .vpdb-RootContainer__pathfinder { + @include collapsed-header-page-layout; + + @media screen and (min-width: $hamburger-width + 1) { + grid-template-rows: $collapsed-header-height auto auto 1fr auto; + } + + .vpdb-Main { + margin: 0; + padding: 0; + iframe { + border: none; + } + } +} diff --git a/packages/sites/genomics-site/webapp/wdkCustomization/js/client/components/Pathfinder.tsx b/packages/sites/genomics-site/webapp/wdkCustomization/js/client/components/Pathfinder.tsx new file mode 100644 index 0000000000..35fb28ec5d --- /dev/null +++ b/packages/sites/genomics-site/webapp/wdkCustomization/js/client/components/Pathfinder.tsx @@ -0,0 +1,19 @@ +import React from 'react'; + +import './Pathfinder.scss'; + +interface Props { + src: string; +} + +export default function Pathfinder(props: Props) { + return ( + + ); +} diff --git a/packages/sites/genomics-site/webapp/wdkCustomization/js/client/components/controllers/PathfinderController.tsx b/packages/sites/genomics-site/webapp/wdkCustomization/js/client/components/controllers/PathfinderController.tsx new file mode 100644 index 0000000000..8ac68cf377 --- /dev/null +++ b/packages/sites/genomics-site/webapp/wdkCustomization/js/client/components/controllers/PathfinderController.tsx @@ -0,0 +1,30 @@ +import React from 'react'; +import { useSelector } from 'react-redux'; + +import { RootState } from '@veupathdb/wdk-client/lib/Core/State/Types'; +import { useSetDocumentTitle } from '@veupathdb/wdk-client/lib/Utils/ComponentUtils'; + +import { projectId } from '../../config'; +import Pathfinder from '../Pathfinder'; + +export const PathfinderController = () => { + usePathfinderDocumentTitle(); + + const siteId = (projectId ?? 'veupathdb').toLowerCase(); + const src = `/pathfinder-app?embedded=true&siteId=${siteId}`; + + return ; +}; + +const usePathfinderDocumentTitle = () => { + const projectDisplayName = useSelector( + (state: RootState) => + state.globalData.config && state.globalData.config.displayName + ); + + const title = projectDisplayName + ? `${projectDisplayName} :: PathFinder` + : 'PathFinder'; + + useSetDocumentTitle(title); +}; diff --git a/packages/sites/genomics-site/webapp/wdkCustomization/js/client/components/homepage/VEuPathDBHomePage.tsx b/packages/sites/genomics-site/webapp/wdkCustomization/js/client/components/homepage/VEuPathDBHomePage.tsx index 277b24cde3..c2ac0a1b4a 100644 --- a/packages/sites/genomics-site/webapp/wdkCustomization/js/client/components/homepage/VEuPathDBHomePage.tsx +++ b/packages/sites/genomics-site/webapp/wdkCustomization/js/client/components/homepage/VEuPathDBHomePage.tsx @@ -121,7 +121,9 @@ const VEuPathDBHomePageViewStandard: FunctionComponent = (props) => { const location = useLocation(); const shouldHideOrgPrefsSubheader = - location.pathname.includes('workspace/analyses'); + location.pathname.includes('workspace/analyses') || + location.pathname.startsWith('/jbrowse') || + location.pathname.startsWith('/pathfinder'); useEffect(() => { if (isHomePage && props.displayName) { diff --git a/packages/sites/genomics-site/webapp/wdkCustomization/js/client/routes.jsx b/packages/sites/genomics-site/webapp/wdkCustomization/js/client/routes.jsx index bdcf31ae91..a0d69a4862 100644 --- a/packages/sites/genomics-site/webapp/wdkCustomization/js/client/routes.jsx +++ b/packages/sites/genomics-site/webapp/wdkCustomization/js/client/routes.jsx @@ -8,6 +8,7 @@ import SiteSearchController from '@veupathdb/web-common/lib/controllers/SiteSear import FastaConfigController from './components/controllers/FastaConfigController'; import QueryGridController from './components/controllers/QueryGridController'; import { JBrowseController } from './components/controllers/JBrowseController'; +import { PathfinderController } from './components/controllers/PathfinderController'; import { PlasmoApController } from './components/controllers/PlasmoApController'; import { useUserDatasetsWorkspace } from '@veupathdb/web-common/lib/config'; @@ -163,15 +164,17 @@ function DownloadsRouteComponent() { * Wrap Ebrc Routes */ export const wrapRoutes = (ebrcRoutes) => [ - - // Allow guests to access dataset record pages for SEO and public visibility - { - path: '/record/dataset/:primaryKey+', - requiresLogin: false, - component: (props) => ( - - ), - }, + // Allow guests to access dataset record pages for SEO and public visibility + { + path: '/record/dataset/:primaryKey+', + requiresLogin: false, + component: (props) => ( + + ), + }, // Allow guests to access All Datasets and All Organisms for SEO and public visibility { @@ -227,6 +230,12 @@ export const wrapRoutes = (ebrcRoutes) => [ rootClassNameModifier: 'jbrowse', }, + { + path: '/pathfinder', + component: PathfinderController, + rootClassNameModifier: 'pathfinder', + }, + { path: '/search', component: () => (