react-mosaic-component2
Version:
A React Tiling Window Manager
39 lines (38 loc) • 1.71 kB
JavaScript
// src/MosaicZeroState.tsx
import classNames from "classnames";
import { noop } from "lodash-es";
import React from "react";
import { MosaicContext } from "./contextTypes.mjs";
import { OptionalBlueprint } from "./util/OptionalBlueprint.mjs";
var MosaicZeroState = class extends React.PureComponent {
static contextType = MosaicContext;
render() {
return /* @__PURE__ */ React.createElement(
"div",
{
className: classNames(
"mosaic-zero-state",
OptionalBlueprint.getClasses(this.context.blueprintNamespace, "NON_IDEAL_STATE")
)
},
/* @__PURE__ */ React.createElement("div", { className: OptionalBlueprint.getClasses(this.context.blueprintNamespace, "NON_IDEAL_STATE_VISUAL") }, /* @__PURE__ */ React.createElement(OptionalBlueprint.Icon, { className: "default-zero-state-icon", size: "large", icon: "APPLICATIONS" })),
/* @__PURE__ */ React.createElement("h4", { className: OptionalBlueprint.getClasses(this.context.blueprintNamespace, "HEADING") }, "No Windows Present"),
/* @__PURE__ */ React.createElement("div", null, this.props.createNode && /* @__PURE__ */ React.createElement(
"button",
{
className: classNames(
OptionalBlueprint.getClasses(this.context.blueprintNamespace, "BUTTON"),
OptionalBlueprint.getIconClass(this.context.blueprintNamespace, "ADD")
),
onClick: this.replace
},
"Add New Window"
))
);
}
replace = () => Promise.resolve(this.props.createNode()).then((node) => this.context.mosaicActions.replaceWith([], node)).catch(noop);
// Swallow rejections (i.e. on user cancel)
};
export {
MosaicZeroState
};