mirror of
https://gitlab.com/upRootNutrition/website.git
synced 2025-06-16 04:25:11 -05:00
feat: refactored services
This commit is contained in:
parent
354b9418f8
commit
36bedf1c09
15 changed files with 449 additions and 80 deletions
|
@ -1 +1,54 @@
|
||||||
module Debate.Arguments.Ancestry.AntagonisticPleiotropy exposing (..)
|
module Debate.Arguments.Ancestry.AntagonisticPleiotropy exposing (..)
|
||||||
|
|
||||||
|
import Debate.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
argumentAntagonisticPleiotropy : Argument
|
||||||
|
argumentAntagonisticPleiotropy =
|
||||||
|
{ argumentTitle = "Title"
|
||||||
|
, propositionTitle = "Proposition"
|
||||||
|
, propositionSummary = "Summary"
|
||||||
|
, proofLink = ""
|
||||||
|
, definitionTable =
|
||||||
|
[ { definiendum = ""
|
||||||
|
, definiens = "prop 1"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "prop 2"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "prop 3"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "prop 4"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "prop 5"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "variable 1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
, argumentFormalization =
|
||||||
|
[ { premises =
|
||||||
|
[ { premise = "premise 1"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
, { premise = "premise 2"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
, { premise = "premise 3"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
, { premise = "premise 4"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
, { premise = "premise 5"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
, conclusion = "conclusion"
|
||||||
|
, conclusionNotation = "(∴)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
|
@ -1 +1,54 @@
|
||||||
module Debate.Arguments.Ancestry.ArtificialManipulation exposing (..)
|
module Debate.Arguments.Ancestry.ArtificialManipulation exposing (..)
|
||||||
|
|
||||||
|
import Debate.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
argumentArtificialManipulation : Argument
|
||||||
|
argumentArtificialManipulation =
|
||||||
|
{ argumentTitle = "Title"
|
||||||
|
, propositionTitle = "Proposition"
|
||||||
|
, propositionSummary = "Summary"
|
||||||
|
, proofLink = ""
|
||||||
|
, definitionTable =
|
||||||
|
[ { definiendum = ""
|
||||||
|
, definiens = "prop 1"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "prop 2"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "prop 3"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "prop 4"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "prop 5"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "variable 1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
, argumentFormalization =
|
||||||
|
[ { premises =
|
||||||
|
[ { premise = "premise 1"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
, { premise = "premise 2"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
, { premise = "premise 3"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
, { premise = "premise 4"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
, { premise = "premise 5"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
, conclusion = "conclusion"
|
||||||
|
, conclusionNotation = "(∴)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
|
@ -1 +1,54 @@
|
||||||
module Debate.Arguments.Ancestry.ImmortalityReductio exposing (..)
|
module Debate.Arguments.Ancestry.ImmortalityReductio exposing (..)
|
||||||
|
|
||||||
|
import Debate.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
argumentImmortalityReductio : Argument
|
||||||
|
argumentImmortalityReductio =
|
||||||
|
{ argumentTitle = "Title"
|
||||||
|
, propositionTitle = "Proposition"
|
||||||
|
, propositionSummary = "Summary"
|
||||||
|
, proofLink = ""
|
||||||
|
, definitionTable =
|
||||||
|
[ { definiendum = ""
|
||||||
|
, definiens = "prop 1"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "prop 2"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "prop 3"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "prop 4"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "prop 5"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "variable 1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
, argumentFormalization =
|
||||||
|
[ { premises =
|
||||||
|
[ { premise = "premise 1"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
, { premise = "premise 2"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
, { premise = "premise 3"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
, { premise = "premise 4"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
, { premise = "premise 5"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
, conclusion = "conclusion"
|
||||||
|
, conclusionNotation = "(∴)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
|
@ -1 +1,54 @@
|
||||||
module Debate.Arguments.Ancestry.PolyphenolReductio exposing (..)
|
module Debate.Arguments.Ancestry.PolyphenolReductio exposing (..)
|
||||||
|
|
||||||
|
import Debate.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
argumentPolyphenolReductio : Argument
|
||||||
|
argumentPolyphenolReductio =
|
||||||
|
{ argumentTitle = "Title"
|
||||||
|
, propositionTitle = "Proposition"
|
||||||
|
, propositionSummary = "Summary"
|
||||||
|
, proofLink = ""
|
||||||
|
, definitionTable =
|
||||||
|
[ { definiendum = ""
|
||||||
|
, definiens = "prop 1"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "prop 2"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "prop 3"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "prop 4"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "prop 5"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "variable 1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
, argumentFormalization =
|
||||||
|
[ { premises =
|
||||||
|
[ { premise = "premise 1"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
, { premise = "premise 2"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
, { premise = "premise 3"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
, { premise = "premise 4"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
, { premise = "premise 5"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
, conclusion = "conclusion"
|
||||||
|
, conclusionNotation = "(∴)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
|
@ -1 +1,54 @@
|
||||||
module Debate.Arguments.Ethics.Abortion exposing (..)
|
module Debate.Arguments.Ethics.Abortion exposing (..)
|
||||||
|
|
||||||
|
import Debate.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
argumentAbortion : Argument
|
||||||
|
argumentAbortion =
|
||||||
|
{ argumentTitle = "Title"
|
||||||
|
, propositionTitle = "Proposition"
|
||||||
|
, propositionSummary = "Summary"
|
||||||
|
, proofLink = ""
|
||||||
|
, definitionTable =
|
||||||
|
[ { definiendum = ""
|
||||||
|
, definiens = "prop 1"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "prop 2"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "prop 3"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "prop 4"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "prop 5"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "variable 1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
, argumentFormalization =
|
||||||
|
[ { premises =
|
||||||
|
[ { premise = "premise 1"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
, { premise = "premise 2"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
, { premise = "premise 3"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
, { premise = "premise 4"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
, { premise = "premise 5"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
, conclusion = "conclusion"
|
||||||
|
, conclusionNotation = "(∴)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
|
@ -1 +1,54 @@
|
||||||
module Debate.Arguments.Ethics.EfilismPatrolSquad exposing (..)
|
module Debate.Arguments.Ethics.EfilismPatrolSquad exposing (..)
|
||||||
|
|
||||||
|
import Debate.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
argumentEfilismPatrolSquad : Argument
|
||||||
|
argumentEfilismPatrolSquad =
|
||||||
|
{ argumentTitle = "Title"
|
||||||
|
, propositionTitle = "Proposition"
|
||||||
|
, propositionSummary = "Summary"
|
||||||
|
, proofLink = ""
|
||||||
|
, definitionTable =
|
||||||
|
[ { definiendum = ""
|
||||||
|
, definiens = "prop 1"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "prop 2"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "prop 3"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "prop 4"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "prop 5"
|
||||||
|
}
|
||||||
|
, { definiendum = ""
|
||||||
|
, definiens = "variable 1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
, argumentFormalization =
|
||||||
|
[ { premises =
|
||||||
|
[ { premise = "premise 1"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
, { premise = "premise 2"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
, { premise = "premise 3"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
, { premise = "premise 4"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
, { premise = "premise 5"
|
||||||
|
, notation = ""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
, conclusion = "conclusion"
|
||||||
|
, conclusionNotation = "(∴)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ argumentTemplate =
|
||||||
{ argumentTitle = "Title"
|
{ argumentTitle = "Title"
|
||||||
, propositionTitle = "Proposition"
|
, propositionTitle = "Proposition"
|
||||||
, propositionSummary = "Summary"
|
, propositionSummary = "Summary"
|
||||||
|
, proofLink = ""
|
||||||
, definitionTable =
|
, definitionTable =
|
||||||
[ { definiendum = ""
|
[ { definiendum = ""
|
||||||
, definiens = "prop 1"
|
, definiens = "prop 1"
|
||||||
|
|
|
@ -3,7 +3,7 @@ module Pages.Home_ exposing (Model, Msg, page)
|
||||||
import Config.Colour as T exposing (..)
|
import Config.Colour as T exposing (..)
|
||||||
import Config.Format as O exposing (..)
|
import Config.Format as O exposing (..)
|
||||||
import Config.Identity as I exposing (..)
|
import Config.Identity as I exposing (..)
|
||||||
import Cuckery.Types
|
import Cuckery.Types exposing (..)
|
||||||
import Effect exposing (Effect)
|
import Effect exposing (Effect)
|
||||||
import Element exposing (..)
|
import Element exposing (..)
|
||||||
import Html.Attributes as H exposing (style)
|
import Html.Attributes as H exposing (style)
|
||||||
|
|
|
@ -10,6 +10,11 @@ import Html.Attributes as H exposing (style)
|
||||||
import Layouts
|
import Layouts
|
||||||
import Page exposing (Page)
|
import Page exposing (Page)
|
||||||
import Route exposing (Route)
|
import Route exposing (Route)
|
||||||
|
import Services.Coaching.DebateAnalysis exposing (..)
|
||||||
|
import Services.Coaching.DebateTutoring exposing (..)
|
||||||
|
import Services.Coaching.NutritionScience exposing (..)
|
||||||
|
import Services.Creative.NixBuilds exposing (..)
|
||||||
|
import Services.Helpers exposing (..)
|
||||||
import Shared
|
import Shared
|
||||||
import View exposing (View)
|
import View exposing (View)
|
||||||
|
|
||||||
|
@ -92,77 +97,10 @@ servicesList : Element msg
|
||||||
servicesList =
|
servicesList =
|
||||||
column
|
column
|
||||||
pageList
|
pageList
|
||||||
services
|
<|
|
||||||
|
List.map serviceMaker
|
||||||
|
[ servicesDebateTutoring
|
||||||
type alias MakeRowInput =
|
, servicesDebateAnalysis
|
||||||
{ logoImage : String
|
, servicesNutritionScience
|
||||||
, logoDescription : String
|
, servicesNixBuilds
|
||||||
, servicesLink : String
|
|
||||||
, servicesTitle : String
|
|
||||||
, servicesRate : String
|
|
||||||
, servicesDescription : String
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
makeRow : MakeRowInput -> Element msg
|
|
||||||
makeRow makeRowInput =
|
|
||||||
let
|
|
||||||
servicesImageFormat : List (Attribute msg)
|
|
||||||
servicesImageFormat =
|
|
||||||
[ width <| px 100
|
|
||||||
, alignTop
|
|
||||||
]
|
|
||||||
in
|
|
||||||
row [ imageSpacer ]
|
|
||||||
[ image servicesImageFormat
|
|
||||||
{ src = makeRowInput.logoImage
|
|
||||||
, description = makeRowInput.logoDescription
|
|
||||||
}
|
|
||||||
, column paragraphColumnFormat
|
|
||||||
[ row [ spacing 8 ]
|
|
||||||
[ newTabLink highlightedTitleFormat
|
|
||||||
{ url = makeRowInput.servicesLink
|
|
||||||
, label =
|
|
||||||
transitionHighlightedLinkHover <|
|
|
||||||
text makeRowInput.servicesTitle
|
|
||||||
}
|
|
||||||
, paragraph [ F.color colourTheme.nonHighlightedText ] [ text makeRowInput.servicesRate ]
|
|
||||||
]
|
|
||||||
, paragraph paragraphFormat [ text makeRowInput.servicesDescription ]
|
|
||||||
]
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
services : List (Element msg)
|
|
||||||
services =
|
|
||||||
List.map makeRow
|
|
||||||
[ { logoImage = "services/debate.png"
|
|
||||||
, logoDescription = "debate logo"
|
|
||||||
, servicesLink = "https://the-nutrivore.social/"
|
|
||||||
, servicesTitle = "DEBATE COACHING"
|
|
||||||
, servicesRate = "$60/hr"
|
|
||||||
, servicesDescription = "Participate in a structured course consisting of five one-hour modules, covering critical thinking, debate strategy, propositional logic, and more. Throughout the course you will receive both personalized and generalizable advice on how to improve your debate performance."
|
|
||||||
}
|
|
||||||
, { logoImage = "services/analysis.png"
|
|
||||||
, logoDescription = "analysis logo"
|
|
||||||
, servicesLink = "https://the-nutrivore.social/"
|
|
||||||
, servicesTitle = "DEBATE ANALYSIS"
|
|
||||||
, servicesRate = "$80/hr"
|
|
||||||
, servicesDescription = "Participate in focused one-hour sessions wherein your own recorded debates are analyzed for constructive feedback and advice to help you improve as a debater. You may also participate in mock debates, staged debates, and other exercises to help you get more comfortable with debate and verbal confrontation."
|
|
||||||
}
|
|
||||||
, { logoImage = "services/nutrition.png"
|
|
||||||
, logoDescription = "nutrition logo"
|
|
||||||
, servicesLink = "https://the-nutrivore.social/"
|
|
||||||
, servicesTitle = "NUTRITION SCIENCE"
|
|
||||||
, servicesRate = "$40/hr"
|
|
||||||
, servicesDescription = "Participate in a one-hour Q&A session specifically to inquire about nutrition science. Ask questions about research design, methodology, epistemology, and study interpretation. Also, by participating you will also gain access to nutrition science interpretation cheat-sheets that will streamline and simplify the research appraisal process."
|
|
||||||
}
|
|
||||||
, { logoImage = "services/nixos.png"
|
|
||||||
, logoDescription = "nixos logo"
|
|
||||||
, servicesLink = "https://the-nutrivore.social/"
|
|
||||||
, servicesTitle = "CUSTOM NIX BUILDS"
|
|
||||||
, servicesRate = "$40/hr"
|
|
||||||
, servicesDescription = "NixOS has become popular in my community, with many people choosing to explore it over Windows, MacOS, and other Linux distributions. Naturally, as a consequence of this, I receive numerous requests for help regarding the Nix programming language and NixOS system configuration. So, to fast-track newcomers and to make my life a little bit easier for both of us, I'm offering to build custom NixOS configurations for interested clients."
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
|
|
14
frontend/src/Services/Coaching/DebateAnalysis.elm
Normal file
14
frontend/src/Services/Coaching/DebateAnalysis.elm
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
module Services.Coaching.DebateAnalysis exposing (..)
|
||||||
|
|
||||||
|
import Services.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
servicesDebateAnalysis : Service
|
||||||
|
servicesDebateAnalysis =
|
||||||
|
{ logoImage = "analysis"
|
||||||
|
, logoDescription = "analysis logo"
|
||||||
|
, servicesLink = "https://the-nutrivore.social/"
|
||||||
|
, servicesTitle = "DEBATE ANALYSIS"
|
||||||
|
, servicesRate = "$80/hr"
|
||||||
|
, servicesDescription = "Participate in focused one-hour sessions wherein your own recorded debates are analyzed for constructive feedback and advice to help you improve as a debater. You may also participate in mock debates, staged debates, and other exercises to help you get more comfortable with debate and verbal confrontation."
|
||||||
|
}
|
14
frontend/src/Services/Coaching/DebateTutoring.elm
Normal file
14
frontend/src/Services/Coaching/DebateTutoring.elm
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
module Services.Coaching.DebateTutoring exposing (..)
|
||||||
|
|
||||||
|
import Services.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
servicesDebateTutoring : Service
|
||||||
|
servicesDebateTutoring =
|
||||||
|
{ logoImage = "debate"
|
||||||
|
, logoDescription = "debate logo"
|
||||||
|
, servicesLink = "https://the-nutrivore.social/"
|
||||||
|
, servicesTitle = "DEBATE COACHING"
|
||||||
|
, servicesRate = "$60/hr"
|
||||||
|
, servicesDescription = "Participate in a structured course consisting of five one-hour modules, covering critical thinking, debate strategy, propositional logic, and more. Throughout the course you will receive both personalized and generalizable advice on how to improve your debate performance."
|
||||||
|
}
|
14
frontend/src/Services/Coaching/NutritionScience.elm
Normal file
14
frontend/src/Services/Coaching/NutritionScience.elm
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
module Services.Coaching.NutritionScience exposing (..)
|
||||||
|
|
||||||
|
import Services.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
servicesNutritionScience : Service
|
||||||
|
servicesNutritionScience =
|
||||||
|
{ logoImage = "nutrition"
|
||||||
|
, logoDescription = "nutrition logo"
|
||||||
|
, servicesLink = "https://the-nutrivore.social/"
|
||||||
|
, servicesTitle = "NUTRITION SCIENCE"
|
||||||
|
, servicesRate = "$40/hr"
|
||||||
|
, servicesDescription = "Participate in a one-hour Q&A session specifically to inquire about nutrition science. Ask questions about research design, methodology, epistemology, and study interpretation. Also, by participating you will also gain access to nutrition science interpretation cheat-sheets that will streamline and simplify the research appraisal process."
|
||||||
|
}
|
14
frontend/src/Services/Creative/NixBuilds.elm
Normal file
14
frontend/src/Services/Creative/NixBuilds.elm
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
module Services.Creative.NixBuilds exposing (..)
|
||||||
|
|
||||||
|
import Services.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
servicesNixBuilds : Service
|
||||||
|
servicesNixBuilds =
|
||||||
|
{ logoImage = "nixos"
|
||||||
|
, logoDescription = "nixos logo"
|
||||||
|
, servicesLink = "https://the-nutrivore.social/"
|
||||||
|
, servicesTitle = "CUSTOM NIX BUILDS"
|
||||||
|
, servicesRate = "$40/hr"
|
||||||
|
, servicesDescription = "NixOS has become popular in my community, with many people choosing to explore it over Windows, MacOS, and other Linux distributions. Naturally, as a consequence of this, I receive numerous requests for help regarding the Nix programming language and NixOS system configuration. So, to fast-track newcomers and to make my life a little bit easier for both of us, I'm offering to build custom NixOS configurations for interested clients."
|
||||||
|
}
|
45
frontend/src/Services/Helpers.elm
Normal file
45
frontend/src/Services/Helpers.elm
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
module Services.Helpers exposing (..)
|
||||||
|
|
||||||
|
import Config.Colour exposing (..)
|
||||||
|
import Config.Format exposing (..)
|
||||||
|
import Cuckery.Types exposing (..)
|
||||||
|
import Effect exposing (Effect)
|
||||||
|
import Element exposing (..)
|
||||||
|
import Element.Border as D
|
||||||
|
import Element.Font as F
|
||||||
|
import Html.Attributes as H exposing (style)
|
||||||
|
import Layouts
|
||||||
|
import Page exposing (Page)
|
||||||
|
import Route exposing (Route)
|
||||||
|
import Services.Types exposing (..)
|
||||||
|
import Shared
|
||||||
|
import View exposing (View)
|
||||||
|
|
||||||
|
|
||||||
|
servicesImageFormat : List (Attribute msg)
|
||||||
|
servicesImageFormat =
|
||||||
|
[ width <| px 100
|
||||||
|
, alignTop
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
serviceMaker : Service -> Element msg
|
||||||
|
serviceMaker service =
|
||||||
|
row [ imageSpacer ]
|
||||||
|
[ image servicesImageFormat
|
||||||
|
{ src = "services/" ++ service.logoImage ++ ".png"
|
||||||
|
, description = service.logoDescription
|
||||||
|
}
|
||||||
|
, column paragraphColumnFormat
|
||||||
|
[ row [ spacing 8 ]
|
||||||
|
[ newTabLink highlightedTitleFormat
|
||||||
|
{ url = service.servicesLink
|
||||||
|
, label =
|
||||||
|
transitionHighlightedLinkHover <|
|
||||||
|
text service.servicesTitle
|
||||||
|
}
|
||||||
|
, paragraph [ F.color colourTheme.nonHighlightedText ] [ text service.servicesRate ]
|
||||||
|
]
|
||||||
|
, paragraph paragraphFormat [ text service.servicesDescription ]
|
||||||
|
]
|
||||||
|
]
|
11
frontend/src/Services/Types.elm
Normal file
11
frontend/src/Services/Types.elm
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
module Services.Types exposing (..)
|
||||||
|
|
||||||
|
|
||||||
|
type alias Service =
|
||||||
|
{ logoImage : String
|
||||||
|
, logoDescription : String
|
||||||
|
, servicesLink : String
|
||||||
|
, servicesTitle : String
|
||||||
|
, servicesRate : String
|
||||||
|
, servicesDescription : String
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue