0.2.0 • Published 1 month ago

@last-rev/contentful-sidekick-util v0.2.0

Weekly downloads
235
License
ISC
Repository
-
Last release
1 month ago

LastRev Contentful Sidekick Util

This utility outputs an object whose properties can be passed to a React html element in order to properly render the Contentful Sidekick sidebar.

Usage

inputs

The default export is a single function that takes 4 parameters:

import sidekick from '@last-rev/contentful-sidekick-util';

const out = sidekick({ contentId, fieldName, contentTypeId, displayText });
  • contentId : The id of the contentful entry being rendered
  • fieldName: The API name of the field from the contentful entry which is rendered
  • contentTypeId: The content type ID of the entry being rendered
  • displayText: A human-friendly text that will be seen in the Contentful Sidekick sidebar. This can be used to represent the content itself, or it can be used on its own to group content in the sidebar

either one of contentId or displayText is required to output anything.

outputs

The util outputs an object with the following properties:

  • csk-entry-id: the content ID. will be omitted if no ID is passed to the util.
  • csk-entry-field: the field name. will be omitted if no field is passed to the util.
  • csk-entry-type: the content type ID. will be omitted if no type is passed to the util.
  • csk-entry-display-text: The display text. It will either use what is passed into the util, or will construct one based on the field/type given. If neither of those are used, it will simply display "Item".

usage

The object can be spread and passed to a react element in the following way:

import React from 'react';
import sidekick from '@last-rev/contentful-sidekick-util';

export default function MyComponent(id, title, sections) {
  return (
    <div {...sidekick(id, null, null, title)}>
      <h1 {...sidekick(id, 'title')}>{title}</h1>
      {sections && sections.length ? (
        <div {...sidekick(id, 'sections', null, 'Content Sections')}>
          {sections.map((section) => (
            <div {...sidekick(section.id, null, null, section.internalTitle)}> {/* ... render section here  */}</div>
          ))}
        </div>
      ) : null}
    </div>
  );
}
0.2.0

1 month ago

0.1.2

1 year ago

0.1.3

1 year ago

0.1.1

2 years ago

0.1.0

2 years ago

0.0.2

4 years ago

0.0.1

4 years ago