UNPKG

@blocklet/payment-react

Version:

Reusable react components for payment kit v2

254 lines (245 loc) 6.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _jsxRuntime = require("react/jsx-runtime"); var _react = _interopRequireDefault(require("react")); var _Empty = _interopRequireDefault(require("@arcblock/ux/lib/Empty")); var _Datatable = _interopRequireDefault(require("@arcblock/ux/lib/Datatable")); var _context = require("@arcblock/ux/lib/Locale/context"); var _system = require("@mui/system"); var _mobile = require("../hooks/mobile"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function EmptyStub() { return null; } const Table = _react.default.memo(({ options, columns, toolbar = true, footer = true, hasRowLink = false, emptyNodeText = "", bordered = true, ...rest }) => { const { locale, t } = (0, _context.useLocaleContext)(); const { isMobile } = (0, _mobile.useMobile)(); const defaultOptions = { print: false, download: false, filter: false, selectableRows: "none", rowsPerPage: isMobile ? 5 : 10, rowsPerPageOptions: [5, 10, 20, 50, 100], searchDebounceTime: 300, tableBodyHeight: "100%", loading: true }; const components = {}; if (!toolbar) { components.TableToolbar = EmptyStub; } if (!footer) { components.TableFooter = EmptyStub; } return /* @__PURE__ */(0, _jsxRuntime.jsx)(Wrapped, { locale, options: { ...defaultOptions, ...options }, columns: columns.map(x => { x.options = x.options || {}; x.options.filter = x.options.filter || false; x.options.sort = x.options.sort || false; return x; }), emptyNode: /* @__PURE__ */(0, _jsxRuntime.jsx)(_Empty.default, { children: emptyNodeText || t("empty.records") }), ...rest, components, hasRowLink, isMobile, bordered }); }); const Wrapped = (0, _system.styled)(_Datatable.default)` ${props => props?.hasRowLink ? `.MuiTableCell-root { font-size: 0.875rem !important; }` : ""} .MuiPaper-root { border-radius: ${props => props?.bordered ? "8px" : "0"}; overflow: hidden; } table.MuiTable-root { ${props => props?.bordered ? ` outline: 1px solid; outline-color: ${props.theme.palette.divider}; border-radius: ${2 * props.theme.shape.borderRadius}px; ` : ""} overflow: hidden; } [class*='MUIDataTable-responsiveBase'] { ${props => props?.bordered ? ` outline: 1px solid; outline-color: ${props.theme.palette.divider}; border-radius: ${2 * props.theme.shape.borderRadius}px; ` : ""} } th.MuiTableCell-head { padding: 8px 16px 8px 16px; text-transform: inherit; background: ${({ theme }) => theme.palette.grey[50]}; border-bottom: none; &:first-of-type { ${props => props?.bordered ? "border-top-left-radius: 8px;" : ""} padding-left: 20px; } &:last-of-type { ${props => props?.bordered ? "border-top-right-radius: 8px;" : ""} } } tr.MuiTableRow-root:not(.MuiTableRow-footer):hover { background: ${({ theme }) => theme.palette.grey[100]}; } tr.MuiTableRow-root:last-of-type td:first-of-type { ${props => props?.bordered ? "border-bottom-left-radius: 8px;" : ""} } tr.MuiTableRow-root:last-of-type td:last-of-type { ${props => props?.bordered ? "border-bottom-right-radius: 8px;" : ""} } tr.MuiTableRow-root:nth-of-type(even) { background: ${({ theme }) => theme.palette.grey[50]}; } td.MuiTableCell-root { border-bottom: none; padding-top: 12px; padding-bottom: 12px; padding-left: 16px; padding-right: 16px; &:first-of-type { padding-left: 20px; } &.MuiTableCell-footer { border: none; } } .datatable-footer { .MuiTableRow-root.MuiTableRow-footer { border: none; } table.MuiTable-root { outline: none; overflow: hidden; } .MuiTablePagination-input { background: none; } div.MuiSelect-select { padding: 0 24px 0 0; } } th a, td a { text-decoration: none; display: block; color: inherit; &:first-of-type { padding-left: 0; } } > div { overflow: auto; } .custom-toobar-title-inner { display: flex; align-items: center; } @media (max-width: ${({ theme }) => theme.breakpoints.values.md}px) { th a, td a { text-decoration: none; display: block; color: inherit; padding-top: 0; padding-bottom: 0; padding-right: 0; } tr.MuiTableRow-root { border: none; padding: 20px; display: block; } td.MuiTableCell-root:first-of-type { padding-left: 0; margin-top: 0; } td.MuiTableCell-root { margin: 0; margin-top: 8px; align-items: center; padding: 0; flex-wrap: wrap; flex-direction: ${({ mobileTDFlexDirection = "column" }) => mobileTDFlexDirection || "row"}; align-items: ${({ mobileTDFlexDirection = "column" }) => mobileTDFlexDirection === "column" ? "flex-start" : "center"}; justify-content: ${({ mobileTDFlexDirection = "column" }) => mobileTDFlexDirection === "column" ? "flex-start" : "space-between"}; } td.MuiTableCell-root > div { margin-bottom: 4px; } .MuiTable-root > .MuiTableBody-root > .MuiTableRow-root > td.MuiTableCell-root { display: flex; flex-direction: ${({ mobileTDFlexDirection = "column" }) => mobileTDFlexDirection || "row"}; align-items: flex-start; justify-content: ${({ mobileTDFlexDirection = "column" }) => mobileTDFlexDirection === "row" ? "space-between" : "flex-start"}; flex-wrap: ${({ mobileTDFlexDirection = "column" }) => mobileTDFlexDirection === "row" ? "nowrap" : "wrap"}; word-break: break-all; &.datatables-noprint { justify-content: center; } } [class*='MUIDataTable-responsiveBase'] tr:not([class*='responsiveSimple']) td.MuiTableCell-body > div { width: inherit; } ${({ mobileTDFlexDirection }) => mobileTDFlexDirection === "row" ? ` .MuiTable-root > .MuiTableBody-root > .MuiTableRow-root > td.MuiTableCell-root { align-items: center; padding: 4px 0; > div { width: fit-content; flex: inherit; } } ` : ""} } `; module.exports = Table;