Refactoring to Typescript...

This commit is contained in:
2022-11-15 02:53:16 +01:00
parent 48d1b3b4ed
commit d61f17a0f3
30 changed files with 702 additions and 345 deletions
@@ -1,5 +1,6 @@
import { route } from 'preact-router'
import { useEffect, useState } from 'preact/hooks'
import { isAdministrator, isStudent } from '../../shared/constants.js'
import { server } from '../api.jsx'
import { Header } from '../components/Header.jsx'
import { MarkdownEditor } from '../components/MarkdownEditor.jsx'
@@ -27,7 +28,7 @@ export const AdminPage = ({}) => {
const [user] = useCurrentUser(user => {
if (!user) {
route('/login', true)
} else if (user.role !== 'admin' && user.role !== 'moderator') {
} else if (isStudent(user.role)) {
route('/', true)
}
})
@@ -10,6 +10,8 @@ export const HomePage = () => {
const [user] = useCurrentUser()
const [problems] = useReadResource('/api/problems', [])
console.log(problems)
return (
<main class="page-home">
<Header {...{ user }} />
@@ -13,7 +13,7 @@ export const LoginPage = () => {
'Content-Type': 'application/json',
},
body: JSON.stringify({
username,
id: username,
}),
})
@@ -20,7 +20,7 @@ export const ProblemPage = ({ id }) => {
const sendSolution = async () => {
await server.post('/api/solution', {
problemId: id,
forProblem: id,
content: source,
})
@@ -13,7 +13,7 @@ export const ProfilePage = ({}) => {
route('/login', true)
}
setSolutions(await server.get(`/api/solutions?user=${user.username}`))
setSolutions(await server.get(`/api/solutions?user=${user.id}`))
})
const handleLogout = () => {
@@ -27,8 +27,8 @@ export const ProfilePage = ({}) => {
<Header {...{ user }} />
<div class="subtitle">Le tue soluzioni</div>
<div class="solution-list">
{solutions.map(({ problemId, content }) => (
<Solution {...{ problemId, content }} />
{solutions.map(({ forProblem, content }) => (
<Solution {...{ forProblem, content }} />
))}
</div>
<div class="subtitle">Altro</div>