Skip to content

Commit

Permalink
Merge pull request #141 from humanmade/post-picker
Browse files Browse the repository at this point in the history
Add PostPicker and TermSelector components
  • Loading branch information
Sephsekla authored Jul 27, 2023
2 parents ce00cff + 9957de7 commit d30d6e7
Show file tree
Hide file tree
Showing 5 changed files with 553 additions and 1 deletion.
2 changes: 1 addition & 1 deletion dist/index.js

Large diffs are not rendered by default.

81 changes: 81 additions & 0 deletions src/components/PostPicker/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# PostPicker

There are several `PostPicker` controls.

* `PostPickerButton` A simple button.
* `PostPickerToolbarButton` A button for use within `BlockControls` toolbar.
* `PostPickerModal` The actual modal interface, that can be integrated into your own UI.

## `PostPickerButton`

```jsx
import { PostPickerButton } from '@humanmade/block-editor-components';

...

<PostPickerButton
taxonomies={ [ 'category', 'post_tag' ] }
onChange={ newValue => setAttributes( { postIds: newValue } ) }
values={ attributes.postIds || [] }
/>
```

### Props

The `LinkToolbar` component does not have any custom props other than `opensInNewTab`, `value` and `onChange`, which are all passed on as is to the nested [`LinkControl`](https://github.com/WordPress/gutenberg/blob/trunk/packages/block-editor/src/components/link-control/index.js) component.

#### `values`

The saved values. Array of post IDs.

| Type | Required | Default |
|--------------------------------------|--------------------------------------|--------------------------------------|
| `Array` | yes | `undefined` |


#### `onChange`

The callback to use for handling changing the selected posts. `onChange` will receive an array of post IDs.

| Type | Required | Default |
|--------------------------------------|--------------------------------------|--------------------------------------|
| `Function` | yes | `undefined` |

#### `title`

The title, used by button and modal title.

| Type | Required | Default |
|--------------------------------------|--------------------------------------|--------------------------------------|
| `String` | no | `Select Posts`

#### `postType`

Post type to select from.

| Type | Required | Default |
|--------------------------------------|--------------------------------------|--------------------------------------|
| `String` | no | `post`

#### `taxonomies`

Taxonomies that results can be filtered by. Array of taxonomy slugs. e.g. `[ 'category', 'post_tag' ]`.

| Type | Required | Default |
|--------------------------------------|--------------------------------------|--------------------------------------|
| `Array` | no | `[]`


## Post Picker Toolbar Button

There is also a `PostPickerToolbarButton` component available if you import it directly from the source file, which is intended for use within the BlockControls. It supports all the same props as the PostPicker component, with the addition of an `icon`.

## props

#### `icon`

Button icon. Passed through to `ToolbarButton`, refer to the documentation of that component for more info.

| Type | Required | Default |
|--------------------------------------|--------------------------------------|--------------------------------------|
| `string` | no | `edit`
Loading

0 comments on commit d30d6e7

Please sign in to comment.