Contensis 条目选择器

我们的 Contensis 条目选择器用于 Storybook,可以让您看到您的自定义 Storybook 组件与来自 CMS 中条目的真实数据一起使用时的效果。

在 Github 上查看

Contensis 条目选择器 - Storybook 插件

使用 ReactTypeScriptStorybookBabel 和我们的 Contensis Delivery API 构建

我们的 Contensis 条目选择器用于 Storybook,可以让您看到您的自定义 Storybook 组件与来自 CMS 中条目的真实数据一起使用时的效果。

安装

您可以使用以下命令将 Contensis 条目选择器插件添加到您的项目中:

npm install --save-dev @zengenti/contensis-entry-picker-storybook-addon

或者

yarn add @zengenti/contensis-entry-picker-storybook-addon -D

然后将以下行添加到您的.storybook/main.js 文件中

module.exports  =  {
 addons: [
 '@zengenti/contensis-entry-picker-storybook-addon',
],

配置

.ENV

确保您的.env 设置正确,以便我们用于获取条目的自定义钩子知道从哪里获取这些条目。您的.env 文件应包含以下属性:ACCESS_TOKENPUBLIC_URLPROJECT

在您的 Storybook 组件中,我们需要从global 变量中获取一个entryId - 了解更多关于全局变量的信息,请访问这里

export  const  Template:  ComponentStory<typeof Example>  = (
args:  Props, 
{ globals:  {  entryId  }  }
) =>  {...};

获得此 ID 后,我们可以使用自定义钩子从entryId 获取条目。我们可以像这样操作

扩展对象很重要,这样组件就可以使用所有 props。请记住从@zengenti/contensis-entry-picker-storybook-addon 导入useGetEntryByEntryId

import  { useGetEntryByEntryId }  from  '@zengenti/contensis-entry-picker-storybook-addon';

export  const  Template:  ComponentStory<typeof Example>  = (
args:  Props,
{ globals:  {  entryId  }  }
) =>  {
const  entry  =  useGetEntryByEntryId(entryId);
return  <Example  {...{  ...args,  ...entry }}  />;
};

很好,您的 Storybook 组件几乎完成了,我们现在可以使用Template.args 指定我们想要获取哪些entries。我们使用contentTypes 参数来实现这一点。

重要的是,contentTypes 参数是一个字符串数组

Template.args =  {
 contentTypes: ['blogPost', 'pot', 'plant'],
}

现在我们已经设置好了,我们可以继续使用npm run storybookyarn storybook 运行 Storybook。当它在浏览器中打开时,请转到Contensis 条目选择器 选项卡。在这里,您将看到一个下拉菜单,其中包含要选择的条目。单击其中一个条目将允许您的组件使用其数据。🎉

作者
  • fbeavan
    fbeavan
  • s.horan
    s.horan
  • rdsaunders
    rdsaunders
  • danwhite
    danwhite
  • alexpop-zengenti
    alexpop-zengenti
  • n.flatley
    n.flatley
协作技术
    React
标签