DocsBlog
  • 1.0.0

  • light

    dark

    system

    Switch mode
  • Cerberus

    Acheron

    Elysium

Get Started
Components
Data Grid
Styling
Theming

Concepts

OverviewCompositionCerberus ContextTesting

Layout

Aspect RatioBleedBoxCenterContainerDividerFlexFloatGridGroupNewLink OverlayScrollableStackWrap

Components

AccordionAdmonitionAvatarButtonCarouselCheckboxClipboardCollapsibleComboboxConfirm ModalCTAModalDate PickerDialogFieldFieldsetFile UploaderIcon ButtonInputLoading StatesMenuNotificationsNumber InputPaginationNewPin InputProgressPrompt ModalRadioRatingSelectSplit ButtonSwitchTableTabsTagTextTextareaToggleTooltip

Utilities

Client OnlyDownload TriggerEnvironmentFeature FlagsFocus TrapForFormat ByteFormat NumberFormat Relative TimeFrameHighlightJSON Tree ViewLocaleLocal StoragePortalPresenceShowsplitPropsTheme

splitProps

A utility for splitting props into groups. Inspired by SolidJS.

  • npm
  • source

Usage

text-field.tsx
import { FieldParts, splitProps } from '@cerberus/react'
function TextField(props: TextFieldProps) {
const [rootProps, { size }, textFieldProps] = splitProps(
props,
['required', 'readOnly', 'disabled', 'invalid', 'ids'],
['size'],
['helperText', 'errorText', 'label'],
)
return (
<FieldParts.Root {...rootProps} size={size}>
<FieldParts.Label>
{textFieldProps.label}
<Show when={rootProps.required}>
<span data-part="required-text">(required)</span>
</Show>
</FieldParts.Label>
<FieldParts.Input {...props.inputProps} size={size} />
<FieldParts.HelperText>{textFieldProps.helperText}</FieldParts.HelperText>
<FieldParts.ErrorText>{textFieldProps.errorText}</FieldParts.ErrorText>
</FieldParts.Root>
)
}

API

function splitProps<T, U extends string>(
props: T,
...keys: [U[]] | [U[], U[]] | [U[], U[], U[]]
): [
T,
Partial<Pick<T, Extract<keyof T, U>>>,
Partial<Pick<T, Exclude<keyof T, U>>>,
]

Arguments

The splitProps utility accepts the following arguments:

NameDefaultDescription
propsThe Object to compare against.
keysA list of keys to split into a group.

Returns

The splitProps utility returns an Array of the provided keys converted into an Object groups. What is left over is returned as the final Object in the array.

On this page

  • Edit this page on Github
Cerberus Design System | Docs