import { VistaSinDatos } from './VistaSinDatos';

export default {
  title: 'DataDisplay/VistaSinDatos',
  component: VistaSinDatos,
  tags: ['autodocs'],
  argTypes: {
    message: {
      control: 'text',
      description: 'Texto del empty state (\\n para varias líneas)',
    },
    buttonLabel: {
      control: 'text',
      description: 'Texto del botón de acción',
    },
    iconName: {
      control: 'text',
      description: 'Nombre del icono Heroicons (24 outline), igual que en Icon',
    },
    messagePreferSingleLine: {
      control: 'boolean',
      description:
        'Mensaje a ancho completo; desde ~640px cada línea evita partirse si hay espacio.',
    },
    onCrearEmpresa: {
      action: 'click',
      description: 'Callback al hacer clic (ej. () => navigate("/crear-empresa")). El proyecto consumidor define la navegación.',
    },
    crearEmpresaTo: {
      control: 'text',
      description: 'Ruta de destino (ej. "/crear-empresa-2a"). Si se pasa, el botón es un enlace <a href>. El proyecto consumidor puede usar solo esto o solo onCrearEmpresa.',
    },
  },
};

export const Default = {
  args: {
    message: 'Por el momento no hay empresas cargadas.\nCree su primer empresa.',
    buttonLabel: 'Crear empresa',
    iconName: 'BuildingOffice2Icon',
    onCrearEmpresa: () => console.log('Crear empresa'),
  },
};

export const SinBoton = {
  args: {
    message: 'Por el momento no hay empresas cargadas.\nCree su primer empresa.',
    onCrearEmpresa: undefined,
    crearEmpresaTo: undefined,
  },
};

export const ConRuta = {
  args: {
    message: 'Por el momento no hay empresas cargadas.\nCree su primer empresa.',
    buttonLabel: 'Crear empresa',
    crearEmpresaTo: '/crear-empresa-2a',
  },
};

export const MensajePersonalizado = {
  args: {
    message: 'Aún no tiene empresas.\nAgregue la primera para comenzar.',
    buttonLabel: 'Agregar empresa',
    onCrearEmpresa: () => console.log('Agregar empresa'),
  },
};

export const OtroIcono = {
  args: {
    message: 'No hay datos para mostrar.',
    buttonLabel: 'Ir al inicio',
    iconName: 'InboxIcon',
    onCrearEmpresa: () => {},
  },
};
