AutoComplete¶
O Rung suporta que os campos possam ter a função de autocompletar, provendo uma função JavaScript que lida com o retorno baseado na entrada.
Para que um campo seja autocompletável, é necessário defini-lo como um campo
do tipo AutoComplete
, disponível em rung-cli/dist/types
.
Vamos criar um campo que tenha o autocompletar com nomes de Pokémons nesse exemplo!
- Defina o tipo do campo como
AutoComplete
params: {
pokemon: {
type: AutoComplete,
description: 'Pick a Pokémon!'
}
}
- Crie um arquivo
autocomplete/pokemon.js
- Exporte uma função que use a função de callback ou que retorne uma lista de strings
export default function ({ input, lib }) {
return lib.request.get('https://raw.githubusercontent.com/BrunnerLivio/PokemonDataGraber/master/output.json')
.then(({ text }) => JSON.parse(text))
.then(pokemons => pokemons.map(pokemon => pokemon.Name))
.filter(name => name.startsWith(input));
}
E pronto, compile e suba sua extensão para o Rung! Você também pode testar essa funcionalidade na sua extensão diretamente do Rung CLI (automaticamente).
Parâmetros¶
A função exportada recebe como parâmetros:
- Objeto contendo
input
(entrada do usuário) elib
- Callback opcional
done
. Se passado, deve ser chamado para retornar o controle. Senão, a função deve retornar umaPromise
Retorno¶
Promise
ou chamada de done
a um Array<String>
contendo os dados já filtrados.
Bibliotecas¶
O parâmetro lib
vindo dentro do primeiro objeto carrega duas bibliotecas, ramda
e request
.
As requisições são feitas utilizado a biblioteca externa superagent
.