mirror of
https://gitlab.com/upRootNutrition/website.git
synced 2025-06-16 04:25:11 -05:00
feat: added some stuff
This commit is contained in:
parent
f73dab4579
commit
36f9c89214
21 changed files with 573 additions and 155 deletions
80
frontend/src/Headers/Helpers.elm
Normal file
80
frontend/src/Headers/Helpers.elm
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
module Headers.Helpers exposing (..)
|
||||||
|
|
||||||
|
import Config.CardFormat exposing (..)
|
||||||
|
import Config.Colour exposing (..)
|
||||||
|
import Config.Format exposing (..)
|
||||||
|
import Config.StrengthBar exposing (..)
|
||||||
|
import Config.ToolTip exposing (..)
|
||||||
|
import Effect exposing (Effect)
|
||||||
|
import Element as E exposing (..)
|
||||||
|
import Element.Background as B exposing (..)
|
||||||
|
import Element.Border as D
|
||||||
|
import Element.Font as F
|
||||||
|
import Headers.Types exposing (..)
|
||||||
|
import Html.Attributes as H exposing (style)
|
||||||
|
import Interviews.Types exposing (..)
|
||||||
|
import Layouts
|
||||||
|
import Page exposing (Page)
|
||||||
|
import Route exposing (Route)
|
||||||
|
import Shared
|
||||||
|
import View exposing (View)
|
||||||
|
|
||||||
|
|
||||||
|
headerMaker : Header -> Element msg
|
||||||
|
headerMaker header =
|
||||||
|
row
|
||||||
|
topLevelBox
|
||||||
|
[ column
|
||||||
|
[ E.width <| px 785
|
||||||
|
, D.width 5
|
||||||
|
, D.color colourTheme.backgroundDarkGrey
|
||||||
|
, D.roundEach
|
||||||
|
{ topLeft = 32
|
||||||
|
, topRight = 32
|
||||||
|
, bottomRight = 32
|
||||||
|
, bottomLeft = 32
|
||||||
|
}
|
||||||
|
]
|
||||||
|
[ paragraph
|
||||||
|
(nonHighlightedTitleFormat
|
||||||
|
++ [ F.size 20
|
||||||
|
, B.color colourTheme.textDarkOrange
|
||||||
|
, paddingEach
|
||||||
|
{ top = 6
|
||||||
|
, bottom = 3
|
||||||
|
, left = 25
|
||||||
|
, right = 15
|
||||||
|
}
|
||||||
|
, alignBottom
|
||||||
|
, width fill
|
||||||
|
, F.center
|
||||||
|
, D.roundEach
|
||||||
|
{ topLeft = 26
|
||||||
|
, topRight = 26
|
||||||
|
, bottomRight = 0
|
||||||
|
, bottomLeft = 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
)
|
||||||
|
[ text header.headerTitle ]
|
||||||
|
, cardFormatter
|
||||||
|
[ cardContentSpacing
|
||||||
|
[ column
|
||||||
|
fieldSpacer
|
||||||
|
[ paragraph
|
||||||
|
(paragraphFormat
|
||||||
|
++ [ F.size 18
|
||||||
|
, F.center
|
||||||
|
]
|
||||||
|
)
|
||||||
|
[ text header.headerBody ]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
headerTitle : Header -> String
|
||||||
|
headerTitle header =
|
||||||
|
header.headerTitle
|
10
frontend/src/Headers/Pages/Arguments.elm
Normal file
10
frontend/src/Headers/Pages/Arguments.elm
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
module Headers.Pages.Arguments exposing (..)
|
||||||
|
|
||||||
|
import Headers.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
argumentHeader : Header
|
||||||
|
argumentHeader =
|
||||||
|
{ headerTitle = "DEBATE"
|
||||||
|
, headerBody = "This page features arguments that I hold to be sound. I'm open to hearing all challenges, as I am ready to engage with and defend any argument listed."
|
||||||
|
}
|
10
frontend/src/Headers/Pages/Contact.elm
Normal file
10
frontend/src/Headers/Pages/Contact.elm
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
module Headers.Pages.Contact exposing (..)
|
||||||
|
|
||||||
|
import Headers.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
contactHeader : Header
|
||||||
|
contactHeader =
|
||||||
|
{ headerTitle = "CONTACT"
|
||||||
|
, headerBody = "fasdklfjasdlk;fjasdl;fjasdfl;kasjdfl;askdja;lsdkjas;ldfj"
|
||||||
|
}
|
10
frontend/src/Headers/Pages/CuckList.elm
Normal file
10
frontend/src/Headers/Pages/CuckList.elm
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
module Headers.Pages.CuckList exposing (..)
|
||||||
|
|
||||||
|
import Headers.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
cuckListHeader : Header
|
||||||
|
cuckListHeader =
|
||||||
|
{ headerTitle = "CUCKLIST"
|
||||||
|
, headerBody = "This page features a list of morons who wrote cheques with their mouths that their asses couldn't cash. Each person included in this list has dodged debating me."
|
||||||
|
}
|
10
frontend/src/Headers/Pages/Donate.elm
Normal file
10
frontend/src/Headers/Pages/Donate.elm
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
module Headers.Pages.Donate exposing (..)
|
||||||
|
|
||||||
|
import Headers.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
donateHeader : Header
|
||||||
|
donateHeader =
|
||||||
|
{ headerTitle = "DONATE"
|
||||||
|
, headerBody = "My site, research, and content all cost time and money to run. If you find my contributions valuable, please consider supporting my work on any of the platforms listed below!"
|
||||||
|
}
|
10
frontend/src/Headers/Pages/HyperBlog.elm
Normal file
10
frontend/src/Headers/Pages/HyperBlog.elm
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
module Headers.Pages.HyperBlog exposing (..)
|
||||||
|
|
||||||
|
import Headers.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
hyperBlogHeader : Header
|
||||||
|
hyperBlogHeader =
|
||||||
|
{ headerTitle = "HYPERBLOG"
|
||||||
|
, headerBody = "fasdklfjasdlk;fjasdl;fjasdfl;kasjdfl;askdja;lsdkjas;ldfj"
|
||||||
|
}
|
10
frontend/src/Headers/Pages/Interviews.elm
Normal file
10
frontend/src/Headers/Pages/Interviews.elm
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
module Headers.Pages.Interviews exposing (..)
|
||||||
|
|
||||||
|
import Headers.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
interviewHeader : Header
|
||||||
|
interviewHeader =
|
||||||
|
{ headerTitle = "INTERVIEWS"
|
||||||
|
, headerBody = "This page showcases various podcasts and shows I've been on. If you’d like to have me as a guest on your podcast, feel free to reach out—I’d love to share my perspectives with your audience!"
|
||||||
|
}
|
10
frontend/src/Headers/Pages/NutriDex.elm
Normal file
10
frontend/src/Headers/Pages/NutriDex.elm
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
module Headers.Pages.NutriDex exposing (..)
|
||||||
|
|
||||||
|
import Headers.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
nutriDexHeader : Header
|
||||||
|
nutriDexHeader =
|
||||||
|
{ headerTitle = "NUTRIDEX"
|
||||||
|
, headerBody = "fasdklfjasdlk;fjasdl;fjasdfl;kasjdfl;askdja;lsdkjas;ldfj"
|
||||||
|
}
|
10
frontend/src/Headers/Pages/Services.elm
Normal file
10
frontend/src/Headers/Pages/Services.elm
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
module Headers.Pages.Services exposing (..)
|
||||||
|
|
||||||
|
import Headers.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
servicesHeader : Header
|
||||||
|
servicesHeader =
|
||||||
|
{ headerTitle = "SERVICES"
|
||||||
|
, headerBody = "Bundle any of the services below to receive a $10 discount per hour. For example, two Debate Analysis sessions would cost $140 total, instead of $80/hr. All prices are in CAD."
|
||||||
|
}
|
7
frontend/src/Headers/Types.elm
Normal file
7
frontend/src/Headers/Types.elm
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
module Headers.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
type alias Header =
|
||||||
|
{ headerTitle : String
|
||||||
|
, headerBody : String
|
||||||
|
}
|
|
@ -5,7 +5,6 @@ import Config.Colour exposing (..)
|
||||||
import Config.Format exposing (..)
|
import Config.Format exposing (..)
|
||||||
import Config.StrengthBar exposing (..)
|
import Config.StrengthBar exposing (..)
|
||||||
import Config.ToolTip exposing (..)
|
import Config.ToolTip exposing (..)
|
||||||
import Cuckery.Types exposing (..)
|
|
||||||
import Effect exposing (Effect)
|
import Effect exposing (Effect)
|
||||||
import Element as E exposing (..)
|
import Element as E exposing (..)
|
||||||
import Element.Background as B exposing (..)
|
import Element.Background as B exposing (..)
|
||||||
|
|
|
@ -60,6 +60,8 @@ import Effect exposing (Effect)
|
||||||
import Element exposing (..)
|
import Element exposing (..)
|
||||||
import Element.Border as D exposing (..)
|
import Element.Border as D exposing (..)
|
||||||
import Element.Font as F
|
import Element.Font as F
|
||||||
|
import Headers.Helpers exposing (headerMaker)
|
||||||
|
import Headers.Pages.Arguments exposing (argumentHeader)
|
||||||
import Html
|
import Html
|
||||||
import Html.Attributes as H exposing (style, title, wrap)
|
import Html.Attributes as H exposing (style, title, wrap)
|
||||||
import Layouts
|
import Layouts
|
||||||
|
@ -151,7 +153,10 @@ debateList =
|
||||||
[ column
|
[ column
|
||||||
pageList
|
pageList
|
||||||
<|
|
<|
|
||||||
List.map argumentMaker
|
List.concat
|
||||||
|
[ List.map headerMaker
|
||||||
|
[ argumentHeader ]
|
||||||
|
, List.map argumentMaker
|
||||||
[ argumentApoBCVD
|
[ argumentApoBCVD
|
||||||
, argumentAnabolicKeto
|
, argumentAnabolicKeto
|
||||||
, argumentAntagonisticPleiotropy
|
, argumentAntagonisticPleiotropy
|
||||||
|
@ -202,9 +207,7 @@ debateList =
|
||||||
, argumentFlatEarthDebunk
|
, argumentFlatEarthDebunk
|
||||||
, argumentTruncatedMeta
|
, argumentTruncatedMeta
|
||||||
]
|
]
|
||||||
, column
|
, List.map gibberishMaker
|
||||||
pageList
|
|
||||||
<|
|
|
||||||
List.map gibberishMaker
|
|
||||||
[ gibberishList ]
|
[ gibberishList ]
|
||||||
]
|
]
|
||||||
|
]
|
||||||
|
|
|
@ -74,6 +74,8 @@ import Effect exposing (Effect)
|
||||||
import Element exposing (..)
|
import Element exposing (..)
|
||||||
import Element.Border as D
|
import Element.Border as D
|
||||||
import Element.Font as F
|
import Element.Font as F
|
||||||
|
import Headers.Helpers exposing (headerMaker)
|
||||||
|
import Headers.Pages.CuckList exposing (cuckListHeader)
|
||||||
import Html.Attributes as H exposing (style)
|
import Html.Attributes as H exposing (style)
|
||||||
import Layouts
|
import Layouts
|
||||||
import Page exposing (Page)
|
import Page exposing (Page)
|
||||||
|
@ -161,7 +163,10 @@ dodgersList =
|
||||||
column
|
column
|
||||||
pageList
|
pageList
|
||||||
<|
|
<|
|
||||||
List.map cuckMaker
|
List.concat
|
||||||
|
[ List.map headerMaker
|
||||||
|
[ cuckListHeader ]
|
||||||
|
, List.map cuckMaker
|
||||||
[ cuckAdamSinger
|
[ cuckAdamSinger
|
||||||
, cuckAmberOHearn
|
, cuckAmberOHearn
|
||||||
, cuckAnnChilders
|
, cuckAnnChilders
|
||||||
|
@ -229,3 +234,4 @@ dodgersList =
|
||||||
, cuckZoeHarcombe
|
, cuckZoeHarcombe
|
||||||
, cuckZsofiaClemens
|
, cuckZsofiaClemens
|
||||||
]
|
]
|
||||||
|
]
|
||||||
|
|
|
@ -17,6 +17,8 @@ import Element as E exposing (..)
|
||||||
import Element.Background as B exposing (..)
|
import Element.Background as B exposing (..)
|
||||||
import Element.Border as D exposing (..)
|
import Element.Border as D exposing (..)
|
||||||
import Element.Font as F
|
import Element.Font as F
|
||||||
|
import Headers.Helpers exposing (headerMaker)
|
||||||
|
import Headers.Pages.Donate exposing (donateHeader)
|
||||||
import Html.Attributes as H exposing (style)
|
import Html.Attributes as H exposing (style)
|
||||||
import Layouts
|
import Layouts
|
||||||
import Page exposing (Page)
|
import Page exposing (Page)
|
||||||
|
@ -101,20 +103,11 @@ donateContainer =
|
||||||
|
|
||||||
donateList : Element msg
|
donateList : Element msg
|
||||||
donateList =
|
donateList =
|
||||||
column pageList
|
column pageList <|
|
||||||
[ paragraph
|
List.concat
|
||||||
(paragraphFormat
|
[ List.map headerMaker
|
||||||
++ [ F.size 18
|
[ donateHeader ]
|
||||||
, alignTop
|
, List.map donateMaker
|
||||||
, E.width <| px 800
|
|
||||||
, centerX, F.center
|
|
||||||
]
|
|
||||||
)
|
|
||||||
[ text "Any of the below services may be bundled for a $10 discount off each hour. For example, bundling two sessions of Debate Analysis would be $140 total, rather than $80/hr. All services are changed in CAD." ]
|
|
||||||
, column
|
|
||||||
pageList
|
|
||||||
<|
|
|
||||||
List.map donateMaker
|
|
||||||
[ donateLiberaPay
|
[ donateLiberaPay
|
||||||
, donatePayPal
|
, donatePayPal
|
||||||
, donatePatreon
|
, donatePatreon
|
||||||
|
|
|
@ -7,6 +7,8 @@ import Config.Identity as I exposing (..)
|
||||||
import Effect exposing (Effect)
|
import Effect exposing (Effect)
|
||||||
import Element exposing (..)
|
import Element exposing (..)
|
||||||
import Element.Font as F
|
import Element.Font as F
|
||||||
|
import Headers.Helpers exposing (headerMaker)
|
||||||
|
import Headers.Pages.NutriDex exposing (nutriDexHeader)
|
||||||
import Html.Attributes as H exposing (style)
|
import Html.Attributes as H exposing (style)
|
||||||
import Layouts
|
import Layouts
|
||||||
import Page exposing (Page)
|
import Page exposing (Page)
|
||||||
|
@ -23,6 +25,12 @@ page shared route =
|
||||||
, subscriptions = subscriptions
|
, subscriptions = subscriptions
|
||||||
, view = view
|
, view = view
|
||||||
}
|
}
|
||||||
|
|> Page.withLayout toLayout
|
||||||
|
|
||||||
|
|
||||||
|
toLayout : Model -> Layouts.Layout Msg
|
||||||
|
toLayout model =
|
||||||
|
Layouts.Navbar {}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -72,4 +80,7 @@ subscriptions model =
|
||||||
|
|
||||||
view : Model -> View Msg
|
view : Model -> View Msg
|
||||||
view model =
|
view model =
|
||||||
View.fromString "Pages.Hyperblog"
|
{ title = hyperBlogName
|
||||||
|
, attributes = []
|
||||||
|
, element = none
|
||||||
|
}
|
||||||
|
|
|
@ -7,6 +7,8 @@ import Effect exposing (Effect)
|
||||||
import Element exposing (..)
|
import Element exposing (..)
|
||||||
import Element.Border as D
|
import Element.Border as D
|
||||||
import Element.Font as F
|
import Element.Font as F
|
||||||
|
import Headers.Helpers exposing (headerMaker)
|
||||||
|
import Headers.Pages.Interviews exposing (interviewHeader)
|
||||||
import Html
|
import Html
|
||||||
import Html.Attributes as H exposing (style)
|
import Html.Attributes as H exposing (style)
|
||||||
import Interviews.Episodes.DrShawnBakerPodcast exposing (drShawnBakerPodcast)
|
import Interviews.Episodes.DrShawnBakerPodcast exposing (drShawnBakerPodcast)
|
||||||
|
@ -20,6 +22,7 @@ import Interviews.Episodes.SigmaNutritionRadio exposing (sigmaNutritionRadio)
|
||||||
import Interviews.Episodes.StrenuousLifePodcast exposing (strenuousLifePodcast)
|
import Interviews.Episodes.StrenuousLifePodcast exposing (strenuousLifePodcast)
|
||||||
import Interviews.Helpers exposing (..)
|
import Interviews.Helpers exposing (..)
|
||||||
import Layouts
|
import Layouts
|
||||||
|
import List exposing (head)
|
||||||
import Page exposing (Page)
|
import Page exposing (Page)
|
||||||
import Route exposing (Route)
|
import Route exposing (Route)
|
||||||
import Shared
|
import Shared
|
||||||
|
@ -105,7 +108,10 @@ interviewList =
|
||||||
column
|
column
|
||||||
pageList
|
pageList
|
||||||
<|
|
<|
|
||||||
List.map interviewMaker
|
List.concat
|
||||||
|
[ List.map headerMaker
|
||||||
|
[ interviewHeader ]
|
||||||
|
, List.map interviewMaker
|
||||||
[ sigmaNutritionRadio
|
[ sigmaNutritionRadio
|
||||||
, markBellsPowerProject
|
, markBellsPowerProject
|
||||||
, foolproofMastery
|
, foolproofMastery
|
||||||
|
@ -116,3 +122,4 @@ interviewList =
|
||||||
, strenuousLifePodcast
|
, strenuousLifePodcast
|
||||||
, drShawnBakerPodcast
|
, drShawnBakerPodcast
|
||||||
]
|
]
|
||||||
|
]
|
||||||
|
|
107
frontend/src/Pages/Nutridex.elm
Normal file
107
frontend/src/Pages/Nutridex.elm
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
module Pages.Nutridex exposing (Model, Msg, page)
|
||||||
|
|
||||||
|
import Config.Colour as T exposing (..)
|
||||||
|
import Config.Format as O exposing (..)
|
||||||
|
import Config.Identity as I exposing (..)
|
||||||
|
import Donate.Types exposing (..)
|
||||||
|
import Effect exposing (Effect)
|
||||||
|
import Element as E exposing (..)
|
||||||
|
import Element.Background as B exposing (..)
|
||||||
|
import Element.Border as D exposing (..)
|
||||||
|
import Element.Font as F
|
||||||
|
import Headers.Helpers exposing (headerMaker)
|
||||||
|
import Headers.Pages.Donate exposing (donateHeader)
|
||||||
|
import Headers.Pages.NutriDex exposing (nutriDexHeader)
|
||||||
|
import Html
|
||||||
|
import Html.Attributes as H exposing (style)
|
||||||
|
import Layout exposing (..)
|
||||||
|
import Layouts
|
||||||
|
import Page exposing (Page)
|
||||||
|
import Products.Helpers exposing (..)
|
||||||
|
import Products.NutriDex.NutriDex exposing (productNutriDex)
|
||||||
|
import Route exposing (Route)
|
||||||
|
import Shared exposing (..)
|
||||||
|
import View exposing (View)
|
||||||
|
|
||||||
|
|
||||||
|
page : Shared.Model -> Route () -> Page Model Msg
|
||||||
|
page shared route =
|
||||||
|
Page.new
|
||||||
|
{ init = init
|
||||||
|
, update = update
|
||||||
|
, subscriptions = subscriptions
|
||||||
|
, view = view
|
||||||
|
}
|
||||||
|
|> Page.withLayout toLayout
|
||||||
|
|
||||||
|
|
||||||
|
toLayout : Model -> Layouts.Layout Msg
|
||||||
|
toLayout model =
|
||||||
|
Layouts.Navbar {}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- INIT
|
||||||
|
|
||||||
|
|
||||||
|
type alias Model =
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
init : () -> ( Model, Effect Msg )
|
||||||
|
init () =
|
||||||
|
( {}
|
||||||
|
, Effect.none
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- UPDATE
|
||||||
|
|
||||||
|
|
||||||
|
type Msg
|
||||||
|
= NoOp
|
||||||
|
|
||||||
|
|
||||||
|
update : Msg -> Model -> ( Model, Effect Msg )
|
||||||
|
update msg model =
|
||||||
|
case msg of
|
||||||
|
NoOp ->
|
||||||
|
( model
|
||||||
|
, Effect.none
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- SUBSCRIPTIONS
|
||||||
|
|
||||||
|
|
||||||
|
subscriptions : Model -> Sub Msg
|
||||||
|
subscriptions model =
|
||||||
|
Sub.none
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- VIEW
|
||||||
|
|
||||||
|
|
||||||
|
view : Model -> View Msg
|
||||||
|
view model =
|
||||||
|
{ title = nutriDexName
|
||||||
|
, attributes = []
|
||||||
|
, element = nutriDexContainer
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
nutriDexContainer : Element msg
|
||||||
|
nutriDexContainer =
|
||||||
|
topLevelContainer nutriDexList
|
||||||
|
|
||||||
|
|
||||||
|
nutriDexList : Element msg
|
||||||
|
nutriDexList =
|
||||||
|
column pageList <|
|
||||||
|
List.concat
|
||||||
|
[ List.map nutriDexMaker
|
||||||
|
[ productNutriDex ]
|
||||||
|
]
|
|
@ -6,6 +6,8 @@ import Config.Identity as I exposing (..)
|
||||||
import Effect exposing (Effect)
|
import Effect exposing (Effect)
|
||||||
import Element exposing (..)
|
import Element exposing (..)
|
||||||
import Element.Font as F
|
import Element.Font as F
|
||||||
|
import Headers.Helpers exposing (headerMaker)
|
||||||
|
import Headers.Pages.Services exposing (servicesHeader)
|
||||||
import Html.Attributes as H exposing (style)
|
import Html.Attributes as H exposing (style)
|
||||||
import Layouts
|
import Layouts
|
||||||
import Page exposing (Page)
|
import Page exposing (Page)
|
||||||
|
@ -99,10 +101,14 @@ servicesList =
|
||||||
column
|
column
|
||||||
pageList
|
pageList
|
||||||
<|
|
<|
|
||||||
List.map serviceMaker
|
List.concat
|
||||||
|
[ List.map headerMaker
|
||||||
|
[ servicesHeader ]
|
||||||
|
, List.map serviceMaker
|
||||||
[ servicesDebateAnalysis
|
[ servicesDebateAnalysis
|
||||||
, servicesDebateTutoring
|
, servicesDebateTutoring
|
||||||
, servicesNutritionScience
|
, servicesNutritionScience
|
||||||
, servicesNixBuilds
|
, servicesNixBuilds
|
||||||
, servicesElmBuilds
|
, servicesElmBuilds
|
||||||
]
|
]
|
||||||
|
]
|
||||||
|
|
76
frontend/src/Products/Helpers.elm
Normal file
76
frontend/src/Products/Helpers.elm
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
module Products.Helpers exposing (..)
|
||||||
|
|
||||||
|
import Config.CardFormat exposing (..)
|
||||||
|
import Config.Colour exposing (..)
|
||||||
|
import Config.Format exposing (..)
|
||||||
|
import Config.StrengthBar exposing (..)
|
||||||
|
import Config.ToolTip exposing (..)
|
||||||
|
import Effect exposing (Effect)
|
||||||
|
import Element as E exposing (..)
|
||||||
|
import Element.Background as B exposing (..)
|
||||||
|
import Element.Border as D
|
||||||
|
import Element.Font as F
|
||||||
|
import Headers.Types exposing (..)
|
||||||
|
import Html.Attributes as H exposing (style)
|
||||||
|
import Interviews.Types exposing (..)
|
||||||
|
import Layouts
|
||||||
|
import Page exposing (Page)
|
||||||
|
import Products.Types exposing (..)
|
||||||
|
import Route exposing (Route)
|
||||||
|
import Shared
|
||||||
|
import View exposing (View)
|
||||||
|
|
||||||
|
|
||||||
|
nutriDexMaker : NutriDex -> Element msg
|
||||||
|
nutriDexMaker nutridex =
|
||||||
|
row
|
||||||
|
topLevelBox
|
||||||
|
[ column
|
||||||
|
[ E.width <| px 785
|
||||||
|
, D.width 5
|
||||||
|
, D.color colourTheme.backgroundDarkGrey
|
||||||
|
, D.roundEach
|
||||||
|
{ topLeft = 32
|
||||||
|
, topRight = 32
|
||||||
|
, bottomRight = 32
|
||||||
|
, bottomLeft = 32
|
||||||
|
}
|
||||||
|
]
|
||||||
|
[ paragraph
|
||||||
|
(nonHighlightedTitleFormat
|
||||||
|
++ [ F.size 20
|
||||||
|
, B.color colourTheme.textDarkOrange
|
||||||
|
, paddingEach
|
||||||
|
{ top = 6
|
||||||
|
, bottom = 3
|
||||||
|
, left = 25
|
||||||
|
, right = 15
|
||||||
|
}
|
||||||
|
, alignBottom
|
||||||
|
, width fill
|
||||||
|
, F.center
|
||||||
|
, D.roundEach
|
||||||
|
{ topLeft = 26
|
||||||
|
, topRight = 26
|
||||||
|
, bottomRight = 0
|
||||||
|
, bottomLeft = 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
)
|
||||||
|
[ text nutridex.nutriDexTitle ]
|
||||||
|
, cardFormatter
|
||||||
|
[ cardContentSpacing
|
||||||
|
[ column
|
||||||
|
fieldSpacer
|
||||||
|
[ paragraph
|
||||||
|
(paragraphFormat
|
||||||
|
++ [ F.size 18
|
||||||
|
, F.center
|
||||||
|
]
|
||||||
|
)
|
||||||
|
[ text nutridex.nutriDexTitle ]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
21
frontend/src/Products/NutriDex/NutriDex.elm
Normal file
21
frontend/src/Products/NutriDex/NutriDex.elm
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
module Products.NutriDex.NutriDex exposing (..)
|
||||||
|
|
||||||
|
import Products.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
productNutriDex : NutriDex
|
||||||
|
productNutriDex =
|
||||||
|
{ nutriDexTitle = "The NutriDex"
|
||||||
|
, nutriDexFeatures =
|
||||||
|
[ { feature = "feature"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
, nutriDexReference =
|
||||||
|
[ { reference = "reference"
|
||||||
|
, author = "author"
|
||||||
|
, year = "year"
|
||||||
|
, title = "title"
|
||||||
|
, link = "link"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
22
frontend/src/Products/Types.elm
Normal file
22
frontend/src/Products/Types.elm
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
module Products.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
type alias NutriDex =
|
||||||
|
{ nutriDexTitle : String
|
||||||
|
, nutriDexFeatures : List Features
|
||||||
|
, nutriDexReference : List References
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
type alias Features =
|
||||||
|
{ feature : String
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
type alias References =
|
||||||
|
{ reference : String
|
||||||
|
, author : String
|
||||||
|
, title : String
|
||||||
|
, link : String
|
||||||
|
, year : String
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue