Requisitos:
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.
Para criar uma custom action, siga os seguintes passos:
Crie uma struct que implemente a interface Action
.
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)
}
}
É obrigatório registrar ações no Beagle. E para fazer isso, acesse dentro do arquivo de configuração do Beagle e utilize o dependencies para registrar.
O método register possui dois construtores, o primeiro passando apenas o action
e segundo recebendo o action
e named
.
action: Struct da action.
named: Nome da action, não obrigatório. Utiliza-se, por exemplo, quando o nome da action registrada é diferente da criada no backend. Ele será usado na deserializações para encontrar a ação.
Veja abaixo as formas que você pode registrar:
- A primeira forma:
dependencies.decoder.register(action: CustomAction.self)
- A segunda forma:
dependencies.decoder.register(action: CustomAction.self, named: "CustomAction")
Após registrar o seu componente de customização, você pode usá-lo via server-driven.
Para usar as ações do Beagle, o componente que você for utilizar precisa de um parâmetro do tipo Action
.
Veja abaixo um exemplo de como usar em um botão que executa a ação customizada no evento de clique:
Button(
text: "do request",
onPress: [
CustomAction( mensagem: "Eu sou um Alet!")
]
)
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.