import { createContext } from 'react';
import type { ListItemTypes, ListItemControlProps, ListItemProps } from './ListItem';

export type ListItemMediaSize = 24 | 32 | 40 | 48 | 56 | 72;

export type ListItemContextData = {
  setControlType: (type: ListItemTypes) => void;
  setControlProps: (props: ListItemControlProps) => void;
  setMediaSize: (size: ListItemMediaSize | undefined) => void;
  ids: {
    title: string;
    subtitle?: string;
    valueTitle?: string;
    valueSubtitle?: string;
    additionalInfo?: string;
    control: string;
    prompt?: string;
  };
  props: Pick<ListItemProps, 'disabled' | 'inverted' | 'disabledPromptMessage'>;
  mediaSize?: ListItemMediaSize;
  isPartiallyInteractive?: boolean;
  describedByIds: string;
};

export const ListItemContext = createContext<ListItemContextData>(
  null as unknown as ListItemContextData,
);
