feat: added popup

This commit is contained in:
Nick 2025-01-03 16:47:17 -06:00
parent 1a426736a7
commit 59e4f4f1ab
74 changed files with 380 additions and 174 deletions

View file

@ -25,7 +25,7 @@ Nearly a year ago, I was [invited](https://x.com/zbitter/status/1668413822388916
# THE DEBATE INVITATION # THE DEBATE INVITATION
However, nearly a year after that, Cate Shenanigans put out a general [invite](https://x.com/drcateshanahan/status/1773836787196346592) to debate. Even going so far as to [suggest](https://x.com/drcateshanahan/status/1774490576362062311) that I was scared to face her, to which I replied. Shortly after, she actually decided to engage and [replied](https://x.com/drcateshanahan/status/1774681584907559220) to me, encouraging me to DM her (presumably to work out the details of the debate). After some minor miscommunications, she instructed me in another [reply](https://x.com/drcateshanahan/status/1774830896006185446) to contact her via email. I did. I never received a reply. Some time passed, and Zach Bitter once again started [prodding](https://x.com/zbitter/status/1778171569967190413) at Cate Shenanigans about the status of her debate invitation to me (presumably with the intention of once again offering to host it). A day later, after a brief back and forth, Cate Shenanigans [replied](https://x.com/drcateshanahan/status/1778430104617603232) with what seemed like an alteration in the conditions to debate. At least this is how I interpreted it, as someone who has an interest in her arguments. I [pressed](https://x.com/TheNutrivore/status/1778456234078662984) her for clarification, and even quoted her in a [post](https://x.com/TheNutrivore/status/1778490825124552875) later that day about it, and received no reply. But not before she made her own [post](https://x.com/drcateshanahan/status/1778483241755787308) in a different thread, which I didn't initially see, wherein she withdrew from the debate that day. What a bizarre series of behaviours. However, nearly a year after that, Cate Shenanigans put out a general [invite](https://x.com/drcateshanahan/status/1773836787196346592) to debate. Even going so far as to [suggest](https://x.com/drcateshanahan/status/1774490576362062311) that I was scared to face her, to which I replied. Shortly after, she actually decided to engage and [replied](https://x.com/drcateshanahan/status/1774681584907559220) to me, encouraging me to DM her (presumably to work out the details of the debate). After some minor miscommunications, she instructed me in another [reply](https://x.com/drcateshanahan/status/1774830896006185446) to contact her via email. I did. I never received a reply. Some time passed, and Zach Bitter once again started [prodding](https://x.com/zbitter/status/1778171569967190413) at Cate Shenanigans about the status of her debate invitation to me (presumably with the intention of once again offering to host it). A day later, after a brief back and forth, Cate Shenanigans [replied](https://x.com/drcateshanahan/status/1778430104617603232) with what seemed like an alteration in the conditions to debate. At least this is how I interpreted it, as someone who has an interest in her arguments. I [pressed](https://x.com/upRootNutrition/status/1778456234078662984) her for clarification, and even quoted her in a [post](https://x.com/upRootNutrition/status/1778490825124552875) later that day about it, and received no reply. But not before she made her own [post](https://x.com/drcateshanahan/status/1778483241755787308) in a different thread, which I didn't initially see, wherein she withdrew from the debate that day. What a bizarre series of behaviours.
# THE EMAIL EXCHANGE # THE EMAIL EXCHANGE
@ -61,7 +61,7 @@ Fast forward to June 2nd, 2024, and I was DMed by another third party looking to
> First of all, it's not just that someone else has previously wanted to set up a debate between Cate and myself. Cate herself put out what I (quite reasonably) interpreted as a general invitation to those challenging her positions, which can be found [here](https://x.com/drcateshanahan/status/1773836787196346592), on March 29th. I accepted the invite, to which Cate replied on March 31st with an invitation to me to DM her (presumably to set up a debate), which can be found [here](https://x.com/drcateshanahan/status/1774681584907559220). I responded via email on April 1st, after she invited me to do so [here](https://x.com/drcateshanahan/status/1774830896006185446), on the same day. There was no third party present at this time. This was Cate clearly inviting me, personally, to debate. Just to be clear about the facts. > First of all, it's not just that someone else has previously wanted to set up a debate between Cate and myself. Cate herself put out what I (quite reasonably) interpreted as a general invitation to those challenging her positions, which can be found [here](https://x.com/drcateshanahan/status/1773836787196346592), on March 29th. I accepted the invite, to which Cate replied on March 31st with an invitation to me to DM her (presumably to set up a debate), which can be found [here](https://x.com/drcateshanahan/status/1774681584907559220). I responded via email on April 1st, after she invited me to do so [here](https://x.com/drcateshanahan/status/1774830896006185446), on the same day. There was no third party present at this time. This was Cate clearly inviting me, personally, to debate. Just to be clear about the facts.
> >
> Furthermore, while we're being clear about the facts, Cate also presumably withdrew from the debate for what would be completely bizarre reasons that are ultimately orthogonal to the debate itself, which can be found [here](https://x.com/drcateshanahan/status/1778483241755787308). But, not before implying that she had altered the necessary conditions for a debate, which can be found [here](https://x.com/TheNutrivore/status/1778490825124552875). Whatever the case, declining to debate someone on an empirical position because they disagree with you on an unrelated normative position is **beyond** strange, and honestly it was so outlandish that I just flagged it as a blatant excuse not to debate. I hope, Host, you can also see that this is the most reasonable interpretation of her behaviour. > Furthermore, while we're being clear about the facts, Cate also presumably withdrew from the debate for what would be completely bizarre reasons that are ultimately orthogonal to the debate itself, which can be found [here](https://x.com/drcateshanahan/status/1778483241755787308). But, not before implying that she had altered the necessary conditions for a debate, which can be found [here](https://x.com/upRootNutrition/status/1778490825124552875). Whatever the case, declining to debate someone on an empirical position because they disagree with you on an unrelated normative position is **beyond** strange, and honestly it was so outlandish that I just flagged it as a blatant excuse not to debate. I hope, Host, you can also see that this is the most reasonable interpretation of her behaviour.
> >
> Now that that's out of the way and clarified, I'd be happy to debate Cate on a number of propositions. So long as she's done making excuses. Specifically, I might want to debate against [this](https://x.com/drcateshanahan/status/1516786219841073153) proposition: > Now that that's out of the way and clarified, I'd be happy to debate Cate on a number of propositions. So long as she's done making excuses. Specifically, I might want to debate against [this](https://x.com/drcateshanahan/status/1516786219841073153) proposition:
> >
@ -221,7 +221,7 @@ Furthermore, if she was truly interested in contesting my views, why did she not
**B) Shifting the goalpost three times** **B) Shifting the goalpost three times**
Months ago, she dodged me on the grounds that I haven't read her book and that reading her book was necessary to have a debate. I [offered](https://x.com/TheNutrivore/status/1778490825124552875) to read her book then to satisfy the criteria and got no reply. Now, she dodged me for the second time on these grounds, and when I directly offered to read her book and satisfy her criteria, she shifted the goalpost a third time. Apparently, it's not good enough that I read her book, but now the entire audience needs to read her book in order for us to debate. This is just the most cuckish form of sophistry imaginable, and she should be ashamed. Months ago, she dodged me on the grounds that I haven't read her book and that reading her book was necessary to have a debate. I [offered](https://x.com/upRootNutrition/status/1778490825124552875) to read her book then to satisfy the criteria and got no reply. Now, she dodged me for the second time on these grounds, and when I directly offered to read her book and satisfy her criteria, she shifted the goalpost a third time. Apparently, it's not good enough that I read her book, but now the entire audience needs to read her book in order for us to debate. This is just the most cuckish form of sophistry imaginable, and she should be ashamed.
**C) Her goalposts are dumb anyway** **C) Her goalposts are dumb anyway**

View file

@ -25,7 +25,7 @@ cuckAdamSinger =
, cuckSocial = "https://x.com/AdamSinger" , cuckSocial = "https://x.com/AdamSinger"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/TheNutrivore/status/1566491269194719232?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/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 = , dodgeReceipts =

View file

@ -24,7 +24,7 @@ cuckAnnChilders =
, cuckSocial = "https://x.com/AnnChildersMD" , cuckSocial = "https://x.com/AnnChildersMD"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1447245484356108292?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1447245484356108292?s=20"
, dodgeDescription = RanAway , dodgeDescription = RanAway
, dodgeProposition = "Diets humans thrived on in the wild, sans dentists and doctors, are correct." , dodgeProposition = "Diets humans thrived on in the wild, sans dentists and doctors, are correct."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -27,7 +27,7 @@ cuckAnthonyGustin =
, cuckSocial = "https://x.com/dranthonygustin" , cuckSocial = "https://x.com/dranthonygustin"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1482502242632552449?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1482502242632552449?s=20"
, dodgeDescription = GhostedMe , dodgeDescription = GhostedMe
, dodgeProposition = commonProps.propSeedOils , dodgeProposition = commonProps.propSeedOils
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -24,7 +24,7 @@ cuckAshwaniGarg =
, cuckSocial = "https://x.com/agargmd" , cuckSocial = "https://x.com/agargmd"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1443328350982967303?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1443328350982967303?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Representing the protein content of beans by dry weight is misleading." , dodgeProposition = "Representing the protein content of beans by dry weight is misleading."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckAustinHerbert =
, cuckSocial = "https://x.com/_AustinHerbert" , cuckSocial = "https://x.com/_AustinHerbert"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/TheNutrivore/status/1663698981833277440" [ { dodgeLink = "https://x.com/upRootNutrition/status/1663698981833277440"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Seed oils make you fat and kill your body." , dodgeProposition = "Seed oils make you fat and kill your body."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckBenBikman =
, cuckSocial = "https://x.com/BenBikmanPhD" , cuckSocial = "https://x.com/BenBikmanPhD"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/TheNutrivore/status/1587547250074746880?s=19" [ { dodgeLink = "https://x.com/upRootNutrition/status/1587547250074746880?s=19"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "The diet-heart hypothesis is false." , dodgeProposition = "The diet-heart hypothesis is false."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -24,7 +24,7 @@ cuckBennyMalone =
, cuckSocial = "https://x.com/bennymaloneUK" , cuckSocial = "https://x.com/bennymaloneUK"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/TheNutrivore/status/1569046576609300489" [ { dodgeLink = "https://x.com/upRootNutrition/status/1569046576609300489"
, dodgeDescription = RanAway , dodgeDescription = RanAway
, dodgeProposition = "Eating oysters is compatible with veganism." , dodgeProposition = "Eating oysters is compatible with veganism."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckBradCampbell =
, cuckSocial = "https://x.com/DrBradCampbell" , cuckSocial = "https://x.com/DrBradCampbell"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1530933999610171392?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1530933999610171392?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Canola oil kills you slowly." , dodgeProposition = "Canola oil kills you slowly."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -26,7 +26,7 @@ cuckBradCohn =
, cuckSocial = "https://x.com/BradCohn" , cuckSocial = "https://x.com/BradCohn"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/TheNutrivore/status/1687535030862831616" [ { dodgeLink = "https://x.com/upRootNutrition/status/1687535030862831616"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = commonProps.propSeedOils , dodgeProposition = commonProps.propSeedOils
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckBretWeinstein =
, cuckSocial = "https://x.com/BretWeinstein" , cuckSocial = "https://x.com/BretWeinstein"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/TheNutrivore/status/1858356347332374597" [ { dodgeLink = "https://x.com/upRootNutrition/status/1858356347332374597"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Seed oils are dangerous." , dodgeProposition = "Seed oils are dangerous."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -33,7 +33,7 @@ cuckBretWeinstein =
, dodgeNicksDoxasticState = Just Disbelief , dodgeNicksDoxasticState = Just Disbelief
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason , dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason
} }
, { dodgeLink = "https://x.com/TheNutrivore/status/1858745910701777229" , { dodgeLink = "https://x.com/upRootNutrition/status/1858745910701777229"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Seed oils are dangerous." , dodgeProposition = "Seed oils are dangerous."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -41,7 +41,7 @@ cuckBretWeinstein =
, dodgeNicksDoxasticState = Just Disbelief , dodgeNicksDoxasticState = Just Disbelief
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason , dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason
} }
, { dodgeLink = "https://x.com/TheNutrivore/status/1858746414882263256" , { dodgeLink = "https://x.com/upRootNutrition/status/1858746414882263256"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Seed oils are dangerous." , dodgeProposition = "Seed oils are dangerous."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -26,7 +26,7 @@ cuckBrianKerley =
, cuckSocial = "https://x.com/SeedOilDsrspctr" , cuckSocial = "https://x.com/SeedOilDsrspctr"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1483889771134926849?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1483889771134926849?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = commonProps.propSeedOils , dodgeProposition = commonProps.propSeedOils
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -34,7 +34,7 @@ cuckBrianKerley =
, dodgeNicksDoxasticState = Just Belief , dodgeNicksDoxasticState = Just Belief
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason , dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason
} }
, { dodgeLink = "https://x.com/TheNutrivore/status/1783200352646619227" , { dodgeLink = "https://x.com/upRootNutrition/status/1783200352646619227"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = commonProps.propSeedOils , dodgeProposition = commonProps.propSeedOils
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckCarnivoreAurelius =
, cuckSocial = "https://x.com/AlpacaAurelius" , cuckSocial = "https://x.com/AlpacaAurelius"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1538272143061815299?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1538272143061815299?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Vegans kill 100x more animals." , dodgeProposition = "Vegans kill 100x more animals."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -26,7 +26,7 @@ cuckCateShanahan =
, cuckSocial = "https://x.com/drcateshanahan" , cuckSocial = "https://x.com/drcateshanahan"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1266438463634632709?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1266438463634632709?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Seed oils are pro-inflammatory." , dodgeProposition = "Seed oils are pro-inflammatory."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -34,7 +34,7 @@ cuckCateShanahan =
, dodgeNicksDoxasticState = Just Disbelief , dodgeNicksDoxasticState = Just Disbelief
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReasonInflammation , dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReasonInflammation
} }
, { dodgeLink = "https://x.com/The_Nutrivore/status/1479497980570857474?s=20" , { dodgeLink = "https://x.com/upRootNutrition/status/1479497980570857474?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Those who defend seed oils are just regurgitating the garbage that the AHA pumps out." , dodgeProposition = "Those who defend seed oils are just regurgitating the garbage that the AHA pumps out."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -42,7 +42,7 @@ cuckCateShanahan =
, dodgeNicksDoxasticState = Just Disbelief , dodgeNicksDoxasticState = Just Disbelief
, dodgeNicksDoxasticReason = SpecificPropReason "I defend seed oils and I've never even read the AHA's material on the subject." , dodgeNicksDoxasticReason = SpecificPropReason "I defend seed oils and I've never even read the AHA's material on the subject."
} }
, { dodgeLink = "https://x.com/The_Nutrivore/status/1487215337116508162?s=20" , { dodgeLink = "https://x.com/upRootNutrition/status/1487215337116508162?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Seed oils are toxic." , dodgeProposition = "Seed oils are toxic."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -58,7 +58,7 @@ cuckCateShanahan =
, dodgeNicksDoxasticState = Just Disbelief , dodgeNicksDoxasticState = Just Disbelief
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason , dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason
} }
, { dodgeLink = "https://x.com/The_Nutrivore/status/1537544882532716544?s=20" , { dodgeLink = "https://x.com/upRootNutrition/status/1537544882532716544?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Nick is just following the AHA marching orders." , dodgeProposition = "Nick is just following the AHA marching orders."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -66,7 +66,7 @@ cuckCateShanahan =
, dodgeNicksDoxasticState = Just Disbelief , dodgeNicksDoxasticState = Just Disbelief
, dodgeNicksDoxasticReason = SpecificPropReason "I've never even read the AHA's recommendations on anything." , dodgeNicksDoxasticReason = SpecificPropReason "I've never even read the AHA's recommendations on anything."
} }
, { dodgeLink = "https://x.com/TheNutrivore/status/1778616438116483102" , { dodgeLink = "https://x.com/upRootNutrition/status/1778616438116483102"
, dodgeDescription = RanAway , dodgeDescription = RanAway
, dodgeProposition = commonProps.propSeedOils , dodgeProposition = commonProps.propSeedOils
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -74,7 +74,7 @@ cuckCateShanahan =
, dodgeNicksDoxasticState = Just Belief , dodgeNicksDoxasticState = Just Belief
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason , dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason
} }
, { dodgeLink = "https://x.com/TheNutrivore/status/1779185488521310601" , { dodgeLink = "https://x.com/upRootNutrition/status/1779185488521310601"
, dodgeDescription = OutrightNo , dodgeDescription = OutrightNo
, dodgeProposition = commonProps.propSeedOils , dodgeProposition = commonProps.propSeedOils
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -82,7 +82,7 @@ cuckCateShanahan =
, dodgeNicksDoxasticState = Just Belief , dodgeNicksDoxasticState = Just Belief
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason , dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason
} }
, { dodgeLink = "https://x.com/TheNutrivore/status/1778616438116483102" , { dodgeLink = "https://x.com/upRootNutrition/status/1778616438116483102"
, dodgeDescription = KillScreen , dodgeDescription = KillScreen
, dodgeProposition = commonProps.propSeedOils , dodgeProposition = commonProps.propSeedOils
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -90,7 +90,7 @@ cuckCateShanahan =
, dodgeNicksDoxasticState = Just Belief , dodgeNicksDoxasticState = Just Belief
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason , dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason
} }
, { dodgeLink = "https://x.com/TheNutrivore/status/1798766450255253987" , { dodgeLink = "https://x.com/upRootNutrition/status/1798766450255253987"
, dodgeDescription = KillScreen , dodgeDescription = KillScreen
, dodgeProposition = "Current levels of seed oil consumption are the main driver of heart disease." , dodgeProposition = "Current levels of seed oil consumption are the main driver of heart disease."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckClaraAboel =
, cuckSocial = "https://x.com/AIWellnessCoach" , cuckSocial = "https://x.com/AIWellnessCoach"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/TheNutrivore/status/1727510906655969736" [ { dodgeLink = "https://x.com/upRootNutrition/status/1727510906655969736"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Polyunsaturated fatty acids are known to initiate cancer." , dodgeProposition = "Polyunsaturated fatty acids are known to initiate cancer."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -33,7 +33,7 @@ cuckCliffHarvey =
, dodgeNicksDoxasticState = Just Disbelief , dodgeNicksDoxasticState = Just Disbelief
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSaturatedFatReason , dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSaturatedFatReason
} }
, { dodgeLink = "https://x.com/The_Nutrivore/status/1500650543886204929?s=20" , { dodgeLink = "https://x.com/upRootNutrition/status/1500650543886204929?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Saturated fat in the diet does not independently increase the risk of mortality." , dodgeProposition = "Saturated fat in the diet does not independently increase the risk of mortality."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckDaveFeldman =
, cuckSocial = "https://x.com/realDaveFeldman" , cuckSocial = "https://x.com/realDaveFeldman"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1306625219440730118?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1306625219440730118?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = noProposition , dodgeProposition = noProposition
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckDavidGornoski =
, cuckSocial = "https://x.com/DavidGornoski" , cuckSocial = "https://x.com/DavidGornoski"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/TheNutrivore/status/1525474063044550657?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1525474063044550657?s=20"
, dodgeDescription = OutrightNo , dodgeDescription = OutrightNo
, dodgeProposition = "Polyunsaturated fatty acids cause obesity." , dodgeProposition = "Polyunsaturated fatty acids cause obesity."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckDianaRodgers =
, cuckSocial = "https://x.com/sustainabledish" , cuckSocial = "https://x.com/sustainabledish"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1365857401786814465?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1365857401786814465?s=20"
, dodgeDescription = InTooDeep , dodgeDescription = InTooDeep
, dodgeProposition = "Saturated fat doesn't increase the risk of coronary heart disease." , dodgeProposition = "Saturated fat doesn't increase the risk of coronary heart disease."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -28,7 +28,7 @@ cuckEdwardGoeke =
, cuckSocial = "https://x.com/GoekeEddie" , cuckSocial = "https://x.com/GoekeEddie"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/TheNutrivore/status/1773421625150746784?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1773421625150746784?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = propSeedOils , dodgeProposition = propSeedOils
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -36,7 +36,7 @@ cuckEdwardGoeke =
, dodgeNicksDoxasticState = Just Disbelief , dodgeNicksDoxasticState = Just Disbelief
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReasonInflammation , dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReasonInflammation
} }
, { dodgeLink = "https://x.com/TheNutrivore/status/1774154640403423359?s=20" , { dodgeLink = "https://x.com/upRootNutrition/status/1774154640403423359?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = propSeedOils , dodgeProposition = propSeedOils
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -24,7 +24,7 @@ cuckElieJarrouge =
, cuckSocial = "https://x.com/ElieJarrougeMD" , cuckSocial = "https://x.com/ElieJarrougeMD"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/TheNutrivore/status/1506845469980315648?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1506845469980315648?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Sugar, refined carbs, and seed oils are poison." , dodgeProposition = "Sugar, refined carbs, and seed oils are poison."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckGaryBrecka =
, cuckSocial = "https://x.com/garybrecka1" , cuckSocial = "https://x.com/garybrecka1"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/TheNutrivore/status/1726664526316372125" [ { dodgeLink = "https://x.com/upRootNutrition/status/1726664526316372125"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Linoleic acid consumption causes atherosclerosis." , dodgeProposition = "Linoleic acid consumption causes atherosclerosis."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -26,7 +26,7 @@ cuckGaryFettke =
, cuckSocial = "https://x.com/FructoseNo" , cuckSocial = "https://x.com/FructoseNo"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/TheNutrivore/status/1460983496524980224" [ { dodgeLink = "https://x.com/upRootNutrition/status/1460983496524980224"
, dodgeDescription = GhostedMe , dodgeDescription = GhostedMe
, dodgeProposition = commonProps.propLinoleicAcid , dodgeProposition = commonProps.propLinoleicAcid
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckGeorgeMartin =
, cuckSocial = "https://x.com/CarnismDebunked" , cuckSocial = "https://x.com/CarnismDebunked"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/TheNutrivore/status/1815098730141651021" [ { dodgeLink = "https://x.com/upRootNutrition/status/1815098730141651021"
, dodgeDescription = RanAway , dodgeDescription = RanAway
, dodgeProposition = "Nick has killed more animals in his life than a mature bear." , dodgeProposition = "Nick has killed more animals in his life than a mature bear."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -27,7 +27,7 @@ cuckGuyAustin =
, cuckSocial = "https://x.com/GuyNAustin" , cuckSocial = "https://x.com/GuyNAustin"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/TheNutrivore/status/1538607434176020480" [ { dodgeLink = "https://x.com/upRootNutrition/status/1538607434176020480"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = noProposition , dodgeProposition = noProposition
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -28,7 +28,7 @@ cuckIvorCummins =
, cuckSocial = "https://x.com/FatEmperor" , cuckSocial = "https://x.com/FatEmperor"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1268600451693494273?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1268600451693494273?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = propLDL , dodgeProposition = propLDL
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -27,7 +27,7 @@ cuckJakeMey =
, cuckSocial = "https://x.com/CakeNutrition" , cuckSocial = "https://x.com/CakeNutrition"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1490009495581298690?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1490009495581298690?s=20"
, dodgeDescription = RanAway , dodgeDescription = RanAway
, dodgeProposition = "Vegan Friday meals are unhealthy for children." , dodgeProposition = "Vegan Friday meals are unhealthy for children."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -35,7 +35,7 @@ cuckJakeMey =
, dodgeNicksDoxasticState = Just Disbelief , dodgeNicksDoxasticState = Just Disbelief
, dodgeNicksDoxasticReason = SpecificPropReason propReason , dodgeNicksDoxasticReason = SpecificPropReason propReason
} }
, { dodgeLink = "https://x.com/The_Nutrivore/status/1490060813138280450?s=20" , { dodgeLink = "https://x.com/upRootNutrition/status/1490060813138280450?s=20"
, dodgeDescription = OutrightNo , dodgeDescription = OutrightNo
, dodgeProposition = "Vegan Friday meals are unhealthy for children." , dodgeProposition = "Vegan Friday meals are unhealthy for children."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -43,7 +43,7 @@ cuckJakeMey =
, dodgeNicksDoxasticState = Just Disbelief , dodgeNicksDoxasticState = Just Disbelief
, dodgeNicksDoxasticReason = SpecificPropReason propReason , dodgeNicksDoxasticReason = SpecificPropReason propReason
} }
, { dodgeLink = "https://x.com/The_Nutrivore/status/1495419256737091585?s=20" , { dodgeLink = "https://x.com/upRootNutrition/status/1495419256737091585?s=20"
, dodgeDescription = KillScreen , dodgeDescription = KillScreen
, dodgeProposition = "Vegan Friday meals are unhealthy for children." , dodgeProposition = "Vegan Friday meals are unhealthy for children."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -26,7 +26,7 @@ cuckJamesDiNicolantonio =
, cuckSocial = "https://x.com/drjamesdinic" , cuckSocial = "https://x.com/drjamesdinic"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1460788569388171268?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1460788569388171268?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = commonProps.propLinoleicAcid , dodgeProposition = commonProps.propLinoleicAcid
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -29,7 +29,7 @@ cuckJosephEverett =
, cuckSocial = "https://x.com/JEverettLearned" , cuckSocial = "https://x.com/JEverettLearned"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1535334822825971712?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1535334822825971712?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = propSeedOils , dodgeProposition = propSeedOils
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -37,7 +37,7 @@ cuckJosephEverett =
, dodgeNicksDoxasticState = Just Disbelief , dodgeNicksDoxasticState = Just Disbelief
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReasonChronicDisease , dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReasonChronicDisease
} }
, { dodgeLink = "https://x.com/TheNutrivore/status/1555138038740680704?s=20" , { dodgeLink = "https://x.com/upRootNutrition/status/1555138038740680704?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = propSeedOils , dodgeProposition = propSeedOils
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckJustinMares =
, cuckSocial = "https://x.com/jwmares" , cuckSocial = "https://x.com/jwmares"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1329266554089869312?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1329266554089869312?s=20"
, dodgeDescription = RanAway , dodgeDescription = RanAway
, dodgeProposition = "Vegetable oils drive inflammation and are causally linked to weight gain and diseases of inflammation." , dodgeProposition = "Vegetable oils drive inflammation and are causally linked to weight gain and diseases of inflammation."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckKaitMalthaner =
, cuckSocial = "https://x.com/healthcoachkait" , cuckSocial = "https://x.com/healthcoachkait"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1503258756687306753?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1503258756687306753?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Omega-6 is pro-inflammatory." , dodgeProposition = "Omega-6 is pro-inflammatory."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -42,7 +42,7 @@ cuckKemMinnick =
, dodgeNicksDoxasticState = Just Belief , dodgeNicksDoxasticState = Just Belief
, dodgeNicksDoxasticReason = SpecificPropReason reason , dodgeNicksDoxasticReason = SpecificPropReason reason
} }
, { dodgeLink = "https://x.com/The_Nutrivore/status/1476990862793986052?s=20" , { dodgeLink = "https://x.com/upRootNutrition/status/1476990862793986052?s=20"
, dodgeDescription = RanAway , dodgeDescription = RanAway
, dodgeProposition = prop , dodgeProposition = prop
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -30,7 +30,7 @@ cuckKenBerry =
, cuckSocial = "https://x.com/KenDBerryMD" , cuckSocial = "https://x.com/KenDBerryMD"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1366524889067368449?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1366524889067368449?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Type 2 Diabetes is chronic carbohydrate overdose." , dodgeProposition = "Type 2 Diabetes is chronic carbohydrate overdose."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -38,7 +38,7 @@ cuckKenBerry =
, dodgeNicksDoxasticState = Just Agnostic , dodgeNicksDoxasticState = Just Agnostic
, dodgeNicksDoxasticReason = VagueProp , dodgeNicksDoxasticReason = VagueProp
} }
, { dodgeLink = "https://x.com/TheNutrivore/status/1539720236701589504?s=20" , { dodgeLink = "https://x.com/upRootNutrition/status/1539720236701589504?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = propAnimalFat , dodgeProposition = propAnimalFat
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -46,7 +46,7 @@ cuckKenBerry =
, dodgeNicksDoxasticState = Just Disbelief , dodgeNicksDoxasticState = Just Disbelief
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason , dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason
} }
, { dodgeLink = "https://x.com/TheNutrivore/status/1539721408372039680?s=20" , { dodgeLink = "https://x.com/upRootNutrition/status/1539721408372039680?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = propAnimalFat , dodgeProposition = propAnimalFat
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -54,7 +54,7 @@ cuckKenBerry =
, dodgeNicksDoxasticState = Just Disbelief , dodgeNicksDoxasticState = Just Disbelief
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason , dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason
} }
, { dodgeLink = "https://x.com/TheNutrivore/status/1813969807521300615" , { dodgeLink = "https://x.com/upRootNutrition/status/1813969807521300615"
, dodgeDescription = InTooDeep , dodgeDescription = InTooDeep
, dodgeProposition = noProposition , dodgeProposition = noProposition
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -26,7 +26,7 @@ cuckKevinStock =
, cuckSocial = "https://x.com/kevinstock12" , cuckSocial = "https://x.com/kevinstock12"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1530140722225102848?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1530140722225102848?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = noProposition , dodgeProposition = noProposition
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -34,7 +34,7 @@ cuckKevinStock =
, dodgeNicksDoxasticState = Nothing , dodgeNicksDoxasticState = Nothing
, dodgeNicksDoxasticReason = NoProp , dodgeNicksDoxasticReason = NoProp
} }
, { dodgeLink = "https://x.com/The_Nutrivore/status/1534927799911317509?s=20" , { dodgeLink = "https://x.com/upRootNutrition/status/1534927799911317509?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Saturated fat does not cause cardiovascular disease." , dodgeProposition = "Saturated fat does not cause cardiovascular disease."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckKyleMamounis =
, cuckSocial = "https://x.com/Nutricrinology" , cuckSocial = "https://x.com/Nutricrinology"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1389259133044477953?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1389259133044477953?s=20"
, dodgeDescription = RanAway , dodgeDescription = RanAway
, dodgeProposition = "Statins do not prevent cardiovascular events." , dodgeProposition = "Statins do not prevent cardiovascular events."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckMarkSisson =
, cuckSocial = "https://x.com/Mark_Sisson" , cuckSocial = "https://x.com/Mark_Sisson"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/TheNutrivore/status/1488360227141419009?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1488360227141419009?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = noProposition , dodgeProposition = noProposition
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -37,7 +37,7 @@ cuckMaxLugavere =
, dodgeNicksDoxasticState = Just Disbelief , dodgeNicksDoxasticState = Just Disbelief
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReasonChronicDisease , dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReasonChronicDisease
} }
, { dodgeLink = "https://x.com/The_Nutrivore/status/1518307089742848000?s=20" , { dodgeLink = "https://x.com/upRootNutrition/status/1518307089742848000?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = prop , dodgeProposition = prop
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckMichaelManderville =
, cuckSocial = "https://x.com/MikeManderville" , cuckSocial = "https://x.com/MikeManderville"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1503036463306489856?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1503036463306489856?s=20"
, dodgeDescription = RanAway , dodgeDescription = RanAway
, dodgeProposition = "A logically coherent position will have logically coherent answer to a logically coherent hypothetical." , dodgeProposition = "A logically coherent position will have logically coherent answer to a logically coherent hypothetical."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckMikeMutzel =
, cuckSocial = "https://x.com/MikeMutzel" , cuckSocial = "https://x.com/MikeMutzel"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1414457776982552576?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1414457776982552576?s=20"
, dodgeDescription = RanAway , dodgeDescription = RanAway
, dodgeProposition = "COVID is nothing more than a cold to those that are healthy." , dodgeProposition = "COVID is nothing more than a cold to those that are healthy."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -33,7 +33,7 @@ cuckMikeMutzel =
, dodgeNicksDoxasticState = Just Agnostic , dodgeNicksDoxasticState = Just Agnostic
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propEmpiricalClaim , dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propEmpiricalClaim
} }
, { dodgeLink = "https://x.com/TheNutrivore/status/1584645853771616256?s=20" , { dodgeLink = "https://x.com/upRootNutrition/status/1584645853771616256?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "There is little to no association between saturated fat and cardiovascular disease." , dodgeProposition = "There is little to no association between saturated fat and cardiovascular disease."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckMikeSweeney =
, cuckSocial = "https://x.com/thelowcarb_rd" , cuckSocial = "https://x.com/thelowcarb_rd"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/TheNutrivore/status/1746962254052962552" [ { dodgeLink = "https://x.com/upRootNutrition/status/1746962254052962552"
, dodgeDescription = OutrightNo , dodgeDescription = OutrightNo
, dodgeProposition = "Vegan diets are nowhere near appropriate for the average person in society." , dodgeProposition = "Vegan diets are nowhere near appropriate for the average person in society."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -41,7 +41,7 @@ cuckMikeSweeney =
, dodgeNicksDoxasticState = Just Agnostic , dodgeNicksDoxasticState = Just Agnostic
, dodgeNicksDoxasticReason = VagueProp , dodgeNicksDoxasticReason = VagueProp
} }
, { dodgeLink = "https://x.com/TheNutrivore/status/1776652108646821913?t=Pf4sfAC1Z0pAcxGfQFr7oQ" , { dodgeLink = "https://x.com/upRootNutrition/status/1776652108646821913?t=Pf4sfAC1Z0pAcxGfQFr7oQ"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Cheerios cause nausea, vomiting, seizures, irregular heartbeat, liver damage, and coma." , dodgeProposition = "Cheerios cause nausea, vomiting, seizures, irregular heartbeat, liver damage, and coma."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -24,7 +24,7 @@ cuckNickEggleton =
, cuckSocial = "https://x.com/NickEggleton" , cuckSocial = "https://x.com/NickEggleton"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1266626885703720961?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1266626885703720961?s=20"
, dodgeDescription = OutrightNo , dodgeDescription = OutrightNo
, dodgeProposition = "Polyunsaturated fats are poison." , dodgeProposition = "Polyunsaturated fats are poison."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckNinaTeicholz =
, cuckSocial = "https://x.com/bigfatsurprise" , cuckSocial = "https://x.com/bigfatsurprise"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/TheNutrivore/status/1556510529014882305?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1556510529014882305?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "The science linking red meat to heart disease is very weak." , dodgeProposition = "The science linking red meat to heart disease is very weak."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -33,7 +33,7 @@ cuckNinaTeicholz =
, dodgeNicksDoxasticState = Just Disbelief , dodgeNicksDoxasticState = Just Disbelief
, dodgeNicksDoxasticReason = SpecificPropReason "The aggregate of the data suggests red meat increases the risk of heart disease." , dodgeNicksDoxasticReason = SpecificPropReason "The aggregate of the data suggests red meat increases the risk of heart disease."
} }
, { dodgeLink = "https://x.com/TheNutrivore/status/1467571763865210881?s=20" , { dodgeLink = "https://x.com/upRootNutrition/status/1467571763865210881?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "The available evidence supports limiting saturated fat intake for coronary heart disease risk reduction." , dodgeProposition = "The available evidence supports limiting saturated fat intake for coronary heart disease risk reduction."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -41,7 +41,7 @@ cuckNinaTeicholz =
, dodgeNicksDoxasticState = Just Belief , dodgeNicksDoxasticState = Just Belief
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSaturatedFatReason , dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSaturatedFatReason
} }
, { dodgeLink = "https://x.com/TheNutrivore/status/1538895943050878977?s=20" , { dodgeLink = "https://x.com/upRootNutrition/status/1538895943050878977?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Vegans pretend biology isn't real." , dodgeProposition = "Vegans pretend biology isn't real."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -32,7 +32,7 @@ cuckNorstrongChris =
, dodgeNicksDoxasticState = Just Agnostic , dodgeNicksDoxasticState = Just Agnostic
, dodgeNicksDoxasticReason = VagueProp , dodgeNicksDoxasticReason = VagueProp
} }
, { dodgeLink = "https://x.com/The_Nutrivore/status/1534573919562350594?s=20" , { dodgeLink = "https://x.com/upRootNutrition/status/1534573919562350594?s=20"
, dodgeDescription = OutrightNo , dodgeDescription = OutrightNo
, dodgeProposition = "Nutrition science as a whole is shit." , dodgeProposition = "Nutrition science as a whole is shit."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -40,7 +40,7 @@ cuckNorstrongChris =
, dodgeNicksDoxasticState = Just Agnostic , dodgeNicksDoxasticState = Just Agnostic
, dodgeNicksDoxasticReason = VagueProp , dodgeNicksDoxasticReason = VagueProp
} }
, { dodgeLink = "https://x.com/TheNutrivore/status/1534614710196260865?s=20" , { dodgeLink = "https://x.com/upRootNutrition/status/1534614710196260865?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Nutrition science as a whole is shit." , dodgeProposition = "Nutrition science as a whole is shit."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -43,7 +43,7 @@ cuckPaulMason =
, dodgeNicksDoxasticState = Just Agnostic , dodgeNicksDoxasticState = Just Agnostic
, dodgeNicksDoxasticReason = VagueProp , dodgeNicksDoxasticReason = VagueProp
} }
, { dodgeLink = "https://x.com/The_Nutrivore/status/1461361726943760391?s=20" , { dodgeLink = "https://x.com/upRootNutrition/status/1461361726943760391?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = commonProps.propLinoleicAcid , dodgeProposition = commonProps.propLinoleicAcid
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -31,7 +31,7 @@ cuckPaulSaladino =
, cuckSocial = "https://x.com/paulsaladinomd" , cuckSocial = "https://x.com/paulsaladinomd"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1275912849999695872?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1275912849999695872?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Subsidies for corn and soy are huge contributors to the chronic disease epidemic in the US." , dodgeProposition = "Subsidies for corn and soy are huge contributors to the chronic disease epidemic in the US."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -55,7 +55,7 @@ cuckPaulSaladino =
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
, dodgeFallacy = Just AppealToNature , dodgeFallacy = Just AppealToNature
} }
, { dodgeLink = "https://x.com/The_Nutrivore/status/1282851963902636032?s=20" , { dodgeLink = "https://x.com/upRootNutrition/status/1282851963902636032?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = prop , dodgeProposition = prop
, dodgeNicksDoxasticState = Just Agnostic , dodgeNicksDoxasticState = Just Agnostic
@ -63,7 +63,7 @@ cuckPaulSaladino =
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
, dodgeFallacy = Just AppealToNature , dodgeFallacy = Just AppealToNature
} }
, { dodgeLink = "https://x.com/The_Nutrivore/status/1469136550046814219?s=20" , { dodgeLink = "https://x.com/upRootNutrition/status/1469136550046814219?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Nutritional epidemiology generally provides good causal estimates." , dodgeProposition = "Nutritional epidemiology generally provides good causal estimates."
, dodgeNicksDoxasticState = Just Belief , dodgeNicksDoxasticState = Just Belief
@ -71,7 +71,7 @@ cuckPaulSaladino =
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
, dodgeFallacy = Nothing , dodgeFallacy = Nothing
} }
, { dodgeLink = "https://x.com/TheNutrivore/status/1633831762509045766?s=20" , { dodgeLink = "https://x.com/upRootNutrition/status/1633831762509045766?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Linoleic acid wreaks havoc in your body." , dodgeProposition = "Linoleic acid wreaks havoc in your body."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -26,7 +26,7 @@ cuckPhilipOvadia =
, cuckSocial = "https://x.com/ifixhearts" , cuckSocial = "https://x.com/ifixhearts"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/TheNutrivore/status/1557791520324890624?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1557791520324890624?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Sugar is the problem and meat is the solution." , dodgeProposition = "Sugar is the problem and meat is the solution."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -34,7 +34,7 @@ cuckPhilipOvadia =
, dodgeNicksDoxasticState = Just Agnostic , dodgeNicksDoxasticState = Just Agnostic
, dodgeNicksDoxasticReason = VagueProp , dodgeNicksDoxasticReason = VagueProp
} }
, { dodgeLink = "https://x.com/TheNutrivore/status/1558282337024180224?s=20" , { dodgeLink = "https://x.com/upRootNutrition/status/1558282337024180224?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "LDL doesn't cause coronary heart disease because it is just part of the arterial repair process." , dodgeProposition = "LDL doesn't cause coronary heart disease because it is just part of the arterial repair process."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckPhilippeStephenson =
, cuckSocial = "https://x.com/TotalCytopath" , cuckSocial = "https://x.com/TotalCytopath"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/TheNutrivore/status/1779587012120715433" [ { dodgeLink = "https://x.com/upRootNutrition/status/1779587012120715433"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Seed oils save lives." , dodgeProposition = "Seed oils save lives."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -24,7 +24,7 @@ cuckRalphNapolitano =
, cuckSocial = "https://x.com/DrRalphNap" , cuckSocial = "https://x.com/DrRalphNap"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1462794580848300034?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1462794580848300034?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Oatmeal is one of the worst foods you can eat and has no health benefits." , dodgeProposition = "Oatmeal is one of the worst foods you can eat and has no health benefits."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckRobMeijer =
, cuckSocial = "https://x.com/EngineerDiet" , cuckSocial = "https://x.com/EngineerDiet"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1435850829051793408?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1435850829051793408?s=20"
, dodgeDescription = RanAway , dodgeDescription = RanAway
, dodgeProposition = noProposition , dodgeProposition = noProposition
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckRobbWolf =
, cuckSocial = "https://x.com/robbwolf" , cuckSocial = "https://x.com/robbwolf"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/TheNutrivore/status/1601624559647875072?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1601624559647875072?s=20"
, dodgeDescription = OutrightNo , dodgeDescription = OutrightNo
, dodgeProposition = "Ancestral foods are more likely to be antagonistically pleiotropic than novel foods." , dodgeProposition = "Ancestral foods are more likely to be antagonistically pleiotropic than novel foods."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckShawnBaker =
, cuckSocial = "https://x.com/SBakerMD" , cuckSocial = "https://x.com/SBakerMD"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/TheNutrivore/status/1868037979807346738" [ { dodgeLink = "https://x.com/upRootNutrition/status/1868037979807346738"
, dodgeDescription = GhostedMe , dodgeDescription = GhostedMe
, dodgeProposition = noProposition , dodgeProposition = noProposition
, dodgeReceipts = [] , dodgeReceipts = []

View file

@ -29,7 +29,7 @@ cuckSimonGoddek =
, cuckSocial = "https://x.com/goddeketal" , cuckSocial = "https://x.com/goddeketal"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/TheNutrivore/status/1795673579931255233" [ { dodgeLink = "https://x.com/upRootNutrition/status/1795673579931255233"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = prop , dodgeProposition = prop
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -37,7 +37,7 @@ cuckSimonGoddek =
, dodgeNicksDoxasticState = Just Disbelief , dodgeNicksDoxasticState = Just Disbelief
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReasonCVD , dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReasonCVD
} }
, { dodgeLink = "https://x.com/TheNutrivore/status/1795885929678196951" , { dodgeLink = "https://x.com/upRootNutrition/status/1795885929678196951"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = prop , dodgeProposition = prop
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -45,7 +45,7 @@ cuckSimonGoddek =
, dodgeNicksDoxasticState = Just Disbelief , dodgeNicksDoxasticState = Just Disbelief
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReasonCVD , dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReasonCVD
} }
, { dodgeLink = "https://x.com/TheNutrivore/status/1795674575315112396" , { dodgeLink = "https://x.com/upRootNutrition/status/1795674575315112396"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = prop , dodgeProposition = prop
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -29,7 +29,7 @@ cuckTravisStatham =
, cuckSocial = "https://x.com/Travis_Statham" , cuckSocial = "https://x.com/Travis_Statham"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1461428023207489542?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1461428023207489542?s=20"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = prop , dodgeProposition = prop
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -24,7 +24,7 @@ cuckTristanHaggard =
, cuckSocial = "https://x.com/Trxstxn4" , cuckSocial = "https://x.com/Trxstxn4"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1513596227052527621?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1513596227052527621?s=20"
, dodgeDescription = RanAway , dodgeDescription = RanAway
, dodgeProposition = "Seed oils are toxic." , dodgeProposition = "Seed oils are toxic."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -24,7 +24,7 @@ cuckTroKalayjian =
, cuckSocial = "https://x.com/DoctorTro" , cuckSocial = "https://x.com/DoctorTro"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1261351818430255104?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1261351818430255104?s=20"
, dodgeDescription = RanAway , dodgeDescription = RanAway
, dodgeProposition = "Dr. Tro engages in shitty behaviour that causes people to dislike him." , dodgeProposition = "Dr. Tro engages in shitty behaviour that causes people to dislike him."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]
@ -32,7 +32,7 @@ cuckTroKalayjian =
, dodgeNicksDoxasticState = Just Belief , dodgeNicksDoxasticState = Just Belief
, dodgeNicksDoxasticReason = SpecificPropReason "The proposition seems trivially true." , dodgeNicksDoxasticReason = SpecificPropReason "The proposition seems trivially true."
} }
, { dodgeLink = "https://x.com/TheNutrivore/status/1865857839845232689" , { dodgeLink = "https://x.com/upRootNutrition/status/1865857839845232689"
, dodgeDescription = RanAway , dodgeDescription = RanAway
, dodgeProposition = "Meat doesnt cause cardiovascular disease" , dodgeProposition = "Meat doesnt cause cardiovascular disease"
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -26,7 +26,7 @@ cuckTuckerGoodrich =
, cuckSocial = "https://x.com/TuckerGoodrich" , cuckSocial = "https://x.com/TuckerGoodrich"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1276694117494358017?s=19" [ { dodgeLink = "https://x.com/upRootNutrition/status/1276694117494358017?s=19"
, dodgeDescription = RanAway , dodgeDescription = RanAway
, dodgeProposition = "Nutritional epidemiology is almost always wrong." , dodgeProposition = "Nutritional epidemiology is almost always wrong."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckZoeHarcombe =
, cuckSocial = "https://x.com/zoeharcombe" , cuckSocial = "https://x.com/zoeharcombe"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1418263706178310149" [ { dodgeLink = "https://x.com/upRootNutrition/status/1418263706178310149"
, dodgeDescription = NoReply , dodgeDescription = NoReply
, dodgeProposition = "Saturated fat doesn't increase the risk of coronary heart disease." , dodgeProposition = "Saturated fat doesn't increase the risk of coronary heart disease."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -25,7 +25,7 @@ cuckZsofiaClemens =
, cuckSocial = "https://x.com/ClemensZsofia" , cuckSocial = "https://x.com/ClemensZsofia"
, isNewTabLink = True , isNewTabLink = True
, cuckDodges = , cuckDodges =
[ { dodgeLink = "https://x.com/TheNutrivore/status/1528377198180290561?s=20" [ { dodgeLink = "https://x.com/upRootNutrition/status/1528377198180290561?s=20"
, dodgeDescription = OutrightNo , dodgeDescription = OutrightNo
, dodgeProposition = "Well-planned, plant-based diets are healthy." , dodgeProposition = "Well-planned, plant-based diets are healthy."
, dodgeReceipts = [ { receipt = "receipt1" } ] , dodgeReceipts = [ { receipt = "receipt1" } ]

View file

@ -20,6 +20,7 @@ module Config.Style.Icons.Icons exposing
, nutriDexLogo , nutriDexLogo
, services , services
, thumbsDown , thumbsDown
, thumbsUp
, twitter , twitter
, upRootLarge , upRootLarge
, upRootMedium , upRootMedium
@ -990,6 +991,22 @@ code inner =
} }
thumbsUp : SvgTypes.OuterPart msg -> Element msg
thumbsUp inner =
HeSvg.buildSvg inner
{ svgAttributes =
[ SvgAttr.viewBox "0 0 512 512"
, SvgAttr.fill "currentColor"
]
, svg =
[ path
[ SvgAttr.d "M323.8 34.8c-38.2-10.9-78.1 11.2-89 49.4l-5.7 20c-3.7 13-10.4 25-19.5 35l-51.3 56.4c-8.9 9.8-8.2 25 1.6 33.9s25 8.2 33.9-1.6l51.3-56.4c14.1-15.5 24.4-34 30.1-54.1l5.7-20c3.6-12.7 16.9-20.1 29.7-16.5s20.1 16.9 16.5 29.7l-5.7 20c-5.7 19.9-14.7 38.7-26.6 55.5c-5.2 7.3-5.8 16.9-1.7 24.9s12.3 13 21.3 13L448 224c8.8 0 16 7.2 16 16c0 6.8-4.3 12.7-10.4 15c-7.4 2.8-13 9-14.9 16.7s.1 15.8 5.3 21.7c2.5 2.8 4 6.5 4 10.6c0 7.8-5.6 14.3-13 15.7c-8.2 1.6-15.1 7.3-18 15.2s-1.6 16.7 3.6 23.3c2.1 2.7 3.4 6.1 3.4 9.9c0 6.7-4.2 12.6-10.2 14.9c-11.5 4.5-17.7 16.9-14.4 28.8c.4 1.3 .6 2.8 .6 4.3c0 8.8-7.2 16-16 16l-97.5 0c-12.6 0-25-3.7-35.5-10.7l-61.7-41.1c-11-7.4-25.9-4.4-33.3 6.7s-4.4 25.9 6.7 33.3l61.7 41.1c18.4 12.3 40 18.8 62.1 18.8l97.5 0c34.7 0 62.9-27.6 64-62c14.6-11.7 24-29.7 24-50c0-4.5-.5-8.8-1.3-13c15.4-11.7 25.3-30.2 25.3-51c0-6.5-1-12.8-2.8-18.7C504.8 273.7 512 257.7 512 240c0-35.3-28.6-64-64-64l-92.3 0c4.7-10.4 8.7-21.2 11.8-32.2l5.7-20c10.9-38.2-11.2-78.1-49.4-89zM32 192c-17.7 0-32 14.3-32 32L0 448c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32l-64 0z"
]
[]
]
}
thumbsDown : SvgTypes.OuterPart msg -> Element msg thumbsDown : SvgTypes.OuterPart msg -> Element msg
thumbsDown inner = thumbsDown inner =
HeSvg.buildSvg inner HeSvg.buildSvg inner

View file

@ -2,6 +2,7 @@ module Config.Style.Images exposing
( imageSizer ( imageSizer
, imageSquareMaker , imageSquareMaker
, roundingScaler , roundingScaler
, ElementSize(..)
) )
import Config.Data.ImageFolders import Config.Data.ImageFolders
@ -37,7 +38,7 @@ import Element.Border as D
) )
imageSquareMaker : Device -> String -> Bool -> String -> Element msg imageSquareMaker : Device -> String -> Bool -> ElementSize -> Element msg
imageSquareMaker device imagePath isLeft size = imageSquareMaker device imagePath isLeft size =
E.image E.image
[ D.rounded (roundingScaler size) [ D.rounded (roundingScaler size)
@ -55,46 +56,40 @@ imageSquareMaker device imagePath isLeft size =
} }
imageSizer : String -> Length imageSizer : ElementSize -> Length
imageSizer size = imageSizer size =
case size of case size of
"Fill" -> Fill ->
fill fill
"Fatty" -> Big ->
px 128 px 128
"Big" -> Medium ->
px 65 px 65
"Small" -> Small ->
px 28
_ ->
px 20 px 20
roundingScaler : String -> Int roundingScaler : ElementSize -> Int
roundingScaler size = roundingScaler size =
case size of case size of
"Fill" -> Fill ->
32 32
"Fatty" -> Big ->
32 32
-- 128px Medium ->
"Big" ->
10 10
-- 65px Small ->
"Small" ->
10
-- 28px
_ ->
10 10
type ElementSize
-- 20px default = Fill
| Big
| Medium
| Small

View file

@ -2,7 +2,7 @@ module Effect exposing
( Effect ( Effect
, none, batch , none, batch
, sendCmd, sendMsg , sendCmd, sendMsg
, clearUser, saveUser, signIn, signOut, toggleLanguage, toggleNavbarExpansion , clearUser, saveUser, signIn, signOut, toggleLanguage,togglePopUp, toggleNavbarExpansion
, pushRoute, replaceRoute, loadExternalUrl , pushRoute, replaceRoute, loadExternalUrl
, map, toCmd , map, toCmd
) )
@ -214,6 +214,11 @@ toggleNavbarExpansion =
SendSharedMsg Shared.Msg.ToggleNavbarExpansion SendSharedMsg Shared.Msg.ToggleNavbarExpansion
togglePopUp : Effect msg
togglePopUp =
SendSharedMsg Shared.Msg.TogglePopUp
toggleLanguage : Effect msg toggleLanguage : Effect msg
toggleLanguage = toggleLanguage =
SendSharedMsg Shared.Msg.ToggleLanguage SendSharedMsg Shared.Msg.ToggleLanguage

View file

@ -1,7 +1,11 @@
module Pages.Blog exposing (Model, Msg, page) module Pages.Blog exposing (Model, Msg, page)
import Config.Data.Identity exposing (pageNames) import Config.Data.Identity exposing (pageNames)
import Config.Data.ImageFolders as M exposing (ImageFolder(..), imagePathMaker) import Config.Data.ImageFolders as M
exposing
( ImageFolder(..)
, imagePathMaker
)
import Config.Helpers.Articles.Article exposing (extractFirstWords) import Config.Helpers.Articles.Article exposing (extractFirstWords)
import Config.Helpers.Articles.Markdown exposing (renderDeviceMarkdownNoToc) import Config.Helpers.Articles.Markdown exposing (renderDeviceMarkdownNoToc)
import Config.Helpers.Cards.Inner.Text import Config.Helpers.Cards.Inner.Text
@ -45,7 +49,11 @@ import Config.Style.Fonts
, paragraphSpacing , paragraphSpacing
) )
import Config.Style.Icons.Icons exposing (construction) import Config.Style.Icons.Icons exposing (construction)
import Config.Style.Images exposing (imageSquareMaker) import Config.Style.Images
exposing
( ElementSize(..)
, imageSquareMaker
)
import Effect exposing (Effect) import Effect exposing (Effect)
import Element as E import Element as E
exposing exposing
@ -198,7 +206,7 @@ articleImage article =
articleMaker : Device -> BlogArticle -> Element msg articleMaker : Device -> BlogArticle -> Element msg
articleMaker device article = articleMaker device article =
let let
image : String -> Element msg image : ElementSize -> Element msg
image size = image size =
el el
[ alignLeft [ alignLeft
@ -223,7 +231,7 @@ articleMaker device article =
none none
_ -> _ ->
image "Fatty" image Big
, detailFormat column , detailFormat column
(articleRows article ++ []) (articleRows article ++ [])
] ]

View file

@ -35,7 +35,11 @@ import Config.Style.Colour.Helpers
( ThemeColor(..) ( ThemeColor(..)
, colourTheme , colourTheme
) )
import Config.Style.Images exposing (imageSquareMaker) import Config.Style.Images
exposing
( ElementSize(..)
, imageSquareMaker
)
import Effect exposing (Effect) import Effect exposing (Effect)
import Element as E import Element as E
exposing exposing
@ -163,7 +167,7 @@ contentList device contact =
descriptionMaker : Device -> Contact -> Element msg descriptionMaker : Device -> Contact -> Element msg
descriptionMaker device contact = descriptionMaker device contact =
let let
image : String -> Element msg image : ElementSize -> Element msg
image size = image size =
el el
[ alignLeft [ alignLeft
@ -186,7 +190,7 @@ descriptionMaker device contact =
none none
_ -> _ ->
image "Fatty" image Big
, detailFormat column , detailFormat column
[ detailBodyMaker TextLightGrey [ detailBodyMaker TextLightGrey
(text contact.contactDescription) (text contact.contactDescription)

View file

@ -45,7 +45,11 @@ import Config.Style.Colour.Helpers as T
( ThemeColor(..) ( ThemeColor(..)
, colourTheme , colourTheme
) )
import Config.Style.Images exposing (imageSquareMaker) import Config.Style.Images
exposing
( ElementSize(..)
, imageSquareMaker
)
import Effect exposing (Effect) import Effect exposing (Effect)
import Element as E import Element as E
exposing exposing
@ -175,7 +179,7 @@ contentList device debate =
descriptionMaker : Device -> Debate -> Element msg descriptionMaker : Device -> Debate -> Element msg
descriptionMaker device debate = descriptionMaker device debate =
let let
image : String -> Element msg image : ElementSize -> Element msg
image size = image size =
el el
[ alignLeft [ alignLeft
@ -198,7 +202,7 @@ descriptionMaker device debate =
none none
_ -> _ ->
image "Fatty" image Big
, detailFormat column , detailFormat column
[ inferenceMaker debate [ inferenceMaker debate
, detailBodyMaker TextLightGrey , detailBodyMaker TextLightGrey

View file

@ -53,7 +53,11 @@ import Config.Style.Icons.Types as TySvg
( InnerPart ( InnerPart
, OuterPart , OuterPart
) )
import Config.Style.Images exposing (imageSquareMaker) import Config.Style.Images
exposing
( ElementSize(..)
, imageSquareMaker
)
import Config.Style.Transitions exposing (transitionStyleSlow) import Config.Style.Transitions exposing (transitionStyleSlow)
import Effect exposing (Effect) import Effect exposing (Effect)
import Element as E import Element as E
@ -250,7 +254,7 @@ debateList shared model =
contentList : Shared.Model -> Model -> Bool -> Int -> Argument -> List (Element Msg) contentList : Shared.Model -> Model -> Bool -> Int -> Argument -> List (Element Msg)
contentList shared model isLinkClicked index argument = contentList shared model isLinkClicked index argument =
let let
image : String -> Element msg image : ElementSize -> Element msg
image size = image size =
el el
[ alignLeft [ alignLeft
@ -293,7 +297,7 @@ contentList shared model isLinkClicked index argument =
none none
_ -> _ ->
image "Big" image Medium
, el ([ height fill ] ++ bodyFormat TextLightGrey) <| text argument.propositionSummary , el ([ height fill ] ++ bodyFormat TextLightGrey) <| text argument.propositionSummary
] ]
, detailFormat row , detailFormat row
@ -318,7 +322,12 @@ copyButton shared model isLinkClicked index argument =
Input.button Input.button
[ focused [ focused
[ D.color (rgba 0 0 0 0) [ D.color (rgba 0 0 0 0)
, D.shadow { blur = 0, color = rgba 0 0 0 0, offset = ( 0, 0 ), size = 0 } , D.shadow
{ blur = 0
, color = rgba 0 0 0 0
, offset = ( 0, 0 )
, size = 0
}
] ]
] ]
{ onPress = Just (CopyText ("https://uprootnutrition.com" ++ Path.toString Path.Debate_Arguments ++ "#" ++ argument.argumentImage) index) { onPress = Just (CopyText ("https://uprootnutrition.com" ++ Path.toString Path.Debate_Arguments ++ "#" ++ argument.argumentImage) index)

View file

@ -51,7 +51,7 @@ import Config.Style.Icons.Types as TySvg
( InnerPart ( InnerPart
, OuterPart , OuterPart
) )
import Config.Style.Images exposing (imageSquareMaker) import Config.Style.Images exposing (ElementSize(..), imageSquareMaker)
import Config.Style.Transitions import Config.Style.Transitions
exposing exposing
( hoverFontDarkOrange ( hoverFontDarkOrange
@ -240,7 +240,7 @@ cucksList shared model =
contentList : Shared.Model -> Model -> Bool -> Int -> Cuck -> List (Element Msg) contentList : Shared.Model -> Model -> Bool -> Int -> Cuck -> List (Element Msg)
contentList shared model isLinkClicked index cuck = contentList shared model isLinkClicked index cuck =
let let
image : String -> Element msg image : ElementSize -> Element msg
image size = image size =
el el
[ alignRight [ alignRight
@ -264,7 +264,7 @@ contentList shared model isLinkClicked index cuck =
none none
_ -> _ ->
image "Fatty" image Big
, detailFormat column , detailFormat column
[ socialMaker cuck [ socialMaker cuck
, dodgeTitle cuck , dodgeTitle cuck

View file

@ -45,7 +45,7 @@ import Config.Style.Fonts
( defaultFontSize ( defaultFontSize
, paragraphSpacing , paragraphSpacing
) )
import Config.Style.Images exposing (imageSquareMaker) import Config.Style.Images exposing (ElementSize(..), imageSquareMaker)
import Effect exposing (Effect) import Effect exposing (Effect)
import Element as E import Element as E
exposing exposing
@ -189,7 +189,7 @@ gibberishList shared =
contentList : Shared.Model -> Gibberish -> List (Element msg) contentList : Shared.Model -> Gibberish -> List (Element msg)
contentList shared gibberish = contentList shared gibberish =
let let
image : String -> Element msg image : ElementSize -> Element msg
image size = image size =
el el
[ E.alignLeft [ E.alignLeft
@ -217,7 +217,7 @@ contentList shared gibberish =
none none
_ -> _ ->
image "Big" image Medium
, text gibberish.gibberishDescription , text gibberish.gibberishDescription
] ]
, gibberishMakerBody shared gibberish , gibberishMakerBody shared gibberish

View file

@ -53,7 +53,11 @@ import Config.Style.Colour.Helpers as T
( ThemeColor(..) ( ThemeColor(..)
, getThemeColor , getThemeColor
) )
import Config.Style.Images exposing (imageSquareMaker) import Config.Style.Images
exposing
( ElementSize(..)
, imageSquareMaker
)
import Effect exposing (Effect) import Effect exposing (Effect)
import Element as E import Element as E
exposing exposing
@ -202,7 +206,7 @@ donateList shared =
contentList : Shared.Model -> Donate -> List (Element msg) contentList : Shared.Model -> Donate -> List (Element msg)
contentList shared donate = contentList shared donate =
let let
image : String -> Element msg image : ElementSize -> Element msg
image size = image size =
el el
[ alignLeft [ alignLeft
@ -218,7 +222,7 @@ contentList shared donate =
imageSquareMaker shared.device (imagePathMaker M.Donate donate.donateImage) True size imageSquareMaker shared.device (imagePathMaker M.Donate donate.donateImage) True size
in in
[ detailFormat row [ detailFormat row
[ image "Fatty" [ image Big
, detailFormat column , detailFormat column
[ feeMaker donate [ feeMaker donate
, preferenceMaker shared donate , preferenceMaker shared donate

View file

@ -60,7 +60,11 @@ import Config.Style.Colour.Helpers
( ThemeColor(..) ( ThemeColor(..)
, colourTheme , colourTheme
) )
import Config.Style.Images exposing (imageSquareMaker) import Config.Style.Images
exposing
( ElementSize(..)
, imageSquareMaker
)
import Effect exposing (Effect) import Effect exposing (Effect)
import Element as E import Element as E
exposing exposing
@ -194,7 +198,7 @@ interviewList shared =
contentList : Shared.Model -> Interview -> List (Element msg) contentList : Shared.Model -> Interview -> List (Element msg)
contentList shared interview = contentList shared interview =
let let
image : String -> Element msg image : ElementSize -> Element msg
image size = image size =
el el
[ alignLeft [ alignLeft
@ -219,7 +223,7 @@ contentList shared interview =
none none
_ -> _ ->
image "Fatty" image Big
in in
[ detailFormat row [ detailFormat row
[ imageMaker [ imageMaker

View file

@ -1,5 +1,6 @@
module Pages.Nutridex exposing (Model, Msg, page) module Pages.Nutridex exposing (Model, Msg, page)
import Browser.Events exposing (onClick)
import Config.Data.Identity exposing (pageNames) import Config.Data.Identity exposing (pageNames)
import Config.Helpers.Articles.Article exposing (makeReference) import Config.Helpers.Articles.Article exposing (makeReference)
import Config.Helpers.Articles.Types exposing (References) import Config.Helpers.Articles.Types exposing (References)
@ -11,6 +12,7 @@ import Config.Helpers.Cards.Inner.Text
, detailHeader , detailHeader
, detailTitleMaker , detailTitleMaker
, divider , divider
, getHoverColours
) )
import Config.Helpers.Cards.Outer.Helpers exposing (cardMaker) import Config.Helpers.Cards.Outer.Helpers exposing (cardMaker)
import Config.Helpers.Cards.Outer.Types as C exposing (Cardable(..)) import Config.Helpers.Cards.Outer.Types as C exposing (Cardable(..))
@ -29,6 +31,7 @@ import Config.Style.Colour.Helpers
exposing exposing
( ThemeColor(..) ( ThemeColor(..)
, colourTheme , colourTheme
, getThemeColor
) )
import Config.Style.Fonts import Config.Style.Fonts
exposing exposing
@ -37,39 +40,69 @@ import Config.Style.Fonts
, paragraphSpacing , paragraphSpacing
, smallTextFontSize , smallTextFontSize
) )
import Config.Style.Icons.Icons exposing (nutriDexLogo) import Config.Style.Icons.Icons
exposing
( nutriDex
, nutriDexLogo
, thumbsUp
)
import Config.Style.Icons.Types as TySvg
exposing
( InnerPart
, OuterPart
)
import Config.Style.Transitions import Config.Style.Transitions
exposing exposing
( hoverFontDarkOrange ( hoverFontDarkOrange
, transitionStyleFast
, transitionStyleMedium , transitionStyleMedium
, transitionStyleSlow
) )
import Effect exposing (Effect) import Effect exposing (Effect)
import Element as E import Element as E
exposing exposing
( Attr ( Attr
, Attribute
, Device , Device
, DeviceClass(..) , DeviceClass(..)
, Element , Element
, Orientation(..) , Orientation(..)
, alignLeft , alignLeft
, alignRight
, alignTop , alignTop
, below
, centerX , centerX
, centerY , centerY
, column , column
, el , el
, fill , fill
, focused
, height , height
, html , html
, htmlAttribute
, inFront
, mouseOver , mouseOver
, newTabLink , newTabLink
, none , none
, padding
, paddingEach , paddingEach
, paddingXY , paddingXY
, paragraph , paragraph
, pointer
, px , px
, rgba
, row , row
, spacing , spacing
, text , text
, transparent
, width
)
import Element.Background as B exposing (color)
import Element.Border as D
exposing
( color
, rounded
, shadow
, width , width
) )
import Element.Font as F import Element.Font as F
@ -78,17 +111,21 @@ import Element.Font as F
, center , center
, color , color
) )
import Element.Input as Input
import Html.Attributes exposing (style)
import Html.Events as H exposing (onClick)
import Layouts import Layouts
import Page exposing (Page) import Page exposing (Page)
import Route exposing (Route) import Route exposing (Route)
import Shared exposing (Model) import Shared exposing (Model)
import Svg.Attributes as SvgAttr
import View exposing (View) import View exposing (View)
page : Shared.Model -> Route () -> Page Model Msg page : Shared.Model -> Route () -> Page Model Msg
page shared route = page shared route =
Page.new Page.new
{ init = init { init = init shared
, update = update , update = update
, subscriptions = subscriptions , subscriptions = subscriptions
, view = view shared , view = view shared
@ -106,12 +143,12 @@ toLayout model =
type alias Model = type alias Model =
{} { isPopUpClicked : Bool }
init : () -> ( Model, Effect Msg ) init : Shared.Model -> () -> ( Model, Effect Msg )
init () = init shared () =
( {} ( { isPopUpClicked = shared.isPopUpClicked }
, Effect.map , Effect.map
(\_ -> NoOp) (\_ -> NoOp)
(Effect.sendCmd resetViewport) (Effect.sendCmd resetViewport)
@ -124,6 +161,7 @@ init () =
type Msg type Msg
= NoOp = NoOp
| TogglePopUp
update : Msg -> Model -> ( Model, Effect Msg ) update : Msg -> Model -> ( Model, Effect Msg )
@ -134,6 +172,11 @@ update msg model =
, Effect.none , Effect.none
) )
TogglePopUp ->
( { model | isPopUpClicked = not model.isPopUpClicked }
, Effect.togglePopUp
)
-- SUBSCRIPTIONS -- SUBSCRIPTIONS
@ -152,25 +195,25 @@ view : Shared.Model -> Model -> View Msg
view shared model = view shared model =
{ title = pageNames.pageNutriDex { title = pageNames.pageNutriDex
, attributes = [] , attributes = []
, element = nutriDexContainer shared.device , element = nutriDexContainer shared model
} }
nutriDexContainer : Device -> Element msg nutriDexContainer : Shared.Model -> Model -> Element Msg
nutriDexContainer device = nutriDexContainer shared model =
topLevelContainer (nutriDexList device) topLevelContainer (nutriDexList shared model)
nutriDexList : Device -> Element msg nutriDexList : Shared.Model -> Model -> Element Msg
nutriDexList device = nutriDexList shared model =
column column
(case ( device.class, device.orientation ) of (case ( shared.device.class, shared.device.orientation ) of
_ -> _ ->
pageList device pageList shared.device
) )
<| <|
List.concat List.concat
[ case ( device.class, device.orientation ) of [ case ( shared.device.class, shared.device.orientation ) of
( Phone, Portrait ) -> ( Phone, Portrait ) ->
[ headerMaker (R.NutriDex nutriDexHeader) ] [ headerMaker (R.NutriDex nutriDexHeader) ]
@ -181,24 +224,26 @@ nutriDexList device =
[ none ] [ none ]
, List.map , List.map
(\nutriDex -> (\nutriDex ->
cardMaker device (C.NutriDex nutriDex) (contentList device nutriDex) cardMaker shared.device (C.NutriDex nutriDex) (contentList shared nutriDex shared.isPopUpClicked)
) )
[ productNutriDex ] [ productNutriDex
]
] ]
contentList : Device -> NutriDex -> List (Element msg) contentList : Shared.Model -> NutriDex -> Bool -> List (Element Msg)
contentList device nutridex = contentList shared nutridex isPopUpClicked =
[ featureList nutridex device [ featureList nutridex shared.device
, nutriDexBodyMaker device , nutriDexBodyMaker shared.device
, nutriDexAdjustments device , nutriDexAdjustments shared.device
, column [ spacing 10 ] , column [ spacing 10 ]
[ nutriDexVitamins [ nutriDexVitamins
, nutriDexFattyAcids , nutriDexFattyAcids
, nutriDexMinerals , nutriDexMinerals
, nutriDexAminoAcids , nutriDexAminoAcids
] ]
, nutriDexReferences nutridex device , nutriDexReferences nutridex shared.device
, el [ inFront (popUp shared isPopUpClicked), E.width fill, height fill ] <| none
] ]
@ -228,7 +273,7 @@ featureList : NutriDex -> Device -> Element msg
featureList nutridex device = featureList nutridex device =
column column
[ spacing 8 [ spacing 8
, width fill , E.width fill
, height fill , height fill
, paddingEach , paddingEach
{ top = 10 { top = 10
@ -253,7 +298,7 @@ featureList nutridex device =
_ -> _ ->
row row
[ spacing 20 [ spacing 20
, width fill , E.width fill
, height fill , height fill
] ]
) )
@ -282,7 +327,7 @@ featureList nutridex device =
] ]
[ html nutriDexLogo [ html nutriDexLogo
] ]
, buyButton "$20" "https://uprootnutrition.myshopify.com/cart/31192710807615:1?channel=buy_button" , buyButton "$20" "https://buy.stripe.com/fZecO177p34M5EY5ko"
, column , column
[ centerX ] [ centerX ]
[ column [ column
@ -302,7 +347,7 @@ featureList nutridex device =
] ]
] ]
] ]
, column [ width fill, smallTextFontSize, spacing 3 ] <| , column [ E.width fill, smallTextFontSize, spacing 3 ] <|
List.map2 (\x y -> makeFeature x) List.map2 (\x y -> makeFeature x)
nutridex.nutriDexFeatures nutridex.nutriDexFeatures
(List.range 1 (List.length nutridex.nutriDexFeatures)) (List.range 1 (List.length nutridex.nutriDexFeatures))
@ -381,7 +426,7 @@ referenceFormat =
nutriDexAdjustments : Device -> Element msg nutriDexAdjustments : Device -> Element msg
nutriDexAdjustments device = nutriDexAdjustments device =
column column
[ width fill [ E.width fill
, height fill , height fill
, spacing 20 , spacing 20
] ]
@ -443,7 +488,7 @@ nutriDexVitamins : Element msg
nutriDexVitamins = nutriDexVitamins =
column column
[ spacing 20 [ spacing 20
, width fill , E.width fill
, height fill , height fill
] ]
[ nutridexSubTitleMaker "Vitamins" [ nutridexSubTitleMaker "Vitamins"
@ -544,7 +589,7 @@ nutriDexFattyAcids : Element msg
nutriDexFattyAcids = nutriDexFattyAcids =
column column
[ spacing 20 [ spacing 20
, width fill , E.width fill
, height fill , height fill
] ]
[ nutridexSubTitleMaker "Fatty Acids" [ nutridexSubTitleMaker "Fatty Acids"
@ -684,12 +729,12 @@ nutriDexAminoAcids =
nutriDexReferences : NutriDex -> Device -> Element msg nutriDexReferences : NutriDex -> Device -> Element msg
nutriDexReferences nutridex device = nutriDexReferences nutridex device =
column column
[ width fill [ E.width fill
, height fill , height fill
] ]
[ detailHeader "BIBLIOGRAPHY" [ detailHeader "BIBLIOGRAPHY"
, column , column
[ width fill [ E.width fill
, F.size 15 , F.size 15
, spacing 10 , spacing 10
, paddingEach , paddingEach
@ -704,3 +749,101 @@ nutriDexReferences nutridex device =
nutridex.nutriDexReference nutridex.nutriDexReference
(List.range 1 (List.length nutridex.nutriDexReference)) (List.range 1 (List.length nutridex.nutriDexReference))
] ]
popUp : Shared.Model -> Bool -> Element Msg
popUp shared isPopUpClicked =
let
popUpBox : List (Attribute msg)
popUpBox =
[ E.width fill
, htmlAttribute (style "position" "fixed")
, htmlAttribute (style "top" "0")
, htmlAttribute (style "left" "0")
, htmlAttribute (style "height" "100vh")
, htmlAttribute (style "z-index" "9999")
, htmlAttribute (style "display" "flex")
, htmlAttribute (style "align-items" "center")
, htmlAttribute (style "justify-content" "center")
, B.color (rgba 0 0 0 0.5)
, transitionStyleFast
]
in
el
(popUpBox
++ (if isPopUpClicked then
[ htmlAttribute (style "opacity" "0")
, htmlAttribute (style "pointer-events" "none")
, htmlAttribute (style "visibility" "hidden")
]
else
[ htmlAttribute (style "opacity" "1")
, htmlAttribute (style "pointer-events" "auto")
, htmlAttribute (style "visibility" "visible")
]
)
)
<|
column
[ centerX
, centerY
, padding 15
, B.color colourTheme.backgroundLightGrey
, F.color (getThemeColor TextLightGrey)
, D.color colourTheme.textLightOrange
, E.width <|
case ( shared.device.class, shared.device.orientation ) of
( Phone, Portrait ) ->
px 300
( Tablet, Portrait ) ->
px 300
_ ->
px 500
, htmlAttribute (style "max-height" "100vh")
, htmlAttribute (style "overflow-y" "auto")
, D.rounded 5
, D.width 2
, D.shadow
{ offset = ( 0, 3 )
, blur = 6
, size = 0
, color = rgba 0 0 0 0.32
}
, spacing 15
]
[ el
[ centerX
, E.width <| px 100
]
<|
html nutriDexLogo
, paragraph [ F.center ] [ text "All of the revenue from every purchase of the nutriDex will directly support the development of the nutriDex web-app! Plus, as a special thank you, all customers who purchase the nutriDex after January 1st, 2025 and before the web-app is released will receive a free six-month subscription to the nutriDex web app!" ]
, Input.button
[ centerX
, focused
[ D.color (rgba 0 0 0 0)
, D.shadow
{ blur = 0
, color = rgba 0 0 0 0
, offset = ( 0, 0 )
, size = 0
}
]
]
{ onPress = Just TogglePopUp
, label =
el [] <|
thumbsUp
{ elementAttributes =
[ pointer
, F.color (getThemeColor TextLightOrange)
]
++ getHoverColours TextLightOrange
, sharedModel = shared
, svgAttributes = [ SvgAttr.width "40" ]
}
}
]

View file

@ -41,7 +41,11 @@ import Config.Style.Colour.Helpers as T
( ThemeColor(..) ( ThemeColor(..)
, getThemeColor , getThemeColor
) )
import Config.Style.Images exposing (imageSquareMaker) import Config.Style.Images
exposing
( ElementSize(..)
, imageSquareMaker
)
import Effect exposing (Effect) import Effect exposing (Effect)
import Element as E import Element as E
exposing exposing
@ -169,7 +173,7 @@ servicesList device =
contentList : Device -> Service -> List (Element msg) contentList : Device -> Service -> List (Element msg)
contentList device service = contentList device service =
let let
image : String -> Element msg image : ElementSize -> Element msg
image size = image size =
el el
[ alignLeft [ alignLeft
@ -192,7 +196,7 @@ contentList device service =
none none
_ -> _ ->
image "Fatty" image Big
, detailFormat column , detailFormat column
[ rateMaker service [ rateMaker service
, descriptionMaker , descriptionMaker

View file

@ -81,6 +81,7 @@ modelFromFlagsResult f =
, language = TyLang.English , language = TyLang.English
, user = Just { token = "asht", name = "billy" } , user = Just { token = "asht", name = "billy" }
, width = flags.width , width = flags.width
, isPopUpClicked = False
} }
Err e -> Err e ->
@ -94,6 +95,7 @@ modelFromFlagsResult f =
, language = TyLang.English , language = TyLang.English
, user = Nothing , user = Nothing
, width = 10 , width = 10
, isPopUpClicked = False
} }
@ -126,6 +128,11 @@ update route msg model =
, Effect.none , Effect.none
) )
Shared.Msg.TogglePopUp ->
( { model | isPopUpClicked = not model.isPopUpClicked }
, Effect.none
)
Shared.Msg.SignIn user -> Shared.Msg.SignIn user ->
( { model | user = Just user } ( { model | user = Just user }
, Effect.batch , Effect.batch

View file

@ -11,6 +11,7 @@ type alias Model =
, language : TyLang.Language , language : TyLang.Language
, isNavbarExpanded : Bool , isNavbarExpanded : Bool
, user : Maybe User , user : Maybe User
, isPopUpClicked : Bool
} }

View file

@ -19,3 +19,4 @@ type Msg
| SignOut | SignOut
| ToggleLanguage | ToggleLanguage
| ToggleNavbarExpansion | ToggleNavbarExpansion
| TogglePopUp