Skip to content

Commit

Permalink
Omit unused properties from docs
Browse files Browse the repository at this point in the history
  • Loading branch information
tujoworker committed Nov 13, 2023
1 parent 12b24c7 commit 44b2e92
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
import { OmitTableProperties } from 'dnb-design-system-portal/src/shared/tags/Table'

### Standard data value component props

<OmitTableProperties>

| Property | Type | Description |
| ---------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `className` | `string` | _(optional)_ Outer DOM element class name. |
Expand Down Expand Up @@ -27,3 +31,10 @@
| `onBlurValidator` | `function` | _(optional)_ Custom validator function that will be called when the user leaves the field (blurring a text input, closing a dropdown etc). Can be asynchronous or synchronous. |
| `toInput` | `function` | _(optional)_ Derivate called when the received / active value is sent to the input. Can be used for casting, changing syntax etc. |
| `fromInput` | `function` | _(optional)_ Derivate called when changes is made by the user, to cast or change syntax back to the original (opposite of `toInput`). |

</OmitTableProperties>

export default function Layout({ omit = null, children }) {
globalThis.omitTableProperties = omit
return <>{children}</>
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,16 @@ import DataValueReadwriteProperties from '../../data-value-readwrite-properties.

## Properties

<DataValueReadwriteProperties type="string" />
<DataValueReadwriteProperties
type="string"
omit={[
'layout',
'label',
'labelDescription',
'labelSecondary',
'emptyValue',
]}
/>

### Component-specific props

Expand Down
25 changes: 25 additions & 0 deletions packages/dnb-design-system-portal/src/shared/tags/Table.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,27 @@ const StyledTable = styled(TableElement)`
}
`

export function OmitTableProperties({ children, ...rest }) {
const omitProperties = globalThis.omitTableProperties || []

return recursiveMap(children, (child: React.ReactElement) => {
if (child.type === 'tr') {
const firstTd = getFirstChild(child)

if (firstTd.type === 'td') {
const tdContent = getFirstChild(firstTd)
const name = getFirstChild(tdContent)

if (omitProperties.includes(name)) {
return null
}
}
}

return child
})
}

export default function Table({ children }) {
// make sure we get the table children
children =
Expand Down Expand Up @@ -56,6 +77,10 @@ export default function Table({ children }) {
)
}

function getFirstChild(children: ChildrenWithChildren) {
return children.props.children.at(0)
}

function getChildren(children: ChildrenWithChildren) {
return recursiveMap(children.props.children, (child) => child)
}
Expand Down

0 comments on commit 44b2e92

Please sign in to comment.