From ed753b04104b27a9b258f174a501e2ae058b41ee Mon Sep 17 00:00:00 2001 From: Alexander Foremny Date: Tue, 4 Jun 2024 14:36:26 +0200 Subject: refactor pages --- frontend/app/Route.hs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 frontend/app/Route.hs (limited to 'frontend/app/Route.hs') diff --git a/frontend/app/Route.hs b/frontend/app/Route.hs new file mode 100644 index 0000000..36e1462 --- /dev/null +++ b/frontend/app/Route.hs @@ -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) -- cgit v1.2.3