@@ -5,7 +5,6 @@ import Prelude
55import Data.Array (difference , filter , length , (:), (!!))
66import Data.Maybe (Maybe (..))
77import Data.String as String
8- import Data.Symbol (SProxy (..))
98import Effect.Aff.Class (class MonadAff )
109import Example.App.UI.Dropdown as Dropdown
1110import Example.App.UI.Element (class_ )
@@ -16,13 +15,14 @@ import Halogen.HTML.Events as HE
1615import Halogen.HTML.Properties as HP
1716import Select as Select
1817import Select.Setters as Setters
18+ import Type.Proxy (Proxy (..))
1919
2020type Slot f item =
2121 H.Slot (Select.Query (Query item ) ()) (Message f item )
2222
23- _typeahead = SProxy :: SProxy " typeahead"
24- _typeaheadSingle = SProxy :: SProxy " typeaheadSingle"
25- _typeaheadMulti = SProxy :: SProxy " typeaheadMulti"
23+ _typeahead = Proxy :: Proxy " typeahead"
24+ _typeaheadSingle = Proxy :: Proxy " typeaheadSingle"
25+ _typeaheadMulti = Proxy :: Proxy " typeaheadMulti"
2626
2727data Query item a
2828 = GetAvailableItems (Array item -> a )
@@ -35,10 +35,10 @@ clear :: forall item. Select.Query (Query item) () Unit
3535clear = Select.Query (Clear unit)
3636
3737data Action item
38- = Remove item
38+ = Remove item
3939
4040remove :: forall item . item -> Select.Action (Action item )
41- remove = Select.Action <<< Remove
41+ remove = Select.Action <<< Remove
4242
4343type State f item =
4444 ( items :: Array item
@@ -64,7 +64,7 @@ input { items, placeholder } =
6464 , placeholder
6565 }
6666
67- data Message f item
67+ data Message ( f :: Type -> Type ) item
6868 = SelectionsChanged (f item )
6969
7070-- --------
@@ -85,18 +85,18 @@ single = spec' (\i av -> const (av !! i)) (const $ const Nothing) filter' render
8585 render st = case st.selected of
8686 Just item ->
8787 HH .div
88- [ if st.visibility == Select.On
89- then class_ " dropdown is-active"
88+ [ if st.visibility == Select.On
89+ then class_ " dropdown is-active"
9090 else class_ " dropdown is-flex" ]
91- [ Dropdown .toggle
92- [ HE .onClick \_ -> Just $ remove item ]
91+ [ Dropdown .toggle
92+ [ HE .onClick \_ -> remove item ]
9393 st
9494 , Dropdown .menu st
9595 ]
9696 Nothing ->
9797 HH .div
98- [ if st.visibility == Select.On
99- then class_ " dropdown is-flex is-active"
98+ [ if st.visibility == Select.On
99+ then class_ " dropdown is-flex is-active"
100100 else class_ " dropdown is-flex" ]
101101 [ HH .input
102102 ( Setters .setInputProps
@@ -123,27 +123,27 @@ multi = spec' selectByIndex (filter <<< (/=)) difference render
123123 render st =
124124 HH .div_
125125 [ HH .div
126- [ if length st.selected > 0
127- then class_ " panel is-marginless"
128- else class_ " panel is-hidden"
126+ [ if length st.selected > 0
127+ then class_ " panel is-marginless"
128+ else class_ " panel is-hidden"
129129 ]
130130 (st.selected <#> \i ->
131131 HH .div
132132 [ class_ " panel-block has-background-white"
133- , HE .onClick \_ -> Just $ remove i
133+ , HE .onClick \_ -> remove i
134134 ]
135135 [ HH .text $ toText i ]
136136 )
137137 , HH .div
138- [ if st.visibility == Select.On
139- then class_ " dropdown is-flex is-active"
140- else class_ " dropdown is-flex"
138+ [ if st.visibility == Select.On
139+ then class_ " dropdown is-flex is-active"
140+ else class_ " dropdown is-flex"
141141 ]
142142 [ HH .input
143- (Setters .setInputProps
143+ (Setters .setInputProps
144144 [ class_ " input"
145145 , HP .placeholder st.placeholder
146- , HP .value st.search
146+ , HP .value st.search
147147 ]
148148 )
149149 , Dropdown .menu st
@@ -163,12 +163,12 @@ spec'
163163 => (Int -> Array item -> f item -> f item )
164164 -> (item -> f item -> f item )
165165 -> (Array item -> f item -> Array item )
166- -> (Select.State (State f item )
166+ -> (Select.State (State f item )
167167 -> H.ComponentHTML (Select.Action (Action item )) () m
168168 )
169169 -> Select.Spec (State f item ) (Query item ) (Action item ) () i (Message f item ) m
170170spec' select' remove' filter' render' = Select .defaultSpec
171- { render = render'
171+ { render = render'
172172 , handleEvent = handleEvent
173173 , handleQuery = handleQuery
174174 , handleAction = handleAction
@@ -183,7 +183,7 @@ spec' select' remove' filter' render' = Select.defaultSpec
183183 Select.Selected ix -> do
184184 st <- H .get
185185 let selected' = select' ix st.available st.selected
186- H .modify_ _
186+ H .modify_ _
187187 { selected = selected'
188188 , available = filter' st.available selected'
189189 , visibility = Select.Off
@@ -209,6 +209,6 @@ spec' select' remove' filter' render' = Select.defaultSpec
209209 let selected' = remove' item st.selected
210210 H .modify_ _
211211 { selected = selected'
212- , available = filter' st.items selected'
212+ , available = filter' st.items selected'
213213 }
214214 H .raise (SelectionsChanged selected')
0 commit comments