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 (1 413 forks)user submission
enhancementgood first issue

Métriques du dépôt

Stars
 (13 807 stars)
Métriques de merge PR
 (Merge moyen 6j 16h) (3 PRs mergées en 30 j)

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