elm-spa | single page apps | Single Page Application library
kandi X-RAY | elm-spa Summary
kandi X-RAY | elm-spa Summary
1. Create a new project. 2. Check out the new files. 3. Run it in your browser. Visit the official site at elm-spa.dev for more examples, guides, and other documentation. Do I need the Elm package?. If you are using elm-spa, there's no need to read the ryannhg/elm-spa package documentation. The package only exists to constrain the CLI, and provides a few basic internal helper functions.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of elm-spa
elm-spa Key Features
elm-spa Examples and Code Snippets
Community Discussions
Trending Discussions on elm-spa
QUESTION
I'm building a single page application in Elm and was having difficulty deciding how to split my code in files.
I ended up splitting it using 1 module per page and have Main.elm
convert the Html
and Cmd
emitted by each page using Cmd.map
and Html.map
.
My issue is that the documentation for both Cmd.map and Html.map says that :
This is very rarely useful in well-structured Elm code, so definitely read the section on structure in the guide before reaching for this!
I checked the only 2 large apps I'm aware of :
- elm-spa-example uses Cmd.map (https://github.com/rtfeldman/elm-spa-example/blob/cb32acd73c3d346d0064e7923049867d8ce67193/src/Main.elm#L279)
- I was not able to figure out how https://github.com/elm/elm-lang.org deals with the issue.
Also, both answers to this stackoverflow question suggest using Cmd.map
without second thoughts.
Is Cmd.map the "right" way to split a single page application in modules ?
...ANSWER
Answered 2020-Aug-23 at 14:04I think sometimes you just have to do what's right for you. I used the Cmd.map
/Sub.map
/Html.map
approach for an application I wrote that had 3 "pages" - Initializing, Editing and Reporting.
I wanted to make each of these pages its own module as they were relatively complicated, each had a fair number of messages that are only relevant to each page, and it's easier to reason about each page independently in its own context.
The downside is that the compiler won't prevent you from receiving the wrong message for a given page, leading to a runtime error (e.g., if the application receives an Editing.Save
when it is in the Reporting
page, what is the correct behavior? For my specific implementation, I just log it to the console and move on - this was good enough for me (and it never happened anyway); Other options I've considered include displaying a nasty error page to indicate that something horrible has happened - a BSOD if you will; Or to simply reset/reinitialize the entire application).
QUESTION
ANSWER
Answered 2018-Sep-28 at 01:04You have multiple Msg
types, which is OK, but it can lead to confusion. In short: Main.Msg
is not the same type as NotFound.Msg
.
The function matchedRoute
returns a Html Main.Msg
while the function NotFound.content
returns a Html NotFound.Msg
; completely different types.
You're already 99% of the way there because you have a PageNotFound NotFound.Msg
type constructor which produces a Main.Msg
. This allows you to wrap the NotFound.Msg
in a Main.Msg
. It should be a matter of doing PageNotFound NotFound.content
in your Nothing ->
branch.
QUESTION
I started on my first, simple web app in Elm. Most of my code is currently adapted from https://github.com/rtfeldman/elm-spa-example. I am working against a API that will give me a authToken in the response header. I have a AuthToken type that is supposed to represent that token. Taking the value out of the header and converting it to a result that's either a error String
or a AuthToken
is causing trouble. I expected that I could just say I am returning a AuthToken, return a String and it would be fine because my AuthTokens right now are just Strings. It seems like there clearly is something about Elm types I am not understanding.
Here is the definition of AuthToken
:
ANSWER
Answered 2018-Aug-15 at 12:57The code looks fine as is. The error message indicates that type AuthToken
has been defined in a different module and not imported completely to the module that defines authTokenFromHeader
. You can read about Elm's module system in the Elm guide: Modules.
A possible fix, assuming that type AuthToken
is defined in module Types
, and authTokenFromHeader
is defined in module Net
, is:
Types.elm:
QUESTION
I am using elm-spa-example model and I have a Session
that contains a List Recipe
as well as a Model that contains a recipeID
I'd like to build a SelectList that would select the recipe that has got the RecipeID in the list.
Ideally I would use something like:
SelectList.selectFromList : (a -> Bool) -> List a -> SelectList a
I my case I would do:
SelectList.selectFromList (\recipe -> recipe.id == recipeID) session.recipes
ANSWER
Answered 2018-Apr-05 at 15:42SelectList doesn't expose selectFromList are you sure the link is right?
QUESTION
I've been reading over Richard Feldman's Elm SPA app example, and I'm seeing a number of examples of things like this:
...ANSWER
Answered 2017-Jul-09 at 15:28There is no hard and fast rule for when it is appropriate, but I tend to follow a few rules of thumb. Let's use an authenticate function example that takes a username and password, both of which are string values.
At a bare minimum, without any additional alias or types, the annotation could be this:
QUESTION
When I attempt to compile the Main.elm file (via Ctrl+F5) using Visual Studio Code, I receive the following error:
Error: elm-make: c:\Users\Bizmonger\Documents\Visual: openFile: does not exist (No such file or directory)
Note:
I am trying to compile an Elm solution that I cloned from GitHub.
Here's the src directory with the elm files:
Why am I receiving this error?
...ANSWER
Answered 2017-May-11 at 18:01The error message looks like it truncates the folder name after Visual
, but I'm assuming you're in a folder called something like Visual Studio Projects
. Try moving the project to a folder tree without a space in the name.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install elm-spa
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page