diff --git a/src/loaders.mjs b/src/loaders.mjs
new file mode 100644
index 0000000..1892ef6
--- /dev/null
+++ b/src/loaders.mjs
@@ -0,0 +1,16 @@
+import {getStories,getPublications,getSubmissions} from './APIcalls.mjs'
+
+export async function publicationsLoader (){
+ let publications = await getPublications()
+ publications = publications.data
+ return {publications}
+}
+export async function storiesLoader(){
+ let stories = await getStories()
+ stories = stories.data
+ return {stories}
+}export async function submissionsLoader(){
+ let submissions = await getSubmissions()
+ submissions=submissions.data
+ return { submissions }
+ }
\ No newline at end of file
diff --git a/src/main.jsx b/src/main.jsx
index 79bf544..aaf37da 100644
--- a/src/main.jsx
+++ b/src/main.jsx
@@ -1,12 +1,13 @@
import React from 'react'
import ReactDOM from 'react-dom/client'
-import { Root, loader as rootLoader } from './routes/root';
+import { Root } from './routes/root';
import ErrorPage from './error-page';
-import Submissions from './routes/submissions';
+import {Submissions} from './routes/submissions';
import Story from './routes/story';
import Stories from './routes/stories';
import Publication from './routes/publication';
import Publications from './routes/publications';
+import { storiesLoader,publicationsLoader,submissionsLoader } from './loaders.mjs';
import './styles/index.css'
import {
createBrowserRouter,
@@ -22,27 +23,27 @@ const router = createBrowserRouter([
{
path: "/stories",
element: ,
- loader: rootLoader
+ loader: storiesLoader
},
{
path: "/submissions",
element: ,
- loader: rootLoader
+ loader: submissionsLoader
},
{
path: "/publications",
element: ,
- loader: rootLoader
+ loader: publicationsLoader
},
{
path: "/story/:storyId",
element: ,
- loader: rootLoader
+ loader: storiesLoader
},
{
path: "/publication/:publicationId",
element: ,
- loader: rootLoader
+ loader: publicationsLoader
}
]
},
diff --git a/src/routes/publication.jsx b/src/routes/publication.jsx
index b47fc9f..981b3f1 100644
--- a/src/routes/publication.jsx
+++ b/src/routes/publication.jsx
@@ -1,15 +1,23 @@
import { useLoaderData, useParams } from "react-router-dom";
import Table from "../Components/Table";
import PageHeader from "../Components/PageHeader";
-export default function Publication(){
+import { submissionsTableOptions } from "./submissions.jsx";
+
+const { filterList, highlights, clickables } = submissionsTableOptions
+export default function Publication() {
const { publicationId } = useParams()
const { publications } = useLoaderData()
- const publicationsData = publications.find(row=>row.id==publicationId)
- return(
+ const publicationsData = publications.find(row => row.id == publicationId)
+ return (
<>
-
- {JSON.stringify(publicationsData)}
-
+
+ {JSON.stringify(publicationsData)}
+
>
)
}
\ No newline at end of file
diff --git a/src/routes/publications.jsx b/src/routes/publications.jsx
index 3f1813b..8109d46 100644
--- a/src/routes/publications.jsx
+++ b/src/routes/publications.jsx
@@ -4,6 +4,7 @@ import Table from "../Components/Table.jsx";
import PageHeader from "../Components/PageHeader.jsx";
+
export default function Publications(){
@@ -25,6 +26,7 @@ export default function Publications(){
filterList={filterList}
links={links}
clickables={clickables}
+ sortByDefault='title'
/>
>
)
diff --git a/src/routes/root.jsx b/src/routes/root.jsx
index 9d26b44..61c99e7 100644
--- a/src/routes/root.jsx
+++ b/src/routes/root.jsx
@@ -1,15 +1,7 @@
import { Outlet, Link } from "react-router-dom"
import { getStories, getPublications, getSubmissions } from "../APIcalls.mjs"
-export async function loader(){
- let stories = await getStories()
- stories = stories.data
- let publications = await getPublications()
- publications = publications.data
- let submissions = await getSubmissions()
- submissions=submissions.data
- return { stories, publications, submissions }
-}
+
export function Root() {
diff --git a/src/routes/stories.jsx b/src/routes/stories.jsx
index 57b9482..bbb3c4c 100644
--- a/src/routes/stories.jsx
+++ b/src/routes/stories.jsx
@@ -1,7 +1,7 @@
import { useLoaderData } from "react-router-dom"
-import { getStories } from "../APIcalls.mjs";
import Table from "../Components/Table.jsx";
import PageHeader from "../Components/PageHeader.jsx";
+import { getStories } from "../APIcalls.mjs";
@@ -17,7 +17,12 @@ export default function Stories(){
return(
<>
-
+
>
)
}
diff --git a/src/routes/story.jsx b/src/routes/story.jsx
index 7538b13..4bb3b57 100644
--- a/src/routes/story.jsx
+++ b/src/routes/story.jsx
@@ -1,15 +1,28 @@
import { useLoaderData, useParams } from "react-router-dom";
import Table from "../Components/Table";
import PageHeader from "../Components/PageHeader";
+import { submissionsTableOptions } from "./submissions.jsx";
+
+const { filterList=[...filterList],highlights,clickables } = submissionsTableOptions
export default function Story(){
const { storyId } = useParams()
const { stories } = useLoaderData()
const storyData = stories.find(row=>row.id==storyId)
+ filterList.push(
+ 'story',
+
+ )
return(
<>
{JSON.stringify(storyData)}
-
+
>
)
}
\ No newline at end of file
diff --git a/src/routes/submissions.jsx b/src/routes/submissions.jsx
index 331bc86..20cf858 100644
--- a/src/routes/submissions.jsx
+++ b/src/routes/submissions.jsx
@@ -3,9 +3,23 @@ import { getSubmissions } from "../APIcalls.mjs";
import Table from "../Components/Table";
import PageHeader from "../Components/PageHeader";
+export const submissionsTableOptions = {
+ filterList : [
+ 'response_id',
+ 'pub_id',
+ 'story_id'
+ ],
+ highlights : [
+ ['response','Pending']
+ ],
+ clickables : [
+ ['story',(row)=>{
+ return `../../story/${row.story_id}`}],
+ ['publication',(row)=>{return `../../publication/${row.pub_id}`}]
+ ]
+}
-
-export default function Submissions(){
+export function Submissions(){
const { submissions } = useLoaderData();
const filterList = [
'response_id',
@@ -28,7 +42,7 @@ export default function Submissions(){
data={submissions}
filterList={filterList}
highlights={highlights}
- sortByDefault="Submitted"
+ sortByDefault="date_submitted"
clickables={clickables}
/>
>