@lonli-lokli/react-mosaic-component
Version:
A React Tiling Window Manager
73 lines (72 loc) • 2.11 kB
JavaScript
// libs/react-mosaic-component/src/lib/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
};