npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@kevinio/gutenberg-autofill

v1.1.2

Published

Set a number of items that have to be added to the Gutenberg block. Includes Taxonomies.

Downloads

4

Readme

npm

Gutenberg AutoFiller Component

The AutoFiller component is a Gutenberg React component. A user can set a number of items to automatically fill a Gutenberg block. Optionally, the user can select one or multiple Taxonomies to fill content from. It's the perfect block to easily show different types of content.

Example output:

{ "autofill": true, "amount": 10, "useTaxonomy": true, "terms":[ { "taxonomy": "category", "rest_base": "categories", "id":[ 102, 56 ] }, { "taxonomy": "post_tag", "rest_base": "tags", "id": [ 97, 99 ] } ]} }

Installation

npm install @kevinio/gutenberg-autofill --save

Usage

block.js

import AutoFiller from '@kevinio/gutenberg-autofill';

const { __ } = wp.i18n;
const { registerBlockType } = wp.blocks;
const { Component } = wp.element;

const {
	InspectorControls
} = wp.editor;

registerBlockType( 'kevinio/auto-filler', {
	title: __( 'Autofiller' ),
	icon: 'universal-access-alt',
	category: 'common',
	keywords: [
		__( 'autofiller' ),
		__( 'auto' ),
		__( 'kevinio' )
	],
	attributes: {
		autofill: {
			type: 'boolean',
			default: false
		},
		amount: {
			type: 'number',
			default: 1
		},
		useTaxonomy: {
			type: 'boolean',
			default: false
		},
		terms: {
			type: 'array',
			default: []
		}
	},
	edit: class extends Component {
		constructor( props ) {
			super( ...arguments );
			this.props = props;
		}

		render() {
			const {
				attributes: {
					autofill,
					amount,
					terms,
					useTaxonomy
				},
				setAttributes
			} = this.props;

			return (
				<div>
					<InspectorControls>
						<AutoFiller
							limit='20'
							autofill={ autofill }
							autofillState={ state => {
								if ( ! state.taxonomy ) {
									setAttributes({
										autofill: state.autofill
									});
								} else {
									setAttributes({
										autofill: state.autofill,
										useTaxonomy: state.taxonomy
									});
								}
							}}
							amount={ amount }
							setAmount={ number => {
								setAttributes({
									amount: number
								});
							}}
							taxonomy={ useTaxonomy }
							setTaxonomyState={ state => {
								setAttributes({
									useTaxonomy: state
								});
							}}
							terms={ terms }
							setTerms={ terms => {
								setAttributes({
									terms: terms
								});
							}}
						/>
					</InspectorControls>
					<div className="output">
						<h2>Autofiller</h2>
						{ autofill && 0 < amount ? (
							<div>
								{ 1 == amount ? (
									__( `This block is being filled with ${ amount } item` )
								) :
									__( `This block is being filled with ${ amount } items` )
								}
							</div>
						) : null }
					</div>
				</div>
			);
		}
	},
	save() {
		return null;
	}
});

Props

autofill: (boolean): Enable/disable autofilling

autofillState: (function) Sets the autofill attribute in the block

amount: (number): Sets the number of items in the block

setAmount: (function) Sets the selected number of items in the attribute of the block

limit: (number): Limit the amount of items a user is allowed to select

taxonomy: (boolean): Enable/disable autofilling from one or multiple taxonomies.

setTaxonomyState: (function) Sets the taxonomy attribute in the block

terms: (array): The selected term objects

setTerms: (function) Sets the array of terms in the attribute