keycloakify 7.0.0-rc.6 → 7.0.0-rc.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/bin/eject-keycloak-page.js +1 -1
  2. package/bin/eject-keycloak-page.js.map +1 -1
  3. package/bin/initialize-email-theme.js +6 -2
  4. package/bin/initialize-email-theme.js.map +1 -1
  5. package/login/Template.js +2 -2
  6. package/login/Template.js.map +1 -1
  7. package/login/TemplateProps.d.ts +1 -1
  8. package/login/TemplateProps.js.map +1 -1
  9. package/login/pages/Error.js +1 -1
  10. package/login/pages/Error.js.map +1 -1
  11. package/login/pages/IdpReviewUserProfile.js +1 -1
  12. package/login/pages/IdpReviewUserProfile.js.map +1 -1
  13. package/login/pages/Info.js +2 -2
  14. package/login/pages/Info.js.map +1 -1
  15. package/login/pages/Login.js +4 -4
  16. package/login/pages/Login.js.map +1 -1
  17. package/login/pages/LoginConfigTotp.js +1 -1
  18. package/login/pages/LoginConfigTotp.js.map +1 -1
  19. package/login/pages/LoginIdpLinkConfirm.js +1 -1
  20. package/login/pages/LoginIdpLinkConfirm.js.map +1 -1
  21. package/login/pages/LoginIdpLinkEmail.js +2 -2
  22. package/login/pages/LoginIdpLinkEmail.js.map +1 -1
  23. package/login/pages/LoginOtp.js +1 -1
  24. package/login/pages/LoginOtp.js.map +1 -1
  25. package/login/pages/LoginPageExpired.js +2 -2
  26. package/login/pages/LoginPageExpired.js.map +1 -1
  27. package/login/pages/LoginPassword.js +1 -1
  28. package/login/pages/LoginPassword.js.map +1 -1
  29. package/login/pages/LoginResetPassword.js +2 -2
  30. package/login/pages/LoginResetPassword.js.map +1 -1
  31. package/login/pages/LoginUpdatePassword.js +1 -1
  32. package/login/pages/LoginUpdatePassword.js.map +1 -1
  33. package/login/pages/LoginUpdateProfile.js +1 -1
  34. package/login/pages/LoginUpdateProfile.js.map +1 -1
  35. package/login/pages/LoginUsername.js +4 -4
  36. package/login/pages/LoginUsername.js.map +1 -1
  37. package/login/pages/LoginVerifyEmail.js +2 -2
  38. package/login/pages/LoginVerifyEmail.js.map +1 -1
  39. package/login/pages/LogoutConfirm.js +2 -2
  40. package/login/pages/LogoutConfirm.js.map +1 -1
  41. package/login/pages/Register.js +1 -1
  42. package/login/pages/Register.js.map +1 -1
  43. package/login/pages/RegisterUserProfile.js +1 -1
  44. package/login/pages/RegisterUserProfile.js.map +1 -1
  45. package/login/pages/Terms.js +2 -2
  46. package/login/pages/Terms.js.map +1 -1
  47. package/login/pages/UpdateUserProfile.js +1 -1
  48. package/login/pages/UpdateUserProfile.js.map +1 -1
  49. package/login/pages/WebauthnAuthenticate.js +1 -1
  50. package/login/pages/WebauthnAuthenticate.js.map +1 -1
  51. package/package.json +1 -1
  52. package/src/bin/eject-keycloak-page.ts +1 -1
  53. package/src/bin/initialize-email-theme.ts +9 -1
  54. package/src/login/Template.tsx +3 -3
  55. package/src/login/TemplateProps.ts +2 -1
  56. package/src/login/pages/Error.tsx +12 -17
  57. package/src/login/pages/IdpReviewUserProfile.tsx +27 -31
  58. package/src/login/pages/Info.tsx +22 -23
  59. package/src/login/pages/Login.tsx +143 -144
  60. package/src/login/pages/LoginConfigTotp.tsx +135 -143
  61. package/src/login/pages/LoginIdpLinkConfirm.tsx +34 -38
  62. package/src/login/pages/LoginIdpLinkEmail.tsx +11 -17
  63. package/src/login/pages/LoginOtp.tsx +44 -48
  64. package/src/login/pages/LoginPageExpired.tsx +14 -21
  65. package/src/login/pages/LoginPassword.tsx +50 -54
  66. package/src/login/pages/LoginResetPassword.tsx +44 -45
  67. package/src/login/pages/LoginUpdatePassword.tsx +96 -100
  68. package/src/login/pages/LoginUpdateProfile.tsx +100 -107
  69. package/src/login/pages/LoginUsername.tsx +108 -109
  70. package/src/login/pages/LoginVerifyEmail.tsx +10 -17
  71. package/src/login/pages/LogoutConfirm.tsx +33 -40
  72. package/src/login/pages/Register.tsx +120 -127
  73. package/src/login/pages/RegisterUserProfile.tsx +36 -37
  74. package/src/login/pages/Terms.tsx +26 -33
  75. package/src/login/pages/UpdateUserProfile.tsx +46 -50
  76. package/src/login/pages/WebauthnAuthenticate.tsx +87 -96
@@ -17,173 +17,166 @@ export default function Register(props: PageProps<Extract<KcContext, { pageId: "
17
17
  const { msg, msgStr } = i18n;
18
18
 
19
19
  return (
20
- <Template
21
- {...{ kcContext, i18n, doUseDefaultCss, classes }}
22
- headerNode={msg("registerTitle")}
23
- formNode={
24
- <form id="kc-register-form" className={getClassName("kcFormClass")} action={url.registrationAction} method="post">
25
- <div
26
- className={clsx(
27
- getClassName("kcFormGroupClass"),
28
- messagesPerField.printIfExists("firstName", getClassName("kcFormGroupErrorClass"))
29
- )}
30
- >
31
- <div className={getClassName("kcLabelWrapperClass")}>
32
- <label htmlFor="firstName" className={getClassName("kcLabelClass")}>
33
- {msg("firstName")}
34
- </label>
35
- </div>
36
- <div className={getClassName("kcInputWrapperClass")}>
37
- <input
38
- type="text"
39
- id="firstName"
40
- className={getClassName("kcInputClass")}
41
- name="firstName"
42
- defaultValue={register.formData.firstName ?? ""}
43
- />
44
- </div>
20
+ <Template {...{ kcContext, i18n, doUseDefaultCss, classes }} headerNode={msg("registerTitle")}>
21
+ <form id="kc-register-form" className={getClassName("kcFormClass")} action={url.registrationAction} method="post">
22
+ <div
23
+ className={clsx(
24
+ getClassName("kcFormGroupClass"),
25
+ messagesPerField.printIfExists("firstName", getClassName("kcFormGroupErrorClass"))
26
+ )}
27
+ >
28
+ <div className={getClassName("kcLabelWrapperClass")}>
29
+ <label htmlFor="firstName" className={getClassName("kcLabelClass")}>
30
+ {msg("firstName")}
31
+ </label>
32
+ </div>
33
+ <div className={getClassName("kcInputWrapperClass")}>
34
+ <input
35
+ type="text"
36
+ id="firstName"
37
+ className={getClassName("kcInputClass")}
38
+ name="firstName"
39
+ defaultValue={register.formData.firstName ?? ""}
40
+ />
45
41
  </div>
42
+ </div>
46
43
 
47
- <div
48
- className={clsx(
49
- getClassName("kcFormGroupClass"),
50
- messagesPerField.printIfExists("lastName", getClassName("kcFormGroupErrorClass"))
51
- )}
52
- >
53
- <div className={getClassName("kcLabelWrapperClass")}>
54
- <label htmlFor="lastName" className={getClassName("kcLabelClass")}>
55
- {msg("lastName")}
56
- </label>
57
- </div>
58
- <div className={getClassName("kcInputWrapperClass")}>
59
- <input
60
- type="text"
61
- id="lastName"
62
- className={getClassName("kcInputClass")}
63
- name="lastName"
64
- defaultValue={register.formData.lastName ?? ""}
65
- />
66
- </div>
44
+ <div
45
+ className={clsx(
46
+ getClassName("kcFormGroupClass"),
47
+ messagesPerField.printIfExists("lastName", getClassName("kcFormGroupErrorClass"))
48
+ )}
49
+ >
50
+ <div className={getClassName("kcLabelWrapperClass")}>
51
+ <label htmlFor="lastName" className={getClassName("kcLabelClass")}>
52
+ {msg("lastName")}
53
+ </label>
54
+ </div>
55
+ <div className={getClassName("kcInputWrapperClass")}>
56
+ <input
57
+ type="text"
58
+ id="lastName"
59
+ className={getClassName("kcInputClass")}
60
+ name="lastName"
61
+ defaultValue={register.formData.lastName ?? ""}
62
+ />
67
63
  </div>
64
+ </div>
68
65
 
66
+ <div
67
+ className={clsx(getClassName("kcFormGroupClass"), messagesPerField.printIfExists("email", getClassName("kcFormGroupErrorClass")))}
68
+ >
69
+ <div className={getClassName("kcLabelWrapperClass")}>
70
+ <label htmlFor="email" className={getClassName("kcLabelClass")}>
71
+ {msg("email")}
72
+ </label>
73
+ </div>
74
+ <div className={getClassName("kcInputWrapperClass")}>
75
+ <input
76
+ type="text"
77
+ id="email"
78
+ className={getClassName("kcInputClass")}
79
+ name="email"
80
+ defaultValue={register.formData.email ?? ""}
81
+ autoComplete="email"
82
+ />
83
+ </div>
84
+ </div>
85
+ {!realm.registrationEmailAsUsername && (
69
86
  <div
70
87
  className={clsx(
71
88
  getClassName("kcFormGroupClass"),
72
- messagesPerField.printIfExists("email", getClassName("kcFormGroupErrorClass"))
89
+ messagesPerField.printIfExists("username", getClassName("kcFormGroupErrorClass"))
73
90
  )}
74
91
  >
75
92
  <div className={getClassName("kcLabelWrapperClass")}>
76
- <label htmlFor="email" className={getClassName("kcLabelClass")}>
77
- {msg("email")}
93
+ <label htmlFor="username" className={getClassName("kcLabelClass")}>
94
+ {msg("username")}
78
95
  </label>
79
96
  </div>
80
97
  <div className={getClassName("kcInputWrapperClass")}>
81
98
  <input
82
99
  type="text"
83
- id="email"
100
+ id="username"
84
101
  className={getClassName("kcInputClass")}
85
- name="email"
86
- defaultValue={register.formData.email ?? ""}
87
- autoComplete="email"
102
+ name="username"
103
+ defaultValue={register.formData.username ?? ""}
104
+ autoComplete="username"
88
105
  />
89
106
  </div>
90
107
  </div>
91
- {!realm.registrationEmailAsUsername && (
108
+ )}
109
+ {passwordRequired && (
110
+ <>
92
111
  <div
93
112
  className={clsx(
94
113
  getClassName("kcFormGroupClass"),
95
- messagesPerField.printIfExists("username", getClassName("kcFormGroupErrorClass"))
114
+ messagesPerField.printIfExists("password", getClassName("kcFormGroupErrorClass"))
96
115
  )}
97
116
  >
98
117
  <div className={getClassName("kcLabelWrapperClass")}>
99
- <label htmlFor="username" className={getClassName("kcLabelClass")}>
100
- {msg("username")}
118
+ <label htmlFor="password" className={getClassName("kcLabelClass")}>
119
+ {msg("password")}
101
120
  </label>
102
121
  </div>
103
122
  <div className={getClassName("kcInputWrapperClass")}>
104
123
  <input
105
- type="text"
106
- id="username"
124
+ type="password"
125
+ id="password"
107
126
  className={getClassName("kcInputClass")}
108
- name="username"
109
- defaultValue={register.formData.username ?? ""}
110
- autoComplete="username"
127
+ name="password"
128
+ autoComplete="new-password"
111
129
  />
112
130
  </div>
113
131
  </div>
114
- )}
115
- {passwordRequired && (
116
- <>
117
- <div
118
- className={clsx(
119
- getClassName("kcFormGroupClass"),
120
- messagesPerField.printIfExists("password", getClassName("kcFormGroupErrorClass"))
121
- )}
122
- >
123
- <div className={getClassName("kcLabelWrapperClass")}>
124
- <label htmlFor="password" className={getClassName("kcLabelClass")}>
125
- {msg("password")}
126
- </label>
127
- </div>
128
- <div className={getClassName("kcInputWrapperClass")}>
129
- <input
130
- type="password"
131
- id="password"
132
- className={getClassName("kcInputClass")}
133
- name="password"
134
- autoComplete="new-password"
135
- />
136
- </div>
137
- </div>
138
132
 
139
- <div
140
- className={clsx(
141
- getClassName("kcFormGroupClass"),
142
- messagesPerField.printIfExists("password-confirm", getClassName("kcFormGroupErrorClass"))
143
- )}
144
- >
145
- <div className={getClassName("kcLabelWrapperClass")}>
146
- <label htmlFor="password-confirm" className={getClassName("kcLabelClass")}>
147
- {msg("passwordConfirm")}
148
- </label>
149
- </div>
150
- <div className={getClassName("kcInputWrapperClass")}>
151
- <input type="password" id="password-confirm" className={getClassName("kcInputClass")} name="password-confirm" />
152
- </div>
133
+ <div
134
+ className={clsx(
135
+ getClassName("kcFormGroupClass"),
136
+ messagesPerField.printIfExists("password-confirm", getClassName("kcFormGroupErrorClass"))
137
+ )}
138
+ >
139
+ <div className={getClassName("kcLabelWrapperClass")}>
140
+ <label htmlFor="password-confirm" className={getClassName("kcLabelClass")}>
141
+ {msg("passwordConfirm")}
142
+ </label>
153
143
  </div>
154
- </>
155
- )}
156
- {recaptchaRequired && (
157
- <div className="form-group">
158
144
  <div className={getClassName("kcInputWrapperClass")}>
159
- <div className="g-recaptcha" data-size="compact" data-sitekey={recaptchaSiteKey}></div>
145
+ <input type="password" id="password-confirm" className={getClassName("kcInputClass")} name="password-confirm" />
160
146
  </div>
161
147
  </div>
162
- )}
163
- <div className={getClassName("kcFormGroupClass")}>
164
- <div id="kc-form-options" className={getClassName("kcFormOptionsClass")}>
165
- <div className={getClassName("kcFormOptionsWrapperClass")}>
166
- <span>
167
- <a href={url.loginUrl}>{msg("backToLogin")}</a>
168
- </span>
169
- </div>
148
+ </>
149
+ )}
150
+ {recaptchaRequired && (
151
+ <div className="form-group">
152
+ <div className={getClassName("kcInputWrapperClass")}>
153
+ <div className="g-recaptcha" data-size="compact" data-sitekey={recaptchaSiteKey}></div>
170
154
  </div>
171
-
172
- <div id="kc-form-buttons" className={getClassName("kcFormButtonsClass")}>
173
- <input
174
- className={clsx(
175
- getClassName("kcButtonClass"),
176
- getClassName("kcButtonPrimaryClass"),
177
- getClassName("kcButtonBlockClass"),
178
- getClassName("kcButtonLargeClass")
179
- )}
180
- type="submit"
181
- value={msgStr("doRegister")}
182
- />
155
+ </div>
156
+ )}
157
+ <div className={getClassName("kcFormGroupClass")}>
158
+ <div id="kc-form-options" className={getClassName("kcFormOptionsClass")}>
159
+ <div className={getClassName("kcFormOptionsWrapperClass")}>
160
+ <span>
161
+ <a href={url.loginUrl}>{msg("backToLogin")}</a>
162
+ </span>
183
163
  </div>
184
164
  </div>
185
- </form>
186
- }
187
- />
165
+
166
+ <div id="kc-form-buttons" className={getClassName("kcFormButtonsClass")}>
167
+ <input
168
+ className={clsx(
169
+ getClassName("kcButtonClass"),
170
+ getClassName("kcButtonPrimaryClass"),
171
+ getClassName("kcButtonBlockClass"),
172
+ getClassName("kcButtonLargeClass")
173
+ )}
174
+ type="submit"
175
+ value={msgStr("doRegister")}
176
+ />
177
+ </div>
178
+ </div>
179
+ </form>
180
+ </Template>
188
181
  );
189
182
  }
@@ -26,46 +26,45 @@ export default function RegisterUserProfile(props: PageProps<Extract<KcContext,
26
26
  displayMessage={messagesPerField.exists("global")}
27
27
  displayRequiredFields={true}
28
28
  headerNode={msg("registerTitle")}
29
- formNode={
30
- <form id="kc-register-form" className={getClassName("kcFormClass")} action={url.registrationAction} method="post">
31
- <UserProfileFormFields
32
- kcContext={kcContext}
33
- onIsFormSubmittableValueChange={setIsFomSubmittable}
34
- i18n={i18n}
35
- getClassName={getClassName}
36
- />
37
- {recaptchaRequired && (
38
- <div className="form-group">
39
- <div className={getClassName("kcInputWrapperClass")}>
40
- <div className="g-recaptcha" data-size="compact" data-sitekey={recaptchaSiteKey} />
41
- </div>
29
+ >
30
+ <form id="kc-register-form" className={getClassName("kcFormClass")} action={url.registrationAction} method="post">
31
+ <UserProfileFormFields
32
+ kcContext={kcContext}
33
+ onIsFormSubmittableValueChange={setIsFomSubmittable}
34
+ i18n={i18n}
35
+ getClassName={getClassName}
36
+ />
37
+ {recaptchaRequired && (
38
+ <div className="form-group">
39
+ <div className={getClassName("kcInputWrapperClass")}>
40
+ <div className="g-recaptcha" data-size="compact" data-sitekey={recaptchaSiteKey} />
42
41
  </div>
43
- )}
44
- <div className={getClassName("kcFormGroupClass")} style={{ "marginBottom": 30 }}>
45
- <div id="kc-form-options" className={getClassName("kcFormOptionsClass")}>
46
- <div className={getClassName("kcFormOptionsWrapperClass")}>
47
- <span>
48
- <a href={url.loginUrl}>{msg("backToLogin")}</a>
49
- </span>
50
- </div>
42
+ </div>
43
+ )}
44
+ <div className={getClassName("kcFormGroupClass")} style={{ "marginBottom": 30 }}>
45
+ <div id="kc-form-options" className={getClassName("kcFormOptionsClass")}>
46
+ <div className={getClassName("kcFormOptionsWrapperClass")}>
47
+ <span>
48
+ <a href={url.loginUrl}>{msg("backToLogin")}</a>
49
+ </span>
51
50
  </div>
51
+ </div>
52
52
 
53
- <div id="kc-form-buttons" className={getClassName("kcFormButtonsClass")}>
54
- <input
55
- className={clsx(
56
- getClassName("kcButtonClass"),
57
- getClassName("kcButtonPrimaryClass"),
58
- getClassName("kcButtonBlockClass"),
59
- getClassName("kcButtonLargeClass")
60
- )}
61
- type="submit"
62
- value={msgStr("doRegister")}
63
- disabled={!isFomSubmittable}
64
- />
65
- </div>
53
+ <div id="kc-form-buttons" className={getClassName("kcFormButtonsClass")}>
54
+ <input
55
+ className={clsx(
56
+ getClassName("kcButtonClass"),
57
+ getClassName("kcButtonPrimaryClass"),
58
+ getClassName("kcButtonBlockClass"),
59
+ getClassName("kcButtonLargeClass")
60
+ )}
61
+ type="submit"
62
+ value={msgStr("doRegister")}
63
+ disabled={!isFomSubmittable}
64
+ />
66
65
  </div>
67
- </form>
68
- }
69
- />
66
+ </div>
67
+ </form>
68
+ </Template>
70
69
  );
71
70
  }
@@ -26,38 +26,31 @@ export default function Terms(props: PageProps<Extract<KcContext, { pageId: "ter
26
26
  }
27
27
 
28
28
  return (
29
- <Template
30
- {...{ kcContext, i18n, doUseDefaultCss, classes }}
31
- displayMessage={false}
32
- headerNode={msg("termsTitle")}
33
- formNode={
34
- <>
35
- <div id="kc-terms-text">{evtTermMarkdown.state && <Markdown>{evtTermMarkdown.state}</Markdown>}</div>
36
- <form className="form-actions" action={url.loginAction} method="POST">
37
- <input
38
- className={clsx(
39
- getClassName("kcButtonClass"),
40
- getClassName("kcButtonClass"),
41
- getClassName("kcButtonClass"),
42
- getClassName("kcButtonPrimaryClass"),
43
- getClassName("kcButtonLargeClass")
44
- )}
45
- name="accept"
46
- id="kc-accept"
47
- type="submit"
48
- value={msgStr("doAccept")}
49
- />
50
- <input
51
- className={clsx(getClassName("kcButtonClass"), getClassName("kcButtonDefaultClass"), getClassName("kcButtonLargeClass"))}
52
- name="cancel"
53
- id="kc-decline"
54
- type="submit"
55
- value={msgStr("doDecline")}
56
- />
57
- </form>
58
- <div className="clearfix" />
59
- </>
60
- }
61
- />
29
+ <Template {...{ kcContext, i18n, doUseDefaultCss, classes }} displayMessage={false} headerNode={msg("termsTitle")}>
30
+ <div id="kc-terms-text">{evtTermMarkdown.state && <Markdown>{evtTermMarkdown.state}</Markdown>}</div>
31
+ <form className="form-actions" action={url.loginAction} method="POST">
32
+ <input
33
+ className={clsx(
34
+ getClassName("kcButtonClass"),
35
+ getClassName("kcButtonClass"),
36
+ getClassName("kcButtonClass"),
37
+ getClassName("kcButtonPrimaryClass"),
38
+ getClassName("kcButtonLargeClass")
39
+ )}
40
+ name="accept"
41
+ id="kc-accept"
42
+ type="submit"
43
+ value={msgStr("doAccept")}
44
+ />
45
+ <input
46
+ className={clsx(getClassName("kcButtonClass"), getClassName("kcButtonDefaultClass"), getClassName("kcButtonLargeClass"))}
47
+ name="cancel"
48
+ id="kc-decline"
49
+ type="submit"
50
+ value={msgStr("doDecline")}
51
+ />
52
+ </form>
53
+ <div className="clearfix" />
54
+ </Template>
62
55
  );
63
56
  }
@@ -21,66 +21,62 @@ export default function UpdateUserProfile(props: PageProps<Extract<KcContext, {
21
21
  const [isFomSubmittable, setIsFomSubmittable] = useState(false);
22
22
 
23
23
  return (
24
- <Template
25
- {...{ kcContext, i18n, doUseDefaultCss, classes }}
26
- headerNode={msg("loginProfileTitle")}
27
- formNode={
28
- <form id="kc-update-profile-form" className={getClassName("kcFormClass")} action={url.loginAction} method="post">
29
- <UserProfileFormFields
30
- kcContext={kcContext}
31
- onIsFormSubmittableValueChange={setIsFomSubmittable}
32
- i18n={i18n}
33
- getClassName={getClassName}
34
- />
24
+ <Template {...{ kcContext, i18n, doUseDefaultCss, classes }} headerNode={msg("loginProfileTitle")}>
25
+ <form id="kc-update-profile-form" className={getClassName("kcFormClass")} action={url.loginAction} method="post">
26
+ <UserProfileFormFields
27
+ kcContext={kcContext}
28
+ onIsFormSubmittableValueChange={setIsFomSubmittable}
29
+ i18n={i18n}
30
+ getClassName={getClassName}
31
+ />
35
32
 
36
- <div className={getClassName("kcFormGroupClass")}>
37
- <div id="kc-form-options" className={getClassName("kcFormOptionsClass")}>
38
- <div className={getClassName("kcFormOptionsWrapperClass")}></div>
39
- </div>
33
+ <div className={getClassName("kcFormGroupClass")}>
34
+ <div id="kc-form-options" className={getClassName("kcFormOptionsClass")}>
35
+ <div className={getClassName("kcFormOptionsWrapperClass")}></div>
36
+ </div>
40
37
 
41
- <div id="kc-form-buttons" className={getClassName("kcFormButtonsClass")}>
42
- {isAppInitiatedAction ? (
43
- <>
44
- <input
45
- className={clsx(
46
- getClassName("kcButtonClass"),
47
- getClassName("kcButtonPrimaryClass"),
48
- getClassName("kcButtonLargeClass")
49
- )}
50
- type="submit"
51
- value={msgStr("doSubmit")}
52
- />
53
- <button
54
- className={clsx(
55
- getClassName("kcButtonClass"),
56
- getClassName("kcButtonDefaultClass"),
57
- getClassName("kcButtonLargeClass")
58
- )}
59
- type="submit"
60
- name="cancel-aia"
61
- value="true"
62
- formNoValidate
63
- >
64
- {msg("doCancel")}
65
- </button>
66
- </>
67
- ) : (
38
+ <div id="kc-form-buttons" className={getClassName("kcFormButtonsClass")}>
39
+ {isAppInitiatedAction ? (
40
+ <>
68
41
  <input
69
42
  className={clsx(
70
43
  getClassName("kcButtonClass"),
71
44
  getClassName("kcButtonPrimaryClass"),
72
- getClassName("kcButtonBlockClass"),
73
45
  getClassName("kcButtonLargeClass")
74
46
  )}
75
47
  type="submit"
76
- defaultValue={msgStr("doSubmit")}
77
- disabled={!isFomSubmittable}
48
+ value={msgStr("doSubmit")}
78
49
  />
79
- )}
80
- </div>
50
+ <button
51
+ className={clsx(
52
+ getClassName("kcButtonClass"),
53
+ getClassName("kcButtonDefaultClass"),
54
+ getClassName("kcButtonLargeClass")
55
+ )}
56
+ type="submit"
57
+ name="cancel-aia"
58
+ value="true"
59
+ formNoValidate
60
+ >
61
+ {msg("doCancel")}
62
+ </button>
63
+ </>
64
+ ) : (
65
+ <input
66
+ className={clsx(
67
+ getClassName("kcButtonClass"),
68
+ getClassName("kcButtonPrimaryClass"),
69
+ getClassName("kcButtonBlockClass"),
70
+ getClassName("kcButtonLargeClass")
71
+ )}
72
+ type="submit"
73
+ defaultValue={msgStr("doSubmit")}
74
+ disabled={!isFomSubmittable}
75
+ />
76
+ )}
81
77
  </div>
82
- </form>
83
- }
84
- />
78
+ </div>
79
+ </form>
80
+ </Template>
85
81
  );
86
82
  }