@eristack/list-shell
Version:
Presentational list page layout, toolbar, and TanStack Query state banners
47 lines (45 loc) • 1.94 kB
JavaScript
// src/list-page-layout.tsx
import { jsx, jsxs } from "react/jsx-runtime";
function ListPageLayout({ toolbar, banner, children }) {
return /* @__PURE__ */ jsxs("div", { className: "erista-list-page", "data-component": "list-page-layout", children: [
toolbar ? /* @__PURE__ */ jsx("div", { className: "erista-list-page__toolbar", children: toolbar }) : null,
banner ? /* @__PURE__ */ jsx("div", { className: "erista-list-page__banner", children: banner }) : null,
/* @__PURE__ */ jsx("div", { className: "erista-list-page__body", children })
] });
}
// src/list-toolbar.tsx
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
function ListToolbar({ leading, trailing, children }) {
return /* @__PURE__ */ jsxs2("div", { className: "erista-list-toolbar", "data-component": "list-toolbar", children: [
leading ? /* @__PURE__ */ jsx2("div", { className: "erista-list-toolbar__leading", children: leading }) : null,
children ?? null,
trailing ? /* @__PURE__ */ jsx2("div", { className: "erista-list-toolbar__trailing", children: trailing }) : null
] });
}
// src/query-state-banner.tsx
import { jsx as jsx3 } from "react/jsx-runtime";
function QueryStateBanner({
isLoading,
isError,
isEmpty,
loadingMessage = "Loading\u2026",
errorMessage = "Something went wrong.",
emptyMessage = "No results."
}) {
if (isLoading) {
return /* @__PURE__ */ jsx3("div", { className: "erista-query-banner", "data-state": "loading", role: "status", children: loadingMessage });
}
if (isError) {
return /* @__PURE__ */ jsx3("div", { className: "erista-query-banner", "data-state": "error", role: "alert", children: errorMessage });
}
if (isEmpty) {
return /* @__PURE__ */ jsx3("div", { className: "erista-query-banner", "data-state": "empty", children: emptyMessage });
}
return null;
}
export {
ListPageLayout,
ListToolbar,
QueryStateBanner
};
//# sourceMappingURL=index.js.map