From 81b3c4b10684de5728e5775f81dad924713779e9 Mon Sep 17 00:00:00 2001 From: Nick Date: Mon, 11 Nov 2024 20:06:06 -0600 Subject: [PATCH] feat: can't remember what I did fuck it w/e --- frontend/src/Layouts/Navbar.elm | 22 ++--- frontend/src/Pages/Dodgers.elm | 5 +- frontend/src/Pages/Platforms.elm | 133 +++++++++++++++++-------------- 3 files changed, 91 insertions(+), 69 deletions(-) diff --git a/frontend/src/Layouts/Navbar.elm b/frontend/src/Layouts/Navbar.elm index 675aaf8..21fc448 100755 --- a/frontend/src/Layouts/Navbar.elm +++ b/frontend/src/Layouts/Navbar.elm @@ -76,6 +76,10 @@ view { toContentMsg, model, content } = { title = content.title , attributes = [ F.family [ spartanFont ] ] , element = + let + localhostUrl = + "http://localhost:1234/" + in column [ width fill , height fill @@ -91,15 +95,15 @@ view { toContentMsg, model, content } = , F.color colourTheme.nonHighlightedText ] [ image [ spacing 30, width <| px 80 ] { src = "navbar/nutrivorelogo.png", description = "" } - , link nonHighlightedTitleFormat { url = "", label = transitionNonHighlightedLinkHover <| text "THE NUTRIVORE" } - , link navBarLinkFormat { url = "", label = transitionNonHighlightedLinkHover <| text "PLATFORMS" } - , link navBarLinkFormat { url = "", label = transitionNonHighlightedLinkHover <| text "SERVICES" } - , link navBarLinkFormat { url = "", label = transitionNonHighlightedLinkHover <| text "DEBATE" } - , link navBarLinkFormat { url = "", label = transitionNonHighlightedLinkHover <| text "BLOG" } - , link navBarLinkFormat { url = "", label = transitionNonHighlightedLinkHover <| text "NUTRI-DEX" } - , link navBarLinkFormat { url = "", label = transitionNonHighlightedLinkHover <| text "SUPPORT" } - , link navBarLinkFormat { url = "", label = transitionNonHighlightedLinkHover <| text "INTERVIEWS" } - , link navBarLinkFormat { url = "", label = transitionNonHighlightedLinkHover <| text "CONTACT" } + , link nonHighlightedTitleFormat { url = localhostUrl ++ pageNames.pageHome, label = transitionNonHighlightedLinkHover <| text "THE NUTRIVORE" } + , link navBarLinkFormat { url = localhostUrl ++ "platforms", label = transitionNonHighlightedLinkHover <| text "PLATFORMS" } + , link navBarLinkFormat { url = localhostUrl ++ "services", label = transitionNonHighlightedLinkHover <| text "SERVICES" } + , link navBarLinkFormat { url = localhostUrl ++ "cebate", label = transitionNonHighlightedLinkHover <| text "DEBATE" } + , link navBarLinkFormat { url = localhostUrl ++ "blog", label = transitionNonHighlightedLinkHover <| text "BLOG" } + , link navBarLinkFormat { url = localhostUrl ++ "nutridex", label = transitionNonHighlightedLinkHover <| text "NUTRI-DEX" } + , link navBarLinkFormat { url = localhostUrl ++ "support", label = transitionNonHighlightedLinkHover <| text "SUPPORT" } + , link navBarLinkFormat { url = localhostUrl ++ "interviews", label = transitionNonHighlightedLinkHover <| text "INTERVIEWS" } + , link navBarLinkFormat { url = localhostUrl ++ "contact", label = transitionNonHighlightedLinkHover <| text "CONTACT" } ] ] , content.element diff --git a/frontend/src/Pages/Dodgers.elm b/frontend/src/Pages/Dodgers.elm index 06b98c0..4d5927d 100755 --- a/frontend/src/Pages/Dodgers.elm +++ b/frontend/src/Pages/Dodgers.elm @@ -1,6 +1,6 @@ module Pages.Dodgers exposing (Model, Msg, page) -import Config.Identity as ID exposing (..) +import Config.Identity exposing (dodgersName) import Config.Theme as T exposing (..) import Effect exposing (Effect) import Element exposing (..) @@ -158,7 +158,7 @@ makeRow makeRowInput = } ] , row paragraphBoldFormat [ text "Dodges:" ] - , column [spacing 8] dodgeRows + , column [ spacing 8 ] dodgeRows ] ] @@ -177,6 +177,7 @@ type alias PropType = } +dodgers : List (Element msg) dodgers = let dodgeType : DodgeType diff --git a/frontend/src/Pages/Platforms.elm b/frontend/src/Pages/Platforms.elm index 2963abc..767e331 100755 --- a/frontend/src/Pages/Platforms.elm +++ b/frontend/src/Pages/Platforms.elm @@ -101,18 +101,23 @@ type alias MakeRowInput msg = , platformsTitle : String , platformsParagraph1 : List (Element msg) , platformsParagraph2 : List (Element msg) - , platformsRecommendedClientLink1 : String - , platformsRecommendedClientLabel1 : String - , platformsRecommendedClientText1 : String - , platformsRecommendedClientLink2 : String - , platformsRecommendedClientLabel2 : String - , platformsRecommendedClientText2 : String - , platformsRecommendedClientLink3 : String - , platformsRecommendedClientLabel3 : String - , platformsRecommendedClientText3 : String - , platformsRecommendedClientLink4 : String - , platformsRecommendedClientLabel4 : String - , platformsRecommendedClientText4 : String + , platformsRecommendedClients : List ClientEntry + } + + +type alias ClientEntry = + { clientLink : String + , clientLabel : String + , clientText : String + } + + +type alias ClientType = + { android : String + , ios : String + , desktop : String + , multiPlatform : String + , browser : String } @@ -128,6 +133,24 @@ makeRow makeRowInput = [ width <| px 150 , alignTop ] + + clientRows : List (Element msg) + clientRows = + if List.isEmpty makeRowInput.platformsRecommendedClients then + [ text "No recommended clients available. Please use your browser." ] + + else + List.map + (\client -> + row [] + [ paragraphLinkFormat + { url = client.clientLink + , label = transitionHighlightedLinkHover <| text client.clientLabel + } + , text client.clientText + ] + ) + makeRowInput.platformsRecommendedClients in row [ imageSpacer ] [ image platformImageFormat @@ -142,22 +165,23 @@ makeRow makeRowInput = , paragraph paragraphFormat makeRowInput.platformsParagraph1 , paragraph paragraphFormat makeRowInput.platformsParagraph2 , paragraph paragraphFormat - [ recommendedClients - , paragraphLinkFormat { url = makeRowInput.platformsRecommendedClientLink1, label = transitionHighlightedLinkHover <| text makeRowInput.platformsRecommendedClientLabel1 } - , text makeRowInput.platformsRecommendedClientText1 - , paragraphLinkFormat { url = makeRowInput.platformsRecommendedClientLink2, label = transitionHighlightedLinkHover <| text makeRowInput.platformsRecommendedClientLabel2 } - , text makeRowInput.platformsRecommendedClientText2 - , paragraphLinkFormat { url = makeRowInput.platformsRecommendedClientLink3, label = transitionHighlightedLinkHover <| text makeRowInput.platformsRecommendedClientLabel3 } - , text makeRowInput.platformsRecommendedClientText3 - , paragraphLinkFormat { url = makeRowInput.platformsRecommendedClientLink4, label = transitionHighlightedLinkHover <| text makeRowInput.platformsRecommendedClientLabel4 } - , text makeRowInput.platformsRecommendedClientText4 - ] + (recommendedClients :: clientRows) ] ] platforms : List (Element msg) platforms = + let + clientType : ClientType + clientType = + { android = " (android) " + , ios = " (iOS)" + , desktop = " (desktop) " + , multiPlatform = " (multi-platform)" + , browser = " (browser only)" + } + in List.map makeRow [ { logoImage = "platforms/mastodon.png" , logoDescription = "mastodon logo" @@ -171,18 +195,24 @@ platforms = , paragraphLinkFormat { url = "https://instances.social/", label = text "official index" } , text "), follow me, and turn on notifications." ] - , platformsRecommendedClientLink1 = "https://github.com/LucasGGamerM/moshidon" - , platformsRecommendedClientLabel1 = "Moshidon" - , platformsRecommendedClientText1 = " (android) " - , platformsRecommendedClientLink2 = "https://github.com/mastodon/mastodon-android" - , platformsRecommendedClientLabel2 = "Official" - , platformsRecommendedClientText2 = " (android) " - , platformsRecommendedClientLink3 = "https://github.com/tuskyapp/Tusky" - , platformsRecommendedClientLabel3 = "Tusky" - , platformsRecommendedClientText3 = " (android) " - , platformsRecommendedClientLink4 = "https://apps.apple.com/us/app/mastodon/id1571998974" - , platformsRecommendedClientLabel4 = "Official" - , platformsRecommendedClientText4 = " (iOS)" + , platformsRecommendedClients = + [ { clientLink = "https://github.com/LucasGGamerM/moshidon" + , clientLabel = "Moshidon" + , clientText = clientType.android + } + , { clientLink = "https://github.com/mastodon/mastodon-android" + , clientLabel = "Official" + , clientText = clientType.android + } + , { clientLink = "https://github.com/tuskyapp/Tusky" + , clientLabel = "Tusky" + , clientText = clientType.android + } + , { clientLink = "https://apps.apple.com/us/app/mastodon/id1571998974" + , clientLabel = "Official" + , clientText = clientType.ios + } + ] } , { logoImage = "platforms/peertube.png" , logoDescription = "peertube logo" @@ -190,18 +220,7 @@ platforms = , platformsTitle = "PEERTUBE" , platformsParagraph1 = [ text "I'm transitioning my video content from YouTube to my self-hosted PeerTube instance, because I strongly believe in freedom of speech, copyleft, and digital autonomy. YouTube has proven unreliable due to both censorship and copyright strikes levied against my channel. This shift allows me to better control my content and avoid these silly pitfalls." ] , platformsParagraph2 = [ text "Full-length videos are now exclusively available on PeerTube, while YouTube will only host clips. By registering on PeerTube and subscribing to my channels, you'll have access to all content. Just be sure to enable email notifications to be alerted of new uploads. I believe that those who are truly fans of my work and want the best experience possible will see this as a positive change." ] - , platformsRecommendedClientLink1 = "" - , platformsRecommendedClientLabel1 = "" - , platformsRecommendedClientText1 = "Unfortunately, I can't recommend any mobile clients for PeerTube at this time. They're all trash. Please use your browser, either on your mobile device or personal computer. Just be use to enable email notifications in your account settings." - , platformsRecommendedClientLink2 = "" - , platformsRecommendedClientLabel2 = "" - , platformsRecommendedClientText2 = "" - , platformsRecommendedClientLink3 = "" - , platformsRecommendedClientLabel3 = "" - , platformsRecommendedClientText3 = "" - , platformsRecommendedClientLink4 = "" - , platformsRecommendedClientLabel4 = "" - , platformsRecommendedClientText4 = "" + , platformsRecommendedClients = [] } , { logoImage = "platforms/discord.png" , logoDescription = "discord logo" @@ -209,17 +228,15 @@ platforms = , platformsTitle = "DISCORD" , platformsParagraph1 = [ text "The Nutrivore Discord server is an evidence-based community dedicated to debunking pseudoscience, especially in the fields of nutrition, health and fitness. Casual discourse is welcome, and includes topics such as cooking, gaming, technology, and more. Current members span many disciplines and include both students and professionals, all levels of interest and expertise are welcome." ] , platformsParagraph2 = [ text "The Discord server is not explicitly a debate server. However, we strongly encourage that disagreements be resolved using debate (preferably verbal), as long as it is conducted respectfully and in good faith. Though we also firmly believe that shaming sophistry and bad faith behaviour is a net good overall. The Discord server is planned to be replaced with a Matrix server in future." ] - , platformsRecommendedClientLink1 = "https://github.com/Vendicated/Vencord" - , platformsRecommendedClientLabel1 = "Vencord" - , platformsRecommendedClientText1 = " (desktop) " - , platformsRecommendedClientLink2 = "https://discord.com/download" - , platformsRecommendedClientLabel2 = "Official" - , platformsRecommendedClientText2 = " (multi-platform)" - , platformsRecommendedClientLink3 = "" - , platformsRecommendedClientLabel3 = "" - , platformsRecommendedClientText3 = "" - , platformsRecommendedClientLink4 = "" - , platformsRecommendedClientLabel4 = "" - , platformsRecommendedClientText4 = "" + , platformsRecommendedClients = + [ { clientLink = "https://github.com/Vendicated/Vencord" + , clientLabel = "Vencord" + , clientText = clientType.desktop + } + , { clientLink = "https://discord.com/download" + , clientLabel = "Official" + , clientText = clientType.multiPlatform + } + ] } ]