feat: fixed receipts

This commit is contained in:
Nick 2024-12-19 01:43:02 -06:00
parent 2295c85fca
commit 97b9223223
18 changed files with 185 additions and 102 deletions

0
frontend/src/Config/Helpers/Articles/Article.elm Normal file → Executable file
View file

View file

@ -103,7 +103,11 @@ imageTransitionStyle =
, glowDeepDarkGrey , glowDeepDarkGrey
, D.color colourTheme.backgroundDarkGrey , D.color colourTheme.backgroundDarkGrey
, B.color colourTheme.backgroundDarkGrey , B.color colourTheme.backgroundDarkGrey
, hoverCircleButtonDarkOrange , mouseOver
[ D.color colourTheme.textDarkOrange
, B.color colourTheme.textDarkOrange
, glowDeepDarkOrange
]
, transitionStyleMedium , transitionStyleMedium
] ]

0
frontend/src/Config/Helpers/Headers/Types.elm Normal file → Executable file
View file

View file

@ -57,7 +57,7 @@ titleMaker title =
, width fill , width fill
, F.color colourTheme.textLightOrange , F.color colourTheme.textLightOrange
, paddingEach , paddingEach
{ top = 10 { top = 20
, bottom = 10 , bottom = 10
, left = 0 , left = 0
, right = 0 , right = 0

View file

@ -43,3 +43,48 @@ tooltip content =
(text content) (text content)
] ]
none none
tooltipImage : String -> Attribute msg
tooltipImage content =
inFront <|
el
[ width fill
, height fill
, transparent True
, mouseOver [ transparent False ]
, htmlAttribute <| H.style "z-index" "4"
, transitionStyleSlow
, onRight <|
el
[ htmlAttribute (H.style "pointerEvents" "none")
, moveLeft 410
]
<|
el
[ width <| px 600
, htmlAttribute <| H.style "z-index" "4"
, B.color colourTheme.backgroundLightGrey
, padding 15
, D.color colourTheme.textLightOrange
, D.rounded 5
, D.width 2
, D.shadow
{ offset = ( 0, 3 )
, blur = 6
, size = 0
, color = rgba 0 0 0 0.32
}
]
(image
[ width fill
, height fill
, centerX
, centerY
]
{ src = content
, description = "Tooltip image"
}
)
]
none

View file

View file

@ -2,7 +2,6 @@ module Config.Pages.Debate.Cuckery.Records.AdamSinger exposing (..)
import Config.Helpers.Converters exposing (formatName) import Config.Helpers.Converters exposing (formatName)
import Config.Pages.Debate.Cuckery.Types exposing (..) import Config.Pages.Debate.Cuckery.Types exposing (..)
import Config.Helpers.Converters exposing (formatName)
cuckAdamSinger : Cuck cuckAdamSinger : Cuck
@ -19,8 +18,11 @@ cuckAdamSinger =
[ { dodgeLink = "https://x.com/TheNutrivore/status/1566491269194719232?s=20" [ { dodgeLink = "https://x.com/TheNutrivore/status/1566491269194719232?s=20"
, dodgeDescription = VagueGesture , dodgeDescription = VagueGesture
, dodgeProposition = "Seed oils cause inflammation and stomach pain." , dodgeProposition = "Seed oils cause inflammation and stomach pain."
, dodgeReceipts = [ "https://x.com/TheNutrivore/status/1566491269194719232?s=20" ] , dodgeReceipts =
, dodgeFallacy = Just (SpecificFallacy "") [ "receipt1"
, "receipt2"
]
, dodgeFallacy = Just MotteAndBailey
, dodgeNicksDoxasticState = Just Disbelief , dodgeNicksDoxasticState = Just Disbelief
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason , dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason
} }

View file

@ -18,7 +18,7 @@ cuckAmberOHearn =
[ { dodgeLink = "https://x.com/FusionProgGuy/status/1413888976281169922?s=20" [ { dodgeLink = "https://x.com/FusionProgGuy/status/1413888976281169922?s=20"
, dodgeDescription = VagueGesture , dodgeDescription = VagueGesture
, dodgeProposition = noProposition , dodgeProposition = noProposition
, dodgeReceipts = [] , dodgeReceipts = ["receipt1"]
, dodgeFallacy = Just (SpecificFallacy "") , dodgeFallacy = Just (SpecificFallacy "")
, dodgeNicksDoxasticState = Nothing , dodgeNicksDoxasticState = Nothing
, dodgeNicksDoxasticReason = NoProp , dodgeNicksDoxasticReason = NoProp

View file

@ -13,7 +13,7 @@ glowDeepDarkGrey =
glowDeepDarkOrange : Attr decorative msg glowDeepDarkOrange : Attr decorative msg
glowDeepDarkOrange = glowDeepDarkOrange =
D.glow colourTheme.shadow 4 D.glow colourTheme.textDeepDarkOrange 4
glowDeepDarkGreyNavbar : Attr decorative msg glowDeepDarkGreyNavbar : Attr decorative msg

View file

@ -535,6 +535,22 @@ hyperBlog inner =
} }
video : SvgTypes.OuterPart msg -> Element msg
video inner =
HeSvg.buildSvg inner
{ svgAttributes =
[ SvgAttr.viewBox "0 0 512 512"
, SvgAttr.fill "currentColor"
]
, svg =
[ path
[ SvgAttr.d "M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM48 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L64 96c-8.8 0-16 7.2-16 16zM416 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM160 128l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L192 96c-17.7 0-32 14.3-32 32zm32 160c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-128 0z"
]
[]
]
}
debate : SvgTypes.OuterPart msg -> Element msg debate : SvgTypes.OuterPart msg -> Element msg
debate inner = debate inner =
HeSvg.buildSvg inner HeSvg.buildSvg inner

View file

@ -29,6 +29,7 @@ import Config.Style.Icons.Icons
, upRootLarge , upRootLarge
, upRootMedium , upRootMedium
, upRootSmall , upRootSmall
, video
) )
import Config.Style.Icons.Types as TySvg exposing (..) import Config.Style.Icons.Types as TySvg exposing (..)
import Config.Style.Transitions import Config.Style.Transitions
@ -418,6 +419,13 @@ items input =
, name = String.toUpper pageNames.pageHyperBlog , name = String.toUpper pageNames.pageHyperBlog
, url = Path.toString Path.Blog , url = Path.toString Path.Blog
} }
, { icon = video
, isCurrent = False
, isNewTabLink = True
, isSubscriberOnly = False
, name = String.toUpper "Video"
, url = "https://video.uprootnutrition.com"
}
, { icon = debate , { icon = debate
, isCurrent = input.route.path == Path.Debate , isCurrent = input.route.path == Path.Debate
, isNewTabLink = False , isNewTabLink = False

View file

@ -263,7 +263,6 @@ articleMaker article =
, spacing 3 , spacing 3
, F.regular , F.regular
, F.alignLeft , F.alignLeft
, F.size 16
, paddingEach , paddingEach
{ top = 8 { top = 8
, bottom = 0 , bottom = 0
@ -313,7 +312,7 @@ articleRows article =
, infoRow "Duration:" (String.fromInt (wordCount article.articleBody // 225) ++ " minutes") , infoRow "Duration:" (String.fromInt (wordCount article.articleBody // 225) ++ " minutes")
, infoRow "Words:" (String.fromInt (wordCount article.articleBody)) , infoRow "Words:" (String.fromInt (wordCount article.articleBody))
] ]
++ (if referenceCount > 2 then ++ (if referenceCount >= 2 then
[ infoRow "Sources:" (String.fromInt referenceCount) ] [ infoRow "Sources:" (String.fromInt referenceCount) ]
else else

View file

@ -19,7 +19,8 @@ import Config.Helpers.CardFormat
import Config.Helpers.Converters exposing (formatSocial) import Config.Helpers.Converters exposing (formatSocial)
import Config.Helpers.Format import Config.Helpers.Format
exposing exposing
( paragraphFontSize ( headerFontSizeSmall
, paragraphFontSize
, paragraphSpacing , paragraphSpacing
) )
import Config.Helpers.Headers.Header exposing (headerMaker) import Config.Helpers.Headers.Header exposing (headerMaker)
@ -29,6 +30,7 @@ import Config.Helpers.Response
( pageList ( pageList
, topLevelContainer , topLevelContainer
) )
import Config.Helpers.ToolTip exposing (tooltipImage)
import Config.Helpers.Viewport exposing (resetViewport) import Config.Helpers.Viewport exposing (resetViewport)
import Config.Pages.Debate.Cuckery.List import Config.Pages.Debate.Cuckery.List
exposing exposing
@ -249,7 +251,7 @@ dodgeMaker cuck =
, width fill , width fill
] ]
<| <|
List.map2 (\x y -> makeDodge x y) List.map2 (\x y -> makeDodge cuck x y)
cuck.cuckDodges cuck.cuckDodges
(List.range 1 (List.length cuck.cuckDodges)) (List.range 1 (List.length cuck.cuckDodges))
@ -293,8 +295,8 @@ dodgeTitle cuck =
[ text "Dodges: " ] [ text "Dodges: " ]
makeDodge : Dodge -> Int -> Element msg makeDodge : Cuck -> Dodge -> Int -> Element msg
makeDodge dodgeEntry index = makeDodge cuck dodge index =
column column
[ F.color colourTheme.textLightGrey [ F.color colourTheme.textLightGrey
, paragraphSpacing , paragraphSpacing
@ -326,15 +328,15 @@ makeDodge dodgeEntry index =
[ spacing 3 [ spacing 3
, width fill , width fill
] ]
[ circumstanceMaker dodgeEntry [ circumstanceMaker cuck dodge
, column , column
[ spacing 3 [ spacing 3
, width fill , width fill
] ]
[ propositionMaker dodgeEntry [ propositionMaker dodge
, reductioMaker dodgeEntry , reductioMaker dodge
, attitudeMaker dodgeEntry , attitudeMaker dodge
, reasonMaker dodgeEntry , reasonMaker dodge
] ]
] ]
] ]
@ -357,97 +359,104 @@ formatProposition proposition =
dodgeCounter : Int -> Element msg dodgeCounter : Int -> Element msg
dodgeCounter index = dodgeCounter index =
column column
([ F.color colourTheme.textLightGrey [ F.color colourTheme.textLightGrey
, paragraphSpacing , paragraphSpacing
, paragraphFontSize , headerFontSizeSmall
] ]
++ [ F.size 18
]
)
[ text (String.fromInt index ++ ". ") ] [ text (String.fromInt index ++ ". ") ]
circumstanceMaker : Dodge -> Element msg circumstanceMaker : Cuck -> Dodge -> Element msg
circumstanceMaker dodgeEntry = circumstanceMaker cuck dodge =
column el
[ width fill [ spacing 5
] ]
[ newTabLink <|
newTabLink
[ paragraphFontSize [ paragraphFontSize
, F.color colourTheme.textLightOrange , F.color colourTheme.textLightOrange
] ]
{ url = dodgeEntry.dodgeLink { url = dodge.dodgeLink
, label = , label =
row [ F.size 18 ] el
[ column [ width fill ] [ headerFontSizeSmall
[ paragraph []
[ el
[ transitionStyleSlow
, hoverFontDarkOrange
]
<|
text
(case dodgeEntry.dodgeDescription of
NoReply ->
"Debate invitation extended with no response"
RanAway ->
"Engaged in written debate and ran away when cornered"
GhostedMe ->
"Debate invitation accepted with no follow-up"
OutrightNo ->
"Debate invitation declined"
InTooDeep ->
"Debate invitation accepted and subsequently retracted"
KillScreen ->
"All further debate invitations preemptively declined"
VagueGesture ->
"Chose to gesture vaguely instead of engaging"
)
, paragraph [ F.color colourTheme.textLightGrey ] [ text "." ]
, column
[ spacing 5
, F.size 12
]
(List.indexedMap
(\index2 link ->
newTabLink
[ paddingEach
{ top = 0
, right = 0
, bottom = 0
, left = 5
}
]
{ url = link
, label =
row [ moveUp 5 ]
[ el
[ transitionStyleSlow
, hoverFontDarkOrange
]
<|
text (String.fromInt (index2 + 1))
, text ", " |> el [ F.color colourTheme.textLightGrey ]
]
}
)
dodgeEntry.dodgeReceipts
)
]
]
] ]
<|
circumstance cuck dodge
} }
circumstance : Cuck -> Dodge -> Element msg
circumstance cuck dodge =
paragraph
[]
[ el
[ transitionStyleSlow
, hoverFontDarkOrange
]
<|
case dodge.dodgeDescription of
NoReply ->
text "Debate invitation extended with no response"
RanAway ->
text "Engaged in written debate and ran away when cornered"
GhostedMe ->
text "Debate invitation accepted with no follow-up"
OutrightNo ->
text "Debate invitation declined"
InTooDeep ->
text "Debate invitation accepted and subsequently retracted"
KillScreen ->
text "All further debate invitations preemptively declined"
VagueGesture ->
text "Chose to gesture vaguely instead of engaging"
, el [ F.color colourTheme.textLightGrey ] <|
text "."
, receipts cuck dodge
] ]
receipts : Cuck -> Dodge -> Element msg
receipts cuck dodge =
row
[ spacing 3
, F.size 12
, paddingEach
{ top = 0
, right = 0
, bottom = 0
, left = 3
}
, htmlAttribute (H.style "position" "relative")
, htmlAttribute (H.style "top" "-5px")
]
<|
List.indexedMap
(\index2 link ->
paragraph
[ alignTop
, F.color colourTheme.textLightOrange
]
[ el
[ tooltipImage ("/cucks/" ++ cuck.cuckImage ++ "/" ++ "receipt" ++ String.fromInt (index2 + 1) ++ ".png")
, transitionStyleSlow
, hoverFontDarkOrange
]
(text (String.fromInt (index2 + 1)))
, text ", " |> el [ F.color colourTheme.textLightGrey ]
]
)
dodge.dodgeReceipts
propositionMaker : Dodge -> Element msg propositionMaker : Dodge -> Element msg
propositionMaker dodgeEntry = propositionMaker dodge =
row row
[ F.color colourTheme.textLightGrey [ F.color colourTheme.textLightGrey
, paragraphSpacing , paragraphSpacing
@ -464,13 +473,13 @@ propositionMaker dodgeEntry =
[ E.width fill [ E.width fill
, alignLeft , alignLeft
] ]
[ paragraph [ F.regular ] [ text (formatProposition dodgeEntry.dodgeProposition) ] [ paragraph [ F.regular ] [ text (formatProposition dodge.dodgeProposition) ]
] ]
] ]
attitudeMaker : Dodge -> Element msg attitudeMaker : Dodge -> Element msg
attitudeMaker dodgeEntry = attitudeMaker dodge =
row row
([ F.color colourTheme.textLightGrey ([ F.color colourTheme.textLightGrey
, paragraphSpacing , paragraphSpacing
@ -489,7 +498,7 @@ attitudeMaker dodgeEntry =
[ E.width fill [ E.width fill
, alignLeft , alignLeft
] ]
[ case dodgeEntry.dodgeNicksDoxasticState of [ case dodge.dodgeNicksDoxasticState of
Nothing -> Nothing ->
paragraph [ F.regular ] [ text "I don't form a doxastic state." ] paragraph [ F.regular ] [ text "I don't form a doxastic state." ]
@ -514,8 +523,8 @@ attitudeMaker dodgeEntry =
reductioMaker : Dodge -> Element msg reductioMaker : Dodge -> Element msg
reductioMaker dodgeEntry = reductioMaker dodge =
case dodgeEntry.dodgeFallacy of case dodge.dodgeFallacy of
Nothing -> Nothing ->
none none
@ -560,7 +569,7 @@ reductioMaker dodgeEntry =
reasonMaker : Dodge -> Element msg reasonMaker : Dodge -> Element msg
reasonMaker dodgeEntry = reasonMaker dodge =
row row
([ F.color colourTheme.textLightGrey ([ F.color colourTheme.textLightGrey
, paragraphSpacing , paragraphSpacing
@ -577,7 +586,7 @@ reasonMaker dodgeEntry =
] ]
, paragraph [ F.regular ] , paragraph [ F.regular ]
[ text <| [ text <|
case dodgeEntry.dodgeNicksDoxasticReason of case dodge.dodgeNicksDoxasticReason of
NoProp -> NoProp ->
"There is no proposition to evaluate." "There is no proposition to evaluate."

0
frontend/static/arguments/luigiterrorist.png Normal file → Executable file
View file

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

0
frontend/static/services/debatecoaching.png Normal file → Executable file
View file

Before

Width:  |  Height:  |  Size: 336 KiB

After

Width:  |  Height:  |  Size: 336 KiB

Before After
Before After