UNPKG

@udus/notion-renderer

Version:
21 lines (20 loc) 1.76 kB
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import { selectProperties } from "../../utils/index.js"; import { Cover } from "../Common/Cover.js"; import { Icon } from "../Common/Icon.js"; import { Title } from "../Common/Title.js"; import { RichText } from "../index.js"; import { Gallery } from "./Gallery/Gallery.js"; import { List } from "./List/List.js"; import { Table } from "./Table/Table.js"; export const Database = ({ database, pages, displayProperties, hideCover = false, hideIcon = false, hideTitle = false, hideDescription = false, viewType = "table", }) => { // Filter properties to display if (displayProperties) { database.properties = selectProperties(database.properties, displayProperties); pages.forEach((page) => { page.properties = selectProperties(page.properties, displayProperties); return page; }); } return (_jsxs("div", { id: database.id, className: "notion-database", children: [!hideCover && (_jsx("div", { className: "notion-database-cover", children: _jsx(Cover, { cover: database.cover }) })), !hideIcon && (_jsx("div", { className: "notion-database-icon", children: _jsx(Icon, { icon: database.icon }) })), !hideTitle && (_jsx("div", { className: "notion-database-title", children: _jsx(Title, { title: database.title }) })), !hideDescription && (_jsx("div", { className: "notion-database-description", children: _jsx(RichText, { richText: database.description }) })), _jsx("div", { className: "notion-database-collection", children: viewType === "gallery" ? (_jsx(Gallery, { pages: pages })) : viewType === "list" ? (_jsx(List, { pages: pages })) : viewType === "table" ? (_jsx(Table, { database: database, pages: pages })) : null })] })); };