import React, { forwardRef } from "react"; import { cl } from "../../../utils/helpers"; import DataToolbarButton, { DataToolbarButtonProps, } from "../button/DataToolbarButton"; import { DataToolbarSearchField, type DataToolbarSearchFieldProps, } from "../search-field/DataToolbarSearchField"; import DataToolbarToggleButton, { type DataToolbarToggleButtonProps, } from "../toggle-button/DataToolbarToggleButton"; interface DataToolbarProps extends React.HTMLAttributes { children?: never; renderInput?: React.ReactNode; renderPreferences?: React.ReactNode; renderPagination?: React.ReactNode; } interface DataToolbarRootComponent extends React.ForwardRefExoticComponent< DataToolbarProps & React.RefAttributes > { /** * @see 🏷️ {@link DataToolbarButtonProps} * @example * ```tsx * * * * ``` */ Button: typeof DataToolbarButton; } const DataToolbar = forwardRef( ( { className, renderInput, renderPreferences, renderPagination, ...rest }, forwardedRef, ) => { return (
{renderInput && (
{renderInput}
)}
{renderPagination && (
{renderPagination}
)} {renderPreferences && (
{renderPreferences}
)}
); }, ) as DataToolbarRootComponent; DataToolbar.Button = DataToolbarButton; export { DataToolbar, DataToolbarButton, DataToolbarSearchField, DataToolbarToggleButton, }; export default DataToolbar; export type { DataToolbarButtonProps, DataToolbarProps, DataToolbarSearchFieldProps, DataToolbarToggleButtonProps, };