Urgent.News

What's breaking now, across thousands of outlets.

Tech

Ho scritto Ratiform per smettere di scrivere i form in Ratatui

Il problema: due campi vanno bene, tre iniziano a far male Chi ha scritto anche solo una TUI con Ratatui conosce la progressione. Il primo input è banale: uno String nello stato dell'app, un match sugli eventi tastiera per gestire inserimento e cancellazione, un widget Paragraph per disegnarlo. Forse solo cinque minuti di lavoro. Il secondo campo si scrive praticamente per copia-incolla del…

Il problema all'inizio era semplice: si doveva scrivere codice per gestire più campi di input in un form. Ancora più difficile, quando si aggiungevano campi, la complessità cresceva esponenzialmente. Si avvicinava una scelta: scrivere ancora più codice o cercare una soluzione esistente.

Ecco come Ratiform si è presentato come soluzione: un crate che gestisce la gestione del focus, la validazione e il rendering dei campi del form in una struttura tipizzata. L'identificatore del campo è un tipo generico Rust, non una stringa, per evitare confusione e errori di compilazione. Questo approccio garantisce che ogni identificatore del campo sia unico e gestito correttamente.

Per usare Ratiform, si installa il crate e si crea un form con un solo campo di testo. Il state del form è un oggetto che memorizza lo stato del form durante tutta la sua vita. Il rendering avviene passando un widget stateless e il state al metodo render_stateful_widget. Ogni campo è automaticamente obbligatorio, a meno che non si imposti diversamente.

Aumentando il numero di campi, Ratiform si occupa di navigazione tra i campi usando Tab e Shift+Tab, di validazione e di invio del form solo se tutti i campi sono corretti. Il mascheramento dei campi è solo visivo, ma la validazione e il valore del campo non sono influenzati.

Ratiform supporta anche checkbox, select e aree di testo, con sintassi simile a quella dei campi a riga singola. Tutti i campi sono tipizzati e la validazione viene eseguita automaticamente. Questo approccio consente di costruire form robusti ed efficienti senza dover ri scrivere codice per ogni nuovo campo.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Gitea SSL with Apache as reverse proxy

We want to host a nice and secure container registry - to push docker images there and our kubernetes cluster would pull them from this registry. So came the idea to use the gitea over ssl.

  • Gitea container registry feature enables HTTPS access
  • Apache reverse proxy configured to point to Gitea on port 3000
  • SSL setup and virtual host creation for Gitea registry

More from Friday 11 September →