Save and Resume

This form saves and rehydrates it's state from localStage

import { SaveButton } from "./SaveButton"import { saveAndResume } from "./saveAndResume" function IndividualInputs() {  return (    <>      <Label label="Username" prop="username">        <Input>          <Validate required>            <div>Username is required</div>          </Validate>          <Validations />        </Input>      </Label>       <Label label="Email" prop="email">        <Input resetOnError>          <Validate required>            <div>Email is required</div>          </Validate>          <Validate invalid={(email) => !email?.includes("@")}>            <div>Email must be valid</div>          </Validate>          <Validations />        </Input>      </Label>    </>  )} function SaveAndResume() {  const form = useCreateForm()  const validation = useCreateValidationState()  const [saves, loaded] = saveAndResume.use()  const [loadedFrom, setLoadedFrom] = useState(null)   const loadFromSave = useCallback(    (save) => {      form.set((state) => {        state.value = save.state      })      form.validate()      setLoadedFrom(save)    },    [form]  )   useEffect(() => {    if (!loaded) return    if (saves.length) {      loadFromSave(saves[0])    }  }, [form, loaded])   return (    <>      {saves.map((save, i) => (        <SaveButton          key={save.at}          index={i}          active={loadedFrom?.at === save.at}          onClick={() => loadFromSave(save)}          save={save}        />      ))}      {!!saves?.length && <hr />}      <Form        onChange={() => {          setLoadedFrom(null)        }}        connect={form}      >        <h2>Add users</h2>        <Repeater prop="users">          <RepeaterContent>            <IndividualInputs />            <div>              <RemoveRepeaterItem>                <button name="children" type="button">                  Remove                </button>              </RemoveRepeaterItem>            </div>            <hr />          </RepeaterContent>          <AddRepeaterItem initialValue={{}}>            <button              style={{ marginBottom: "10px" }}              name="children"              type="button"            >              Add            </button>          </AddRepeaterItem>        </Repeater>        <div>          <button            onClick={() => {              saveAndResume.add({                state: form.state.value,                at: Date.now(),              })              form.reset()            }}          >            Save          </button>          {"  "}          <button type="button" onClick={() => form.reset()}>            Reset          </button>        </div>      </Form>    </>  )} render(SaveAndResume) 
Loading...