refactor pages

This commit is contained in:
Alexander Foremny
2024-06-04 14:36:26 +02:00
parent 03b019ca96
commit ed753b0410
7 changed files with 361 additions and 202 deletions

30
frontend/app/Route.hs Normal file
View File

@@ -0,0 +1,30 @@
module Route
( Route (..),
parseURI,
)
where
import Data.Attoparsec.Text qualified as P
import Data.Default
import Data.Text qualified as T
import Miso
data Route
= Home
| ListCollection String
deriving (Show, Eq)
instance Default Route where
def = Home
parseURI :: URI -> Route
parseURI uri =
either (const def) id $
P.parseOnly
( P.choice
[ ListCollection <$> (P.string "#collection/" *> P.many1 P.anyChar),
pure Home
]
<* P.endOfInput
)
(T.pack uri.uriFragment)