Components / LookupField

LookupField

Picks a record from a list searched on demand.

Example

The component itself, running in WebAssembly, beside its code in a playground. Try it.

Code

use ravenrs::prelude::*;

fn lookup_field() -> impl View {
    let city = State::new(None);
    LookupField::remote(city.binding(), |request, responder| {
        // Ask a database or a server here; a clone of the responder can answer later.
        let cities = ["Belo Horizonte", "Recife", "Salvador", "São Paulo"];
        let needle = request.query.to_lowercase();
        let found = cities.iter().filter(|c| c.to_lowercase().contains(&needle));
        responder.respond(found.map(|c| LookupItem::new(*c, *c)).collect());
    })
    .placeholder("Choose a city")
    .width(220.0)
    .label("City")
}

Open in the playground, with every example →

Full API of LookupField →