Ação Customizada

Criando e executando uma ação customizada

Requisitos:

  • Ter um projeto já configurado com o Beagle.

Passo 1: O que é uma ação?

No Beagle, uma ação lida com os comportamentos (funções) que serão executadas em sua aplicação assim que um determinado evento for disparado. Essas ações podem ser padrão do próprio Beagle ou customizadas.

Tipos de ações do Beagle

Passo 2: Como criar uma ação customizada:

Para criar uma custom action, siga os seguintes passos:

  1. Crie uma struct que implemente a interface Action.

  2. Depois disso, a interface solicitará que o método execute seja implementado. É nesse método que deve ser implementado o bloco de código que sua ação irá executar.

struct CustomAction: Action {
    func execute(controller: BeagleController, origin: UIView) {
            print("Logica da sua ação.")
    }
}

Como lógica da ação vamos criar um alert. Abaixo temos o exemplo do alert.

let alert = UIAlertController(
        title: nil,
        message: "",
        preferredStyle: .alert
        )

controller.present(alert, animated: true)

Agora adiconamos a lógica da ação dentro do método execute. Por fim, basta criar o parametro para receber a mensagem do alert, e o init da struct.

struct CustomAction: Action {

    var mensagem: String

    init(mensagem: String? = nil) {
        self.mensagem = mensagem
    }

    func execute(controller: BeagleController, origin: UIView) {
        let alert = UIAlertController(
        title: nil,
        message: mensagem
        preferredStyle: .alert 
        )

        controller.present(alert, animated: true)
    }
}

Passo 3: Como Registrar uma ação.

Por fim precisamos registrar nossa ação customizado no Beagle.

Logo, para registrá-la no Beagle. basta chamar a função de registro do Coder (Dependência publica do Beagle) durante o processo de configuração do ambiente do Beagle.

O método register pode ser chamado passando somente o tipo do componente, ou também um nome customizado para identifica-lo.

action: Tipo da action.

named: Parâmetro para setar o nome da ação. Não é obrigatório passar. Um caso é quando o nome do componente é registrado diferente com que você criou no backend. Ele será usado na deserialização para encontrar seu componente.

Veja abaixo as formas que você pode registrar:

- A primeira forma:

coder.register(type: CustomAction.self)

- A segunda forma:

coder.register(type: CustomAction.self, named: "CustomAction")

Última modificação 31/01/2022: feature: beagle orange (#837) (a117de55)