website/frontend/src/Pages/Arguments.elm
2024-11-17 01:28:10 -06:00

130 lines
3.1 KiB
Elm
Executable file

module Pages.Arguments exposing (Model, Msg, page)
import Config.Colour as T exposing (..)
import Config.Format as O exposing (..)
import Config.Identity as I exposing (..)
import Debate.Arguments.Ancestry.AntagonisticPleiotropy exposing (..)
import Debate.Arguments.Ancestry.HealthSeeker exposing (..)
import Debate.Arguments.Ancestry.ImmortalityReductio exposing (..)
import Debate.Arguments.Ancestry.PolyphenolReductio exposing (argumentPolyphenolReductio)
import Debate.Arguments.Ethics.EthicalSlurs exposing (..)
import Debate.Helpers exposing (..)
import Effect exposing (Effect)
import Element exposing (..)
import Element.Border as D exposing (..)
import Element.Font as F
import Html
import Html.Attributes as H exposing (style, title, wrap)
import Layouts
import Page exposing (Page)
import Route exposing (Route)
import Shared
import View exposing (View)
import Debate.Arguments.Ethics.Abortion exposing (argumentAbortion)
import Debate.Arguments.Ethics.EfilismPatrolSquad exposing (argumentEfilismPatrolSquad)
import Debate.Arguments.Nutrition.Malondialdehyde exposing (argumentMalondialdehyde)
import Debate.Arguments.Nutrition.SaturatedFatLDL exposing (argumentSaturatedFatLDL)
import Debate.Arguments.Philosophy.Agnosticism exposing (argumentAgnosticism)
page : Shared.Model -> Route () -> Page Model Msg
page shared route =
Page.new
{ init = init
, update = update
, subscriptions = subscriptions
, view = view
}
|> Page.withLayout toLayout
toLayout : Model -> Layouts.Layout Msg
toLayout model =
Layouts.Navbar {}
-- INIT
type alias Model =
{}
init : () -> ( Model, Effect Msg )
init () =
( {}
, Effect.none
)
-- UPDATE
type Msg
= NoOp
update : Msg -> Model -> ( Model, Effect Msg )
update msg model =
case msg of
NoOp ->
( model
, Effect.none
)
-- SUBSCRIPTIONS
subscriptions : Model -> Sub Msg
subscriptions model =
Sub.none
-- VIEW
view : Model -> View Msg
view model =
{ title = debateName
, attributes = []
, element = debateContainer
}
debateContainer : Element msg
debateContainer =
topLevelContainer debateList
debateList : Element msg
debateList =
column
pageList
<|
List.map
(\category ->
column [ spacing 20 ]
[ el (nonHighlightedTitleFormat ++ [ centerX ]) (text category.categoryName)
, column [] (List.map argumentMaker category.arguments)
]
)
[ { categoryName = "Ethics"
, arguments =
[ argumentEthicalSlurs
, argumentAntagonisticPleiotropy
, argumentHealthSeeker
, argumentImmortalityReductio
, argumentPolyphenolReductio
, argumentAbortion
, argumentEfilismPatrolSquad
, argumentMalondialdehyde
, argumentSaturatedFatLDL
, argumentAgnosticism
]
}
]