shuding/nextra

`components` theme configuration to accept generic

Open

#1 978 ouverte le 18 juin 2023

Voir sur GitHub
 (4 commentaires) (0 réactions) (0 assignés)TypeScript (13 807 stars) (1 413 forks)user submission
enhancementgood first issue

Description

Hi 👋

Context

I would like to create a custom component to be reusable inside all the documentation 😍

type IframeProps = {
  url: string;
};

export const Iframe: FunctionComponent<IframeProps> = ({ url }) => {
  return <iframe src={url} allowFullScreen className={styles.main} />;
};

Problem

Regarding the following documentation 👀

Capture d’écran 2023-06-18 à 09 57 24

In the code, type is define as components?: Record<string, FC> | undefined; but it's a little bit to strict because we can't pass any additional props.

Cannot assign type 'FC<OptionTableProps>' to type 'FC'.
  Parameter types 'props' and 'props' are incompatible.
    Unable to assign type '{}' to type 'OptionTableProps'. ts(2322)

Proposal solution

What about the possibility to accept a generic to pass additional props ? Is there any side effect for this improvement ?

components?: Record<string, FC<T>> | undefined;

I could open a PR if needed to support 😇 Thanks for it 🙏

Guide contributeur