mirror of
				https://github.com/theoludwig/theoludwig.git
				synced 2025-10-14 20:23:25 +02:00 
			
		
		
		
	fix(resume): wrong dates
This commit is contained in:
		| @@ -1,5 +1,3 @@ | ||||
| version: '3.0' | ||||
|  | ||||
| services: | ||||
|   workspace: | ||||
|     build: | ||||
|   | ||||
| @@ -81,7 +81,7 @@ npm run dev | ||||
|  | ||||
| ```sh | ||||
| # Setup and run all the services for you | ||||
| docker-compose up --build | ||||
| docker compose up --build | ||||
| ``` | ||||
|  | ||||
| ### Services started | ||||
|   | ||||
| @@ -1,15 +1,15 @@ | ||||
| FROM node:16.14.2 AS dependencies | ||||
| FROM node:16.15.0 AS dependencies | ||||
| WORKDIR /usr/src/app | ||||
| COPY ./package*.json ./ | ||||
| RUN npm install | ||||
|  | ||||
| FROM node:16.14.2 AS builder | ||||
| FROM node:16.15.0 AS builder | ||||
| WORKDIR /usr/src/app | ||||
| COPY ./ ./ | ||||
| COPY --from=dependencies /usr/src/app/node_modules ./node_modules | ||||
| RUN npm run build | ||||
|  | ||||
| FROM node:16.14.2 AS runner | ||||
| FROM node:16.15.0 AS runner | ||||
| WORKDIR /usr/src/app | ||||
| ENV NODE_ENV=production | ||||
| COPY --from=builder /usr/src/app/next.config.js ./next.config.js | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| import { useCallback, useEffect, useState } from 'react' | ||||
| import { useCallback, useEffect, useState, useRef } from 'react' | ||||
| import useTranslation from 'next-translate/useTranslation' | ||||
| import setLanguage from 'next-translate/setLanguage' | ||||
| import classNames from 'classnames' | ||||
| @@ -11,31 +11,37 @@ import { LanguageFlag } from './LanguageFlag' | ||||
| export const Language: React.FC = () => { | ||||
|   const { lang: currentLanguage } = useTranslation() | ||||
|   const [hiddenMenu, setHiddenMenu] = useState(true) | ||||
|   const languageClickRef = useRef<HTMLDivElement | null>(null) | ||||
|  | ||||
|   const handleHiddenMenu = useCallback(() => { | ||||
|     setHiddenMenu(!hiddenMenu) | ||||
|   }, [hiddenMenu]) | ||||
|     setHiddenMenu((oldHiddenMenu) => !oldHiddenMenu) | ||||
|   }, []) | ||||
|  | ||||
|   useEffect(() => { | ||||
|     if (!hiddenMenu) { | ||||
|       window.document.addEventListener('click', handleHiddenMenu) | ||||
|     } else { | ||||
|       window.document.removeEventListener('click', handleHiddenMenu) | ||||
|     const handleClickEvent = (event: MouseEvent): void => { | ||||
|       if (languageClickRef.current == null || event.target == null) { | ||||
|         return | ||||
|       } | ||||
|       if (!languageClickRef.current.contains(event.target as Node)) { | ||||
|         setHiddenMenu(true) | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     window.document.addEventListener('click', handleClickEvent) | ||||
|  | ||||
|     return () => { | ||||
|       window.document.removeEventListener('click', handleHiddenMenu) | ||||
|       return window.removeEventListener('click', handleClickEvent) | ||||
|     } | ||||
|   }, [hiddenMenu, handleHiddenMenu]) | ||||
|   }, []) | ||||
|  | ||||
|   const handleLanguage = async (language: string): Promise<void> => { | ||||
|     await setLanguage(language) | ||||
|     handleHiddenMenu() | ||||
|   } | ||||
|  | ||||
|   return ( | ||||
|     <div className='flex cursor-pointer flex-col items-center justify-center'> | ||||
|       <div | ||||
|         ref={languageClickRef} | ||||
|         data-cy='language-click' | ||||
|         className='mr-5 flex items-center' | ||||
|         onClick={handleHiddenMenu} | ||||
|   | ||||
| @@ -3,7 +3,9 @@ interface SocialMediaItemProps { | ||||
|   ariaLabel: string | ||||
| } | ||||
|  | ||||
| export const SocialMediaItem: React.FC<SocialMediaItemProps> = (props) => { | ||||
| export const SocialMediaItem: React.FC< | ||||
|   React.PropsWithChildren<SocialMediaItemProps> | ||||
| > = (props) => { | ||||
|   const { link, ariaLabel, children } = props | ||||
|  | ||||
|   return ( | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| import { useEffect, useRef } from 'react' | ||||
|  | ||||
| export const RevealFade: React.FC = (props) => { | ||||
| export const RevealFade: React.FC<React.PropsWithChildren<{}>> = (props) => { | ||||
|   const { children } = props | ||||
|  | ||||
|   const htmlElement = useRef<HTMLDivElement>(null) | ||||
|   | ||||
| @@ -1,4 +1,3 @@ | ||||
| version: '3.0' | ||||
| services: | ||||
|   divlo.fr: | ||||
|     container_name: ${COMPOSE_PROJECT_NAME} | ||||
|   | ||||
							
								
								
									
										1977
									
								
								jsonresume-theme-custom/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1977
									
								
								jsonresume-theme-custom/package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -5,15 +5,15 @@ | ||||
|   "type": "module", | ||||
|   "scripts": {}, | ||||
|   "dependencies": { | ||||
|     "date-and-time": "2.3.0", | ||||
|     "ejs": "3.1.6", | ||||
|     "date-and-time": "2.3.1", | ||||
|     "ejs": "3.1.7", | ||||
|     "modern-normalize": "1.1.0" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@parcel/config-default": "2.4.1", | ||||
|     "@parcel/core": "2.4.1", | ||||
|     "@parcel/optimizer-data-url": "2.4.1", | ||||
|     "@parcel/transformer-inline-string": "2.4.1", | ||||
|     "parcel": "2.4.1" | ||||
|     "@parcel/config-default": "2.5.0", | ||||
|     "@parcel/core": "2.5.0", | ||||
|     "@parcel/optimizer-data-url": "2.5.0", | ||||
|     "@parcel/transformer-inline-string": "2.5.0", | ||||
|     "parcel": "2.5.0" | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -167,7 +167,8 @@ | ||||
|                           </p> | ||||
|                           <p class="text-muted clear-margin"> | ||||
|                             <small> | ||||
|                               <%= degree.startDate %> - <%= degree.endDate %> | ||||
|                               <%= degree.startDate %> <%= degree.endDate != null | ||||
|                               ? " - " + degree.endDate : "" %> | ||||
|                             </small> | ||||
|                           </p> | ||||
|                         </div> | ||||
|   | ||||
							
								
								
									
										10742
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										10742
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										52
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										52
									
								
								package.json
									
									
									
									
									
								
							| @@ -32,52 +32,52 @@ | ||||
|     "postinstall": "husky install" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "@fontsource/montserrat": "4.5.7", | ||||
|     "@fontsource/montserrat": "4.5.10", | ||||
|     "@fortawesome/fontawesome-svg-core": "6.1.1", | ||||
|     "@fortawesome/free-brands-svg-icons": "6.1.1", | ||||
|     "@fortawesome/free-solid-svg-icons": "6.1.1", | ||||
|     "@fortawesome/react-fontawesome": "0.1.18", | ||||
|     "classnames": "2.3.1", | ||||
|     "date-and-time": "2.3.0", | ||||
|     "date-and-time": "2.3.1", | ||||
|     "gray-matter": "4.0.3", | ||||
|     "html-react-parser": "1.4.10", | ||||
|     "next": "12.1.4", | ||||
|     "next-mdx-remote": "4.0.2", | ||||
|     "next-pwa": "5.4.7", | ||||
|     "html-react-parser": "1.4.12", | ||||
|     "next": "12.1.6", | ||||
|     "next-mdx-remote": "4.0.3", | ||||
|     "next-pwa": "5.5.2", | ||||
|     "next-themes": "0.1.1", | ||||
|     "next-translate": "1.4.0", | ||||
|     "react": "17.0.2", | ||||
|     "react-dom": "17.0.2", | ||||
|     "react": "18.1.0", | ||||
|     "react-dom": "18.1.0", | ||||
|     "read-pkg": "7.1.0", | ||||
|     "rehype-raw": "6.1.1", | ||||
|     "rehype-slug": "5.0.1", | ||||
|     "remark-gfm": "3.0.1", | ||||
|     "sharp": "0.30.3", | ||||
|     "sharp": "0.30.4", | ||||
|     "shiki": "0.10.1", | ||||
|     "unified": "10.1.2", | ||||
|     "unist-util-visit": "4.1.0", | ||||
|     "universal-cookie": "4.0.4" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@commitlint/cli": "16.2.3", | ||||
|     "@commitlint/config-conventional": "16.2.1", | ||||
|     "@commitlint/cli": "16.2.4", | ||||
|     "@commitlint/config-conventional": "16.2.4", | ||||
|     "@lhci/cli": "0.9.0", | ||||
|     "@saithodev/semantic-release-backmerge": "2.1.2", | ||||
|     "@semantic-release/git": "10.0.1", | ||||
|     "@tailwindcss/typography": "0.5.2", | ||||
|     "@testing-library/jest-dom": "5.16.4", | ||||
|     "@testing-library/react": "12.1.4", | ||||
|     "@types/jest": "27.4.1", | ||||
|     "@types/node": "17.0.23", | ||||
|     "@types/react": "17.0.43", | ||||
|     "@testing-library/react": "13.1.1", | ||||
|     "@types/jest": "27.5.0", | ||||
|     "@types/node": "17.0.31", | ||||
|     "@types/react": "18.0.8", | ||||
|     "@types/unist": "2.0.6", | ||||
|     "@typescript-eslint/eslint-plugin": "5.18.0", | ||||
|     "autoprefixer": "10.4.4", | ||||
|     "cypress": "9.5.3", | ||||
|     "@typescript-eslint/eslint-plugin": "5.22.0", | ||||
|     "autoprefixer": "10.4.7", | ||||
|     "cypress": "9.6.0", | ||||
|     "editorconfig-checker": "4.0.2", | ||||
|     "eslint": "8.13.0", | ||||
|     "eslint": "8.14.0", | ||||
|     "eslint-config-conventions": "2.0.0", | ||||
|     "eslint-config-next": "12.1.4", | ||||
|     "eslint-config-next": "12.1.6", | ||||
|     "eslint-config-prettier": "8.5.0", | ||||
|     "eslint-plugin-import": "2.26.0", | ||||
|     "eslint-plugin-prettier": "4.0.0", | ||||
| @@ -87,16 +87,16 @@ | ||||
|     "husky": "7.0.4", | ||||
|     "jest": "27.5.1", | ||||
|     "jsonresume-theme-custom": "file:./jsonresume-theme-custom", | ||||
|     "lint-staged": "12.3.7", | ||||
|     "lint-staged": "12.4.1", | ||||
|     "markdownlint-cli": "0.31.1", | ||||
|     "next-secure-headers": "2.2.0", | ||||
|     "postcss": "8.4.12", | ||||
|     "postcss": "8.4.13", | ||||
|     "prettier": "2.6.2", | ||||
|     "prettier-plugin-tailwindcss": "0.1.8", | ||||
|     "prettier-plugin-tailwindcss": "0.1.10", | ||||
|     "semantic-release": "19.0.2", | ||||
|     "start-server-and-test": "1.14.0", | ||||
|     "tailwindcss": "3.0.23", | ||||
|     "typescript": "4.6.3", | ||||
|     "vercel": "24.0.1" | ||||
|     "tailwindcss": "3.0.24", | ||||
|     "typescript": "4.6.4", | ||||
|     "vercel": "24.2.0" | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -15,7 +15,6 @@ | ||||
|   "education": [ | ||||
|     { | ||||
|       "startDate": "2022", | ||||
|       "endDate": "2024", | ||||
|       "studyType": "Diplôme du Bachelor Universitaire de Technologie (BUT) Informatique", | ||||
|       "institution": "IUT Robert Schuman à Illkirch-Graffenstaden", | ||||
|       "score": "En cours" | ||||
| @@ -41,8 +40,8 @@ | ||||
|       "website": "https://www.nuitdelinfo.com/", | ||||
|       "name": "La Nuit de l'info 2021", | ||||
|       "position": "Participation avec l'équipe <a href=\"https://www.nuitdelinfo.com/inscription/equipes/46\">Who are We</a>", | ||||
|       "startDate": "2021-07-07", | ||||
|       "endDate": "2021-07-30" | ||||
|       "startDate": "2021-12-02", | ||||
|       "endDate": "2021-12-03" | ||||
|     }, | ||||
|     { | ||||
|       "summary": "Agent administratif en vue de faire face au sucroît temporaire d'activités liés à la numérisation des plans des postes sources <br /> actuellement sous format papier calque suite à la libération des locaux des archives.", | ||||
|   | ||||
		Reference in New Issue
	
	Block a user