feat(corp/rih): add UUIDs to records from frontend

This UUID stays the same even if a user submits the form multiple
times (unless they edit it manually in local storage, of course).

Change-Id: I4190fbfeb1027ce8a8d87bc283099539e8722b39
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8733
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
This commit is contained in:
Vincent Ambo 2023-06-09 15:52:34 +03:00 committed by tazjin
parent d925ec34cd
commit a970de3365
4 changed files with 22 additions and 2 deletions

View file

@ -10,6 +10,7 @@ use rand::thread_rng;
use serde::{Deserialize, Serialize};
use static_markdown::markdown;
use std::collections::BTreeSet;
use uuid::Uuid;
use wasm_bindgen::closure::Closure;
use wasm_bindgen::{JsCast, JsValue};
use web_sys::{HtmlInputElement, HtmlTextAreaElement, KeyboardEvent};
@ -94,6 +95,9 @@ enum Route {
/// primary data structure we want to populate and persist somewhere.
#[derive(Clone, Default, Debug, Deserialize, Serialize)]
struct Record {
// Record-specific metadata
uuid: Uuid,
// Personal information
name: String,
email: String,
@ -362,7 +366,11 @@ impl Component for App {
fn create(ctx: &Context<Self>) -> Self {
App {
record: LocalStorage::get("record").unwrap_or_default(),
record: LocalStorage::get("record").unwrap_or_else(|_| {
let mut new_record = Record::default();
new_record.uuid = Uuid::new_v4();
new_record
}),
citizenship_focus: false,
citizenship_query: String::default(),
history: BrowserHistory::default(),