!7

sclass UsersPrimaryMailAddress extends DynModule {
  S address;
  bool allowedToLookAtMails;

  JComponent visualize() {
    ret jSection("Your Primary E-Mail Address",
      centerAndSouth(centerBoldLabel(jLiveValueLabel(dm_fieldLiveValue(this, 'address))),
      jcenteredbuttons("Change...", r {
        final JTextField tf = jtextfield(address);
        showFormTitled("Set your e-mail address",
          "Address", tf, disableButtonWhileCalcing(func -> bool {
            S s = getTextTrim(tf);
            if (empty(s) || isValidEmailAddress(s)) {
              setField(address := s);
              true;
            }
            infoBox("Not a valid mail address");
            false;
          }));
      })));
  }
}