Closed benoit-tb closed 1 month ago
Bonjour,
Il pourrait être intéressant de typer le retour de la fonction createModal, pour que nous puissions réutiliser ce type dans nos applications.
Je m'explique.
Dans certains cas, lorsque nous créons notre modale :
const validationIncompleteModal = createModal({ id: 'ma-modale', });
et que, nous passons cette modale dans un composant enfant :
<MonComposantEnfant modal={validationIncompleteModal} />
On est obligé de typer dans nos projets le retour de createModal.
export default function MonComposantEnfant({modal} : {modal: MonTypeModal})
Cela donnerait donc quelque chose comme suit au niveau du projet react-dsfr :
export type Modal = { buttonProps: { /** Only for analytics, feel free to overwrite */ id: string; "aria-controls": string; "data-fr-opened": boolean; }; Component: (props: ModalProps) => JSX.Element; close: () => void; open: () => void; isOpenedByDefault: boolean; id: string; };
et
export function createModal(params: { isOpenedByDefault: boolean; id: string }): Modal {
Je vous laisse me faire et retour, et n'hésitez pas à revenir vers moi au besoin.
Merci et bonne journée !
NB : j'ai voulu faire une PR sur le projet, mais je ne dois pas être autorisé
Le type dont tu as besoin c'est : type Modal = ReturnType<typeof createModal> ?
type Modal = ReturnType<typeof createModal>
En effet, ça fait le job !
Merci Dylan.
Bonjour,
Il pourrait être intéressant de typer le retour de la fonction createModal, pour que nous puissions réutiliser ce type dans nos applications.
Je m'explique.
Dans certains cas, lorsque nous créons notre modale :
et que, nous passons cette modale dans un composant enfant :
<MonComposantEnfant modal={validationIncompleteModal} />
On est obligé de typer dans nos projets le retour de createModal.
export default function MonComposantEnfant({modal} : {modal: MonTypeModal})
Cela donnerait donc quelque chose comme suit au niveau du projet react-dsfr :
et
export function createModal(params: { isOpenedByDefault: boolean; id: string }): Modal {
Je vous laisse me faire et retour, et n'hésitez pas à revenir vers moi au besoin.
Merci et bonne journée !
NB : j'ai voulu faire une PR sur le projet, mais je ne dois pas être autorisé