refactor: added support for base url using a shared function

This commit is contained in:
2023-01-11 12:29:37 +01:00
parent 64617fffcf
commit 2dfe47b16e
11 changed files with 42 additions and 24 deletions
+2 -1
View File
@@ -1,7 +1,8 @@
import Router from 'preact-router'
import { route } from 'preact-router'
import { useContext, useEffect } from 'preact/hooks'
import { prependBaseUrl } from './api'
import { prependBaseUrl } from '../shared/utils'
import { ServerContext } from './hooks'
import { UserProvider } from './hooks/useCurrentUser'
+1 -5
View File
@@ -1,8 +1,4 @@
// TODO: move to `shared/` and distinguish client and server (fix imports)
export function prependBaseUrl(route: string) {
return import.meta.env.BASE_URL + (route.startsWith('/') ? route.substring(1) : route)
}
import { prependBaseUrl } from '../shared/utils'
export const server = {
async get(url: string) {
+4 -8
View File
@@ -1,13 +1,9 @@
import { Link } from 'preact-router/match'
import { isAdministrator } from '../../shared/model'
import { prependBaseUrl } from '../api'
import { useCurrentUser } from '../hooks/useCurrentUser'
// const ROLE_LABEL: Record<UserRole, string> = {
// ['admin']: 'Admin',
// ['moderator']: 'Moderatore',
// ['student']: 'Studente',
// }
import { isAdministrator } from '../../shared/model'
import { prependBaseUrl } from '../../shared/utils'
import { useCurrentUser } from '../hooks/useCurrentUser'
export const Header = ({}) => {
const [user] = useCurrentUser()
+1 -1
View File
@@ -1,7 +1,7 @@
import { StateUpdater, useEffect, useState } from 'preact/hooks'
import { createContext } from 'preact'
import { prependBaseUrl } from './api'
import { prependBaseUrl } from '../shared/utils'
type Metadata = {
title?: string
+3 -1
View File
@@ -1,7 +1,9 @@
import { ComponentChildren, createContext, JSX } from 'preact'
import { StateUpdater, useContext, useEffect, useState } from 'preact/hooks'
import { User } from '../../shared/model'
import { prependBaseUrl, server } from '../api'
import { server } from '../api'
import { prependBaseUrl } from '../../shared/utils'
type UserContextValue = {
ready: boolean
+4 -2
View File
@@ -1,8 +1,10 @@
import { route } from 'preact-router'
import { useState } from 'preact/hooks'
import { isAdministrator, Solution as SolutionModel, SolutionId, User as UserModel } from '../../shared/model'
import { sortByStringKey } from '../../shared/utils'
import { prependBaseUrl, server } from '../api'
import { server } from '../api'
import { prependBaseUrl, sortByStringKey } from '../../shared/utils'
import { Header } from '../components/Header'
import { MarkdownEditor } from '../components/MarkdownEditor'
import { Select } from '../components/Select'
+5 -2
View File
@@ -1,4 +1,5 @@
import { prependBaseUrl } from '../api.js'
import { prependBaseUrl } from '../../shared/utils'
import { Header } from '../components/Header.jsx'
export const LoginPage = () => {
@@ -7,7 +8,9 @@ export const LoginPage = () => {
<Header />
<main class="page-login">
<div class="fill">
<a class="button" role="button" href={prependBaseUrl('/auth/redirect')} data-native>Accedi con Ateneo</a>
<a class="button" role="button" href={prependBaseUrl('/auth/redirect')} data-native>
Accedi con Ateneo
</a>
</div>
</main>
</>
+2 -1
View File
@@ -1,7 +1,8 @@
import { route } from 'preact-router'
import { useContext, useEffect, useState } from 'preact/hooks'
import { isAdministrator, Problem as ProblemModel, Solution as SolutionModel } from '../../shared/model'
import { prependBaseUrl, server } from '../api'
import { prependBaseUrl } from '../../shared/utils'
import { server } from '../api'
import { Header } from '../components/Header'
import { MarkdownEditor } from '../components/MarkdownEditor'
import { Problem } from '../components/Problem'
+1 -1
View File
@@ -1,7 +1,7 @@
import { route } from 'preact-router'
import { isAdministrator, Solution as SolutionModel, User } from '../../shared/model'
import { sortByStringKey } from '../../shared/utils'
import { prependBaseUrl } from '../api'
import { prependBaseUrl } from '../../shared/utils'
import { Header } from '../components/Header'
import { Solution } from '../components/Solution'
import { useResource } from '../hooks'