on efaaa52 help sign in
reflex-dom/src/Reflex/Dom/Storage.hs
31 lines 1.0 kB history raw
1module Reflex.Dom.Storage where
3type Key = Text
5type Value = Text
7data StorageConfig t = StorageConfig
8 { _storageConfig_getLength :: Event t () --TODO: Traversable functor on each of these
9 , _storageConfig_getKey :: Event t Integer
10 , _storageConfig_getItem :: Event t Key
11 , _storageConfig_setItem :: Event t (Key, Value)
12 , _storageConfig_removeItem :: Event t Key
13 , _storageConfig_clear :: Event t ()
14 }
16data Storage t = Storage
17 { _storage_length :: Event t Integer
18 , _storage_key :: Event t (Maybe Key)
19 , _storage_item :: Event t (Maybe Value)
20 , _storage_itemWasSet :: Event t ()
21 , _storage_itemWasRemoved :: Event t ()
22 , _storage_wasCleared :: Event t ()
23 , _storage_changed :: Event t StorageEvent -- Only fires when an *external* event causes a change, not one of the ones in our StorageConfig
24 }
26data StorageEvent = StorageEvent
27 { _storageEvent_key :: Key
28 , _storageEvent_oldValue :: Value
29 , _storageEvent_newValue :: Value
30 , _storageEvent_url :: Text --URL
31 }