This commit is contained in:
parent
6ae1cf268d
commit
5a5fc3d89a
11
src/CV.tsx
11
src/CV.tsx
@ -7,14 +7,7 @@ import SideProjects from './Components/SideProjects';
|
|||||||
import Languages from './Components/Languages';
|
import Languages from './Components/Languages';
|
||||||
import Interests from './Components/Interests';
|
import Interests from './Components/Interests';
|
||||||
import Skills from './Components/Skills';
|
import Skills from './Components/Skills';
|
||||||
import {Tag, TagCategory} from './Model/tag';
|
import {Me} from './Model/me';
|
||||||
import {Lang} from './Model/lang';
|
|
||||||
import {EducationYear} from './Model/education';
|
|
||||||
import {SideProjectCats} from './Model/side-project';
|
|
||||||
import {JobAtCompany} from './Model/job-at-company';
|
|
||||||
import {Interest} from './Model/interests';
|
|
||||||
import {Profile} from './Model/profile';
|
|
||||||
import { Me } from './Model/me';
|
|
||||||
|
|
||||||
function CV() {
|
function CV() {
|
||||||
|
|
||||||
@ -23,7 +16,7 @@ function CV() {
|
|||||||
const [cv, setCV] = useState<Me>(new Me());
|
const [cv, setCV] = useState<Me>(new Me());
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
fetch("http://localhost:7070/api/me")
|
fetch(process.env.REACT_APP_API_BASE_URL + "/api/me")
|
||||||
.then(res => res.json())
|
.then(res => res.json())
|
||||||
.then(
|
.then(
|
||||||
(result: Me) => {
|
(result: Me) => {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import React, {ComponentProps} from 'react';
|
import React, {ComponentProps} from 'react';
|
||||||
import {AcademicCapIcon, BriefcaseIcon} from '@heroicons/react/24/outline';
|
import {AcademicCapIcon} from '@heroicons/react/24/outline';
|
||||||
import {EducationYear} from '../Model/education';
|
import {EducationYear} from '../Model/education';
|
||||||
|
|
||||||
function Education(props: ComponentProps<any>) {
|
function Education(props: ComponentProps<any>) {
|
||||||
|
@ -9,7 +9,7 @@ function Header(props: ComponentProps<any>) {
|
|||||||
return (<div
|
return (<div
|
||||||
className="card flex flex-wrap-reverse">
|
className="card flex flex-wrap-reverse">
|
||||||
<div className="basis-1/4">
|
<div className="basis-1/4">
|
||||||
<img className="w-60 rounded-full shadow-lg lg:divide-x divide-gray-600" src={profile.picture}
|
<img className="w-60 rounded-full shadow-lg lg:divide-x divide-gray-600" src={profile.picture} alt={profile.name}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="basis-2/4 prose p-3 prose-sm grow">
|
<div className="basis-2/4 prose p-3 prose-sm grow">
|
||||||
@ -31,9 +31,10 @@ function Header(props: ComponentProps<any>) {
|
|||||||
<div><UserPlusIcon className="icon"/><a className=""
|
<div><UserPlusIcon className="icon"/><a className=""
|
||||||
href={profile.linkedin}
|
href={profile.linkedin}
|
||||||
|
|
||||||
target="_blank">Mon linkedin</a></div>
|
target="_blank" rel="noreferrer">Mon linkedin</a></div>
|
||||||
<div><CodeBracketIcon className="icon"/><a className=""
|
<div><CodeBracketIcon className="icon"/><a className=""
|
||||||
href={profile.source} target="_blank">Mon
|
|
||||||
|
href={profile.source} target="_blank" rel="noreferrer">Mon
|
||||||
code</a></div>
|
code</a></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import React, {ComponentProps} from 'react';
|
import React, {ComponentProps} from 'react';
|
||||||
import {CalendarDaysIcon, FaceSmileIcon, LanguageIcon} from '@heroicons/react/24/outline';
|
import {FaceSmileIcon} from '@heroicons/react/24/outline';
|
||||||
import {Interest} from '../Model/interests';
|
import {Interest} from '../Model/interests';
|
||||||
|
|
||||||
function Interests(props: ComponentProps<any>) {
|
function Interests(props: ComponentProps<any>) {
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import React, {ComponentProps} from 'react';
|
import React, {ComponentProps} from 'react';
|
||||||
import {BriefcaseIcon} from '@heroicons/react/24/outline';
|
|
||||||
|
|
||||||
function Job(props: ComponentProps<any>) {
|
function Job(props: ComponentProps<any>) {
|
||||||
return (<div className="mb-5">
|
return (<div className="mb-5">
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import React, {ComponentProps} from 'react';
|
import React, {ComponentProps} from 'react';
|
||||||
import {CalendarDaysIcon, LanguageIcon} from '@heroicons/react/24/outline';
|
import {LanguageIcon} from '@heroicons/react/24/outline';
|
||||||
import {Lang} from '../Model/lang';
|
import {Lang} from '../Model/lang';
|
||||||
|
|
||||||
function Languages(props: ComponentProps<any>) {
|
function Languages(props: ComponentProps<any>) {
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
import React, {ComponentProps} from 'react';
|
import React, {ComponentProps} from 'react';
|
||||||
import {BeakerIcon} from '@heroicons/react/24/outline';
|
import {BeakerIcon} from '@heroicons/react/24/outline';
|
||||||
import {SideProject} from '../Model/side-project';
|
import {SideProject} from '../Model/side-project';
|
||||||
import {each, keys, map} from 'lodash';
|
|
||||||
|
|
||||||
function SideProjects(props: ComponentProps<any>) {
|
function SideProjects(props: ComponentProps<any>) {
|
||||||
return (<div className="prose">
|
return (<div className="prose">
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import React, {ComponentProps} from 'react';
|
import React, {ComponentProps} from 'react';
|
||||||
import {CalendarDaysIcon, CheckBadgeIcon, LanguageIcon} from '@heroicons/react/24/outline';
|
import {CheckBadgeIcon} from '@heroicons/react/24/outline';
|
||||||
import {getTagColor, getTagTitle, Tag, TagCategory} from '../Model/tag';
|
import {getTagColor, getTagTitle, Tag} from '../Model/tag';
|
||||||
import {forIn, groupBy, map} from 'lodash';
|
import {groupBy, map} from 'lodash';
|
||||||
|
|
||||||
function Skills(props: ComponentProps<any>) {
|
function Skills(props: ComponentProps<any>) {
|
||||||
const tagsByCat = groupBy(props.tags, 'category')
|
const tagsByCat = groupBy(props.tags, 'category')
|
||||||
|
@ -1,3 +1,17 @@
|
|||||||
|
export enum TagCategory {
|
||||||
|
FRONT = 'FRONT',
|
||||||
|
BACK = 'BACK',
|
||||||
|
MOBILE = 'MOBILE',
|
||||||
|
DB = 'DB',
|
||||||
|
OTHER = 'OTHER'
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Tag {
|
||||||
|
name: string = ""
|
||||||
|
workThing: Boolean = true
|
||||||
|
category!: TagCategory
|
||||||
|
}
|
||||||
|
|
||||||
export function getTagColor(t: Tag) {
|
export function getTagColor(t: Tag) {
|
||||||
switch (t.category) {
|
switch (t.category) {
|
||||||
case TagCategory.FRONT:
|
case TagCategory.FRONT:
|
||||||
@ -28,17 +42,3 @@ export function getTagTitle(cat: string) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
export enum TagCategory {
|
|
||||||
FRONT = 'FRONT',
|
|
||||||
BACK = 'BACK',
|
|
||||||
MOBILE = 'MOBILE',
|
|
||||||
DB = 'DB',
|
|
||||||
OTHER = 'OTHER'
|
|
||||||
}
|
|
||||||
|
|
||||||
export class Tag {
|
|
||||||
name: string = ""
|
|
||||||
workThing: Boolean = true
|
|
||||||
category!: TagCategory
|
|
||||||
}
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user