feat: push

This commit is contained in:
Nick 2024-11-23 02:28:14 -06:00
parent 4d59a6997c
commit f79e2d9fca
5 changed files with 601 additions and 264 deletions

239
Helpers copy.elm Executable file
View file

@ -0,0 +1,239 @@
module Debate.Helpers%20copy exposing (..)module Debate.Helpers exposing (..)
import Config.Colour as T exposing (..)
import Config.Format as O exposing (..)
import Debate.Types exposing (..)
import Effect exposing (Effect)
import Element as E exposing (..)
import Element.Background as B exposing (..)
import Element.Border as D exposing (..)
import Element.Events as V exposing (..)
import Element.Font as F exposing (..)
import Html exposing (div, hr)
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)
argumentMaker : Argument -> Element msg
argumentMaker argument =
let
argRows : List (Element msg)
argRows =
let
argumentFormatting : List (Attribute msg)
argumentFormatting =
[ centerX, F.center, spacing 3 ]
in
List.indexedMap
(\index argumentEntry ->
column (paragraphFormat ++ [ spacing 3, paddingEach { top = 0, right = 0, bottom = 0, left = 0 }, E.width <| px 550, centerX ])
(List.indexedMap
(\premiseIndex premiseWithNotation ->
column argumentFormatting
[ paragraph paragraphHightlightedBoldText
[ text ("P" ++ String.fromInt (premiseIndex + 1) ++ ")")
, text premiseWithNotation.premise
|> el [ F.color colourTheme.nonHighlightedText, F.regular, paddingEach { top = 0, right = 0, bottom = 0, left = 5 } ]
]
, paragraph argumentFormatting
[ text ("(" ++ premiseWithNotation.notation ++ ")")
|> el [ F.color colourTheme.highlightText, F.bold ]
]
]
)
argumentEntry.premises
++ [ column argumentFormatting
[ paragraph paragraphHightlightedBoldText
[ text "C)"
, text argumentEntry.conclusion
|> el [ F.color colourTheme.nonHighlightedText, F.regular, paddingEach { top = 0, right = 0, bottom = 0, left = 5 } ]
]
, paragraph argumentFormatting
[ text ("(" ++ argumentEntry.conclusionNotation ++ ")")
|> el [ F.color colourTheme.highlightText, F.bold ]
]
]
]
)
)
argument.argumentFormalization
maybeReductioField : Element msg
maybeReductioField =
case argument.propositionReductio of
"" ->
none
reductio ->
row []
[ column
[ E.alignTop, E.alignLeft ]
[ paragraph (paragraphBoldFormat ++ [ F.size 18, E.width <| px 100 ])
[ el [ tooltip below (myTooltip "This is the position from which the reductio ad absurdum is derived.") ] (text "Reductio:") |> el [ F.color colourTheme.highlightText ]
]
]
, column [ E.width fill, E.alignLeft ]
[ paragraph []
[ text reductio |> el [ F.color colourTheme.nonHighlightedText, F.regular, F.size 16 ]
]
]
]
in
column
[ paragraphWidth, E.alignLeft, spacing 8, paddingEach { top = 0, right = 0, bottom = 0, left = 0 } ]
[ paragraph
(paragraphBoldFormat
++ [ F.size 20
, F.color colourTheme.backgroundColour
, B.color colourTheme.highlightText
, paddingEach { top = 6, bottom = 2, left = 12, right = 12 }
, D.width 1
, D.rounded 20
, alignBottom
, F.center
, transitionStyle
, mouseOver
[ B.color colourTheme.highlightTextHover
, F.color colourTheme.nonHighlightedText
, D.color colourTheme.highlightTextHover
]
]
)
[ text argument.argumentTitle
--create expandable text for this in the future
]
, row [ paddingEach { top = 10, right = 0, bottom = 0, left = 0 } ]
[ column
[ E.alignTop, E.alignLeft ]
[ paragraph (paragraphBoldFormat ++ [ F.size 18, E.width <| px 100 ])
[ el [ tooltip below (myTooltip "A proposition is a declarative statement that can be evaluated as either true or false, and which serves as the basis for debate.") ] (text "Proposition:") |> el [ F.color colourTheme.highlightText ] ]
]
, column
[ E.width fill, E.alignLeft ]
[ paragraph (paragraphBoldFormat ++ [ F.size 18 ]) [ text argument.propositionTitle |> el [ F.color colourTheme.nonHighlightedText, F.regular, F.size 16 ] ] ]
]
, maybeReductioField
, row [ E.alignTop ]
[ column
[ E.alignTop, E.alignLeft ]
[ paragraph (paragraphBoldFormat ++ [ F.size 18, E.width <| px 100 ])
[ el [ tooltip below (myTooltip "The following information provides additional context and insight into the reasoning behind the argument") ] (text "Summary:") |> el [ F.color colourTheme.highlightText ]
]
]
, column
[ E.width fill, E.alignLeft ]
[ paragraph (paragraphBoldFormat ++ [ F.size 18 ]) [ text argument.propositionSummary |> el [ F.color colourTheme.nonHighlightedText, F.regular, F.size 16 ] ] ]
]
, wrappedRow (paragraphBoldFormat ++ [ E.alignLeft, E.width fill, paddingEach { top = 10, right = 0, bottom = 10, left = 0 } ])
[ E.table
[ spacing 0
, D.rounded 10
, D.width 2
, D.color colourTheme.nonHighlightedDarkText
, clip
]
{ data = argument.definitionTable
, columns =
[ { header =
el
[ F.bold
, D.widthEach { bottom = 1, top = 1, left = 1, right = 1 }
, D.color colourTheme.nonHighlightedDarkText
, padding 8
]
(text "Definiendum" |> el [ F.color colourTheme.highlightText ])
, width = fill |> maximum 50
, view =
\definition ->
row
[ F.color colourTheme.highlightText
, F.bold
, D.widthEach { bottom = 1, top = 0, left = 1, right = 1 }
, D.color colourTheme.nonHighlightedDarkText
, padding 8
, E.height fill
]
[ row [ centerX ]
[ paragraph [] [ text definition.definiendum ]
]
]
}
, { header =
el
[ F.bold
, D.widthEach { bottom = 1, top = 1, left = 0, right = 1 }
, D.color colourTheme.nonHighlightedDarkText
, padding 8
]
(text "Definiens" |> el [ F.color colourTheme.highlightText ])
, width = fill
, view =
\definition ->
paragraph
[ F.color colourTheme.nonHighlightedText
, F.regular
, D.widthEach { bottom = 1, top = 0, left = 0, right = 1 }
, D.color colourTheme.nonHighlightedDarkText
, padding 8
, E.height fill
]
[ row []
[ paragraph [] [ text definition.definiens ]
]
]
}
]
}
]
, column [ centerX ]
(argRows
++ [ column [ paragraphWidth, paddingEach { top = 10, right = 0, bottom = 0, left = 0 } ]
[ row [ centerX, E.width fill ]
[ column [ E.alignRight ]
[ newTabLink
(paragraphBoldFormat
++ [ F.size 18
, F.color colourTheme.backgroundColour
, B.color colourTheme.highlightText
, paddingEach { top = 6, bottom = 2, left = 12, right = 12 }
, D.width 1
, D.rounded 20
, E.width <| px 105
, F.center
, E.alignRight
, transitionStyle
, mouseOver
[ B.color colourTheme.highlightTextHover
, F.color colourTheme.nonHighlightedText
, D.color colourTheme.highlightTextHover
]
]
)
{ url = argument.proofLink
, label = text "Proof Tree"
}
]
]
]
-- , basicDivider
]
)
]
basicDivider : Element msg
basicDivider =
el
[ E.width fill
, centerX
, D.widthEach { bottom = 1, top = 0, left = 0, right = 0 }
, D.color (rgb255 200 200 200)
, paddingEach { top = 40, bottom = 0, left = 0, right = 0 }
]
none

View file

@ -13,6 +13,7 @@
"elm/html": "1.0.0", "elm/html": "1.0.0",
"elm/json": "1.1.3", "elm/json": "1.1.3",
"elm/url": "1.0.0", "elm/url": "1.0.0",
"elm-community/list-extra": "8.7.0",
"mdgriffith/elm-ui": "1.1.8" "mdgriffith/elm-ui": "1.1.8"
}, },
"indirect": { "indirect": {

View file

@ -30,7 +30,7 @@ pageList =
transitionStyle : Attribute msg transitionStyle : Attribute msg
transitionStyle = transitionStyle =
htmlAttribute <| style "transition" "all .1s" htmlAttribute <| style "transition" "all .4s"
transitionHighlightedLinkHover : Element msg -> Element msg transitionHighlightedLinkHover : Element msg -> Element msg

View file

@ -1,5 +1,9 @@
module Debate.Helpers exposing (..) module Debate.Helpers exposing (..)
-- import Html exposing (div, hr)
-- import Html.Attributes as H exposing (style, title, wrap)
-- import Config.Types exposing (..)
import Config.Colour as T exposing (..) import Config.Colour as T exposing (..)
import Config.Format as O exposing (..) import Config.Format as O exposing (..)
import Debate.Types exposing (..) import Debate.Types exposing (..)
@ -9,217 +13,294 @@ import Element.Background as B exposing (..)
import Element.Border as D exposing (..) import Element.Border as D exposing (..)
import Element.Events as V exposing (..) import Element.Events as V exposing (..)
import Element.Font as F exposing (..) import Element.Font as F exposing (..)
import Html exposing (div, hr)
import Html.Attributes as H exposing (style, title, wrap)
import Layouts import Layouts
import List.Extra exposing (..)
import Maybe exposing (withDefault)
import Page exposing (Page) import Page exposing (Page)
import Route exposing (Route) import Route exposing (Route)
import Shared import Shared
import View exposing (View) import View exposing (View)
argumentMaker : Argument -> Element msg
argumentMaker argument = -- argumentMaker : List Bool -> Argument -> Int -> Element msg
argumentMaker : (Int -> msg) -> List Bool -> Argument -> Int -> Element msg
argumentMaker onClickMsg areArgsExpanded argument indexExpand =
let let
argRows : List (Element msg) isArgumentExpanded : Bool
argRows = isArgumentExpanded =
let withDefault False <| getAt indexExpand areArgsExpanded
argumentFormatting : List (Attribute msg)
argumentFormatting =
[ centerX, F.center, spacing 3 ]
in
List.indexedMap
(\index argumentEntry ->
column (paragraphFormat ++ [ spacing 3, paddingEach { top = 0, right = 0, bottom = 0, left = 0 }, E.width <| px 550, centerX ])
(List.indexedMap
(\premiseIndex premiseWithNotation ->
column argumentFormatting
[ paragraph paragraphHightlightedBoldText
[ text ("P" ++ String.fromInt (premiseIndex + 1) ++ ")")
, text premiseWithNotation.premise
|> el [ F.color colourTheme.nonHighlightedText, F.regular, paddingEach { top = 0, right = 0, bottom = 0, left = 5 } ]
]
, paragraph argumentFormatting
[ text ("(" ++ premiseWithNotation.notation ++ ")")
|> el [ F.color colourTheme.highlightText, F.bold ]
]
]
)
argumentEntry.premises
++ [ column argumentFormatting
[ paragraph paragraphHightlightedBoldText
[ text "C)"
, text argumentEntry.conclusion
|> el [ F.color colourTheme.nonHighlightedText, F.regular, paddingEach { top = 0, right = 0, bottom = 0, left = 5 } ]
]
, paragraph argumentFormatting
[ text ("(" ++ argumentEntry.conclusionNotation ++ ")")
|> el [ F.color colourTheme.highlightText, F.bold ]
]
]
]
)
)
argument.argumentFormalization
maybeReductioField : Element msg
maybeReductioField =
case argument.propositionReductio of
"" ->
none
reductio ->
row []
[ column
[ E.alignTop, E.alignLeft ]
[ paragraph (paragraphBoldFormat ++ [ F.size 18, E.width <| px 100 ])
[ el [ tooltip below (myTooltip "This is the position from which the reductio ad absurdum is derived.") ] (text "Reductio:") |> el [ F.color colourTheme.highlightText ]
]
]
, column [ E.width fill, E.alignLeft ]
[ paragraph []
[ text reductio |> el [ F.color colourTheme.nonHighlightedText, F.regular, F.size 16 ]
]
]
]
in in
column column [ explain Debug.todo ]
[ paragraphWidth, E.alignLeft, spacing 8, paddingEach { top = 0, right = 0, bottom = 0, left = 0 } ] [ titleMaker onClickMsg indexExpand argument.argumentTitle
[ paragraph , paragraphMaker argument isArgumentExpanded
(paragraphBoldFormat
++ [ F.size 20
, F.color colourTheme.backgroundColour
, B.color colourTheme.highlightText
, paddingEach { top = 6, bottom = 2, left = 12, right = 12 }
, D.width 1
, D.rounded 20
, alignBottom
, F.center
, transitionStyle
, mouseOver
[ B.color colourTheme.highlightTextHover
, F.color colourTheme.nonHighlightedText
, D.color colourTheme.highlightTextHover
]
]
)
[ text argument.argumentTitle
--create expandable text for this in the future
]
, row []
[ column
[ E.alignTop, E.alignLeft ]
[ paragraph (paragraphBoldFormat ++ [ F.size 18, E.width <| px 100 ])
[ el [ tooltip below (myTooltip "A proposition is a declarative statement that can be evaluated as either true or false, and which serves as the basis for debate.") ] (text "Proposition:") |> el [ F.color colourTheme.highlightText ] ]
]
, column
[ E.width fill, E.alignLeft ]
[ paragraph (paragraphBoldFormat ++ [ F.size 18 ]) [ text argument.propositionTitle |> el [ F.color colourTheme.nonHighlightedText, F.regular, F.size 16 ] ] ]
]
, maybeReductioField
, row [ E.alignTop ]
[ column
[ E.alignTop, E.alignLeft ]
[ paragraph (paragraphBoldFormat ++ [ F.size 18, E.width <| px 100 ])
[ el [ tooltip below (myTooltip "The following information provides additional context and insight into the reasoning behind the argument") ] (text "Summary:") |> el [ F.color colourTheme.highlightText ]
]
]
, column
[ E.width fill, E.alignLeft ]
[ paragraph (paragraphBoldFormat ++ [ F.size 18 ]) [ text argument.propositionSummary |> el [ F.color colourTheme.nonHighlightedText, F.regular, F.size 16 ] ] ]
]
, wrappedRow (paragraphBoldFormat ++ [ E.alignLeft, E.width fill, paddingEach { top = 10, right = 0, bottom = 10, left = 0 } ])
[ E.table
[ spacing 0
, D.rounded 10
, D.width 2
, D.color colourTheme.nonHighlightedDarkText
, clip
]
{ data = argument.definitionTable
, columns =
[ { header =
el
[ F.bold
, D.widthEach { bottom = 1, top = 1, left = 1, right = 1 }
, D.color colourTheme.nonHighlightedDarkText
, padding 8
]
(text "Definiendum" |> el [ F.color colourTheme.highlightText ])
, width = fill |> maximum 50
, view =
\definition ->
row
[ F.color colourTheme.highlightText
, F.bold
, D.widthEach { bottom = 1, top = 0, left = 1, right = 1 }
, D.color colourTheme.nonHighlightedDarkText
, padding 8
, E.height fill
]
[ row [ centerX ]
[ paragraph [] [ text definition.definiendum ]
]
]
}
, { header =
el
[ F.bold
, D.widthEach { bottom = 1, top = 1, left = 0, right = 1 }
, D.color colourTheme.nonHighlightedDarkText
, padding 8
]
(text "Definiens" |> el [ F.color colourTheme.highlightText ])
, width = fill
, view =
\definition ->
paragraph
[ F.color colourTheme.nonHighlightedText
, F.regular
, D.widthEach { bottom = 1, top = 0, left = 0, right = 1 }
, D.color colourTheme.nonHighlightedDarkText
, padding 8
, E.height fill
]
[ row []
[ paragraph [] [ text definition.definiens ]
]
]
}
]
}
]
, column [ centerX ]
(argRows
++ [ column [ paragraphWidth, paddingEach { top = 5, right = 0, bottom = 0, left = 0 } ]
[ row [ centerX, E.width fill ]
[ column [ E.alignRight ]
[ newTabLink
(paragraphBoldFormat
++ [ F.size 18
, F.color colourTheme.backgroundColour
, B.color colourTheme.highlightText
, paddingEach { top = 6, bottom = 2, left = 12, right = 12 }
, D.width 1
, D.rounded 20
, E.width <| px 120
, F.center
, E.alignRight
, transitionStyle
, mouseOver
[ B.color colourTheme.highlightTextHover
, F.color colourTheme.nonHighlightedText
, D.color colourTheme.highlightTextHover
]
]
)
{ url = argument.proofLink
, label = text "Proof Tree"
}
]
]
]
]
)
] ]
titleMaker : (Int -> msg) -> Int -> String -> Element msg
titleMaker onClickMsg indexExpand title =
paragraph
(paragraphBoldFormat
++ [ F.size 20
, F.color colourTheme.backgroundColour
, B.color colourTheme.highlightText
, paddingEach { top = 6, bottom = 2, left = 12, right = 12 }
, D.width 1
, D.rounded 20
, alignBottom
, F.center
, transitionStyle
, mouseOver
[ B.color colourTheme.highlightTextHover
, F.color colourTheme.nonHighlightedText
, D.color colourTheme.highlightTextHover
]
, V.onClick <| onClickMsg indexExpand
]
)
[ text title
]
paragraphMaker : Argument -> Bool -> Element msg
paragraphMaker argument isArgumentExpanded =
row []
[ -- column
-- [ E.alignTop, E.alignLeft ]
-- [ paragraph (paragraphBoldFormat ++ [ F.size 18, E.width <| px 100 ])
-- [-- el [ tooltip below (myTooltip titleTooltip) ] (text title) |> el [ F.color colourTheme.highlightText ]
-- ]
-- ]
-- ,
paragraph
(if isArgumentExpanded then
[ F.size 0, transitionStyle ]
else
[ paddingEach { top = 10, right = 0, bottom = 0, left = 0 } ]
)
[ text argument.propositionSummary |> el [ F.color colourTheme.nonHighlightedText, F.regular, F.size 16 ] ]
]
-- argumentMaker : (Int -> msg) -> List Bool -> Argument -> Int -> Element msg
-- argumentMaker onClickMsg areArgsExpanded argument indexExpand =
-- let
-- maybeIsExpanded : Maybe Bool
-- maybeIsExpanded =
-- getAt indexExpand areArgsExpanded
-- argRows : List (Element msg)
-- argRows =
-- let
-- argumentFormatting : List (Attribute msg)
-- argumentFormatting =
-- [ centerX, F.center, spacing 3 ]
-- in
-- List.indexedMap
-- (\index argumentEntry ->
-- column (paragraphFormat ++ [ spacing 3, paddingEach { top = 0, right = 0, bottom = 0, left = 0 }, E.width <| px 550, centerX ])
-- (List.indexedMap
-- (\premiseIndex premiseWithNotation ->
-- column argumentFormatting
-- [ paragraph paragraphHightlightedBoldText
-- [ text ("P" ++ String.fromInt (premiseIndex + 1) ++ ")")
-- , text premiseWithNotation.premise
-- |> el [ F.color colourTheme.nonHighlightedText, F.regular, paddingEach { top = 0, right = 0, bottom = 0, left = 5 } ]
-- ]
-- , paragraph argumentFormatting
-- [ text ("(" ++ premiseWithNotation.notation ++ ")")
-- |> el [ F.color colourTheme.highlightText, F.bold ]
-- ]
-- ]
-- )
-- argumentEntry.premises
-- ++ [ column argumentFormatting
-- [ paragraph paragraphHightlightedBoldText
-- [ text "C)"
-- , text argumentEntry.conclusion
-- |> el [ F.color colourTheme.nonHighlightedText, F.regular, paddingEach { top = 0, right = 0, bottom = 0, left = 5 } ]
-- ]
-- , paragraph argumentFormatting
-- [ text ("(∴" ++ argumentEntry.conclusionNotation ++ ")")
-- |> el [ F.color colourTheme.highlightText, F.bold ]
-- ]
-- ]
-- ]
-- )
-- )
-- argument.argumentFormalization
-- maybeReductioField : Element msg
-- maybeReductioField =
-- case argument.propositionReductio of
-- "" ->
-- none
-- reductio ->
-- row []
-- [ column
-- [ E.alignTop, E.alignLeft ]
-- [ paragraph (paragraphBoldFormat ++ [ F.size 18, E.width <| px 100 ])
-- [ el [ tooltip below (myTooltip "This is the position from which the reductio ad absurdum is derived.") ] (text "Reductio:") |> el [ F.color colourTheme.highlightText ]
-- ]
-- ]
-- , column [ E.width fill, E.alignLeft ]
-- [ paragraph []
-- [ text reductio |> el [ F.color colourTheme.nonHighlightedText, F.regular, F.size 16 ]
-- ]
-- ]
-- ]
-- in
-- column
-- [ paragraphWidth
-- , E.alignLeft
-- , spacing 8
-- , explain Debug.todo
-- ]
-- [ paragraph
-- (paragraphBoldFormat
-- ++ [ F.size 20
-- , F.color colourTheme.backgroundColour
-- , B.color colourTheme.highlightText
-- , paddingEach { top = 6, bottom = 2, left = 12, right = 12 }
-- , D.width 1
-- , D.rounded 20
-- , alignBottom
-- , F.center
-- , transitionStyle
-- , mouseOver
-- [ B.color colourTheme.highlightTextHover
-- , F.color colourTheme.nonHighlightedText
-- , D.color colourTheme.highlightTextHover
-- ]
-- , V.onClick <| onClickMsg indexExpand
-- ]
-- )
-- [ text argument.argumentTitle
-- ]
-- , paragraph
-- (case maybeIsExpanded of
-- Just True ->
-- [ F.size 0, transitionStyle ]
-- _ ->
-- [ transitionStyle, F.size 50 ]
-- )
-- [ row [ paddingEach { top = 10, right = 0, bottom = 0, left = 0 } ]
-- [ column
-- [ E.alignTop, E.alignLeft ]
-- [ paragraph (paragraphBoldFormat ++ [ F.size 18, E.width <| px 100 ])
-- [ el [ tooltip below (myTooltip "A proposition is a declarative statement that can be evaluated as either true or false, and which serves as the basis for debate.") ] (text "Proposition:") |> el [ F.color colourTheme.highlightText ] ]
-- ]
-- , column
-- [ E.width fill, E.alignLeft ]
-- [ paragraph (paragraphBoldFormat ++ [ F.size 18 ]) [ text argument.propositionTitle |> el [ F.color colourTheme.nonHighlightedText, F.regular, F.size 16 ] ] ]
-- ]
-- , maybeReductioField
-- , row [ E.alignTop ]
-- [ column
-- [ E.alignTop, E.alignLeft ]
-- [ paragraph (paragraphBoldFormat ++ [ F.size 18, E.width <| px 100 ])
-- [ el [ tooltip below (myTooltip "The following information provides additional context and insight into the reasoning behind the argument") ] (text "Summary:") |> el [ F.color colourTheme.highlightText ]
-- ]
-- ]
-- , column
-- [ E.width fill, E.alignLeft ]
-- [ paragraph (paragraphBoldFormat ++ [ F.size 18 ]) [ text argument.propositionSummary |> el [ F.color colourTheme.nonHighlightedText, F.regular, F.size 16 ] ] ]
-- ]
-- , wrappedRow (paragraphBoldFormat ++ [ E.alignLeft, E.width fill, paddingEach { top = 10, right = 0, bottom = 10, left = 0 } ])
-- [ E.table
-- [ spacing 0
-- , D.rounded 10
-- , D.width 2
-- , D.color colourTheme.nonHighlightedDarkText
-- , clip
-- ]
-- { data = argument.definitionTable
-- , columns =
-- [ { header =
-- el
-- [ F.bold
-- , D.widthEach { bottom = 1, top = 1, left = 1, right = 1 }
-- , D.color colourTheme.nonHighlightedDarkText
-- , padding 8
-- ]
-- (text "Definiendum" |> el [ F.color colourTheme.highlightText ])
-- , width = fill |> maximum 50
-- , view =
-- \definition ->
-- row
-- [ F.color colourTheme.highlightText
-- , F.bold
-- , D.widthEach { bottom = 1, top = 0, left = 1, right = 1 }
-- , D.color colourTheme.nonHighlightedDarkText
-- , padding 8
-- , E.height fill
-- ]
-- [ row [ centerX ]
-- [ paragraph [] [ text definition.definiendum ]
-- ]
-- ]
-- }
-- , { header =
-- el
-- [ F.bold
-- , D.widthEach { bottom = 1, top = 1, left = 0, right = 1 }
-- , D.color colourTheme.nonHighlightedDarkText
-- , padding 8
-- ]
-- (text "Definiens" |> el [ F.color colourTheme.highlightText ])
-- , width = fill
-- , view =
-- \definition ->
-- paragraph
-- [ F.color colourTheme.nonHighlightedText
-- , F.regular
-- , D.widthEach { bottom = 1, top = 0, left = 0, right = 1 }
-- , D.color colourTheme.nonHighlightedDarkText
-- , padding 8
-- , E.height fill
-- ]
-- [ row []
-- [ paragraph [] [ text definition.definiens ]
-- ]
-- ]
-- }
-- ]
-- }
-- ]
-- , column [ centerX ]
-- (argRows
-- ++ [ column [ paragraphWidth, paddingEach { top = 10, right = 0, bottom = 0, left = 0 } ]
-- [ row [ centerX, E.width fill ]
-- [ column [ E.alignRight ]
-- [ newTabLink
-- (paragraphBoldFormat
-- ++ [ F.size 18
-- , F.color colourTheme.backgroundColour
-- , B.color colourTheme.highlightText
-- , paddingEach { top = 6, bottom = 2, left = 12, right = 12 }
-- , D.width 1
-- , D.rounded 20
-- , E.width <| px 105
-- , F.center
-- , E.alignRight
-- , transitionStyle
-- , mouseOver
-- [ B.color colourTheme.highlightTextHover
-- , F.color colourTheme.nonHighlightedText
-- , D.color colourTheme.highlightTextHover
-- ]
-- ]
-- )
-- { url = argument.proofLink
-- , label = text "Proof Tree"
-- }
-- ]
-- ]
-- ]
-- -- , basicDivider
-- ]
-- )
-- ]
-- ]

View file

@ -60,6 +60,7 @@ import Element.Font as F
import Html import Html
import Html.Attributes as H exposing (style, title, wrap) import Html.Attributes as H exposing (style, title, wrap)
import Layouts import Layouts
import List.Extra as L exposing (..)
import Page exposing (Page) import Page exposing (Page)
import Route exposing (Route) import Route exposing (Route)
import Shared import Shared
@ -87,12 +88,16 @@ toLayout model =
type alias Model = type alias Model =
{} { areArgsExpanded : List Bool }
init : () -> ( Model, Effect Msg ) init : () -> ( Model, Effect Msg )
init () = init () =
( {} ( { areArgsExpanded =
[ False
, False
]
}
, Effect.none , Effect.none
) )
@ -102,14 +107,19 @@ init () =
type Msg type Msg
= NoOp = ToggleExpandArg Int
update : Msg -> Model -> ( Model, Effect Msg ) update : Msg -> Model -> ( Model, Effect Msg )
update msg model = update msg model =
case msg of case msg of
NoOp -> ToggleExpandArg index ->
( model ( case getAt index model.areArgsExpanded of
Nothing ->
model
Just isExpanded ->
{ model | areArgsExpanded = setAt index (not isExpanded) model.areArgsExpanded }
, Effect.none , Effect.none
) )
@ -131,68 +141,74 @@ view : Model -> View Msg
view model = view model =
{ title = debateName { title = debateName
, attributes = [] , attributes = []
, element = debateContainer , element = debateContainer model
} }
debateContainer : Element msg debateContainer : Model -> Element Msg
debateContainer = debateContainer model =
topLevelContainer debateList topLevelContainer <| debateList model
debateList : Element msg debateList : Model -> Element Msg
debateList = debateList model =
column column
pageList pageList
<| <|
List.map argumentMaker List.map2 (argumentMaker ToggleExpandArg model.areArgsExpanded)
[ argumentApoBCVD [ argumentApoBCVD
, argumentAnabolicKeto , argumentAnabolicKeto
, argumentAntagonisticPleiotropy
, argumentCarbsObesity
, argumentDietaryCholesterol
, argumentFructoseNAFLD
, argumentHealthPromotingFoods
, argumentHealthSeeker
, argumentHealthyChocolate
, argumentHealthyDairy
, argumentHealthyFattyFish
, argumentHealthyFibre
, argumentHealthyFood
, argumentHealthyPlantFoods
, argumentHealthySeedOils
, argumentHealthySoy
, argumentMalondialdehyde
, argumentOmega3Omega6Ratio
, argumentPlantBasedCVDReversal
, argumentPolyphenolReductio
, argumentSodiumCVD
, argumentTMAOCausality
, argumentUnhealthyCoconutOil
, argumentUnhealthyProcessedMeat
, argumentUnhealthyRedMeat
, argumentUnhealthySaturatedFat
, argumentAbortion
, argumentAgnosticism
, argumentAgriculturalPredation
, argumentAnimalRights
, argumentAntiRewilding
, argumentAntiVandalism
, argumentColonizingNature
, argumentCropDeaths
, argumentDairyCowRape
, argumentEfilismPatrolSquad
, argumentEthicalSlurs
, argumentFineTuning
, argumentImmortalityReductio
, argumentOddOrderPredators
, argumentOstroveganism
, argumentPollinationReductio
, argumentScratcherPioneers
, argumentTransPeople
, argumentVeganSocietyReductio
, argumentBoobyTrapPagers
, argumentEpidemiologyCausality
, argumentFlatEarthDebunk
, argumentTruncatedMeta
] ]
<|
List.range 0 <|
List.length model.areArgsExpanded
-- , argumentAntagonisticPleiotropy
-- , argumentCarbsObesity
-- , argumentDietaryCholesterol
-- , argumentFructoseNAFLD
-- , argumentHealthPromotingFoods
-- , argumentHealthSeeker
-- , argumentHealthyChocolate
-- , argumentHealthyDairy
-- , argumentHealthyFattyFish
-- , argumentHealthyFibre
-- , argumentHealthyFood
-- , argumentHealthyPlantFoods
-- , argumentHealthySeedOils
-- , argumentHealthySoy
-- , argumentMalondialdehyde
-- , argumentOmega3Omega6Ratio
-- , argumentPlantBasedCVDReversal
-- , argumentPolyphenolReductio
-- , argumentSodiumCVD
-- , argumentTMAOCausality
-- , argumentUnhealthyCoconutOil
-- , argumentUnhealthyProcessedMeat
-- , argumentUnhealthyRedMeat
-- , argumentUnhealthySaturatedFat
-- , argumentAbortion
-- , argumentAgnosticism
-- , argumentAgriculturalPredation
-- , argumentAnimalRights
-- , argumentAntiRewilding
-- , argumentAntiVandalism
-- , argumentColonizingNature
-- , argumentCropDeaths
-- , argumentDairyCowRape
-- , argumentEfilismPatrolSquad
-- , argumentEthicalSlurs
-- , argumentFineTuning
-- , argumentImmortalityReductio
-- , argumentOddOrderPredators
-- , argumentOstroveganism
-- , argumentPollinationReductio
-- , argumentScratcherPioneers
-- , argumentTransPeople
-- , argumentVeganSocietyReductio
-- , argumentBoobyTrapPagers
-- , argumentEpidemiologyCausality
-- , argumentFlatEarthDebunk
-- , argumentTruncatedMeta