diff --git a/src/APIcalls.mjs b/src/APIcalls.mjs
index 33bd9c6..dba111f 100644
--- a/src/APIcalls.mjs
+++ b/src/APIcalls.mjs
@@ -39,7 +39,8 @@ export const requestEdit = async (data,type) => {
console.error(error)
}
}
-export const requestDestroy = async (data,type) => {
+export const requestDelete = async (data,type) => {
+ console.log("requesting delete!")
try {
const res = await API.post(`/${type}/delete`,data)
return res
diff --git a/src/main.jsx b/src/main.jsx
index 094632f..1817fd1 100644
--- a/src/main.jsx
+++ b/src/main.jsx
@@ -10,6 +10,10 @@ import Publications from './routes/publications';
import { storiesLoader,publicationsLoader,submissionsLoader } from './loaders.mjs';
import EditStory, {action as editStoryAction } from './routes/editStory';
import EditPublication, {action as editPublicationAction} from './routes/editPublication';
+import CreateStory, {action as createStoryAction} from './routes/createStory';
+import CreatePublication, {action as createPublicationAction} from './routes/createPublication';
+import { action as deleteStoryAction } from './routes/deleteStory';
+import { action as deletePublicationAction } from './routes/deletePublication';
import './styles/index.css'
import {
createBrowserRouter,
@@ -58,6 +62,26 @@ const router = createBrowserRouter([
element: ,
loader: publicationsLoader,
action: editPublicationAction
+ },
+ {
+ path:"/story/create",
+ element: ,
+ loader: storiesLoader,
+ action: createStoryAction
+ },
+ {
+ path:"/publication/create",
+ element: ,
+ loader: publicationsLoader,
+ action: createPublicationAction
+ },
+ {
+ path:"/story/:storyId/delete",
+ action:deleteStoryAction
+ },
+ {
+ path:"/publication/:publicationId/delete",
+ action:deletePublicationAction
}
]
},
diff --git a/src/routes/createPublication.jsx b/src/routes/createPublication.jsx
new file mode 100644
index 0000000..f9427c9
--- /dev/null
+++ b/src/routes/createPublication.jsx
@@ -0,0 +1,53 @@
+import { Form,redirect } from "react-router-dom";
+import PageHeader from "../Components/PageHeader";
+import { requestCreate } from "../APIcalls.mjs";
+
+export async function action({request,params}){
+ const formData = await request.formData()
+ const data = Object.fromEntries(formData)
+ console.dir(data)
+ await requestCreate(data,'publication')
+ return redirect(`/publications`)
+}
+
+
+
+export default function CreatePublication(){
+
+
+
+ return(
+ <>
+
+
+
+ >
+ )
+
+}
\ No newline at end of file
diff --git a/src/routes/createStory.jsx b/src/routes/createStory.jsx
new file mode 100644
index 0000000..0a8db2b
--- /dev/null
+++ b/src/routes/createStory.jsx
@@ -0,0 +1,45 @@
+import { Form,redirect } from "react-router-dom";
+import PageHeader from "../Components/PageHeader";
+import { requestCreate } from "../APIcalls.mjs";
+
+export async function action({request,params}){
+ const formData = await request.formData()
+ const data = Object.fromEntries(formData)
+ console.dir(data)
+ await requestCreate(data,'story')
+ return redirect(`/stories`)
+}
+
+
+
+export default function CreateStory(){
+
+
+
+ return(
+ <>
+
+
+
+ >
+ )
+
+}
\ No newline at end of file
diff --git a/src/routes/deletePublication.jsx b/src/routes/deletePublication.jsx
new file mode 100644
index 0000000..bd1ccec
--- /dev/null
+++ b/src/routes/deletePublication.jsx
@@ -0,0 +1,7 @@
+import { redirect } from "react-router";
+import { requestDelete } from "../APIcalls.mjs";
+
+export async function action({params}){
+ await requestDelete({id:Number(params.publicationId)},'publication')
+ return redirect("/publications")
+}
\ No newline at end of file
diff --git a/src/routes/deleteStory.jsx b/src/routes/deleteStory.jsx
new file mode 100644
index 0000000..1058ef7
--- /dev/null
+++ b/src/routes/deleteStory.jsx
@@ -0,0 +1,7 @@
+import { redirect } from "react-router";
+import { requestDelete } from "../APIcalls.mjs";
+
+export async function action({params}){
+ await requestDelete({id:Number(params.storyId)},'story')
+ return redirect("/stories")
+}
\ No newline at end of file
diff --git a/src/routes/publication.jsx b/src/routes/publication.jsx
index 2efef92..14ef464 100644
--- a/src/routes/publication.jsx
+++ b/src/routes/publication.jsx
@@ -1,4 +1,4 @@
-import { useLoaderData, useParams, Link } from "react-router-dom";
+import { useLoaderData, useParams, Link, Form } from "react-router-dom";
import Table from "../Components/Table";
import PageHeader from "../Components/PageHeader";
import { submissionsTableOptions } from "./submissions.jsx";
@@ -23,6 +23,21 @@ export default function Publication() {
header='Submissions:'
>
EDIT
+
>
)
diff --git a/src/routes/story.jsx b/src/routes/story.jsx
index 992d8ec..e5a1d13 100644
--- a/src/routes/story.jsx
+++ b/src/routes/story.jsx
@@ -1,4 +1,4 @@
-import { useLoaderData, useParams, Link } from "react-router-dom";
+import { useLoaderData, useParams, Link,Form } from "react-router-dom";
import Table from "../Components/Table";
import PageHeader from "../Components/PageHeader";
import { submissionsTableOptions } from "./submissions.jsx";
@@ -24,6 +24,21 @@ export default function Story(){
header='Submissions:'
>
EDIT
+
>
)