@nutui/nutui-react
Version:
京东风格的轻量级移动端 React 组件库,支持一套代码生成 H5 和小程序
42 lines (41 loc) • 2.24 kB
JavaScript
import { _ as __rest } from "./tslib.es6.js";
import React__default, { useContext } from "react";
import classNames from "classnames";
import { C as ComponentDefaults } from "./typings.js";
import CellGroup__default from "./CellGroup.js";
import { C as CellGroupContext } from "./context.js";
const defaultProps = Object.assign(Object.assign({}, ComponentDefaults), { title: null, description: null, extra: null, radius: "6px", align: "flex-start", clickable: false, onClick: (event) => {
} });
const classPrefix = "nut-cell";
const Cell = (props) => {
const ctx = useContext(CellGroupContext);
const _a = Object.assign(Object.assign({}, defaultProps), props), { children, clickable, onClick, title, description, extra, radius, align, className, style } = _a, rest = __rest(_a, ["children", "clickable", "onClick", "title", "description", "extra", "radius", "align", "className", "style"]);
const handleClick = (event) => {
onClick(event);
};
const baseStyle = Object.assign(Object.assign({}, style), { borderRadius: Number.isNaN(Number(radius)) ? String(radius) : `${radius}px`, alignItems: align });
const styles = title || description ? {} : {
flex: 1
};
return React__default.createElement(
"div",
Object.assign({ className: `${classNames(classPrefix, className, clickable ? `${classPrefix}-clickable` : "")}`, onClick: (event) => handleClick(event), style: baseStyle }, rest),
children || React__default.createElement(
React__default.Fragment,
null,
title || description ? React__default.createElement(
"div",
{ className: `${classPrefix}-left` },
title ? React__default.createElement("div", { className: `${classPrefix}-title` }, title) : null,
description ? React__default.createElement("div", { className: `${classPrefix}-description` }, description) : null
) : null,
extra ? React__default.createElement("div", { className: `${classPrefix}-extra`, style: styles }, extra) : null
),
(ctx === null || ctx === void 0 ? void 0 : ctx.divider) ? React__default.createElement("div", { className: `${classPrefix}-divider` }) : null
);
};
Cell.displayName = "NutCell";
Cell.Group = CellGroup__default;
export {
Cell as default
};