storyblok / field-plugin

Create and deploy Storyblok Field Plugin
https://www.storyblok.com/docs/plugins/field-plugins/introduction
25 stars 3 forks source link

Vue3 plugin options from useFieldPlugin hook is `undefined` #356

Open vickywane opened 5 months ago

vickywane commented 5 months ago

Describe the bug The options object from the useFieldPlugin is continuously undefined in my field plugins. I logged out the type also and I can see that it's stuck in a loading value.

I'm experiencing this on with the version "@storyblok/field-plugin": "1.0.1" and "vue": "^3.2.47". I also created a new project using version "@storyblok/field-plugin": "1.0.2",.

I really would love to get a fix for this as we need to use the same plugin for multiple StoryBlok spaces so we are relying on the options to switch the credentials.

To Reproduce Steps to reproduce the behavior:

Log out the options object from the useFieldPlugin as shown below;

  <script setup lang="ts">
  import type { SetModalOpen } from '@storyblok/field-plugin'
  import { useFieldPlugin } from '@storyblok/field-plugin/vue3';

  const { data: pluginData, type: pluginType } = useFieldPlugin()

  console.log("PLUGIN OPTIONS", pluginData?.options);

  const props = defineProps<{
    isModalOpen: boolean
    setModalOpen: SetModalOpen<any>
  }>()
  </script>

Expected behavior The options object should have the properties defined in the following field-plugin.config.json` file;

{
  "options": [
    {
      "name": "API_URL",
      "value": ""
    },
      {
        "name": "API_KEY",
        "value": ""
      }
  ]
}

Screenshots

Screenshot 2024-02-17 at 12 58 16

Additional context

eunjae-lee commented 4 months ago

Hi @vickywane useFieldPlugin() returns a reactive object. So you cannot destructure it.

const plugin = useFieldPlugin()

I'd like to avoid this confusion. Would it help if the template included some comments about this?

vickywane commented 3 months ago

Hi @eunjae-lee

Apologies here, I missed the notification about your response.

I think it would be very helpful for others also.

If this has not been included in the documentation, I will be more than happy to make a PR to contribute that if you point in the right direction.