From 0b74f4dccd7d20912318d473f58110910f4f5918 Mon Sep 17 00:00:00 2001 From: shoofle Date: Sun, 6 Oct 2024 16:01:13 -0400 Subject: [PATCH] added history view --- client/src/App.jsx | 8 ++- client/src/apiTools.jsx | 32 +++++------ client/src/login/Profile.jsx | 1 + client/src/page/HistoryView.jsx | 49 +++++++++++++++++ client/src/page/PageEdit.jsx | 97 ++++++++++++++++++++------------- client/src/page/PageView.jsx | 48 ---------------- server/routes/api.js | 12 +++- server/routes/pages.js | 10 ++-- 8 files changed, 144 insertions(+), 113 deletions(-) create mode 100644 client/src/page/HistoryView.jsx delete mode 100644 client/src/page/PageView.jsx diff --git a/client/src/App.jsx b/client/src/App.jsx index 94cd0831..db7f3563 100644 --- a/client/src/App.jsx +++ b/client/src/App.jsx @@ -3,9 +3,11 @@ import { BrowserRouter, Routes, Route } from 'react-router-dom'; import Landing from '/src/landing/Landing.jsx'; import PageView from '/src/page/PageView.jsx'; import PageEdit from '/src/page/PageEdit.jsx'; +import HistoryView from '/src/page/HistoryView.jsx'; import LogIn from '/src/login/LogIn.jsx'; import Register from '/src/login/Register.jsx'; import Profile from '/src/login/Profile.jsx'; + import AuthProvider from '/src/AuthProvider.jsx'; import './App.css'; @@ -21,8 +23,10 @@ function App() { }/> }/> }/> - }/> - }/> + }/> + }/> + }/> + }/> }/> diff --git a/client/src/apiTools.jsx b/client/src/apiTools.jsx index f0857d55..cd68c754 100644 --- a/client/src/apiTools.jsx +++ b/client/src/apiTools.jsx @@ -27,47 +27,43 @@ const defaults = { }; export async function postNewPage() { - return shoofetch(`${apiUrl}/page/new`, { - method: 'POST', - }) + return shoofetch(`${apiUrl}/page/new`, {method: 'POST'}) } export async function fetchPageList() { return shoofetch(`${apiUrl}/pages`, {method: 'GET'}); } -export async function fetchPage(id) { - return fetch(`${apiUrl}/page/${id}`, { - method: 'GET', - ...defaults - }).then((res) => res.json()) +export async function fetchPage(number) { + return shoofetch(`${apiUrl}/page/${number}`, {method: 'GET'}); +} + +export async function fetchPageHistory(number) { + return shoofetch(`${apiUrl}/page/${number}/history`, {method: 'GET'}); +} + +export async function fetchPageAtEdit(number, id) { + return shoofetch(`${apiUrl}/page/${number}/${id}`, {method: 'GET'}); } export async function postPage({id, title, description}) { return shoofetch(`${apiUrl}/page/${id}`, { method: 'POST', body: JSON.stringify({id: id, title: title, description: description}), - ...defaults }) } export async function deletePage(id) { - return fetch(`${apiUrl}/page/${id}`, { - method: 'DELETE', - ...defaults - }) + return shoofetch(`${apiUrl}/page/${id}`, {method: 'DELETE'}); } export async function fetchGraph() { - return fetch(`${apiUrl}/graph`, { - method: 'GET', - ...defaults - }).then((res) => res.json()) + return shoofetch(`${apiUrl}/graph`, {method: 'GET'}) .then((serialized) => { const graph = new Graph(); graph.import(serialized); return graph; - }) + }); } export async function createAccount({name, password, nonce}) { diff --git a/client/src/login/Profile.jsx b/client/src/login/Profile.jsx index 52d98e0b..595b585c 100644 --- a/client/src/login/Profile.jsx +++ b/client/src/login/Profile.jsx @@ -30,6 +30,7 @@ function Profile() {