- {row.original?.tags.map((tagInfo: TagData) => {
+ {row.original?.tags?.map((tagInfo: TagData) => {
const { color, display, label } = getTagInfo(tagInfo, config.tags);
if (tagInfo.name === '') return null; // no tag
diff --git a/src/lib/content/loadContent.ts b/src/lib/content/loadContent.ts
index f2df9d8..d4c2c8d 100644
--- a/src/lib/content/loadContent.ts
+++ b/src/lib/content/loadContent.ts
@@ -29,7 +29,7 @@ export const loadContent = async () => {
]),
);
- const icons = await ContentSource.getAll('config/icons/', '\\.json');
+ const icons = await ContentSource.getAll(`config/icons/`, '\\.json');
return {
modalsConfig: modals,
sessionConfig: session,
diff --git a/src/pages/Analysis.tsx b/src/pages/Analysis.tsx
new file mode 100644
index 0000000..21e809d
--- /dev/null
+++ b/src/pages/Analysis.tsx
@@ -0,0 +1,7 @@
+import {
+ AnalysisPage,
+ AnalysisPageGetServerSideProps as getServerSideProps,
+ } from '@gen3/frontend';
+ export default AnalysisPage;
+
+ export { getServerSideProps };
diff --git a/src/pages/Crosswalk.tsx b/src/pages/Crosswalk.tsx
new file mode 100644
index 0000000..6474055
--- /dev/null
+++ b/src/pages/Crosswalk.tsx
@@ -0,0 +1,7 @@
+import {
+ CrosswalkPage,
+ CrosswalkPageGetServerSideProps as getServerSideProps,
+} from '@gen3/frontend';
+export default CrosswalkPage;
+
+export { getServerSideProps };
diff --git a/src/pages/DataDictionary.tsx b/src/pages/DataDictionary.tsx
index 0302c07..8f1a9ca 100644
--- a/src/pages/DataDictionary.tsx
+++ b/src/pages/DataDictionary.tsx
@@ -2,6 +2,7 @@ import {
DictionaryPage,
DictionaryPageGetServerSideProps as getServerSideProps,
} from '@gen3/frontend';
+
export default DictionaryPage;
export { getServerSideProps };
diff --git a/src/pages/DataLibrary.tsx b/src/pages/DataLibrary.tsx
new file mode 100644
index 0000000..23c665c
--- /dev/null
+++ b/src/pages/DataLibrary.tsx
@@ -0,0 +1,8 @@
+import {
+ DataLibraryPage,
+ DataLibraryPageGetServerSideProps as getServerSideProps,
+} from '@gen3/frontend';
+
+export default DataLibraryPage;
+
+export { getServerSideProps };
diff --git a/src/pages/Explorer.tsx b/src/pages/Explorer.tsx
index 9923b56..631cff0 100644
--- a/src/pages/Explorer.tsx
+++ b/src/pages/Explorer.tsx
@@ -3,9 +3,7 @@ import {
ExplorerPageGetServerSideProps as getServerSideProps,
} from '@gen3/frontend';
-import { registerCohortTableCustomCellRenderers
-} from '@/lib/CohortBuilder/CustomCellRenderers';
-
+import { registerCohortTableCustomCellRenderers } from '@/lib/CohortBuilder/CustomCellRenderers';
import { registerCustomExplorerDetailsPanels } from '@/lib/CohortBuilder/FileDetailsPanel';
registerCohortTableCustomCellRenderers();
diff --git a/src/pages/NotebookLite.tsx b/src/pages/NotebookLite.tsx
new file mode 100644
index 0000000..6c163d2
--- /dev/null
+++ b/src/pages/NotebookLite.tsx
@@ -0,0 +1,7 @@
+import {
+ NotebookLitePage,
+ NotebookLitePageGetStaticProps as getStaticProps,
+} from '@gen3/frontend';
+
+export default NotebookLitePage;
+export { getStaticProps };
diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx
index 9b45c99..ed240fc 100644
--- a/src/pages/_app.tsx
+++ b/src/pages/_app.tsx
@@ -1,21 +1,22 @@
import App, { AppProps, AppContext, AppInitialProps } from 'next/app';
-import React, { useEffect, useRef } from 'react';
-
+import React, { useState,useEffect, useMemo, useRef ,Suspense} from 'react';
+import { MantineProvider } from '@mantine/core';
import { Faro, FaroErrorBoundary, withFaroProfiler } from '@grafana/faro-react';
-
import { initGrafanaFaro } from '../lib/Grafana/grafana';
+
import {
Gen3Provider,
TenStringArray,
type ModalsConfig,
RegisteredIcons,
Fonts,
+ createMantineTheme,
SessionConfiguration,
// registerCohortDiscoveryApp,
registerCohortDiversityApp,
registerCohortBuilderDefaultPreviewRenderers,
- registerExplorerDefaultCellRenderers,
+ registerMetadataSchemaApp,
} from '@gen3/frontend';
import { registerCohortTableCustomCellRenderers } from '@/lib/CohortBuilder/CustomCellRenderers';
@@ -28,7 +29,8 @@ import '@fontsource/poppins';
import { setDRSHostnames } from '@gen3/core';
import drsHostnames from '../../config/drsHostnames.json';
-import { loadContent } from '../lib/content/loadContent';
+import { loadContent } from '@/lib/content/loadContent';
+import Loading from '../components/Loading';
if (typeof window !== 'undefined' && process.env.NODE_ENV !== 'production') {
// eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports
@@ -71,28 +73,48 @@ const Gen3App = ({
if (!faroRef.current) faroRef.current = initGrafanaFaro();
// registerCohortDiscoveryApp();
registerCohortDiversityApp();
- registerExplorerDefaultCellRenderers();
+ registerMetadataSchemaApp();
registerCohortBuilderDefaultPreviewRenderers();
registerCohortTableCustomCellRenderers();
registerCustomExplorerDetailsPanels();
// }
}, []);
+
+ const theme = useMemo(
+ () => createMantineTheme(themeFonts, colors),
+ [themeFonts, colors],
+ );
+ const [isClient, setIsClient] = useState(false);
+
+ useEffect(() => {
+ setIsClient(true); // Only on client-side
+ }, []);
return (
-
-
-
-
-
+ <>
+ {isClient ? (
+ }>
+
+
+
+
+
+
+
+
+ ) : (
+ // Show some fallback UI while waiting for the client to load
+
+ )}
+ >
);
};
+
// TODO: replace with page router
Gen3App.getInitialProps = async (
context: AppContext,
diff --git a/src/pages/_document.tsx b/src/pages/_document.tsx
index 53ff867..f6b2267 100644
--- a/src/pages/_document.tsx
+++ b/src/pages/_document.tsx
@@ -1,9 +1,9 @@
import { Head, Html, Main, NextScript } from 'next/document';
-import { ColorSchemeScript } from '@mantine/core';
+import { ColorSchemeScript, mantineHtmlProps } from '@mantine/core';
export default function Document() {
return (
-
+
diff --git a/src/pages/app/[appName].tsx b/src/pages/app/[appName].tsx
index d900ea9..6ac5ce6 100644
--- a/src/pages/app/[appName].tsx
+++ b/src/pages/app/[appName].tsx
@@ -54,8 +54,7 @@ export const getServerSideProps: GetServerSideProps<
const appName = context.query.appName as string;
try {
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
- const config: Record = await ContentSource.get(
+ const config: any = await ContentSource.get(
`config/${GEN3_COMMONS_NAME}/apps/${appName}.json`,
);
diff --git a/src/pages/no-workspace-access.tsx b/src/pages/no-workspace-access.tsx
new file mode 100644
index 0000000..b9c9aa9
--- /dev/null
+++ b/src/pages/no-workspace-access.tsx
@@ -0,0 +1,7 @@
+import {
+ WorkspaceNoAccessPage,
+ WorkspaceNoAccessPageServerSideProps as getServerSideProps,
+} from '@gen3/frontend';
+export default WorkspaceNoAccessPage;
+
+export { getServerSideProps };