import {Component} from '@angular/core';
import {ActivatedRoute} from '@angular/router';

import {ActionsService, MandatorinessType, NotificationService, Option} from 'm2-core';
import {CdDemoComponent} from '../../../../abstract/CdDemoComponent';


@Component({
    templateUrl: './cd-actions-service-demo.component.html'
})
export class CdActionsServiceDemoComponent extends CdDemoComponent {

    constructor(
        protected activatedRoute: ActivatedRoute,
        private actionsService: ActionsService,
        private notificationService: NotificationService
    ) {
        super();
    }

    // region confirmAction
    async onConfirmClick(event: MouseEvent) {
        this.actionsService.confirm(
            () => this.notificationService.success($localize`Действие подтверждено`),
            $localize`Вы учерены, что хотите прожолжить?`, event,
            () => this.notificationService.warn($localize`Действие отклонено`)
        );
    }
    // endregion confirmAction


    // region prompt
    async onPromptClick(event: MouseEvent) {
        const options: Option<boolean>[] = [
            {
                displayName: 'Согласиться на обработку данных',
                name: 'allowDataProcessing',
                data: true
            },
            {
                displayName: 'Подписаться на рассылку',
                name: 'subscribe',
                data: false
            }
        ];

        this.actionsService.prompt(
            (comment, opts) => {
                this.notificationService.success(`Комментарий: ${comment}`
                    + `<pre class="mt-3">${JSON.stringify(opts, null, 4)}</pre>`);
            }, $localize`Пожалуйста, оставьте комментарий`,
            event, { commentMandatoriness: MandatorinessType.Required, options, richCommentEditor: false, commentMaxLength: 250 }
        );
    }
    // endregion prompt

}
