UNPKG

@fto-consult/expo-ui

Version:

Bibliothèque de composants UI Expo,react-native

105 lines (103 loc) 8.28 kB
export default { enabled : false,//la gestion de l'authentification est désactivée par défaut profilePropsMutator : ({fields,...props})=>({fields,...props}),//la fonction permettant de muter les champs liés à l'écran de mise à jour d'un profil utilisateur signIn : ({user})=>Promise.resolve({message:"Connecté avec success"}), //la fonction permettant de connecter un utilisateur signOut : ({user})=>Promise.resolve({message:"Déconnecté avec success"}),//la fonction permettant de déconnecter un utilisateur /**** permet de mettre à jour les informations sur un utilisateurs, informations venant des préférences de ce dernier */ upsertUser: ({ user }) => Promise.resolve({message:`utilisateur mis à jour avec succèes`}), /***** permet de déterminer si l'utilisateur est un super admin */ isMasterAdmin: (user) => { return true;//par défaut les utilisateurs sont master admin, c'est a dire ont le plain pouvoir sur l'application return !!user?.isMasterAdmin; }, //retourne le mail de l'utilisateur s'il y a en a getUserEmail: (user) => user.email, /*** retourne le code d'utilisateur, alis si un code est utilisé pour identifier l'utilisateur de façon unique, par exemple son pseudo*/ getUserCode: (user) => { return user?.userId || user?._id; }, /*** retourne l'id unique de l'utilisateur */ getLoginId: (user) => { return user.id; }, //retourne le pseudo de l'utilisateur, s'il y en a getUserPseudo: (user) => user.pseudo, getUserFirstName : (user)=>user.firstName, getUserLastName : (user)=>user.lastName, getUserFullName : (user)=> user.fullName || `${user.firstName && user.firstName ||''}${user.lastName && ` ${user.lastName}` ||''}`, /**** Le composant à définir pour override le composant Login par défaut de l'application. example : Login : (porps)=><React.Component {...props}/> Pour override l'interface de connexion par défaut, vous dévez définir le contenu de cette propriété comme étant un composant React qui sera rendu rendu en lieu et place du composant de connexion par défaut : Ce composant aura comme props : { withScreen : {boolean}, //si le contenu de l'écran doit être rendu dans un Screen ReactNative onSuccess <function> : (data)=><any>, la fonction appelée en cas de success appBarProps <object>, les props à passer au composant ApppBar de l'écran de connexion, lorsque withScreen est à true auth <object>, //le composant auth récupérer à l'aide du hook useAuth de $cauth. définit les fonctions suivantes : { signIn : (data)=><Promise>, la fonction permettant de connecter l'utilisateur signOut : ()=><Promise>, la fonction permettant de déconnecter l'utilisateur, / ...rest, } } */ Login : null, /* la fonction loginPropsMutator de muter les props du composant Login par défaut, prise en compte lorsque le composant de connexion n'est pas remplacer par celui définit dans la prop login, @param {object} props : les propriétés de la fonction login, les props ont des propriétés suivantes : { signIn : ()=><any>, la fonction permettant de connecter l'utilisateur, onSuccess : ({object})=><Any>, la fonction appelée en cas de success setState : (newState)=>(...newState),//la fonction utilisée pour update le state du composant. elle doit remplacer le state du composant state : <Object: data,...rest>, le state actuel à l'instant t du composant, //prend en paramètre une référence pointant sur le composant $ecomponents/Button et retourne les actions possible sur ledit button getButtonAction : (buttonRef) => <{ enable : x=>typeof buttonRef?.current?.enable =="function" && buttonRef.current.enable(), disable : x=> typeof buttonRef?.current?.disable =="function" && buttonRef?.current.disable(), isDisabled : x=> typeof buttonRef?.current?.isDisabled ==="function" && buttonRef.current?.isDisabled(), }, nextButton : <Object : { ref : nextButtonRef, //la référence vers le bouton next (le boutn Suivant) isDisabled : x=> typeof buttonRef?.current?.isDisabled ==="function" && buttonRef.current?.isDisabled(), enable : x=>typeof buttonRef?.current?.enable =="function" && buttonRef.current.enable(), disable : x=> typeof buttonRef?.current?.disable =="function" && buttonRef?.current.disable(), } >, prevButton : <Object : { ref : prevButtonRef, //la référence react ver le buton previous (le bouton Précédent) isDisabled : x=> typeof buttonRef?.current?.isDisabled ==="function" && buttonRef.current?.isDisabled(), enable : x=>typeof buttonRef?.current?.enable =="function" && buttonRef.current.enable(), disable : x=> typeof buttonRef?.current?.disable =="function" && buttonRef?.current.disable(), } >, showError <function> : (message,title)=><void>, la fonction permettant de notifier l'utilisateur en cas d'erreur getData <function> : ()=><Object>, la fonction permettant de récupérer les données en cours de modification du formulaire de connextion à l'instant t focusField <function> : (fieldName)=><void>, la fonction permettant d'activer le focus sur le champ fieldName à l'instant t formName <string>, //le nom du formulaire Form, passé à la formData nextButtonRef <{current:<any>}>, la référence vers le bouton next previousButtonRef <{current:<any>}, la référence vers le bouton previous formProps : (object), //les props à passer au composant FormData } @return <{object}>, l'objet a retourné doit être de la forme : { headerTopContent : <ReactComponent | ReactNode, le contenu a afficher au headerTop de l'interface de connexion header : <ReactComponent| ReactNode>, le contenu du qui sera rendu immédiatement après le composant Header, par défaut, le texte "Connectez vous svp est affiché". Ce contenu doit être rendu si l'on souhaite override le texte "Connectez vous SVP" containerProps : <object>, les props du composant <Surface/>, le composant qui est le wrapper du composant FormData en charge de récupérer les données de l'interface de connexion canSubmit : ({step,...rest})=> <boolean>, //si les donées du formulaire peuvent être submit beforeSubmit : ({step,data,...rest})=><void>, //la fonction appélée immédiatement avant le submit des donénes renderNextButton : <boolean>, //si le bouton next sera rendu renderPreviousButton : <boolean>, //si le bouton previous sera rendu title : <string>, //le titre de l'interface de connexion, titre personnalisé s'il y a lieu wrapperProps : <func({withScreen,withScrollView,state,...rest})=><object>,object>, //les props du composant wrapper, containerProps : <object>, //les props du composant container, idem à ceux du composant $ecomponents/Surface contentProps : <object>, //les props du composant parent direct à la form rendu par le composatn formData, idem à ceux du composant $ecomponents/Surface onSuccess : (object)=><boolean | any>, la fonction de rappel appelée lorsque l'utilisateur a été connecté, via la fonction signIn. si onSuccess retourne false, alors l'action par défaut de redirection de l'utilisateur via l'interface de connexion ne sera pas appelée. ...loginProps {object}, les props Supplémentaires à passer au composant FormData utilisé pour le rendu du formulaire de connexion } */ loginPropsMutator : (props)=>{ return props; }, }