import { Snippet } from "@/components/Snippet"; const reactCreateElementSnippets = [ { name: "HTML", codeLanguage: "html", code: '', }, { name: "React sans JSX", codeLanguage: "js", code: `React.createElement("button", { className: "button" }, "Clique moi !");`, }, { name: "React avec JSX", codeLanguage: "tsx", code: ``, }, ]; const advancedReactCreateElementSnippets = [ { name: "React sans JSX", codeLanguage: "js", withLineNumbers: true, code: `React.createElement( React.Fragment, null, React.createElement("h2", null, "Formulaire de contact"), React.createElement( "form", { onSubmit: handleSubmit }, React.createElement( "fieldset", null, React.createElement("label", { htmlFor: "lastname" }, "Nom"), React.createElement("input", { type: "text", name: "lastname", id: "lastname", required: true }), ), React.createElement( "fieldset", null, React.createElement("label", { htmlFor: "email" }, "Email"), React.createElement("input", { type: "email", name: "email", id: "email", required: true }), ), React.createElement( "fieldset", null, React.createElement("label", { htmlFor: "message" }, "Message"), React.createElement("textarea", { name: "message", id: "message", required: true }), ), React.createElement( "fieldset", null, React.createElement( "label", { htmlFor: "gdpr" }, React.createElement("input", { type: "checkbox", name: "gdpr", id: "gdpr", required: true }), "J'accepte que mes données soient utilisées pour me recontacter", ), ), React.createElement("button", { type: "submit" }, "Envoyer"), ), );`, }, { name: "React avec JSX", codeLanguage: "tsx", withLineNumbers: true, code: `

Formulaire de contact

`, }, ]; const reactVariablesAndFunctionsSnippets = [ { name: "Variables", codeLanguage: "jsx", code: `const name = "Jean Dupont"; return

Bonjour {name} !

;`, }, { name: "Fonctions", codeLanguage: "jsx", code: `const sayHello = () => "Bonjour !"; return

{sayHello()}

;`, }, ]; const reactExpressionsSnippets = [ { name: "Condition ternaire", codeLanguage: "jsx", code: `const age = 18; return

{age >= 18 ? "Majeur" : "Mineur"}

;`, }, { name: "Affichage conditionnel", codeLanguage: "jsx", code: `const isLogged = false; return (
{isLogged &&

Bienvenue sur notre site !

} {!isLogged &&

Connectez-vous pour accéder à notre site

}
);`, }, ]; const reactLoopsFruitsSnippets = [ { name: "Définition des fruits", codeLanguage: "js", code: `const fruits = ["pomme", "banane", "fraise"];`, }, ]; const reactLoopsSnippets = [ { name: "for", codeLanguage: "js", code: `for (let i = 0; i < fruits.length; i++) { console.log(fruits[i]); }`, }, { name: "forEach", codeLanguage: "js", code: `fruits.forEach((fruit) => { console.log(fruits[i]); });`, }, { name: "for", codeLanguage: "js", code: `fruits.map((fruit) => { console.log(fruits[i]); });`, }, ]; const reactMapLoopSnippets = [ { name: "Mapping", codeLanguage: "jsx", code: `const fruits = ["pomme", "banane", "fraise"]; return ( );`, }, ]; const reactPropsSnippets = [ { name: "JSX", codeLanguage: "jsx", code: `const Button = (props) => { return ; };`, }, { name: "TSX", codeLanguage: "tsx", code: `type ButtonProps = { onClick: () => void; children: React.ReactNode; }; const Button = (props: ButtonProps) => { return ; };`, }, ]; export default { reactCreateElement: () => , advancedReactCreateElement: () => ( ), reactVariablesAndFunctions: () => ( ), reactExpressions: () => , reactLoopsFruits: () => , reactLoops: () => , reactMapLoop: () => , reactProps: () => , };