Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 15 additions & 1 deletion client/src/Try/Container.purs
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,14 @@ import Data.String as String
import Data.String (Pattern(..))
import Data.String.Regex as Regex
import Data.String.Regex.Flags as RegexFlags
import Data.Tuple (Tuple(..))
import Effect (Effect)
import Effect.Aff (Aff, Milliseconds(..), delay, makeAff)
import Effect.Aff as Aff
import Effect.Class.Console (error)
import Effect.Uncurried (EffectFn3, runEffectFn3)
import Partial.Unsafe (unsafeCrashWith)
import Foreign.Object as Object
import Halogen as H
import Halogen.HTML as HH
import Halogen.HTML.Events as HE
Expand All @@ -30,7 +32,7 @@ import Try.Editor (MarkerType(..), toStringMarkerType)
import Try.Editor as Editor
import Try.Gist (getGistById, tryLoadFileFromGist)
import Try.GitHub (getRawGitHubFile)
import Try.QueryString (compressToEncodedURIComponent, decompressFromEncodedURIComponent, getQueryStringMaybe, setQueryString)
import Try.QueryString (compressToEncodedURIComponent, decompressFromEncodedURIComponent, getQueryStringMaybe, setQueryString, setQueryStrings)
import Try.SharedConfig as SharedConfig
import Type.Proxy (Proxy(..))
import Web.HTML (window)
Expand Down Expand Up @@ -74,6 +76,12 @@ parseViewModeParam = case _ of
"output" -> Just Output
_ -> Nothing

encodeViewModeParam :: ViewMode -> String
encodeViewModeParam = case _ of
SideBySide -> "sidebyside"
Code -> "code"
Output -> "output"

data Action
= Initialize
| EncodeInURL String
Expand Down Expand Up @@ -134,6 +142,12 @@ component = H.mkComponent
UpdateSettings k -> do
old <- H.get
new <- H.modify \state -> state { settings = k state.settings }
H.liftEffect do
setQueryStrings $ Object.fromFoldable
[ Tuple "view" (encodeViewModeParam new.settings.viewMode)
, Tuple "js" (show new.settings.showJs)
, Tuple "compile" (show new.settings.autoCompile)
]
when (old.settings.showJs /= new.settings.showJs) do
if new.settings.showJs then
H.liftEffect teardownIFrame
Expand Down