wikimusic-ssr-0.6.0.0: src/WikiMusic/SSR/Free/View.hs
module WikiMusic.SSR.Free.View
( artistListPage,
View (..),
errorPage,
loginPage,
genreListPage,
artistDetailPage,
genreDetailPage,
songListPage,
songDetailPage,
artistCreatePage,
genreCreatePage,
songCreatePage,
)
where
import Free.AlaCarte
import Relude
import Text.Blaze.Html
import WikiMusic.Interaction.Model.Artist
import WikiMusic.Interaction.Model.Genre
import WikiMusic.Interaction.Model.Song
import WikiMusic.SSR.Model.Api
import WikiMusic.SSR.Model.Env
type View :: Type -> Type
data View a
= ArtistListPage Env UiMode Language Palette SortOrder GetArtistsQueryResponse (Html -> a)
| ArtistDetailPage Env UiMode Language Palette GetArtistsQueryResponse (Html -> a)
| ArtistCreatePage Env UiMode Language Palette (Html -> a)
| GenreListPage Env UiMode Language Palette SortOrder GetGenresQueryResponse (Html -> a)
| GenreDetailPage Env UiMode Language Palette GetGenresQueryResponse (Html -> a)
| GenreCreatePage Env UiMode Language Palette (Html -> a)
| SongListPage Env UiMode Language Palette SortOrder GetSongsQueryResponse (Html -> a)
| SongDetailPage Env UiMode Language Palette SongAsciiSize GetSongsQueryResponse (Html -> a)
| SongCreatePage Env UiMode Language Palette (Html -> a)
| ErrorPage Env UiMode Language Palette Text (Html -> a)
| LoginPage Env UiMode Language Palette (Html -> a)
deriving (Functor)
artistListPage :: (View :<: f) => Env -> UiMode -> Language -> Palette -> SortOrder -> GetArtistsQueryResponse -> Free f Html
artistListPage env mode language palette sortOrder artists = injectFree (ArtistListPage env mode language palette sortOrder artists Pure)
artistDetailPage :: (View :<: f) => Env -> UiMode -> Language -> Palette -> GetArtistsQueryResponse -> Free f Html
artistDetailPage env mode language palette artists = injectFree (ArtistDetailPage env mode language palette artists Pure)
artistCreatePage :: (View :<: f) => Env -> UiMode -> Language -> Palette -> Free f Html
artistCreatePage env mode language palette = injectFree (ArtistCreatePage env mode language palette Pure)
genreListPage :: (View :<: f) => Env -> UiMode -> Language -> Palette -> SortOrder -> GetGenresQueryResponse -> Free f Html
genreListPage env mode language palette sortOrder genres = injectFree (GenreListPage env mode language palette sortOrder genres Pure)
genreDetailPage :: (View :<: f) => Env -> UiMode -> Language -> Palette -> GetGenresQueryResponse -> Free f Html
genreDetailPage env mode language palette genres = injectFree (GenreDetailPage env mode language palette genres Pure)
genreCreatePage :: (View :<: f) => Env -> UiMode -> Language -> Palette -> Free f Html
genreCreatePage env mode language palette = injectFree (GenreCreatePage env mode language palette Pure)
songListPage :: (View :<: f) => Env -> UiMode -> Language -> Palette -> SortOrder -> GetSongsQueryResponse -> Free f Html
songListPage env mode language palette sortOrder songs = injectFree (SongListPage env mode language palette sortOrder songs Pure)
songDetailPage :: (View :<: f) => Env -> UiMode -> Language -> Palette -> SongAsciiSize -> GetSongsQueryResponse -> Free f Html
songDetailPage env mode language palette songAsciiSize songs = injectFree (SongDetailPage env mode language palette songAsciiSize songs Pure)
songCreatePage :: (View :<: f) => Env -> UiMode -> Language -> Palette -> Free f Html
songCreatePage env mode language palette = injectFree (SongCreatePage env mode language palette Pure)
errorPage :: (View :<: f) => Env -> UiMode -> Language -> Palette -> Text -> Free f Html
errorPage env mode message l palette = injectFree (ErrorPage env mode message l palette Pure)
loginPage :: (View :<: f) => Env -> UiMode -> Language -> Palette -> Free f Html
loginPage env mode language palette = injectFree (LoginPage env mode language palette Pure)