diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/modals/current-user-mfa/current-user-mfa-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/modals/current-user-mfa/current-user-mfa-modal.element.ts
index a5c7fe23cc..c3c87ae07a 100644
--- a/src/Umbraco.Web.UI.Client/src/packages/user/current-user/modals/current-user-mfa/current-user-mfa-modal.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/packages/user/current-user/modals/current-user-mfa/current-user-mfa-modal.element.ts
@@ -1,9 +1,10 @@
import { UMB_CURRENT_USER_MFA_PROVIDER_MODAL } from '../current-user-mfa-provider/current-user-mfa-provider-modal.token.js';
import { UmbCurrentUserRepository } from '../../repository/index.js';
import type { UmbCurrentUserMfaProviderModel } from '../../types.js';
-import { customElement, html, property, repeat, state, when } from '@umbraco-cms/backoffice/external/lit';
+import { css, customElement, html, property, repeat, state, when } from '@umbraco-cms/backoffice/external/lit';
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
import { UMB_MODAL_MANAGER_CONTEXT, type UmbModalContext } from '@umbraco-cms/backoffice/modal';
+import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
@customElement('umb-current-user-mfa-modal')
export class UmbCurrentUserMfaModalElement extends UmbLitElement {
@@ -63,36 +64,40 @@ export class UmbCurrentUserMfaModalElement extends UmbLitElement {
*/
#renderProvider(item: UmbCurrentUserMfaProviderModel) {
return html`
-
- this.#onProviderToggleChange(e, item)}>
-
+
+ ${when(
+ item.isEnabledOnUser,
+ () => html`
+
+ This two-factor provider is enabled
+
+
+ this.#onProviderDisable(item)}>
+ `,
+ () => html`
+ this.#onProviderEnable(item)}>
+ `,
+ )}
+
`;
}
- async #onProviderToggleChange(event: Event, item: UmbCurrentUserMfaProviderModel) {
- // Prevent the toggle from changing
- event.preventDefault();
- event.stopPropagation();
-
- // If already enabled, disable it
- if (item.isEnabledOnUser) {
- // Disable provider
- alert('TODO: Implement disabling provider');
- }
-
- // Enable provider
- await this.#openProviderModal(item);
- }
-
/**
* Open the provider modal.
* This will show the QR code and/or other means of validation for the given provider and return the activation code.
* The activation code is then used to either enable or disable the provider.
*/
- async #openProviderModal(item: UmbCurrentUserMfaProviderModel) {
+ async #onProviderEnable(item: UmbCurrentUserMfaProviderModel) {
+ // Open the provider modal
const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT);
return await modalManager
.open(this, UMB_CURRENT_USER_MFA_PROVIDER_MODAL, {
@@ -101,6 +106,23 @@ export class UmbCurrentUserMfaModalElement extends UmbLitElement {
.onSubmit()
.catch(() => ({}));
}
+
+ async #onProviderDisable(item: UmbCurrentUserMfaProviderModel) {
+ alert('TODO: Disable provider: ' + item.providerName);
+ }
+
+ static styles = [
+ UmbTextStyles,
+ css`
+ :host {
+ display: block;
+ }
+
+ uui-box {
+ margin-bottom: var(--uui-size-space-3);
+ }
+ `,
+ ];
}
export default UmbCurrentUserMfaModalElement;