Skip to content

Commit 93c92e7

Browse files
authored
Merge pull request #179 from citizennet/AS-1317/upgrade-halogen-v6
AS-1317 Upgrade Halogen to v6
2 parents 78f6c7e + 1b66e38 commit 93c92e7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+362
-364
lines changed

.circleci/config.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ version: 2
33
defaults: &defaults
44
working_directory: ~/ocelot
55
docker:
6-
- image: circleci/node:10.15-browsers
6+
- image: circleci/node:10.24-buster-browsers
77
environment:
88
RTS_ARGS: +RTS -N2 -RTS
99

@@ -13,6 +13,10 @@ jobs:
1313
steps:
1414
- checkout
1515

16+
- run:
17+
name: Install libtinfo (required until purescript 0.14.2)
18+
command: sudo apt install libtinfo5 libncurses5-dev
19+
1620
- restore_cache:
1721
keys:
1822
- v4-yarn-cache-{{ .Branch }}-{{ checksum "package.json" }}

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "purescript-ocelot",
3-
"version": "0.28.2",
3+
"version": "0.29.0",
44
"private": true,
55
"scripts": {
66
"build-all": "make build",
@@ -13,7 +13,7 @@
1313
"browserify": "^16.5.1",
1414
"parcel": "1.12.4",
1515
"parcel-bundler": "1.12.3",
16-
"purescript": "^0.13.8",
16+
"purescript": "0.14.1",
1717
"spago": "^0.15.2"
1818
},
1919
"dependencies": {

packages.dhall

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,37 @@ let halogen-renderless =
126126
, version = "v0.0.4"
127127
}
128128

129+
let html-parser-halogen =
130+
{ dependencies = [ "string-parsers", "halogen" ]
131+
, repo =
132+
"https://github.com/rnons/purescript-html-parser-halogen.git"
133+
, version = "v1.0.0-rc.2"
134+
}
135+
136+
let svg-parser =
137+
{ dependencies = [ "prelude", "string-parsers" ]
138+
, repo =
139+
"https://github.com/citizennet/purescript-svg-parser.git"
140+
, version = "v2.0.0"
141+
}
142+
143+
let svg-parser-halogen =
144+
{ dependencies = [ "svg-parser", "halogen" ]
145+
, repo =
146+
"https://github.com/rnons/purescript-svg-parser-halogen.git"
147+
, version = "v2.0.0-rc.1"
148+
}
149+
129150
let upstream =
130-
https://github.com/purescript/package-sets/releases/download/psc-0.13.8-20200724/packages.dhall sha256:bb941d30820a49345a0e88937094d2b9983d939c9fd3a46969b85ce44953d7d9
151+
https://github.com/purescript/package-sets/releases/download/psc-0.14.1-20210506/packages.dhall sha256:d199e142515f9cc15838d8e6d724a98cd0ca776ceb426b7b36e841311643e3ef
131152

132153
let overrides = {=}
133154

134-
let additions = { halogen-renderless }
155+
let additions =
156+
{ halogen-renderless
157+
, html-parser-halogen
158+
, svg-parser
159+
, svg-parser-halogen
160+
}
135161

136162
in upstream // overrides // additions

spago.dhall

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ Authors:
3131
, "halogen-svg-elems"
3232
, "html-parser-halogen"
3333
, "js-timers"
34+
, "js-uri"
3435
, "numbers"
3536
, "psci-support"
3637
, "read"

src/Blocks/Pager.purs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import Web.UIEvent.MouseEvent (MouseEvent)
1818
-----
1919
-- old CN pager (require citizennet.css)
2020

21-
pager :: p i. Int -> Int -> (Int -> MouseEvent -> Maybe i) -> HH.HTML p i
21+
pager :: p i. Int -> Int -> (Int -> MouseEvent -> i) -> HH.HTML p i
2222
pager skip last query =
2323
HH.div
2424
[ HP.classes
@@ -102,15 +102,15 @@ pagerNew ::
102102
Int ->
103103
Int ->
104104
Array (HP.IProp HTMLdiv i) ->
105-
(Int -> MouseEvent -> Maybe i) ->
105+
(Int -> MouseEvent -> i) ->
106106
HH.HTML p i
107107
pagerNew skip last iprops query = HH.div iprops (makePagingButtonsNew skip last query)
108108

109109
makePagingButtonsNew ::
110110
forall p i.
111111
Int ->
112112
Int ->
113-
(Int -> MouseEvent -> Maybe i) ->
113+
(Int -> MouseEvent -> i) ->
114114
Array (HH.HTML p i)
115115
makePagingButtonsNew skip last query = foldlWithIndex makePagingButtons' [] makeList
116116
where

src/Components/MultiInput/Component.purs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import Data.FunctorWithIndex as Data.FunctorWithIndex
1313
import Data.Maybe (Maybe(..), fromMaybe)
1414
import Data.Maybe as Data.Maybe
1515
import Data.String as Data.String
16-
import Data.Symbol (SProxy(..))
1716
import Effect.Aff.Class (class MonadAff)
1817
import Halogen as Halogen
1918
import Halogen.HTML as Halogen.HTML
@@ -22,13 +21,14 @@ import Halogen.HTML.Properties as Halogen.HTML.Properties
2221
import Ocelot.Block.Icon as Ocelot.Block.Icon
2322
import Ocelot.Components.MultiInput.TextWidth as Ocelot.Components.MultiInput.TextWidth
2423
import Ocelot.HTML.Properties as Ocelot.HTML.Properties
24+
import Type.Proxy (Proxy(..))
2525
import Web.Event.Event as Web.Event.Event
2626
import Web.HTML.HTMLElement as Web.HTML.HTMLElement
2727
import Web.UIEvent.KeyboardEvent as Web.UIEvent.KeyboardEvent
2828

2929
type Slot = Halogen.Slot Query Output
3030

31-
type Component m = Halogen.Component Halogen.HTML.HTML Query Input Output m
31+
type Component m = Halogen.Component Query Input Output m
3232
type ComponentHTML m = Halogen.ComponentHTML Action ChildSlots m
3333
type ComponentM m a = Halogen.HalogenM State Action ChildSlots Output m a
3434

@@ -86,7 +86,7 @@ type ChildSlots =
8686
( textWidth :: Ocelot.Components.MultiInput.TextWidth.Slot Unit
8787
)
8888

89-
_textWidth = SProxy :: SProxy "textWidth"
89+
_textWidth = Proxy :: Proxy "textWidth"
9090

9191
component ::
9292
forall m.
@@ -420,7 +420,7 @@ measureTextWidth ::
420420
String ->
421421
ComponentM m (Maybe Number)
422422
measureTextWidth text = do
423-
Halogen.query _textWidth unit <<< Halogen.request
423+
Halogen.request _textWidth unit
424424
$ Ocelot.Components.MultiInput.TextWidth.GetWidth text
425425

426426
preventDefault ::
@@ -514,11 +514,11 @@ renderItemDisplay index text =
514514
Halogen.HTML.div
515515
[ Halogen.HTML.Properties.classes itemDisplayClasses ]
516516
[ Halogen.HTML.span
517-
[ Halogen.HTML.Events.onClick \_ -> Just (EditItem index) ]
517+
[ Halogen.HTML.Events.onClick \_ -> EditItem index ]
518518
[ Halogen.HTML.text text ]
519519
, Halogen.HTML.button
520520
[ Halogen.HTML.Properties.classes closeButtonClasses
521-
, Halogen.HTML.Events.onClick \_ -> Just (RemoveOne index)
521+
, Halogen.HTML.Events.onClick \_ -> RemoveOne index
522522
]
523523
[ Ocelot.Block.Icon.delete_ ]
524524
]
@@ -535,7 +535,7 @@ renderItemEdit placeholder index inputBox =
535535
[ renderAutoSizeInput placeholder index false inputBox
536536
, Halogen.HTML.button
537537
[ Halogen.HTML.Properties.classes closeButtonClasses
538-
, Halogen.HTML.Events.onClick \_ -> Just (RemoveOne index)
538+
, Halogen.HTML.Events.onClick \_ -> RemoveOne index
539539
]
540540
[ Ocelot.Block.Icon.delete_ ]
541541
]
@@ -553,9 +553,9 @@ renderAutoSizeInput placeholder index new inputBox =
553553
[ Halogen.HTML.input
554554
[ Halogen.HTML.Properties.attr (Halogen.HTML.AttrName "style") css
555555
, Halogen.HTML.Properties.classes inputClasses
556-
, Halogen.HTML.Events.onBlur \_ -> Just (OnBlur index)
557-
, Halogen.HTML.Events.onKeyDown (Just <<< OnKeyDown index)
558-
, Halogen.HTML.Events.onValueInput (Just <<< OnInput index)
556+
, Halogen.HTML.Events.onBlur \_ -> OnBlur index
557+
, Halogen.HTML.Events.onKeyDown (OnKeyDown index)
558+
, Halogen.HTML.Events.onValueInput (OnInput index)
559559
, Halogen.HTML.Properties.placeholder case new of
560560
false -> ""
561561
true

src/Components/MultiInput/TextWidth.purs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import Web.HTML.HTMLElement as Web.HTML.HTMLElement
2525

2626
type Slot = Halogen.Slot Query Output
2727

28-
type Component m = Halogen.Component Halogen.HTML.HTML Query Input Output m
28+
type Component m = Halogen.Component Query Input Output m
2929
type ComponentHTML m = Halogen.ComponentHTML Action ChildSlots m
3030
type ComponentM m a = Halogen.HalogenM State Action ChildSlots Output m a
3131

src/Components/SearchBar.purs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ data Message
5656
= Searched String
5757

5858
-- | The standard search bar
59-
component :: m. MonadAff m => H.Component HH.HTML Query Input Message m
59+
component :: m. MonadAff m => H.Component Query Input Message m
6060
component =
6161
H.mkComponent
6262
{ initialState
@@ -76,7 +76,7 @@ component =
7676

7777
-- | A search bar which allows the user to specify if it should
7878
-- | stay open when unfocused
79-
component' :: m. MonadAff m => H.Component HH.HTML Query Input' Message m
79+
component' :: m. MonadAff m => H.Component Query Input' Message m
8080
component' =
8181
H.mkComponent
8282
{ initialState
@@ -171,24 +171,24 @@ render :: forall m.
171171
render st@{ query, open } =
172172
HH.label
173173
[ HP.classes $ containerClasses <> containerCondClasses
174-
, HE.onClick (Just <<< const Open)
174+
, HE.onClick \_ -> Open
175175
]
176176
[ HH.div
177177
[ HP.classes $ iconClasses <> iconCondClasses ]
178178
[ Icon.search_ ]
179179
, HH.div
180180
[ css "flex-grow" ]
181181
[ HH.input
182-
[ HE.onValueInput (Just <<< Search)
182+
[ HE.onValueInput Search
183183
, HP.placeholder "Search"
184184
, HP.value query
185185
, HP.classes $ inputClasses <> inputCondClasses
186-
, HE.onBlur (Just <<< const Blur)
186+
, HE.onBlur \_ -> Blur
187187
, HP.tabIndex 0
188188
]
189189
]
190190
, HH.button
191-
[ HE.onClick $ Just <<< Clear
191+
[ HE.onClick Clear
192192
, HP.type_ HP.ButtonButton
193193
, HP.classes $ buttonClasses <> buttonCondClasses <> hideClearClasses
194194
]

src/Components/Tree/Component.purs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ data Message item
4949
component :: m item.
5050
MonadAff m =>
5151
Eq item =>
52-
H.Component HH.HTML (Query item) (Input item) (Message item) m
52+
H.Component (Query item) (Input item) (Message item) m
5353
component =
5454
H.mkComponent
5555
{ initialState
@@ -80,14 +80,14 @@ render { items, renderItem, checkable } =
8080
[ css "inline-flex" ]
8181
[ Conditional.alt_ (checkable value)
8282
[ Checkbox.checkbox_
83-
[ HE.onChecked $ Just <<< ToggleItem value itemPath (A.cons ix indexPath)
83+
[ HE.onChecked $ ToggleItem value itemPath (A.cons ix indexPath)
8484
, HP.checked selected
8585
]
8686
[ HH.fromPlainHTML $ renderItem value ]
8787
]
8888
[ HH.span
8989
[ css "cursor-pointer"
90-
, HE.onClick $ Just <<< const (ToggleChildren path)
90+
, HE.onClick \_ -> ToggleChildren path
9191
]
9292
[ HH.fromPlainHTML $ renderItem value ]
9393
]
@@ -108,7 +108,7 @@ render { items, renderItem, checkable } =
108108

109109
renderCarat children expanded path =
110110
carat
111-
[ HE.onClick $ Just <<< const (ToggleChildren path)
111+
[ HE.onClick \_ -> ToggleChildren path
112112
, css $ "mr-3 text-xl align-text-bottom cursor-pointer " <> visible
113113
]
114114
where

src/Data/IntervalTree.purs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import Prelude
1717
import Data.Array as Data.Array
1818
import Data.FoldableWithIndex as Data.FoldableWithIndex
1919
import Data.Generic.Rep as Data.Generic.Rep
20-
import Data.Generic.Rep.Show as Data.Generic.Rep.Show
20+
import Data.Show.Generic as Data.Show.Generic
2121
import Data.Map as Data.Map
2222
import Data.Maybe (Maybe(..))
2323
import Data.Tuple as Data.Tuple
@@ -33,15 +33,15 @@ derive instance eqIntervalPoint :: Eq IntervalPoint
3333
derive instance genericIntervalPoint :: Data.Generic.Rep.Generic IntervalPoint _
3434

3535
instance showIntervalPoint :: Show IntervalPoint where
36-
show = Data.Generic.Rep.Show.genericShow
36+
show = Data.Show.Generic.genericShow
3737

3838
-- | O(n log n)
3939
fromIntervals ::
4040
forall a.
4141
Ord a =>
4242
Array { start :: a, end :: a } ->
4343
IntervalTree a
44-
fromIntervals = Data.Array.foldl insertInterval mempty
44+
fromIntervals = Data.Array.foldl insertInterval Data.Map.empty
4545

4646
-- | O(log n)
4747
-- |
@@ -85,7 +85,7 @@ insertInterval old { start, end }
8585
clearBetween :: IntervalTree a -> IntervalTree a
8686
clearBetween xs =
8787
Data.Map.submap Nothing (Just lowerBound) xs
88-
<> Data.Map.submap (Just upperBound) Nothing xs
88+
`Data.Map.union` Data.Map.submap (Just upperBound) Nothing xs
8989

9090
lowerBound :: a
9191
lowerBound = case findGreatestLowerBound start old of

0 commit comments

Comments
 (0)