| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- module PureTabs.Model.Events (
- BackgroundEvent(..)
- , SidebarEvent(..)
- , TabWithGroup(..)
- , GroupMapping(..)
- , groupMapping
- ) where
- import Browser.Tabs (Tab, TabId, WindowId)
- import Browser.Tabs.OnUpdated (ChangeInfo)
- import Data.Generic.Rep (class Generic)
- import Data.Generic.Rep.Show (genericShow)
- import Data.Newtype (class Newtype)
- import Data.Maybe (Maybe)
- import Data.Show (class Show)
- import PureTabs.Model.Group (GroupId)
- import Foreign.Class (class Decode, class Encode)
- import Foreign.Generic (defaultOptions, genericDecode, genericEncode)
- data TabWithGroup
- = TabWithGroup Tab (Maybe GroupId)
- derive instance genTabWithGroup :: Generic TabWithGroup _
- instance showTabWithGroup :: Show TabWithGroup where
- show = genericShow
- instance encodeTabWithGroup :: Encode TabWithGroup where
- encode x = genericEncode (defaultOptions { unwrapSingleConstructors = true }) x
- instance decodeTabWithGroup :: Decode TabWithGroup where
- decode x = genericDecode (defaultOptions { unwrapSingleConstructors = true }) x
- newtype GroupMapping
- = GroupMapping { groupId :: GroupId
- , name :: String
- }
- groupMapping :: GroupId -> String -> GroupMapping
- groupMapping gid name = GroupMapping { groupId: gid, name: name }
- derive instance genGroupMapping :: Generic GroupMapping _
- derive instance newtypeGroupMapping :: Newtype GroupMapping _
- instance showGroupMapping :: Show GroupMapping where
- show = genericShow
- instance encodeGroupMapping :: Encode GroupMapping where
- encode x = genericEncode (defaultOptions { unwrapSingleConstructors = true }) x
- instance decodeGroupMapping :: Decode GroupMapping where
- decode x = genericDecode (defaultOptions { unwrapSingleConstructors = true }) x
- data BackgroundEvent
- = BgInitialTabList (Array GroupMapping) (Array TabWithGroup)
- | BgTabCreated Tab
- | BgTabDeleted TabId
- | BgTabUpdated TabId ChangeInfo Tab
- | BgTabMoved TabId Int Int
- | BgTabActivated (Maybe TabId) TabId
- | BgTabAttached Tab
- | BgTabDetached TabId
- | BgGroupDeleted GroupId (Maybe TabId)
- derive instance genBackgroundEvent :: Generic BackgroundEvent _
- instance showBackgroundEvent :: Show BackgroundEvent where
- show = genericShow
- data SidebarEvent
- = SbDeleteTab TabId
- | SbActivateTab TabId
- | SbCreateTab (Maybe TabId)
- | SbMoveTab TabId Int
- | SbDetacheTab
- | SbHasWindowId WindowId
- | SbSelectedGroup (Array TabId)
- | SbDeletedGroup GroupId (Array TabId)
- | SbChangeTabGroup TabId (Maybe GroupId)
- | SbCreatedGroup GroupId String
- | SbRenamedGroup GroupId String
- | SbMovedGroup GroupId Int
- derive instance genSidebarEvent :: Generic SidebarEvent _
- instance showSidebarEvent :: Show SidebarEvent where
- show = genericShow
|