{"version":3,"sources":["NavigationClient.js","authConfig.js","dataProvider.js","reducers/index.js","components/Main.js","components/SignInButton.js","components/Footer.js","utils/index.js","validation/validator.js","components/Checkout.js","components/Cart.js","components/Success.js","components/Canceled.js","img/logo.png","App.js","index.js"],"names":["CustomNavigationClient","history","url","options","a","relativePath","replace","window","location","origin","noHistory","this","push","NavigationClient","ua","navigator","userAgent","msie","indexOf","msie11","msedge","firefox","msalConfig","auth","clientId","authority","redirectUri","postLogoutRedirectUri","cache","storeAuthStateInCookie","system","loggerOptions","loggerCallback","level","message","containsPii","LogLevel","Error","console","error","Info","info","Verbose","debug","Warning","warn","api_url","getToken","account","msalInstance","getActiveAccount","acquireTokenSilent","scopes","response","accessToken","log","fetchData","path","headers","Headers","bearer","append","fetch","method","json","postData","body","JSON","stringify","checkoutReducer","state","action","type","isLoading","payload","errors","studentId","student","cartReducer","degrees","subjects","cart","degree","mainReducer","sessions","Main","useHistory","useMsal","accounts","instance","now","useAccount","moment","useReducer","dispatch","useEffect","data","fetchSessions","handleSession","e","sessionId","target","dataset","sessionid","session","find","s","id","parseInt","pathname","Container","Alert","variant","style","textAlign","className","Spinner","animation","role","length","color","ListGroup","map","Item","name","limitRegistrationDateCL","Button","onClick","SignInButton","isAuthenticated","useIsAuthenticated","Navbar","Collapse","DropdownButton","title","Dropdown","href","rel","logoutRedirect","Fragment","loginRedirect","Footer","Date","getFullYear","formatPrice","amount","currency","quantity","numberFormat","Intl","NumberFormat","currencyDisplay","parts","formatToParts","zeroDecimalCurrency","total","toFixed","format","StudentInfoSchema","Yup","shape","email","required","address","extraAddress","notRequired","default","undefined","postalCode","city","country","mobile","phone","terms","oneOf","Checkout","of","useLocation","formik","useFormik","validationSchema","initialValues","enableReinitialize","onSubmit","values","degreeId","Object","keys","key","subjectId","checkoutSessionUrl","username","match","fetchStudentInfo","Row","image","src","alt","nameFr","width","description","reduce","acc","Form","noValidate","handleSubmit","Group","as","Col","Label","InputGroup","Prepend","Text","Control","placeholder","size","disabled","onChange","handleChange","value","isInvalid","touched","Feedback","Check","label","feedback","muted","isSubmitting","to","from","Cart","props","fetchDegrees","concat","handleDegreesSelect","event","selectedIndex","text","sessionSubjects","addToCart","subject","element","removeFromCart","filter","item","controlId","isSearchable","icon","faTrashAlt","faShoppingCart","Success","Canceled","Pages","exact","App","pca","navigationClient","setNavigationClient","Brand","logo","Toggle","PublicClientApplication","getAllAccounts","setActiveAccount","enableAccountStorageEvents","addEventCallback","eventType","EventType","LOGIN_SUCCESS","ReactDOM","render","StrictMode","document","getElementById"],"mappings":"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","file":"static/js/main.61261217.chunk.js","sourcesContent":["import { NavigationClient } from \"@azure/msal-browser\";\n\n/**\n * This is an example for overriding the default function MSAL uses to navigate to other urls in your webpage\n */\nexport class CustomNavigationClient extends NavigationClient{\n constructor(history) {\n super();\n this.history = history;\n }\n\n /**\n * Navigates to other pages within the same web application\n * You can use the useHistory hook provided by react-router-dom to take advantage of client-side routing\n * @param url \n * @param options \n */\n async navigateInternal(url, options) {\n const relativePath = url.replace(window.location.origin, '');\n if (options.noHistory) {\n this.history.replace(relativePath);\n } else {\n this.history.push(relativePath);\n }\n\n return false;\n }\n}","import { LogLevel } from \"@azure/msal-browser\";\n// Browser check variables\n// If you support IE, our recommendation is that you sign-in using Redirect APIs\n// If you as a developer are testing using Edge InPrivate mode, please add \"isEdge\" to the if check\nconst ua = window.navigator.userAgent;\nconst msie = ua.indexOf(\"MSIE \");\nconst msie11 = ua.indexOf(\"Trident/\");\nconst msedge = ua.indexOf(\"Edge/\");\nconst firefox = ua.indexOf(\"Firefox\");\nconst isIE = msie > 0 || msie11 > 0;\nconst isEdge = msedge > 0;\nconst isFirefox = firefox > 0; // Only needed if you need to support the redirect flow in Firefox incognito\n\n// Config object to be passed to Msal on creation\nexport const msalConfig = {\n auth: {\n clientId: \"f56a9bf3-4c1e-4b65-a4a3-eb0d699cefe3\",\n authority: \"https://login.microsoftonline.com/fede.education\",\n redirectUri: \"/\",\n postLogoutRedirectUri: \"/\"\n },\n cache: {\n storeAuthStateInCookie: isIE || isEdge || isFirefox\n },\n system: {\n loggerOptions: {\n loggerCallback: (level, message, containsPii) => {\n if (containsPii) {\t\n return;\t\n }\n switch (level) {\t\n case LogLevel.Error:\t\n console.error(message);\t\n return;\t\n case LogLevel.Info:\t\n console.info(message);\t\n return;\t\n case LogLevel.Verbose:\t\n console.debug(message);\t\n return;\t\n case LogLevel.Warning:\t\n console.warn(message);\t\n return;\t\n default:\n return;\n }\n }\n }\n }\n};\n\n// Add here scopes for id token to be used at MS Identity Platform endpoints.\nexport const loginRequest = {\n scopes: [ \"https://api.fede.education/.default\"]\n};\n\n// Add here the endpoints for MS Graph API services you would like to use.\nexport const api = {\n graphMeEndpoint: \"https://graph.microsoft.com/v1.0/me\",\n apiFedeEndpoint: (process.env.NODE_ENV === \"development\") ? 'http://localhost:8080' : 'https://api.fede.education'\n};\n","import { msalInstance } from \"./index\";\r\nimport { InteractionRequiredAuthError, AuthenticationScheme } from '@azure/msal-browser';\r\nimport { protectedResources } from \"./authConfig\";\r\n\r\nlet api_url = 'https://api.fede.education';\r\n\r\nif(process.env.NODE_ENV === \"development\"){\r\n api_url = 'http://localhost:8080';\r\n}\r\n\r\nconst getToken = async () => {\r\n const account = msalInstance.getActiveAccount();\r\n \r\n if (!account) {\r\n throw Error(\"No active account! Verify a user has been signed in and setActiveAccount has been called.\");\r\n }\r\n \r\n\r\n try {\r\n const response = await msalInstance.acquireTokenSilent({\r\n account: account[0],\r\n scopes: [\"https://api.fede.education/.default\"]\r\n });\r\n\r\n return response.accessToken;\r\n } catch (error) {\r\n console.log(error)\r\n }\r\n}\r\n\r\nexport const fetchData = async (path) => {\r\n try {\r\n const accessToken = await getToken();\r\n const headers = new Headers();\r\n const bearer = `Bearer ${accessToken}`\r\n headers.append(\"Authorization\", bearer);\r\n\r\n const response = await fetch(`${api_url}${path}`, {\r\n method: 'GET',\r\n headers: headers,\r\n });\r\n\r\n const json = await response.json();\r\n\r\n return json;\r\n\r\n } catch(error) {\r\n console.error(error)\r\n }\r\n\r\n}\r\n\r\nexport const postData = async (path, body) => {\r\n try {\r\n const accessToken = await getToken();\r\n const headers = new Headers();\r\n const bearer = `Bearer ${accessToken}`\r\n headers.append(\"Authorization\", bearer);\r\n headers.append(\"Content-Type\", \"application/json\");\r\n \r\n if(process.env.NODE_ENV === \"development\"){\r\n console.log(JSON.stringify(body))\r\n } \r\n\r\n console.log(api_url + path)\r\n const response = await fetch(`${api_url}${path}`, {\r\n method: 'POST',\r\n headers: headers,\r\n body: JSON.stringify(body),\r\n });\r\n\r\n const json = await response.json();\r\n\r\n return json;\r\n } catch(error) {\r\n console.error(error)\r\n }\r\n \r\n}","\n\nexport const checkoutReducer = (state = null, action) => {\n switch (action.type) {\n case 'setLoading':\n return { ...state, isLoading: action.payload.isLoading };\n case 'setErrors':\n return { ...state, errors: action.payload.errors };\n case 'setStudentId':\n return { ...state, studentId: action.payload.studentId };\n case 'setStudent':\n return { ...state, student: action.payload.student };\n default:\n return state;\n }\n}\n\nexport const cartReducer = (state = null, action) => {\n switch (action.type) {\n case 'setStudentId':\n return { ...state, studentId: action.payload.studentId };\n case 'setLoading':\n return { ...state, isLoading: action.payload.isLoading };\n case 'setError':\n return { ...state, error: action.payload.error };\n case 'setDegrees':\n return { ...state, ...action.payload, degrees: action.payload.degrees };\n case 'setSubjects':\n return { ...state, ...action.payload, subjects: action.payload.subjects };\n case 'setCart':\n return { ...state, ...action.payload, cart: action.payload.cart };\n case 'addToCart':\n return { ...state, ...action.payload, cart: action.payload.cart };\n case 'removeFromCart':\n return { ...state, ...action.payload, cart: action.payload.cart }; \n case 'setDegree':\n return { ...state, ...action.payload, degree: action.payload.degree }; \n default:\n return state;\n }\n}\n\nexport const mainReducer = (state = null, action) => {\n switch (action.type) {\n case 'setLoading':\n return { ...state, isLoading: action.payload.isLoading };\n case 'setErrors':\n return { ...state, errors: action.payload.errors };\n case 'setSessions':\n return { ...state, sessions: action.payload.sessions };\n default:\n return state;\n }\n}\n \n","import React, { useEffect, useReducer } from 'react';\r\nimport { fetchData } from '../dataProvider';\r\nimport { mainReducer } from '../reducers';\r\nimport { ListGroup, Container, Spinner, Alert, Button } from 'react-bootstrap';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { useMsal, useAccount } from \"@azure/msal-react\";\r\nimport moment from 'moment'\r\n\r\nconst ALLOWED_USER = \"q.magat-126046@fedecampus.com\";\r\n\r\nconst Main = () => {\r\n let history = useHistory();\r\n\r\n const { instance, accounts } = useMsal();\r\n const account = useAccount(accounts[0] || {});\r\n const now = moment()\r\n\r\n const [state, dispatch] = useReducer(mainReducer, {\r\n isLoading: false,\r\n errors: null,\r\n sessions: null\r\n });\r\n \r\n useEffect(() => {\r\n // Bloquer le site pour tout le monde sauf un utilisateur de test en prod\r\n /*if (accounts.length > 0) {\r\n const currentUser = accounts[0].username;\r\n if (currentUser !== ALLOWED_USER) {\r\n alert(\"Site en maintenance\");\r\n history.push('/Error');\r\n return;\r\n }\r\n }*/\r\n\r\n async function fetchSessions() {\r\n dispatch({ type: 'setLoading', payload: { isLoading: true } });\r\n try{\r\n const { data } = await fetchData(`/sessions`);\r\n dispatch({type: 'setSessions', payload: { sessions: data} });\r\n } catch (error) {\r\n dispatch({ type: 'setErrors', payload: { errors: error } });\r\n }\r\n dispatch({ type: 'setLoading', payload: { isLoading: false } });\r\n }\r\n fetchSessions();\r\n }, []);\r\n\r\n\r\n const handleSession = (e) => {\r\n const sessionId = e.target.dataset.sessionid;\r\n if(sessionId && sessionId > 0){\r\n const session = state.sessions.find(s => s.id === parseInt(sessionId))\r\n history.push({pathname: '/cart', state: { session: session }})\r\n }\r\n }\r\n\r\n return (\r\n \r\n {state.errors && (\r\n Une erreur est survenue lors de la tentative de traitement de votre demande. \r\n )}\r\n {(state.isLoading) && (\r\n
\r\n \r\n \r\n Loading...\r\n \r\n \r\n
\r\n )}\r\n {state.sessions && state.sessions.length === 0 && (

Aucune session disponible

)}\r\n {state.sessions && state.sessions.length > 0 && (\r\n
\r\n

Liste des sessions disponibles

\r\n
\r\n \r\n {state.sessions.map(session => (\r\n \r\n
\r\n
{session.name}
\r\n {now <= moment(session.limitRegistrationDateCL, \"DD/MM/YYYY\") ? (\r\n Date limite des inscriptions : {session.limitRegistrationDateCL}\r\n ) : (\r\n Session clôturée\r\n )}\r\n
\r\n {now <= moment(session.limitRegistrationDateCL, \"DD/MM/YYYY\") && (\r\n S'inscrire\r\n )}\r\n
\r\n ))}\r\n
\r\n
\r\n )}\r\n\r\n
\r\n );\r\n};\r\n \r\nexport default Main;","import { Button } from 'react-bootstrap';\nimport { Navbar, Dropdown, DropdownButton, Container } from 'react-bootstrap';\nimport { useMsal, useAccount, useIsAuthenticated } from \"@azure/msal-react\";\nimport React from \"react\";\n\nconst SignInButton = () => {\n const isAuthenticated = useIsAuthenticated();\n const { instance, accounts } = useMsal();\n const account = useAccount(accounts[0] || {});\n\n const handleLogin = () => {\n instance.loginRedirect();\n }\n\n const handleLogout = () => {\n instance.logoutRedirect();\n }\n\n return (\n \n {isAuthenticated ?\n \n \n Applications FEDE\n \n handleLogout(\"popup\")} >\n Se déconnecter\n \n \n :\n \n \n \n }\n \n )\n};\n\nexport default SignInButton;","import React from 'react';\n\nconst Footer = () => {\n return (\n \n );\n};\n \nexport default Footer;\n","export const groupBy = (objectArray, property) => {\n return objectArray.reduce((acc, obj) => {\n const key = obj[property];\n console.log(key)\n if (!acc[key]) {\n acc[key] = [];\n }\n acc[key].push(obj);\n return acc;\n }, {});\n}\n\nexport const formatPrice = ({ amount, currency, quantity }) => {\n const numberFormat = new Intl.NumberFormat('fr-FR', {\n style: 'currency',\n currency,\n currencyDisplay: 'symbol',\n });\n const parts = numberFormat.formatToParts(amount);\n let zeroDecimalCurrency = true;\n for (let part of parts) {\n if (part.type === 'decimal') {\n zeroDecimalCurrency = false;\n }\n }\n amount = zeroDecimalCurrency ? amount : amount / 100;\n const total = (quantity * amount).toFixed(2);\n return numberFormat.format(total);\n};\n","import * as Yup from 'yup';\n\nconst StudentInfoSchema = Yup.object().shape({\n email: Yup.string().email('Invalid email').required('Required'),\n address: Yup.string().required('Required'),\n extraAddress: Yup.string().notRequired().default(undefined),\n postalCode: Yup.string().required('Required'),\n city: Yup.string().required('Required'),\n country: Yup.string().required('Required'),\n mobile: Yup.string().required('Required'),\n phone: Yup.string().required('Required'),\n terms: Yup.bool().required().oneOf([true], 'Terms must be accepted'),\n});\n\n \nconst CartSchema = Yup.object().shape({\n cart: Yup.array().of(Yup.object({\n email: Yup.string().email('Invalid email').required('Required'),\n })).required('Required'),\n});\n\n\nexport {\n StudentInfoSchema,\n CartSchema\n}","import React, { useEffect, useReducer } from 'react';\r\nimport { checkoutReducer } from '../reducers';\r\nimport { useMsal, useAccount } from \"@azure/msal-react\";\r\nimport { formatPrice } from '../utils';\r\nimport { fetchData, postData } from '../dataProvider';\r\nimport { Form, InputGroup, Col, Spinner, Row, Container, Button, Alert } from 'react-bootstrap';\r\nimport { useLocation, useHistory, Redirect } from \"react-router-dom\";\r\nimport { useFormik } from 'formik';\r\nimport { StudentInfoSchema } from '../validation/validator';\r\n\r\nconst Checkout = () => {\r\n let history = useHistory();\r\n let location = useLocation();\r\n\r\n const { instance, accounts } = useMsal();\r\n const account = useAccount(accounts[0] || {});\r\n const { session, cart } = (location && location.state) || {};\r\n const [state, dispatch] = useReducer(checkoutReducer, {\r\n isLoading: false,\r\n errors: null,\r\n studentId: null,\r\n student: null\r\n });\r\n\r\n const formik = useFormik({\r\n validationSchema: StudentInfoSchema,\r\n initialValues: {\r\n email: ((state.student && state.student.email) ? state.student.email : ''),\r\n address: ((state.student && state.student.address) ? state.student.address : ''),\r\n postalCode: ((state.student && state.student.postalCode) ? state.student.postalCode : ''),\r\n extraAddress: ((state.student && state.student.extraAddress) ? state.student.extraAddress : ''),\r\n city: ((state.student && state.student.city) ? state.student.city : ''),\r\n country: ((state.student && state.student.country) ? state.student.country : ''),\r\n mobile: ((state.student && state.student.mobile) ? state.student.mobile : ''),\r\n phone: ((state.student && state.student.phone) ? state.student.phone : ''),\r\n terms: false,\r\n },\r\n enableReinitialize: true,\r\n onSubmit: async (values) => {\r\n try{\r\n dispatch({ type: 'setLoading', payload: { isLoading: true } });\r\n const { checkoutSessionUrl } = await postData(\"/checkout/create-checkout-session\", {\r\n ...values,\r\n sessionId: session.id,\r\n degreeId: cart[0].degreeId,\r\n cart: Object.keys(cart).map(key => { return { subjectId: cart[key].id } })\r\n })\r\n dispatch({ type: 'setLoading', payload: { isLoading: false } });\r\n if(checkoutSessionUrl){\r\n window.location.href = checkoutSessionUrl; \r\n } else {\r\n dispatch({ type: 'setErrors', payload: { errors: {} } });\r\n }\r\n } catch(e){\r\n dispatch({ type: 'setErrors', payload: { errors: e } });\r\n }\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n const studentId = parseInt(account.username.match(/(\\d+)/)[0]) \r\n dispatch({ type: 'setStudentId', payload: { studentId: studentId } });\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (state.studentId) {\r\n async function fetchStudentInfo() {\r\n try{\r\n const student = await fetchData(`/students/${state.studentId}`);\r\n dispatch({type: 'setStudent', payload: { student: student } });\r\n dispatch({ type: 'setLoading', payload: { isLoading: false } });\r\n } catch (error) {\r\n dispatch({ type: 'setErrors', payload: { errors: error } });\r\n }\r\n }\r\n dispatch({ type: 'setLoading', payload: { isLoading: true } });\r\n fetchStudentInfo();\r\n } \r\n }, [state.studentId]);\r\n\r\n return ( \r\n \r\n {state.errors && (\r\n Une erreur est survenue lors de la tentative de traitement de votre demande.\r\n )}\r\n {state.isLoading && (\r\n
\r\n \r\n \r\n Loading...\r\n \r\n \r\n
\r\n )}\r\n {cart ? (\r\n \r\n
\r\n

\r\n Votre panier\r\n {cart.length}\r\n

\r\n
    \r\n {cart && Object.keys(cart).map(key => (\r\n
  • \r\n
    \r\n {cart[key].image && ( {cart[key].nameFr} )}\r\n
    \r\n
    {cart[key].nameFr}
    \r\n {cart[key].description}\r\n
    \r\n
    \r\n { formatPrice({amount: cart[key].amount, currency: 'EUR', quantity : 1}) }\r\n
  • \r\n ))}\r\n
  • \r\n Total (EUR)\r\n {formatPrice({amount: Object.keys(cart).reduce((acc, key) => { return acc + cart[key].amount}, 0), currency: \"EUR\", quantity: 1})}\r\n
  • \r\n
\r\n
\r\n
\r\n

Votre inscription

\r\n
\r\n
Renseignements candidat
\r\n
\r\n \r\n \r\n Identifiant FEDE\r\n \r\n FEDE\r\n \r\n \r\n \r\n \r\n Prénom et Nom\r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n Attention ce mail sera utilisé pour comuniquer avec vous\r\n \r\n {formik.touched.email && formik.errors.email ? (\r\n {formik.errors.email}\r\n ) : null}\r\n \r\n \r\n Adresse postal\r\n \r\n {formik.touched.address && formik.errors.address ? (\r\n {formik.errors.address}\r\n ) : null}\r\n \r\n \r\n Complement d'adresse\r\n \r\n {formik.touched.extraAddress && formik.errors.extraAddress ? (\r\n {formik.errors.extraAddress}\r\n ) : null}\r\n \r\n \r\n \r\n Code postal\r\n \r\n {formik.touched.postalCode && formik.errors.postalCode ? (\r\n {formik.errors.postalCode}\r\n ) : null}\r\n \r\n \r\n Ville\r\n \r\n {formik.touched.city && formik.errors.city ? (\r\n {formik.errors.city}\r\n ) : null}\r\n \r\n \r\n Pays\r\n \r\n {formik.touched.country && formik.errors.country ? (\r\n {formik.errors.country}\r\n ) : null}\r\n \r\n \r\n \r\n Téléphone\r\n \r\n {formik.touched.phone && formik.errors.phone ? (\r\n {formik.errors.phone}\r\n ) : null}\r\n \r\n \r\n Mobile\r\n \r\n {formik.touched.mobile && formik.errors.mobile ? (\r\n {formik.errors.mobile}\r\n ) : null}\r\n \r\n \r\n \r\n {formik.touched.terms && formik.errors.terms ? (\r\n {formik.errors.terms}\r\n ) : null}\r\n \r\n \r\n Extraits du Règlement Général des Diplômes FEDE\r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n {(formik.isSubmitting)\r\n ? `En traitement...`\r\n : `Valider`\r\n }\r\n \r\n \r\n
\r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default Checkout;","import React, { useEffect, useReducer } from 'react';\nimport { fetchData } from '../dataProvider';\nimport { cartReducer } from '../reducers';\nimport { Form, Container, Button, Spinner, Alert } from 'react-bootstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faShoppingCart, faTrashAlt } from '@fortawesome/free-solid-svg-icons';\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { formatPrice } from '../utils';\nimport { useMsal, useAccount } from \"@azure/msal-react\";\n\nconst Cart = props => {\n let history = useHistory();\n let location = useLocation();\n\n const { session } = (location && location.state) || {};\n const { instance, accounts } = useMsal();\n const account = useAccount(accounts[0] || {});\n const [state, dispatch] = useReducer(cartReducer, {\n isLoading: false,\n studentId: null,\n degrees: [],\n sessions: [],\n subjects: [],\n cart: [],\n error: null,\n degree: null\n });\n \n useEffect(() => {\n const studentId = parseInt(account.username.match(/(\\d+)/)[0]) \n dispatch({ type: 'setStudentId', payload: { studentId: studentId } });\n }, []);\n\n useEffect(() => {\n if(state.studentId){\n async function fetchDegrees() {\n dispatch({ type: 'setLoading', payload: { isLoading: true } });\n dispatch({ type: 'setError', payload: { error: null } });\n const degrees = await fetchData(`/degrees`);\n dispatch({ type: 'setDegrees', payload: { degrees: [].concat(degrees.data) } });\n dispatch({ type: 'setLoading', payload: { isLoading: false } });\n }\n fetchDegrees(); \n }\n }, [state.studentId]);\n\n\n const handleDegreesSelect = async (event) => {\n const degreeId = event.target.value;\n const degreeName = event.target.options[event.target.selectedIndex].text;\n dispatch({ type: 'setLoading', payload: { isLoading: true } });\n dispatch({ type: 'setError', payload: { error: null } });\n dispatch({ type: 'setSubjects', payload: { subjects: [] } });\n dispatch({ type: 'setCart', payload: { cart: [] } });\n if(degreeId){\n const sessionSubjects = await fetchData(`/degrees/${degreeId}/subjectsCL`);\n dispatch({ type: 'setSubjects', payload: { subjects: [].concat(sessionSubjects.data) } });\n }\n dispatch({ type: 'setLoading', payload: { isLoading: false } });\n };\n\n const addToCart = async (subject) => {\n dispatch({ type: 'setLoading', payload: { isLoading: true } });\n dispatch({ type: 'setError', payload: { error: null } });\n if(!state.cart.find(element => element.id === subject.id)){\n dispatch({ type: 'addToCart', payload: { cart: state.cart.concat(subject)}})\n }\n dispatch({ type: 'setLoading', payload: { isLoading: false } });\n };\n\n const removeFromCart = async (subject) => {\n dispatch({ type: 'setLoading', payload: { isLoading: true } });\n dispatch({ type: 'setError', payload: { error: null } });\n if(state.cart.find(element => element.id === subject.id)){\n dispatch({ type: 'removeFromCart', payload: { cart: state.cart.filter(item => item.id !== subject.id) } });\n }\n dispatch({ type: 'setLoading', payload: { isLoading: false } });\n };\n\n const handleClick = () => {\n dispatch({ type: 'setLoading', payload: { isLoading: true } });\n\n if(state.cart.length > 0){\n history.push({pathname: '/checkout', state: { \n cart: {...state.cart},\n session: session\n }})\n } else {\n dispatch({ type: 'setError', payload: { error: \"Votre panier est vide\" } });\n }\n dispatch({ type: 'setLoading', payload: { isLoading: false } });\n }\n \n return (\n \n {state.error && (\n Une erreur est survenue lors de la tentative de traitement de votre demande.\n )}\n

Les épreuves disponibles

\n
\n {state.degrees && state.degrees.length > 0 && ( \n \n Sélectionnez la spécialité de votre diplôme FEDE\n \n \n {state.degrees.map(degree => (\n \n ))}\n \n \n \n Merci de selectionner une spécialité.\n \n \n )}\n\n {state.subjects && state.subjects.length > 0 && (\n \n {state.subjects.length > 0 ? state.subjects.map((item) => (\n
  • element.id === item.id) ? \"test\" : \"\"}`}\n key={item.id}\n >\n
    \n {item.image && ({item.nameFr})}\n
    \n
    {item.nameFr}
    \n {/* Epreuve passée en : {item.sessionName} */}\n {formatPrice({amount: item.amount, currency: \"eur\", quantity : 1})}\n
    \n
    \n \n {!state.isLoading ? (\n (state.cart.find(element => element.id === item.id))\n ? ()\n : ()\n ) : (\n \n Loading...\n \n )}\n \n
  • \n )) : (\n

    Aucune épreuve disponible

    \n )}\n
    \n )}\n \n {state.isLoading && (\n \n \n Loading...\n \n \n )} \n\n
    \n \n {(state.isLoading)\n ? `En traitement...`\n : `Valider`\n }\n \n
    \n );\n};\n \nexport default Cart;","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Container, Row, ListGroup } from 'react-bootstrap';\r\n\r\nconst Success = () => {\r\n // const [session, setSession] = useState({});\r\n // const location = useLocation();\r\n // const sessionId = location.search.replace('?session_id=', '');\r\n\r\n // useEffect(() => {\r\n // async function fetchSession() {\r\n // setSession(\r\n // await fetch('https://eryl2u5sx5.execute-api.eu-west-3.amazonaws.com/dev/checkout-session?sessionId=' + sessionId).then((res) =>\r\n // res.json()\r\n // )\r\n // );\r\n // }\r\n // fetchSession();\r\n // }, [sessionId]);\r\n\r\n return (\r\n \r\n \r\n
    \r\n

    Votre paiement a été accepté

    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    1ère étape :
    \r\n

    \r\n Vous allez bientôt recevoir par courrier une confirmation d’inscription.\r\n Si toutefois vous n’avez pas reçu ce document trois semaines avant le début des épreuves (en fonction des calendriers des épreuves consultables dans la rubrique examens du site internet de la FEDE), nous vous remercions de bien vouloir contacter le Centre européen des examens par mail \r\n à l’adresse mailbox@fede.education. \r\n

    \r\n
    \r\n \r\n
    2ème étape :
    \r\n

    \r\n Votre convocation aux épreuves orales vous sera transmise par votre centre d’examens. Votre convocation aux épreuves écrites qui se dérouleront en ligne vous sera transmise par la FEDE.\r\n Si toutefois vous n'avez pas reçu l'un ou l'autre de ces documents deux semaines avant le début des épreuves (en fonction des calendriers des épreuves consultables dans la rubrique examens du site internet de la FEDE), \r\n nous vous remercions de bien vouloir contacter le Centre européen des examens par mail à l’adresse mailbox@fede.education.\r\n

    \r\n
    \r\n \r\n
    RAPPELS :
    \r\n

    \r\n Les dossiers professionnels (épreuve, mission et thèse professionnelles à soutenir devant un jury) devront être obligatoirement remis trois semaines avant le début des épreuves (même si votre convocation à ces épreuves ne vous est pas parvenue). La FEDE vous fera indiquera par email le centre d'examen auquel vous êtes rattaché ainsi que son adresse de contact et les modalités d'envoi.
    \r\n Si vous êtes amené à vous désister, les droits d’inscription ne seront en aucun cas remboursés.\r\n Nous prenons en compte dans le calcul de la moyenne générale la dernière note obtenue.\r\n

    \r\n
    \r\n
    \r\n
    \r\n Revenir à l'accueil\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Success;","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Container, Row } from 'react-bootstrap';\r\n\r\nconst Canceled = () => {\r\n return (\r\n \r\n \r\n
    \r\n

    Votre paiement a été annulé

    \r\n
    \r\n
    \r\n \r\n
    \r\n Revenir à l'accueil\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Canceled;","export default __webpack_public_path__ + \"static/media/logo.85acf075.png\";","import React from 'react';\n// MSAL imports\nimport { AuthenticatedTemplate, UnauthenticatedTemplate } from \"@azure/msal-react\";\nimport { BrowserRouter as Router, Switch, Route, useHistory } from 'react-router-dom';\nimport { Navbar, Container, Button } from 'react-bootstrap';\nimport { MsalProvider } from \"@azure/msal-react\";\nimport { CustomNavigationClient } from \"./NavigationClient\";\nimport Main from './components/Main';\nimport SignInButton from './components/SignInButton';\nimport Footer from './components/Footer';\nimport Checkout from './components/Checkout';\nimport Cart from './components/Cart';\nimport Success from './components/Success';\nimport Canceled from './components/Canceled';\nimport logo from './img/logo.png';\nimport 'bootstrap/dist/css/bootstrap.min.css';\nimport './index.css';\n\n\nconst App = ({ pca }) => {\n\n const history = useHistory();\n const navigationClient = new CustomNavigationClient(history);\n pca.setNavigationClient(navigationClient);\n\n const handleLogin = () => {\n pca.loginRedirect();\n }\n\n return (\n \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    \n

    INSCRIPTIONS CANDIDATS LIBRES

    \n

    \n Vous pouvez vous inscrire en ligne aux épreuves auxquelles vous avez précédemment échoué pour valider votre diplôme FEDE. \n Nous vous rappelons que l’inscription en candidat libre est exclusivement réservée aux candidats ayant déjà été inscrits aux épreuves du diplôme FEDE, mais qui ne l’ont pas validé.\n

    \n
    \n \n \n \n \n
    \n \n

    \n Vous devez vous connecter avec votre compte Fedecampus\n

    \n
    \n
    \n
    \n \n
    \n
    \n );\n}\n\nconst Pages = () => {\n return (\n \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default App;","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { BrowserRouter as Router } from \"react-router-dom\";\nimport App from './App';\n\n// MSAL imports\nimport { PublicClientApplication, EventType } from \"@azure/msal-browser\";\nimport { msalConfig } from \"./authConfig\";\n\nexport const msalInstance = new PublicClientApplication(msalConfig);\n\n// Default to using the first account if no account is active on page load\nif (!msalInstance.getActiveAccount() && msalInstance.getAllAccounts().length > 0) {\n // Account selection logic is app dependent. Adjust as needed for different use cases.\n msalInstance.setActiveAccount(msalInstance.getAllAccounts()[0]);\n}\n\n// Optional - This will update account state if a user signs in from another tab or window\nmsalInstance.enableAccountStorageEvents();\n\nmsalInstance.addEventCallback((event) => {\n if (event.eventType === EventType.LOGIN_SUCCESS && event.payload.account) {\n const account = event.payload.account;\n msalInstance.setActiveAccount(account);\n }\n});\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('root')\n);"],"sourceRoot":""}