UNPKG

@paperbits/core

Version:
48 lines (40 loc) 1.49 kB
import template from "./addBlockDialog.html"; import * as ko from "knockout"; import { IBlockService } from "@paperbits/common/blocks"; import { Component, Param, Event } from "@paperbits/common/ko/decorators"; import { ViewManager } from "@paperbits/common/ui"; import { Contract } from "@paperbits/common"; @Component({ selector: "add-block-dialog", template: template }) export class AddBlockDialog { public readonly working: ko.Observable<boolean>; public readonly name: ko.Observable<string>; public readonly description: ko.Observable<string>; @Param() public readonly blockContract: Contract; @Param() public readonly blockType: string; @Event() public readonly onClose: () => void; constructor( private readonly blockService: IBlockService, private readonly viewManager: ViewManager ) { this.working = ko.observable(false); this.name = ko.observable<string>(); this.name.extend(<any>{ required: true }); this.description = ko.observable<string>(); } public async addBlock(): Promise<void> { if (!this.name()) { return; } await this.blockService.createBlock(this.name(), this.description() || "", this.blockContract, this.blockType); this.viewManager.notifySuccess("Blocks", "Block added to library."); if (this.onClose) { this.onClose(); } } }