import type {Meta, StoryObj} from '@storybook/angular';
import {moduleMetadata} from '@storybook/angular';
import {PromptInput} from './prompt-input';
import {CommonModule} from '@angular/common';
import {FormsModule} from '@angular/forms';
import {Store, StoreModule} from '@ngrx/store';
import {reducers} from '../../reducers';
import {HttpClientModule} from '@angular/common/http';
import {ApiService} from '../../services/api-service';

const appReducer = reducers.app;

const meta: Meta<PromptInput> = {
  title: 'Chatbot/Input/PromptInput',
  component: PromptInput,
  tags: ['autodocs'],
  decorators: [
    moduleMetadata({
      imports: [
        CommonModule,
        FormsModule,
        HttpClientModule,
        StoreModule.forRoot({app: appReducer as any})
      ],
      providers: [
        ApiService,
        Store
      ]
    })
  ],
  argTypes: {
    // Vous pouvez définir des contrôles pour les propriétés ici
  }
};

export default meta;
type Story = StoryObj<PromptInput>;

export const Default: Story = {
  args: {
    // Les propriétés par défaut
  }
};

export const WithPlaceholder: Story = {
  args: {
    // Les propriétés avec un placeholder personnalisé
  },
  parameters: {
    // Vous pouvez surcharger certains paramètres ici
  }
};

export const LoadingState: Story = {
  args: {
    // Les propriétés de base
  },
  parameters: {
    store: {
      init: (store: Store) => {
        store.dispatch({
          type: 'UPDATE_APP',
          payload: {
            loading: true
          }
        });
      }
    }
  }
};
