module Gargantext.Components.Forest.Tree.Node.Action where import Data.Argonaut (class DecodeJson, class EncodeJson, decodeJson, jsonEmptyObject, (.:), (:=), (~>)) import Data.Generic.Rep (class Generic) import Data.Generic.Rep.Eq (genericEq) import Data.Generic.Rep.Show (genericShow) import Data.Maybe (Maybe(..)) import Data.Newtype (class Newtype) import Effect.Aff (Aff) import Gargantext.Prelude import Gargantext.Components.Lang (Lang) import Gargantext.Routes (SessionRoute(..)) import Gargantext.Routes as GR import Gargantext.Sessions (Session, get, put, post, delete) import Gargantext.Types as GT type Props = ( dispatch :: Action -> Aff Unit , id :: Int , nodeType :: GT.NodeType , session :: Session ) data Action = AddNode String GT.NodeType | DeleteNode | UpdateNode GT.AsyncTaskWithType | RenameNode String | DoSearch GT.AsyncTaskWithType | UploadFile GT.NodeType FileType (Maybe String) UploadFileContents | RefreshTree | ShareNode String instance showShow :: Show Action where show DeleteNode = "DeleteNode" show RefreshTree = "RefreshTree" show (ShareNode _) = "ShareNode" show (UpdateNode _) = "UpdateNode" show (RenameNode _) = "RenameNode" show (DoSearch _) = "SearchQuery" show (AddNode _ _) = "AddNode" show (UploadFile _ _ _ _)= "UploadFile" ----------------------------------------------------------------------- icon :: Action -> String icon DeleteNode = "trash" icon (AddNode _ _) = "plus" icon _ = "hand-o-right" text :: Action -> String text DeleteNode = "Delete !" text (AddNode _ _) = "Add !" text (UpdateNode _) = "Update !" text (RenameNode _) = "Rename !" text (DoSearch _) = "Launch search !" text (UploadFile _ _ _ _)= "Upload File !" text RefreshTree = "Refresh Tree !" text (ShareNode _) = "Share !" ----------------------------------------------------------------------- -- TODO move code below elsewhere data FileType = CSV | CSV_HAL | WOS | PresseRIS derive instance genericFileType :: Generic FileType _ instance eqFileType :: Eq FileType where eq = genericEq instance showFileType :: Show FileType where show = genericShow newtype UploadFileContents = UploadFileContents String