mirror of
https://gitlab.com/upRootNutrition/website.git
synced 2025-06-15 12:05:12 -05:00
feat: added popup
This commit is contained in:
parent
1a426736a7
commit
59e4f4f1ab
74 changed files with 380 additions and 174 deletions
|
@ -25,7 +25,7 @@ Nearly a year ago, I was [invited](https://x.com/zbitter/status/1668413822388916
|
|||
|
||||
# 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
|
||||
|
||||
|
@ -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.
|
||||
>
|
||||
> 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:
|
||||
>
|
||||
|
@ -221,7 +221,7 @@ Furthermore, if she was truly interested in contesting my views, why did she not
|
|||
|
||||
**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**
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckAdamSinger =
|
|||
, cuckSocial = "https://x.com/AdamSinger"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/TheNutrivore/status/1566491269194719232?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1566491269194719232?s=20"
|
||||
, dodgeDescription = VagueGesture
|
||||
, dodgeProposition = "Seed oils cause inflammation and stomach pain."
|
||||
, dodgeReceipts =
|
||||
|
|
|
@ -24,7 +24,7 @@ cuckAnnChilders =
|
|||
, cuckSocial = "https://x.com/AnnChildersMD"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1447245484356108292?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1447245484356108292?s=20"
|
||||
, dodgeDescription = RanAway
|
||||
, dodgeProposition = "Diets humans thrived on in the wild, sans dentists and doctors, are correct."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -27,7 +27,7 @@ cuckAnthonyGustin =
|
|||
, cuckSocial = "https://x.com/dranthonygustin"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1482502242632552449?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1482502242632552449?s=20"
|
||||
, dodgeDescription = GhostedMe
|
||||
, dodgeProposition = commonProps.propSeedOils
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -24,7 +24,7 @@ cuckAshwaniGarg =
|
|||
, cuckSocial = "https://x.com/agargmd"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1443328350982967303?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1443328350982967303?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "Representing the protein content of beans by dry weight is misleading."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckAustinHerbert =
|
|||
, cuckSocial = "https://x.com/_AustinHerbert"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/TheNutrivore/status/1663698981833277440"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1663698981833277440"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "Seed oils make you fat and kill your body."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckBenBikman =
|
|||
, cuckSocial = "https://x.com/BenBikmanPhD"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/TheNutrivore/status/1587547250074746880?s=19"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1587547250074746880?s=19"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "The diet-heart hypothesis is false."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -24,7 +24,7 @@ cuckBennyMalone =
|
|||
, cuckSocial = "https://x.com/bennymaloneUK"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/TheNutrivore/status/1569046576609300489"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1569046576609300489"
|
||||
, dodgeDescription = RanAway
|
||||
, dodgeProposition = "Eating oysters is compatible with veganism."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckBradCampbell =
|
|||
, cuckSocial = "https://x.com/DrBradCampbell"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1530933999610171392?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1530933999610171392?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "Canola oil kills you slowly."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -26,7 +26,7 @@ cuckBradCohn =
|
|||
, cuckSocial = "https://x.com/BradCohn"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/TheNutrivore/status/1687535030862831616"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1687535030862831616"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = commonProps.propSeedOils
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckBretWeinstein =
|
|||
, cuckSocial = "https://x.com/BretWeinstein"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/TheNutrivore/status/1858356347332374597"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1858356347332374597"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "Seed oils are dangerous."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -33,7 +33,7 @@ cuckBretWeinstein =
|
|||
, dodgeNicksDoxasticState = Just Disbelief
|
||||
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason
|
||||
}
|
||||
, { dodgeLink = "https://x.com/TheNutrivore/status/1858745910701777229"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1858745910701777229"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "Seed oils are dangerous."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -41,7 +41,7 @@ cuckBretWeinstein =
|
|||
, dodgeNicksDoxasticState = Just Disbelief
|
||||
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason
|
||||
}
|
||||
, { dodgeLink = "https://x.com/TheNutrivore/status/1858746414882263256"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1858746414882263256"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "Seed oils are dangerous."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -26,7 +26,7 @@ cuckBrianKerley =
|
|||
, cuckSocial = "https://x.com/SeedOilDsrspctr"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1483889771134926849?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1483889771134926849?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = commonProps.propSeedOils
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -34,7 +34,7 @@ cuckBrianKerley =
|
|||
, dodgeNicksDoxasticState = Just Belief
|
||||
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason
|
||||
}
|
||||
, { dodgeLink = "https://x.com/TheNutrivore/status/1783200352646619227"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1783200352646619227"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = commonProps.propSeedOils
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckCarnivoreAurelius =
|
|||
, cuckSocial = "https://x.com/AlpacaAurelius"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1538272143061815299?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1538272143061815299?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "Vegans kill 100x more animals."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -26,7 +26,7 @@ cuckCateShanahan =
|
|||
, cuckSocial = "https://x.com/drcateshanahan"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1266438463634632709?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1266438463634632709?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "Seed oils are pro-inflammatory."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -34,7 +34,7 @@ cuckCateShanahan =
|
|||
, dodgeNicksDoxasticState = Just Disbelief
|
||||
, 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
|
||||
, dodgeProposition = "Those who defend seed oils are just regurgitating the garbage that the AHA pumps out."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -42,7 +42,7 @@ cuckCateShanahan =
|
|||
, dodgeNicksDoxasticState = Just Disbelief
|
||||
, 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
|
||||
, dodgeProposition = "Seed oils are toxic."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -58,7 +58,7 @@ cuckCateShanahan =
|
|||
, dodgeNicksDoxasticState = Just Disbelief
|
||||
, 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
|
||||
, dodgeProposition = "Nick is just following the AHA marching orders."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -66,7 +66,7 @@ cuckCateShanahan =
|
|||
, dodgeNicksDoxasticState = Just Disbelief
|
||||
, 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
|
||||
, dodgeProposition = commonProps.propSeedOils
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -74,7 +74,7 @@ cuckCateShanahan =
|
|||
, dodgeNicksDoxasticState = Just Belief
|
||||
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason
|
||||
}
|
||||
, { dodgeLink = "https://x.com/TheNutrivore/status/1779185488521310601"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1779185488521310601"
|
||||
, dodgeDescription = OutrightNo
|
||||
, dodgeProposition = commonProps.propSeedOils
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -82,7 +82,7 @@ cuckCateShanahan =
|
|||
, dodgeNicksDoxasticState = Just Belief
|
||||
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason
|
||||
}
|
||||
, { dodgeLink = "https://x.com/TheNutrivore/status/1778616438116483102"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1778616438116483102"
|
||||
, dodgeDescription = KillScreen
|
||||
, dodgeProposition = commonProps.propSeedOils
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -90,7 +90,7 @@ cuckCateShanahan =
|
|||
, dodgeNicksDoxasticState = Just Belief
|
||||
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason
|
||||
}
|
||||
, { dodgeLink = "https://x.com/TheNutrivore/status/1798766450255253987"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1798766450255253987"
|
||||
, dodgeDescription = KillScreen
|
||||
, dodgeProposition = "Current levels of seed oil consumption are the main driver of heart disease."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckClaraAboel =
|
|||
, cuckSocial = "https://x.com/AIWellnessCoach"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/TheNutrivore/status/1727510906655969736"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1727510906655969736"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "Polyunsaturated fatty acids are known to initiate cancer."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -33,7 +33,7 @@ cuckCliffHarvey =
|
|||
, dodgeNicksDoxasticState = Just Disbelief
|
||||
, 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
|
||||
, dodgeProposition = "Saturated fat in the diet does not independently increase the risk of mortality."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckDaveFeldman =
|
|||
, cuckSocial = "https://x.com/realDaveFeldman"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1306625219440730118?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1306625219440730118?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = noProposition
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckDavidGornoski =
|
|||
, cuckSocial = "https://x.com/DavidGornoski"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/TheNutrivore/status/1525474063044550657?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1525474063044550657?s=20"
|
||||
, dodgeDescription = OutrightNo
|
||||
, dodgeProposition = "Polyunsaturated fatty acids cause obesity."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckDianaRodgers =
|
|||
, cuckSocial = "https://x.com/sustainabledish"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1365857401786814465?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1365857401786814465?s=20"
|
||||
, dodgeDescription = InTooDeep
|
||||
, dodgeProposition = "Saturated fat doesn't increase the risk of coronary heart disease."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -28,7 +28,7 @@ cuckEdwardGoeke =
|
|||
, cuckSocial = "https://x.com/GoekeEddie"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/TheNutrivore/status/1773421625150746784?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1773421625150746784?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = propSeedOils
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -36,7 +36,7 @@ cuckEdwardGoeke =
|
|||
, dodgeNicksDoxasticState = Just Disbelief
|
||||
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReasonInflammation
|
||||
}
|
||||
, { dodgeLink = "https://x.com/TheNutrivore/status/1774154640403423359?s=20"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1774154640403423359?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = propSeedOils
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -24,7 +24,7 @@ cuckElieJarrouge =
|
|||
, cuckSocial = "https://x.com/ElieJarrougeMD"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/TheNutrivore/status/1506845469980315648?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1506845469980315648?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "Sugar, refined carbs, and seed oils are poison."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckGaryBrecka =
|
|||
, cuckSocial = "https://x.com/garybrecka1"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/TheNutrivore/status/1726664526316372125"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1726664526316372125"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "Linoleic acid consumption causes atherosclerosis."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -26,7 +26,7 @@ cuckGaryFettke =
|
|||
, cuckSocial = "https://x.com/FructoseNo"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/TheNutrivore/status/1460983496524980224"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1460983496524980224"
|
||||
, dodgeDescription = GhostedMe
|
||||
, dodgeProposition = commonProps.propLinoleicAcid
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckGeorgeMartin =
|
|||
, cuckSocial = "https://x.com/CarnismDebunked"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/TheNutrivore/status/1815098730141651021"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1815098730141651021"
|
||||
, dodgeDescription = RanAway
|
||||
, dodgeProposition = "Nick has killed more animals in his life than a mature bear."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -27,7 +27,7 @@ cuckGuyAustin =
|
|||
, cuckSocial = "https://x.com/GuyNAustin"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/TheNutrivore/status/1538607434176020480"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1538607434176020480"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = noProposition
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -28,7 +28,7 @@ cuckIvorCummins =
|
|||
, cuckSocial = "https://x.com/FatEmperor"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1268600451693494273?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1268600451693494273?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = propLDL
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -27,7 +27,7 @@ cuckJakeMey =
|
|||
, cuckSocial = "https://x.com/CakeNutrition"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1490009495581298690?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1490009495581298690?s=20"
|
||||
, dodgeDescription = RanAway
|
||||
, dodgeProposition = "Vegan Friday meals are unhealthy for children."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -35,7 +35,7 @@ cuckJakeMey =
|
|||
, dodgeNicksDoxasticState = Just Disbelief
|
||||
, dodgeNicksDoxasticReason = SpecificPropReason propReason
|
||||
}
|
||||
, { dodgeLink = "https://x.com/The_Nutrivore/status/1490060813138280450?s=20"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1490060813138280450?s=20"
|
||||
, dodgeDescription = OutrightNo
|
||||
, dodgeProposition = "Vegan Friday meals are unhealthy for children."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -43,7 +43,7 @@ cuckJakeMey =
|
|||
, dodgeNicksDoxasticState = Just Disbelief
|
||||
, dodgeNicksDoxasticReason = SpecificPropReason propReason
|
||||
}
|
||||
, { dodgeLink = "https://x.com/The_Nutrivore/status/1495419256737091585?s=20"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1495419256737091585?s=20"
|
||||
, dodgeDescription = KillScreen
|
||||
, dodgeProposition = "Vegan Friday meals are unhealthy for children."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -26,7 +26,7 @@ cuckJamesDiNicolantonio =
|
|||
, cuckSocial = "https://x.com/drjamesdinic"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1460788569388171268?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1460788569388171268?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = commonProps.propLinoleicAcid
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -29,7 +29,7 @@ cuckJosephEverett =
|
|||
, cuckSocial = "https://x.com/JEverettLearned"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1535334822825971712?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1535334822825971712?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = propSeedOils
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -37,7 +37,7 @@ cuckJosephEverett =
|
|||
, dodgeNicksDoxasticState = Just Disbelief
|
||||
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReasonChronicDisease
|
||||
}
|
||||
, { dodgeLink = "https://x.com/TheNutrivore/status/1555138038740680704?s=20"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1555138038740680704?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = propSeedOils
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckJustinMares =
|
|||
, cuckSocial = "https://x.com/jwmares"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1329266554089869312?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1329266554089869312?s=20"
|
||||
, dodgeDescription = RanAway
|
||||
, dodgeProposition = "Vegetable oils drive inflammation and are causally linked to weight gain and diseases of inflammation."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckKaitMalthaner =
|
|||
, cuckSocial = "https://x.com/healthcoachkait"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1503258756687306753?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1503258756687306753?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "Omega-6 is pro-inflammatory."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -42,7 +42,7 @@ cuckKemMinnick =
|
|||
, dodgeNicksDoxasticState = Just Belief
|
||||
, dodgeNicksDoxasticReason = SpecificPropReason reason
|
||||
}
|
||||
, { dodgeLink = "https://x.com/The_Nutrivore/status/1476990862793986052?s=20"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1476990862793986052?s=20"
|
||||
, dodgeDescription = RanAway
|
||||
, dodgeProposition = prop
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -30,7 +30,7 @@ cuckKenBerry =
|
|||
, cuckSocial = "https://x.com/KenDBerryMD"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1366524889067368449?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1366524889067368449?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "Type 2 Diabetes is chronic carbohydrate overdose."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -38,7 +38,7 @@ cuckKenBerry =
|
|||
, dodgeNicksDoxasticState = Just Agnostic
|
||||
, dodgeNicksDoxasticReason = VagueProp
|
||||
}
|
||||
, { dodgeLink = "https://x.com/TheNutrivore/status/1539720236701589504?s=20"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1539720236701589504?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = propAnimalFat
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -46,7 +46,7 @@ cuckKenBerry =
|
|||
, dodgeNicksDoxasticState = Just Disbelief
|
||||
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason
|
||||
}
|
||||
, { dodgeLink = "https://x.com/TheNutrivore/status/1539721408372039680?s=20"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1539721408372039680?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = propAnimalFat
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -54,7 +54,7 @@ cuckKenBerry =
|
|||
, dodgeNicksDoxasticState = Just Disbelief
|
||||
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReason
|
||||
}
|
||||
, { dodgeLink = "https://x.com/TheNutrivore/status/1813969807521300615"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1813969807521300615"
|
||||
, dodgeDescription = InTooDeep
|
||||
, dodgeProposition = noProposition
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -26,7 +26,7 @@ cuckKevinStock =
|
|||
, cuckSocial = "https://x.com/kevinstock12"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1530140722225102848?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1530140722225102848?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = noProposition
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -34,7 +34,7 @@ cuckKevinStock =
|
|||
, dodgeNicksDoxasticState = Nothing
|
||||
, dodgeNicksDoxasticReason = NoProp
|
||||
}
|
||||
, { dodgeLink = "https://x.com/The_Nutrivore/status/1534927799911317509?s=20"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1534927799911317509?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "Saturated fat does not cause cardiovascular disease."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckKyleMamounis =
|
|||
, cuckSocial = "https://x.com/Nutricrinology"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1389259133044477953?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1389259133044477953?s=20"
|
||||
, dodgeDescription = RanAway
|
||||
, dodgeProposition = "Statins do not prevent cardiovascular events."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckMarkSisson =
|
|||
, cuckSocial = "https://x.com/Mark_Sisson"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/TheNutrivore/status/1488360227141419009?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1488360227141419009?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = noProposition
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -37,7 +37,7 @@ cuckMaxLugavere =
|
|||
, dodgeNicksDoxasticState = Just Disbelief
|
||||
, 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
|
||||
, dodgeProposition = prop
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckMichaelManderville =
|
|||
, cuckSocial = "https://x.com/MikeManderville"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1503036463306489856?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1503036463306489856?s=20"
|
||||
, dodgeDescription = RanAway
|
||||
, dodgeProposition = "A logically coherent position will have logically coherent answer to a logically coherent hypothetical."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckMikeMutzel =
|
|||
, cuckSocial = "https://x.com/MikeMutzel"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1414457776982552576?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1414457776982552576?s=20"
|
||||
, dodgeDescription = RanAway
|
||||
, dodgeProposition = "COVID is nothing more than a cold to those that are healthy."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -33,7 +33,7 @@ cuckMikeMutzel =
|
|||
, dodgeNicksDoxasticState = Just Agnostic
|
||||
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propEmpiricalClaim
|
||||
}
|
||||
, { dodgeLink = "https://x.com/TheNutrivore/status/1584645853771616256?s=20"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1584645853771616256?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "There is little to no association between saturated fat and cardiovascular disease."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckMikeSweeney =
|
|||
, cuckSocial = "https://x.com/thelowcarb_rd"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/TheNutrivore/status/1746962254052962552"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1746962254052962552"
|
||||
, dodgeDescription = OutrightNo
|
||||
, dodgeProposition = "Vegan diets are nowhere near appropriate for the average person in society."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -41,7 +41,7 @@ cuckMikeSweeney =
|
|||
, dodgeNicksDoxasticState = Just Agnostic
|
||||
, dodgeNicksDoxasticReason = VagueProp
|
||||
}
|
||||
, { dodgeLink = "https://x.com/TheNutrivore/status/1776652108646821913?t=Pf4sfAC1Z0pAcxGfQFr7oQ"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1776652108646821913?t=Pf4sfAC1Z0pAcxGfQFr7oQ"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "Cheerios cause nausea, vomiting, seizures, irregular heartbeat, liver damage, and coma."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -24,7 +24,7 @@ cuckNickEggleton =
|
|||
, cuckSocial = "https://x.com/NickEggleton"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1266626885703720961?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1266626885703720961?s=20"
|
||||
, dodgeDescription = OutrightNo
|
||||
, dodgeProposition = "Polyunsaturated fats are poison."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckNinaTeicholz =
|
|||
, cuckSocial = "https://x.com/bigfatsurprise"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/TheNutrivore/status/1556510529014882305?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1556510529014882305?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "The science linking red meat to heart disease is very weak."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -33,7 +33,7 @@ cuckNinaTeicholz =
|
|||
, dodgeNicksDoxasticState = Just Disbelief
|
||||
, 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
|
||||
, dodgeProposition = "The available evidence supports limiting saturated fat intake for coronary heart disease risk reduction."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -41,7 +41,7 @@ cuckNinaTeicholz =
|
|||
, dodgeNicksDoxasticState = Just Belief
|
||||
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSaturatedFatReason
|
||||
}
|
||||
, { dodgeLink = "https://x.com/TheNutrivore/status/1538895943050878977?s=20"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1538895943050878977?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "Vegans pretend biology isn't real."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -32,7 +32,7 @@ cuckNorstrongChris =
|
|||
, dodgeNicksDoxasticState = Just Agnostic
|
||||
, dodgeNicksDoxasticReason = VagueProp
|
||||
}
|
||||
, { dodgeLink = "https://x.com/The_Nutrivore/status/1534573919562350594?s=20"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1534573919562350594?s=20"
|
||||
, dodgeDescription = OutrightNo
|
||||
, dodgeProposition = "Nutrition science as a whole is shit."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -40,7 +40,7 @@ cuckNorstrongChris =
|
|||
, dodgeNicksDoxasticState = Just Agnostic
|
||||
, dodgeNicksDoxasticReason = VagueProp
|
||||
}
|
||||
, { dodgeLink = "https://x.com/TheNutrivore/status/1534614710196260865?s=20"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1534614710196260865?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "Nutrition science as a whole is shit."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -43,7 +43,7 @@ cuckPaulMason =
|
|||
, dodgeNicksDoxasticState = Just Agnostic
|
||||
, dodgeNicksDoxasticReason = VagueProp
|
||||
}
|
||||
, { dodgeLink = "https://x.com/The_Nutrivore/status/1461361726943760391?s=20"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1461361726943760391?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = commonProps.propLinoleicAcid
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -31,7 +31,7 @@ cuckPaulSaladino =
|
|||
, cuckSocial = "https://x.com/paulsaladinomd"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1275912849999695872?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1275912849999695872?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "Subsidies for corn and soy are huge contributors to the chronic disease epidemic in the US."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -55,7 +55,7 @@ cuckPaulSaladino =
|
|||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
, dodgeFallacy = Just AppealToNature
|
||||
}
|
||||
, { dodgeLink = "https://x.com/The_Nutrivore/status/1282851963902636032?s=20"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1282851963902636032?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = prop
|
||||
, dodgeNicksDoxasticState = Just Agnostic
|
||||
|
@ -63,7 +63,7 @@ cuckPaulSaladino =
|
|||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
, dodgeFallacy = Just AppealToNature
|
||||
}
|
||||
, { dodgeLink = "https://x.com/The_Nutrivore/status/1469136550046814219?s=20"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1469136550046814219?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "Nutritional epidemiology generally provides good causal estimates."
|
||||
, dodgeNicksDoxasticState = Just Belief
|
||||
|
@ -71,7 +71,7 @@ cuckPaulSaladino =
|
|||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
, dodgeFallacy = Nothing
|
||||
}
|
||||
, { dodgeLink = "https://x.com/TheNutrivore/status/1633831762509045766?s=20"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1633831762509045766?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "Linoleic acid wreaks havoc in your body."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -26,7 +26,7 @@ cuckPhilipOvadia =
|
|||
, cuckSocial = "https://x.com/ifixhearts"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/TheNutrivore/status/1557791520324890624?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1557791520324890624?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "Sugar is the problem and meat is the solution."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -34,7 +34,7 @@ cuckPhilipOvadia =
|
|||
, dodgeNicksDoxasticState = Just Agnostic
|
||||
, dodgeNicksDoxasticReason = VagueProp
|
||||
}
|
||||
, { dodgeLink = "https://x.com/TheNutrivore/status/1558282337024180224?s=20"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1558282337024180224?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "LDL doesn't cause coronary heart disease because it is just part of the arterial repair process."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckPhilippeStephenson =
|
|||
, cuckSocial = "https://x.com/TotalCytopath"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/TheNutrivore/status/1779587012120715433"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1779587012120715433"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "Seed oils save lives."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -24,7 +24,7 @@ cuckRalphNapolitano =
|
|||
, cuckSocial = "https://x.com/DrRalphNap"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1462794580848300034?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1462794580848300034?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "Oatmeal is one of the worst foods you can eat and has no health benefits."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckRobMeijer =
|
|||
, cuckSocial = "https://x.com/EngineerDiet"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1435850829051793408?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1435850829051793408?s=20"
|
||||
, dodgeDescription = RanAway
|
||||
, dodgeProposition = noProposition
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckRobbWolf =
|
|||
, cuckSocial = "https://x.com/robbwolf"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/TheNutrivore/status/1601624559647875072?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1601624559647875072?s=20"
|
||||
, dodgeDescription = OutrightNo
|
||||
, dodgeProposition = "Ancestral foods are more likely to be antagonistically pleiotropic than novel foods."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckShawnBaker =
|
|||
, cuckSocial = "https://x.com/SBakerMD"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/TheNutrivore/status/1868037979807346738"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1868037979807346738"
|
||||
, dodgeDescription = GhostedMe
|
||||
, dodgeProposition = noProposition
|
||||
, dodgeReceipts = []
|
||||
|
|
|
@ -29,7 +29,7 @@ cuckSimonGoddek =
|
|||
, cuckSocial = "https://x.com/goddeketal"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/TheNutrivore/status/1795673579931255233"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1795673579931255233"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = prop
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -37,7 +37,7 @@ cuckSimonGoddek =
|
|||
, dodgeNicksDoxasticState = Just Disbelief
|
||||
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReasonCVD
|
||||
}
|
||||
, { dodgeLink = "https://x.com/TheNutrivore/status/1795885929678196951"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1795885929678196951"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = prop
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -45,7 +45,7 @@ cuckSimonGoddek =
|
|||
, dodgeNicksDoxasticState = Just Disbelief
|
||||
, dodgeNicksDoxasticReason = SpecificPropReason commonPropReasons.propSeedOilsReasonCVD
|
||||
}
|
||||
, { dodgeLink = "https://x.com/TheNutrivore/status/1795674575315112396"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1795674575315112396"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = prop
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -29,7 +29,7 @@ cuckTravisStatham =
|
|||
, cuckSocial = "https://x.com/Travis_Statham"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1461428023207489542?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1461428023207489542?s=20"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = prop
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -24,7 +24,7 @@ cuckTristanHaggard =
|
|||
, cuckSocial = "https://x.com/Trxstxn4"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1513596227052527621?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1513596227052527621?s=20"
|
||||
, dodgeDescription = RanAway
|
||||
, dodgeProposition = "Seed oils are toxic."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -24,7 +24,7 @@ cuckTroKalayjian =
|
|||
, cuckSocial = "https://x.com/DoctorTro"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1261351818430255104?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1261351818430255104?s=20"
|
||||
, dodgeDescription = RanAway
|
||||
, dodgeProposition = "Dr. Tro engages in shitty behaviour that causes people to dislike him."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
@ -32,7 +32,7 @@ cuckTroKalayjian =
|
|||
, dodgeNicksDoxasticState = Just Belief
|
||||
, dodgeNicksDoxasticReason = SpecificPropReason "The proposition seems trivially true."
|
||||
}
|
||||
, { dodgeLink = "https://x.com/TheNutrivore/status/1865857839845232689"
|
||||
, { dodgeLink = "https://x.com/upRootNutrition/status/1865857839845232689"
|
||||
, dodgeDescription = RanAway
|
||||
, dodgeProposition = "Meat doesn’t cause cardiovascular disease"
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -26,7 +26,7 @@ cuckTuckerGoodrich =
|
|||
, cuckSocial = "https://x.com/TuckerGoodrich"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1276694117494358017?s=19"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1276694117494358017?s=19"
|
||||
, dodgeDescription = RanAway
|
||||
, dodgeProposition = "Nutritional epidemiology is almost always wrong."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckZoeHarcombe =
|
|||
, cuckSocial = "https://x.com/zoeharcombe"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/The_Nutrivore/status/1418263706178310149"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1418263706178310149"
|
||||
, dodgeDescription = NoReply
|
||||
, dodgeProposition = "Saturated fat doesn't increase the risk of coronary heart disease."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -25,7 +25,7 @@ cuckZsofiaClemens =
|
|||
, cuckSocial = "https://x.com/ClemensZsofia"
|
||||
, isNewTabLink = True
|
||||
, cuckDodges =
|
||||
[ { dodgeLink = "https://x.com/TheNutrivore/status/1528377198180290561?s=20"
|
||||
[ { dodgeLink = "https://x.com/upRootNutrition/status/1528377198180290561?s=20"
|
||||
, dodgeDescription = OutrightNo
|
||||
, dodgeProposition = "Well-planned, plant-based diets are healthy."
|
||||
, dodgeReceipts = [ { receipt = "receipt1" } ]
|
||||
|
|
|
@ -20,6 +20,7 @@ module Config.Style.Icons.Icons exposing
|
|||
, nutriDexLogo
|
||||
, services
|
||||
, thumbsDown
|
||||
, thumbsUp
|
||||
, twitter
|
||||
, upRootLarge
|
||||
, 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 inner =
|
||||
HeSvg.buildSvg inner
|
||||
|
|
|
@ -2,6 +2,7 @@ module Config.Style.Images exposing
|
|||
( imageSizer
|
||||
, imageSquareMaker
|
||||
, roundingScaler
|
||||
, ElementSize(..)
|
||||
)
|
||||
|
||||
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 =
|
||||
E.image
|
||||
[ D.rounded (roundingScaler size)
|
||||
|
@ -55,46 +56,40 @@ imageSquareMaker device imagePath isLeft size =
|
|||
}
|
||||
|
||||
|
||||
imageSizer : String -> Length
|
||||
imageSizer : ElementSize -> Length
|
||||
imageSizer size =
|
||||
case size of
|
||||
"Fill" ->
|
||||
Fill ->
|
||||
fill
|
||||
|
||||
"Fatty" ->
|
||||
Big ->
|
||||
px 128
|
||||
|
||||
"Big" ->
|
||||
Medium ->
|
||||
px 65
|
||||
|
||||
"Small" ->
|
||||
px 28
|
||||
|
||||
_ ->
|
||||
Small ->
|
||||
px 20
|
||||
|
||||
|
||||
roundingScaler : String -> Int
|
||||
roundingScaler : ElementSize -> Int
|
||||
roundingScaler size =
|
||||
case size of
|
||||
"Fill" ->
|
||||
Fill ->
|
||||
32
|
||||
|
||||
"Fatty" ->
|
||||
Big ->
|
||||
32
|
||||
|
||||
-- 128px
|
||||
"Big" ->
|
||||
Medium ->
|
||||
10
|
||||
|
||||
-- 65px
|
||||
"Small" ->
|
||||
10
|
||||
|
||||
-- 28px
|
||||
_ ->
|
||||
Small ->
|
||||
10
|
||||
|
||||
|
||||
|
||||
-- 20px default
|
||||
type ElementSize
|
||||
= Fill
|
||||
| Big
|
||||
| Medium
|
||||
| Small
|
||||
|
|
|
@ -2,7 +2,7 @@ module Effect exposing
|
|||
( Effect
|
||||
, none, batch
|
||||
, sendCmd, sendMsg
|
||||
, clearUser, saveUser, signIn, signOut, toggleLanguage, toggleNavbarExpansion
|
||||
, clearUser, saveUser, signIn, signOut, toggleLanguage,togglePopUp, toggleNavbarExpansion
|
||||
, pushRoute, replaceRoute, loadExternalUrl
|
||||
, map, toCmd
|
||||
)
|
||||
|
@ -214,6 +214,11 @@ toggleNavbarExpansion =
|
|||
SendSharedMsg Shared.Msg.ToggleNavbarExpansion
|
||||
|
||||
|
||||
togglePopUp : Effect msg
|
||||
togglePopUp =
|
||||
SendSharedMsg Shared.Msg.TogglePopUp
|
||||
|
||||
|
||||
toggleLanguage : Effect msg
|
||||
toggleLanguage =
|
||||
SendSharedMsg Shared.Msg.ToggleLanguage
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
module Pages.Blog exposing (Model, Msg, page)
|
||||
|
||||
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.Markdown exposing (renderDeviceMarkdownNoToc)
|
||||
import Config.Helpers.Cards.Inner.Text
|
||||
|
@ -45,7 +49,11 @@ import Config.Style.Fonts
|
|||
, paragraphSpacing
|
||||
)
|
||||
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 Element as E
|
||||
exposing
|
||||
|
@ -198,7 +206,7 @@ articleImage article =
|
|||
articleMaker : Device -> BlogArticle -> Element msg
|
||||
articleMaker device article =
|
||||
let
|
||||
image : String -> Element msg
|
||||
image : ElementSize -> Element msg
|
||||
image size =
|
||||
el
|
||||
[ alignLeft
|
||||
|
@ -223,7 +231,7 @@ articleMaker device article =
|
|||
none
|
||||
|
||||
_ ->
|
||||
image "Fatty"
|
||||
image Big
|
||||
, detailFormat column
|
||||
(articleRows article ++ [])
|
||||
]
|
||||
|
|
|
@ -35,7 +35,11 @@ import Config.Style.Colour.Helpers
|
|||
( ThemeColor(..)
|
||||
, colourTheme
|
||||
)
|
||||
import Config.Style.Images exposing (imageSquareMaker)
|
||||
import Config.Style.Images
|
||||
exposing
|
||||
( ElementSize(..)
|
||||
, imageSquareMaker
|
||||
)
|
||||
import Effect exposing (Effect)
|
||||
import Element as E
|
||||
exposing
|
||||
|
@ -163,7 +167,7 @@ contentList device contact =
|
|||
descriptionMaker : Device -> Contact -> Element msg
|
||||
descriptionMaker device contact =
|
||||
let
|
||||
image : String -> Element msg
|
||||
image : ElementSize -> Element msg
|
||||
image size =
|
||||
el
|
||||
[ alignLeft
|
||||
|
@ -186,7 +190,7 @@ descriptionMaker device contact =
|
|||
none
|
||||
|
||||
_ ->
|
||||
image "Fatty"
|
||||
image Big
|
||||
, detailFormat column
|
||||
[ detailBodyMaker TextLightGrey
|
||||
(text contact.contactDescription)
|
||||
|
|
|
@ -45,7 +45,11 @@ import Config.Style.Colour.Helpers as T
|
|||
( ThemeColor(..)
|
||||
, colourTheme
|
||||
)
|
||||
import Config.Style.Images exposing (imageSquareMaker)
|
||||
import Config.Style.Images
|
||||
exposing
|
||||
( ElementSize(..)
|
||||
, imageSquareMaker
|
||||
)
|
||||
import Effect exposing (Effect)
|
||||
import Element as E
|
||||
exposing
|
||||
|
@ -175,7 +179,7 @@ contentList device debate =
|
|||
descriptionMaker : Device -> Debate -> Element msg
|
||||
descriptionMaker device debate =
|
||||
let
|
||||
image : String -> Element msg
|
||||
image : ElementSize -> Element msg
|
||||
image size =
|
||||
el
|
||||
[ alignLeft
|
||||
|
@ -198,7 +202,7 @@ descriptionMaker device debate =
|
|||
none
|
||||
|
||||
_ ->
|
||||
image "Fatty"
|
||||
image Big
|
||||
, detailFormat column
|
||||
[ inferenceMaker debate
|
||||
, detailBodyMaker TextLightGrey
|
||||
|
|
|
@ -53,7 +53,11 @@ import Config.Style.Icons.Types as TySvg
|
|||
( InnerPart
|
||||
, OuterPart
|
||||
)
|
||||
import Config.Style.Images exposing (imageSquareMaker)
|
||||
import Config.Style.Images
|
||||
exposing
|
||||
( ElementSize(..)
|
||||
, imageSquareMaker
|
||||
)
|
||||
import Config.Style.Transitions exposing (transitionStyleSlow)
|
||||
import Effect exposing (Effect)
|
||||
import Element as E
|
||||
|
@ -250,7 +254,7 @@ debateList shared model =
|
|||
contentList : Shared.Model -> Model -> Bool -> Int -> Argument -> List (Element Msg)
|
||||
contentList shared model isLinkClicked index argument =
|
||||
let
|
||||
image : String -> Element msg
|
||||
image : ElementSize -> Element msg
|
||||
image size =
|
||||
el
|
||||
[ alignLeft
|
||||
|
@ -293,7 +297,7 @@ contentList shared model isLinkClicked index argument =
|
|||
none
|
||||
|
||||
_ ->
|
||||
image "Big"
|
||||
image Medium
|
||||
, el ([ height fill ] ++ bodyFormat TextLightGrey) <| text argument.propositionSummary
|
||||
]
|
||||
, detailFormat row
|
||||
|
@ -318,7 +322,12 @@ copyButton shared model isLinkClicked index argument =
|
|||
Input.button
|
||||
[ focused
|
||||
[ 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)
|
||||
|
|
|
@ -51,7 +51,7 @@ import Config.Style.Icons.Types as TySvg
|
|||
( InnerPart
|
||||
, OuterPart
|
||||
)
|
||||
import Config.Style.Images exposing (imageSquareMaker)
|
||||
import Config.Style.Images exposing (ElementSize(..), imageSquareMaker)
|
||||
import Config.Style.Transitions
|
||||
exposing
|
||||
( hoverFontDarkOrange
|
||||
|
@ -240,7 +240,7 @@ cucksList shared model =
|
|||
contentList : Shared.Model -> Model -> Bool -> Int -> Cuck -> List (Element Msg)
|
||||
contentList shared model isLinkClicked index cuck =
|
||||
let
|
||||
image : String -> Element msg
|
||||
image : ElementSize -> Element msg
|
||||
image size =
|
||||
el
|
||||
[ alignRight
|
||||
|
@ -264,7 +264,7 @@ contentList shared model isLinkClicked index cuck =
|
|||
none
|
||||
|
||||
_ ->
|
||||
image "Fatty"
|
||||
image Big
|
||||
, detailFormat column
|
||||
[ socialMaker cuck
|
||||
, dodgeTitle cuck
|
||||
|
|
|
@ -45,7 +45,7 @@ import Config.Style.Fonts
|
|||
( defaultFontSize
|
||||
, paragraphSpacing
|
||||
)
|
||||
import Config.Style.Images exposing (imageSquareMaker)
|
||||
import Config.Style.Images exposing (ElementSize(..), imageSquareMaker)
|
||||
import Effect exposing (Effect)
|
||||
import Element as E
|
||||
exposing
|
||||
|
@ -189,7 +189,7 @@ gibberishList shared =
|
|||
contentList : Shared.Model -> Gibberish -> List (Element msg)
|
||||
contentList shared gibberish =
|
||||
let
|
||||
image : String -> Element msg
|
||||
image : ElementSize -> Element msg
|
||||
image size =
|
||||
el
|
||||
[ E.alignLeft
|
||||
|
@ -217,7 +217,7 @@ contentList shared gibberish =
|
|||
none
|
||||
|
||||
_ ->
|
||||
image "Big"
|
||||
image Medium
|
||||
, text gibberish.gibberishDescription
|
||||
]
|
||||
, gibberishMakerBody shared gibberish
|
||||
|
|
|
@ -53,7 +53,11 @@ import Config.Style.Colour.Helpers as T
|
|||
( ThemeColor(..)
|
||||
, getThemeColor
|
||||
)
|
||||
import Config.Style.Images exposing (imageSquareMaker)
|
||||
import Config.Style.Images
|
||||
exposing
|
||||
( ElementSize(..)
|
||||
, imageSquareMaker
|
||||
)
|
||||
import Effect exposing (Effect)
|
||||
import Element as E
|
||||
exposing
|
||||
|
@ -202,7 +206,7 @@ donateList shared =
|
|||
contentList : Shared.Model -> Donate -> List (Element msg)
|
||||
contentList shared donate =
|
||||
let
|
||||
image : String -> Element msg
|
||||
image : ElementSize -> Element msg
|
||||
image size =
|
||||
el
|
||||
[ alignLeft
|
||||
|
@ -218,7 +222,7 @@ contentList shared donate =
|
|||
imageSquareMaker shared.device (imagePathMaker M.Donate donate.donateImage) True size
|
||||
in
|
||||
[ detailFormat row
|
||||
[ image "Fatty"
|
||||
[ image Big
|
||||
, detailFormat column
|
||||
[ feeMaker donate
|
||||
, preferenceMaker shared donate
|
||||
|
|
|
@ -60,7 +60,11 @@ import Config.Style.Colour.Helpers
|
|||
( ThemeColor(..)
|
||||
, colourTheme
|
||||
)
|
||||
import Config.Style.Images exposing (imageSquareMaker)
|
||||
import Config.Style.Images
|
||||
exposing
|
||||
( ElementSize(..)
|
||||
, imageSquareMaker
|
||||
)
|
||||
import Effect exposing (Effect)
|
||||
import Element as E
|
||||
exposing
|
||||
|
@ -194,7 +198,7 @@ interviewList shared =
|
|||
contentList : Shared.Model -> Interview -> List (Element msg)
|
||||
contentList shared interview =
|
||||
let
|
||||
image : String -> Element msg
|
||||
image : ElementSize -> Element msg
|
||||
image size =
|
||||
el
|
||||
[ alignLeft
|
||||
|
@ -219,7 +223,7 @@ contentList shared interview =
|
|||
none
|
||||
|
||||
_ ->
|
||||
image "Fatty"
|
||||
image Big
|
||||
in
|
||||
[ detailFormat row
|
||||
[ imageMaker
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
module Pages.Nutridex exposing (Model, Msg, page)
|
||||
|
||||
import Browser.Events exposing (onClick)
|
||||
import Config.Data.Identity exposing (pageNames)
|
||||
import Config.Helpers.Articles.Article exposing (makeReference)
|
||||
import Config.Helpers.Articles.Types exposing (References)
|
||||
|
@ -11,6 +12,7 @@ import Config.Helpers.Cards.Inner.Text
|
|||
, detailHeader
|
||||
, detailTitleMaker
|
||||
, divider
|
||||
, getHoverColours
|
||||
)
|
||||
import Config.Helpers.Cards.Outer.Helpers exposing (cardMaker)
|
||||
import Config.Helpers.Cards.Outer.Types as C exposing (Cardable(..))
|
||||
|
@ -29,6 +31,7 @@ import Config.Style.Colour.Helpers
|
|||
exposing
|
||||
( ThemeColor(..)
|
||||
, colourTheme
|
||||
, getThemeColor
|
||||
)
|
||||
import Config.Style.Fonts
|
||||
exposing
|
||||
|
@ -37,39 +40,69 @@ import Config.Style.Fonts
|
|||
, paragraphSpacing
|
||||
, 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
|
||||
exposing
|
||||
( hoverFontDarkOrange
|
||||
, transitionStyleFast
|
||||
, transitionStyleMedium
|
||||
, transitionStyleSlow
|
||||
)
|
||||
import Effect exposing (Effect)
|
||||
import Element as E
|
||||
exposing
|
||||
( Attr
|
||||
, Attribute
|
||||
, Device
|
||||
, DeviceClass(..)
|
||||
, Element
|
||||
, Orientation(..)
|
||||
, alignLeft
|
||||
, alignRight
|
||||
, alignTop
|
||||
, below
|
||||
, centerX
|
||||
, centerY
|
||||
, column
|
||||
, el
|
||||
, fill
|
||||
, focused
|
||||
, height
|
||||
, html
|
||||
, htmlAttribute
|
||||
, inFront
|
||||
, mouseOver
|
||||
, newTabLink
|
||||
, none
|
||||
, padding
|
||||
, paddingEach
|
||||
, paddingXY
|
||||
, paragraph
|
||||
, pointer
|
||||
, px
|
||||
, rgba
|
||||
, row
|
||||
, spacing
|
||||
, text
|
||||
, transparent
|
||||
, width
|
||||
)
|
||||
import Element.Background as B exposing (color)
|
||||
import Element.Border as D
|
||||
exposing
|
||||
( color
|
||||
, rounded
|
||||
, shadow
|
||||
, width
|
||||
)
|
||||
import Element.Font as F
|
||||
|
@ -78,17 +111,21 @@ import Element.Font as F
|
|||
, center
|
||||
, color
|
||||
)
|
||||
import Element.Input as Input
|
||||
import Html.Attributes exposing (style)
|
||||
import Html.Events as H exposing (onClick)
|
||||
import Layouts
|
||||
import Page exposing (Page)
|
||||
import Route exposing (Route)
|
||||
import Shared exposing (Model)
|
||||
import Svg.Attributes as SvgAttr
|
||||
import View exposing (View)
|
||||
|
||||
|
||||
page : Shared.Model -> Route () -> Page Model Msg
|
||||
page shared route =
|
||||
Page.new
|
||||
{ init = init
|
||||
{ init = init shared
|
||||
, update = update
|
||||
, subscriptions = subscriptions
|
||||
, view = view shared
|
||||
|
@ -106,12 +143,12 @@ toLayout model =
|
|||
|
||||
|
||||
type alias Model =
|
||||
{}
|
||||
{ isPopUpClicked : Bool }
|
||||
|
||||
|
||||
init : () -> ( Model, Effect Msg )
|
||||
init () =
|
||||
( {}
|
||||
init : Shared.Model -> () -> ( Model, Effect Msg )
|
||||
init shared () =
|
||||
( { isPopUpClicked = shared.isPopUpClicked }
|
||||
, Effect.map
|
||||
(\_ -> NoOp)
|
||||
(Effect.sendCmd resetViewport)
|
||||
|
@ -124,6 +161,7 @@ init () =
|
|||
|
||||
type Msg
|
||||
= NoOp
|
||||
| TogglePopUp
|
||||
|
||||
|
||||
update : Msg -> Model -> ( Model, Effect Msg )
|
||||
|
@ -134,6 +172,11 @@ update msg model =
|
|||
, Effect.none
|
||||
)
|
||||
|
||||
TogglePopUp ->
|
||||
( { model | isPopUpClicked = not model.isPopUpClicked }
|
||||
, Effect.togglePopUp
|
||||
)
|
||||
|
||||
|
||||
|
||||
-- SUBSCRIPTIONS
|
||||
|
@ -152,25 +195,25 @@ view : Shared.Model -> Model -> View Msg
|
|||
view shared model =
|
||||
{ title = pageNames.pageNutriDex
|
||||
, attributes = []
|
||||
, element = nutriDexContainer shared.device
|
||||
, element = nutriDexContainer shared model
|
||||
}
|
||||
|
||||
|
||||
nutriDexContainer : Device -> Element msg
|
||||
nutriDexContainer device =
|
||||
topLevelContainer (nutriDexList device)
|
||||
nutriDexContainer : Shared.Model -> Model -> Element Msg
|
||||
nutriDexContainer shared model =
|
||||
topLevelContainer (nutriDexList shared model)
|
||||
|
||||
|
||||
nutriDexList : Device -> Element msg
|
||||
nutriDexList device =
|
||||
nutriDexList : Shared.Model -> Model -> Element Msg
|
||||
nutriDexList shared model =
|
||||
column
|
||||
(case ( device.class, device.orientation ) of
|
||||
(case ( shared.device.class, shared.device.orientation ) of
|
||||
_ ->
|
||||
pageList device
|
||||
pageList shared.device
|
||||
)
|
||||
<|
|
||||
List.concat
|
||||
[ case ( device.class, device.orientation ) of
|
||||
[ case ( shared.device.class, shared.device.orientation ) of
|
||||
( Phone, Portrait ) ->
|
||||
[ headerMaker (R.NutriDex nutriDexHeader) ]
|
||||
|
||||
|
@ -181,24 +224,26 @@ nutriDexList device =
|
|||
[ none ]
|
||||
, List.map
|
||||
(\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 device nutridex =
|
||||
[ featureList nutridex device
|
||||
, nutriDexBodyMaker device
|
||||
, nutriDexAdjustments device
|
||||
contentList : Shared.Model -> NutriDex -> Bool -> List (Element Msg)
|
||||
contentList shared nutridex isPopUpClicked =
|
||||
[ featureList nutridex shared.device
|
||||
, nutriDexBodyMaker shared.device
|
||||
, nutriDexAdjustments shared.device
|
||||
, column [ spacing 10 ]
|
||||
[ nutriDexVitamins
|
||||
, nutriDexFattyAcids
|
||||
, nutriDexMinerals
|
||||
, 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 =
|
||||
column
|
||||
[ spacing 8
|
||||
, width fill
|
||||
, E.width fill
|
||||
, height fill
|
||||
, paddingEach
|
||||
{ top = 10
|
||||
|
@ -253,7 +298,7 @@ featureList nutridex device =
|
|||
_ ->
|
||||
row
|
||||
[ spacing 20
|
||||
, width fill
|
||||
, E.width fill
|
||||
, height fill
|
||||
]
|
||||
)
|
||||
|
@ -282,7 +327,7 @@ featureList nutridex device =
|
|||
]
|
||||
[ html nutriDexLogo
|
||||
]
|
||||
, buyButton "$20" "https://uprootnutrition.myshopify.com/cart/31192710807615:1?channel=buy_button"
|
||||
, buyButton "$20" "https://buy.stripe.com/fZecO177p34M5EY5ko"
|
||||
, column
|
||||
[ centerX ]
|
||||
[ 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)
|
||||
nutridex.nutriDexFeatures
|
||||
(List.range 1 (List.length nutridex.nutriDexFeatures))
|
||||
|
@ -381,7 +426,7 @@ referenceFormat =
|
|||
nutriDexAdjustments : Device -> Element msg
|
||||
nutriDexAdjustments device =
|
||||
column
|
||||
[ width fill
|
||||
[ E.width fill
|
||||
, height fill
|
||||
, spacing 20
|
||||
]
|
||||
|
@ -443,7 +488,7 @@ nutriDexVitamins : Element msg
|
|||
nutriDexVitamins =
|
||||
column
|
||||
[ spacing 20
|
||||
, width fill
|
||||
, E.width fill
|
||||
, height fill
|
||||
]
|
||||
[ nutridexSubTitleMaker "Vitamins"
|
||||
|
@ -544,7 +589,7 @@ nutriDexFattyAcids : Element msg
|
|||
nutriDexFattyAcids =
|
||||
column
|
||||
[ spacing 20
|
||||
, width fill
|
||||
, E.width fill
|
||||
, height fill
|
||||
]
|
||||
[ nutridexSubTitleMaker "Fatty Acids"
|
||||
|
@ -684,12 +729,12 @@ nutriDexAminoAcids =
|
|||
nutriDexReferences : NutriDex -> Device -> Element msg
|
||||
nutriDexReferences nutridex device =
|
||||
column
|
||||
[ width fill
|
||||
[ E.width fill
|
||||
, height fill
|
||||
]
|
||||
[ detailHeader "BIBLIOGRAPHY"
|
||||
, column
|
||||
[ width fill
|
||||
[ E.width fill
|
||||
, F.size 15
|
||||
, spacing 10
|
||||
, paddingEach
|
||||
|
@ -704,3 +749,101 @@ nutriDexReferences nutridex device =
|
|||
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" ]
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
@ -41,7 +41,11 @@ import Config.Style.Colour.Helpers as T
|
|||
( ThemeColor(..)
|
||||
, getThemeColor
|
||||
)
|
||||
import Config.Style.Images exposing (imageSquareMaker)
|
||||
import Config.Style.Images
|
||||
exposing
|
||||
( ElementSize(..)
|
||||
, imageSquareMaker
|
||||
)
|
||||
import Effect exposing (Effect)
|
||||
import Element as E
|
||||
exposing
|
||||
|
@ -169,7 +173,7 @@ servicesList device =
|
|||
contentList : Device -> Service -> List (Element msg)
|
||||
contentList device service =
|
||||
let
|
||||
image : String -> Element msg
|
||||
image : ElementSize -> Element msg
|
||||
image size =
|
||||
el
|
||||
[ alignLeft
|
||||
|
@ -192,7 +196,7 @@ contentList device service =
|
|||
none
|
||||
|
||||
_ ->
|
||||
image "Fatty"
|
||||
image Big
|
||||
, detailFormat column
|
||||
[ rateMaker service
|
||||
, descriptionMaker
|
||||
|
|
|
@ -81,6 +81,7 @@ modelFromFlagsResult f =
|
|||
, language = TyLang.English
|
||||
, user = Just { token = "asht", name = "billy" }
|
||||
, width = flags.width
|
||||
, isPopUpClicked = False
|
||||
}
|
||||
|
||||
Err e ->
|
||||
|
@ -94,6 +95,7 @@ modelFromFlagsResult f =
|
|||
, language = TyLang.English
|
||||
, user = Nothing
|
||||
, width = 10
|
||||
, isPopUpClicked = False
|
||||
}
|
||||
|
||||
|
||||
|
@ -126,6 +128,11 @@ update route msg model =
|
|||
, Effect.none
|
||||
)
|
||||
|
||||
Shared.Msg.TogglePopUp ->
|
||||
( { model | isPopUpClicked = not model.isPopUpClicked }
|
||||
, Effect.none
|
||||
)
|
||||
|
||||
Shared.Msg.SignIn user ->
|
||||
( { model | user = Just user }
|
||||
, Effect.batch
|
||||
|
|
|
@ -11,6 +11,7 @@ type alias Model =
|
|||
, language : TyLang.Language
|
||||
, isNavbarExpanded : Bool
|
||||
, user : Maybe User
|
||||
, isPopUpClicked : Bool
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -19,3 +19,4 @@ type Msg
|
|||
| SignOut
|
||||
| ToggleLanguage
|
||||
| ToggleNavbarExpansion
|
||||
| TogglePopUp
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue