UNPKG

@eristack/list-shell

Version:

Presentational list page layout, toolbar, and TanStack Query state banners

47 lines (45 loc) • 1.94 kB
// 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