UNPKG

@paperbits/core

Version:
36 lines (28 loc) 1.24 kB
import { IModelBinder } from "@paperbits/common/editing"; import { DismissButtonModel } from "./dismissButtonModel"; import { Contract } from "@paperbits/common"; import { DismissButtonContract } from "./dismissButtonContract"; export class DismissButtonModelBinder implements IModelBinder<DismissButtonModel> { public canHandleContract(contract: Contract): boolean { return contract.type === "dismiss-button"; } public canHandleModel(model: Object): boolean { return model instanceof DismissButtonModel; } public async contractToModel(contract: DismissButtonContract): Promise<DismissButtonModel> { const model = new DismissButtonModel(); model.label = contract.label; model.styles = contract.styles || { appearance: "components/button/default" }; model.iconKey = contract.iconKey; return model; } public modelToContract(model: DismissButtonModel): Contract { const dismissButtonConfig: DismissButtonContract = { type: "dismiss-button", label: model.label, styles: model.styles, iconKey: model.iconKey }; return dismissButtonConfig; } }