module Pages.Interviews exposing (Model, Msg, page) import Config.Data.Identity exposing (pageNames) import Config.Helpers.Response exposing ( pageList , topLevelContainer ) import Config.Helpers.Viewport exposing (resetViewport) import Config.Pages.Interviews.Episodes.DrShawnBakerPodcast exposing (drShawnBakerPodcast) import Config.Pages.Interviews.Episodes.FitAndFurious exposing (fitAndFurious) import Config.Pages.Interviews.Episodes.FoolproofMastery exposing (foolproofMastery) import Config.Pages.Interviews.Episodes.KetogeeksPodcast exposing (ketoGeeksPodcast) import Config.Pages.Interviews.Episodes.LegendaryLifePodcast exposing (legendaryLifePodcast) import Config.Pages.Interviews.Episodes.MarkBellsPowerProject exposing (markBellsPowerProject) import Config.Pages.Interviews.Episodes.MuscleMemoirsPodcast exposing (muscleMemoirsPodcast) import Config.Pages.Interviews.Episodes.SigmaNutritionRadio exposing (sigmaNutritionRadio) import Config.Pages.Interviews.Episodes.StrenuousLifePodcast exposing (strenuousLifePodcast) import Config.Pages.Interviews.Helpers exposing (..) import Effect exposing (Effect) import Element as E exposing (..) import Config.Pages.Headers.Helpers exposing (headerMaker) import Config.Pages.Headers.Pages.Interviews exposing (interviewHeader) import Layouts import Page exposing (Page) import Route exposing (Route) import Shared import View exposing (View) page : Shared.Model -> Route () -> Page Model Msg page shared route = Page.new { init = init , update = update , subscriptions = subscriptions , view = view shared } |> Page.withLayout toLayout toLayout : Model -> Layouts.Layout Msg toLayout model = Layouts.Navbar {} -- INIT type alias Model = {} init : () -> ( Model, Effect Msg ) init () = ( {} , Effect.map (\_ -> NoOp) (Effect.sendCmd resetViewport) ) -- 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 : Shared.Model -> Model -> View Msg view shared model = { title = pageNames.pageInterviews , attributes = [] , element = interviewContainer shared.device } interviewContainer : Device -> Element msg interviewContainer device = topLevelContainer (interviewList device) interviewList : Device -> Element msg interviewList device = column (case ( device.class, device.orientation ) of _ -> pageList ) <| List.concat [ List.map headerMaker [ interviewHeader ] , (case ( device.class, device.orientation ) of ( Phone, Portrait ) -> List.map interviewMakerMobile ( Tablet, Portrait ) -> List.map interviewMakerMobile _ -> List.map interviewMaker ) [ sigmaNutritionRadio , markBellsPowerProject , foolproofMastery , ketoGeeksPodcast , legendaryLifePodcast , muscleMemoirsPodcast , fitAndFurious , strenuousLifePodcast , drShawnBakerPodcast ] ]