import React, { useContext, useEffect, useState } from 'react'; import { CommonMenuList, Headline } from "../component/mod"; import { UserContext } from "../state"; import { Box, Grid, Paper, Typography,Button, makeStyles, Theme } from "@material-ui/core"; const useStyles = makeStyles((theme:Theme)=>({ paper:{ padding: theme.spacing(2), }, commitable:{ display:'grid', gridTemplateColumns: `100px auto`, }, contentTitle:{ marginLeft: theme.spacing(2) } })); export function DifferencePage(){ const ctx = useContext(UserContext); const classes = useStyles(); const [diffList,setDiffList] = useState< {type:string,value:{path:string,type:string}[]}[] >([]); const doLoad = async ()=>{ const list = await fetch('/api/diff/list'); if(list.ok){ const inner = await list.json(); setDiffList(inner); } else{ //setDiffList([]); } }; useEffect( ()=>{ doLoad(); const i = setInterval(doLoad,5000); return ()=>{ clearInterval(i); } },[] ) const Commit = async(x:{type:string,path:string})=>{ const res = await fetch('/api/diff/commit',{ method:'POST', body: JSON.stringify([{...x}]), headers:{ 'content-type':'application/json' } }); const bb = await res.json(); if(bb.ok){ doLoad(); } } const menu = CommonMenuList(); (ctx.username == "admin") return ( {(ctx.username == "admin") ? (diffList.map(x=> {x.type} {x.value.map(y=>( <> {y.path} ))} )):(Not Allowed : please login as an admin) } ) }