refactor pages
This commit is contained in:
30
frontend/app/Route.hs
Normal file
30
frontend/app/Route.hs
Normal 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)
|
||||
Reference in New Issue
Block a user