import type { Meta, StoryObj } from '@storybook/react';

import {{COMPONENT_CLASS_NAME}} from './index';
import operatorDetails, { pyReviewRaw } from './mock';

const meta: Meta<typeof {{COMPONENT_CLASS_NAME}}> = {
  title: '{{COMPONENT_CLASS_NAME}}',
  component: {{COMPONENT_CLASS_NAME}},
  excludeStories: /.*Data$/,
  parameters: {
    type: 'Details'
  }
};

export default meta;
type Story = StoryObj<typeof {{COMPONENT_CLASS_NAME}}>;

window.PCore.getUserApi = (): any => {
  return {
    getOperatorDetails: () => {
      return new Promise(resolve => {
        resolve(operatorDetails);
      });
    }
  };
};

export const Base{{COMPONENT_CLASS_NAME}}: Story = args => {
  const props = {
    NumCols: '1',
    template: 'DefaultForm',
    showHighlightedData: false,
    getPConnect: () => {
      return {
        getChildren: () => {
          return pyReviewRaw.children[0].children;
        },
        getRawMetadata: () => {
          return pyReviewRaw;
        },
        getContextName: () => {
          return 'app/primary_1';
        },
        getInheritedProps: () => {
          return pyReviewRaw.config.inheritedProps;
        },

        setInheritedProp: () => {
          /* nothing */
        },
        resolveConfigProps: () => {
          /* nothing */
        }
      };
    }
  };

  return <{{COMPONENT_CLASS_NAME}} {...props} {...args} />;
};

Base{{COMPONENT_CLASS_NAME}}.args = {};
