diff --git a/package-lock.json b/package-lock.json index edd0367..cfca1f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,19 +1,22 @@ { - "name": "organograma", + "name": "organo", "version": "0.1.0", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "organograma", + "name": "organo", "version": "0.1.0", "dependencies": { "@testing-library/jest-dom": "^5.16.4", "@testing-library/react": "^13.2.0", "@testing-library/user-event": "^13.5.0", + "hex-to-rgba": "^2.0.1", "react": "^18.1.0", "react-dom": "^18.1.0", + "react-icons": "^4.10.1", "react-scripts": "5.0.1", + "uuid": "^9.0.0", "web-vitals": "^2.1.4" } }, @@ -8040,6 +8043,11 @@ "he": "bin/he" } }, + "node_modules/hex-to-rgba": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hex-to-rgba/-/hex-to-rgba-2.0.1.tgz", + "integrity": "sha512-5XqPJBpsEUMsseJUi2w2Hl7cHFFi3+OO10M2pzAvKB1zL6fc+koGMhmBqoDOCB4GemiRM/zvDMRIhVw6EkB8dQ==" + }, "node_modules/hoopy": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", @@ -13432,6 +13440,14 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" }, + "node_modules/react-icons": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.10.1.tgz", + "integrity": "sha512-/ngzDP/77tlCfqthiiGNZeYFACw85fUjZtLbedmJ5DTlNDIwETxhwBzdOJ21zj4iJdvc0J3y7yOsX3PpxAJzrw==", + "peerDependencies": { + "react": "*" + } + }, "node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", @@ -14263,6 +14279,14 @@ "websocket-driver": "^0.7.4" } }, + "node_modules/sockjs/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -15300,9 +15324,9 @@ } }, "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", "bin": { "uuid": "dist/bin/uuid" } @@ -21963,6 +21987,11 @@ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" }, + "hex-to-rgba": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hex-to-rgba/-/hex-to-rgba-2.0.1.tgz", + "integrity": "sha512-5XqPJBpsEUMsseJUi2w2Hl7cHFFi3+OO10M2pzAvKB1zL6fc+koGMhmBqoDOCB4GemiRM/zvDMRIhVw6EkB8dQ==" + }, "hoopy": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", @@ -25721,6 +25750,12 @@ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" }, + "react-icons": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.10.1.tgz", + "integrity": "sha512-/ngzDP/77tlCfqthiiGNZeYFACw85fUjZtLbedmJ5DTlNDIwETxhwBzdOJ21zj4iJdvc0J3y7yOsX3PpxAJzrw==", + "requires": {} + }, "react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", @@ -26334,6 +26369,13 @@ "faye-websocket": "^0.11.3", "uuid": "^8.3.2", "websocket-driver": "^0.7.4" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + } } }, "source-list-map": { @@ -27114,9 +27156,9 @@ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" }, "v8-compile-cache": { "version": "2.3.0", diff --git a/package.json b/package.json index 61e46f8..7b490c0 100644 --- a/package.json +++ b/package.json @@ -6,9 +6,12 @@ "@testing-library/jest-dom": "^5.16.4", "@testing-library/react": "^13.2.0", "@testing-library/user-event": "^13.5.0", + "hex-to-rgba": "^2.0.1", "react": "^18.1.0", "react-dom": "^18.1.0", + "react-icons": "^4.10.1", "react-scripts": "5.0.1", + "uuid": "^9.0.0", "web-vitals": "^2.1.4" }, "scripts": { diff --git a/src/App.js b/src/App.js index d914398..ccc063d 100644 --- a/src/App.js +++ b/src/App.js @@ -3,187 +3,243 @@ import Banner from "./componentes/Banner"; import Formulario from "./componentes/Formulario"; import Rodape from "./componentes/Rodape"; import Time from "./componentes/Time"; +import { v4 as uuidv4 } from 'uuid'; function App() { - const times = [ + const [times, setTimes] = useState( [ { + id: uuidv4(), + favorito: false, nome: 'Programação', - corPrimaria: '#D9F7E9', - corSecundaria: '#57C278' + cor: '#57C278' }, { + id: uuidv4(), + favorito: false, nome: 'Front-End', - corPrimaria: '#E8F8FF', - corSecundaria: '#82CFFA' + cor: '#82CFFA' }, { + id: uuidv4(), + favorito: false, nome: 'Data Science', - corPrimaria: '#F0F8E2', - corSecundaria: '#A6D157' + cor: '#A6D157' }, { + id: uuidv4(), + favorito: false, nome: 'Devops', - corPrimaria: '#FDE7E8', - corSecundaria: '#E06B69' + cor: '#E06B69' }, { + id: uuidv4(), + favorito: false, nome: 'UX e Design', - corPrimaria: '#FAE9F5', - corSecundaria: '#DB6EBF' + cor: '#DB6EBF' }, { + id: uuidv4(), + favorito: false, nome: 'Mobile', - corPrimaria: '#FFF5D9', - corSecundaria: '#FFBA05' + cor: '#FFBA05' }, { + id: uuidv4(), + favorito: false, nome: 'Inovação e Gestão', - corPrimaria: '#FFEEDF', - corSecundaria: '#FF8A29' + cor: '#FF8A29' }, - ] + ]) const inicial = [ { + id: uuidv4(), + favorito: false, nome: 'JULIANA AMOASEI', cargo: 'Desenvolvedora de software e instrutora', imagem: 'https://www.alura.com.br/assets/img/lideres/juliana-amoasei.1647533644.jpeg', time: times[0].nome }, { + id: uuidv4(), + favorito: false, nome: 'DANIEL ARTINE', cargo: 'Engenheiro de Software na Stone Age', imagem: 'https://www.alura.com.br/assets/img/lideres/daniel-artine.1647533644.jpeg', time: times[0].nome }, { + id: uuidv4(), + favorito: false, nome: 'GUILHERME LIMA', cargo: 'Desenvolvedor Python e JavaScript na Alura', imagem: ' https://www.alura.com.br/assets/img/lideres/guilherme-lima.1647533644.jpeg', time: times[0].nome }, { + id: uuidv4(), + favorito: false, nome: 'PAULO SILVEIRA', cargo: 'Hipster e CEO da Alura', imagem: 'https://www.alura.com.br/assets/img/lideres/paulo-silveira.1647533644.jpeg', time: times[0].nome }, { + id: uuidv4(), + favorito: false, nome: 'JULIANA AMOASEI', cargo: 'Desenvolvedora de software e instrutora', imagem: 'https://www.alura.com.br/assets/img/lideres/juliana-amoasei.1647533644.jpeg', time: times[1].nome }, { + id: uuidv4(), + favorito: false, nome: 'DANIEL ARTINE', cargo: 'Engenheiro de Software na Stone Age', imagem: 'https://www.alura.com.br/assets/img/lideres/daniel-artine.1647533644.jpeg', time: times[1].nome }, { + id: uuidv4(), + favorito: false, nome: 'GUILHERME LIMA', cargo: 'Desenvolvedor Python e JavaScript na Alura', imagem: ' https://www.alura.com.br/assets/img/lideres/guilherme-lima.1647533644.jpeg', time: times[1].nome }, { + id: uuidv4(), + favorito: false, nome: 'PAULO SILVEIRA', cargo: 'Hipster e CEO da Alura', imagem: 'https://www.alura.com.br/assets/img/lideres/paulo-silveira.1647533644.jpeg', time: times[1].nome }, { + id: uuidv4(), + favorito: false, nome: 'JULIANA AMOASEI', cargo: 'Desenvolvedora de software e instrutora', imagem: 'https://www.alura.com.br/assets/img/lideres/juliana-amoasei.1647533644.jpeg', time: times[2].nome }, { + id: uuidv4(), + favorito: false, nome: 'DANIEL ARTINE', cargo: 'Engenheiro de Software na Stone Age', imagem: 'https://www.alura.com.br/assets/img/lideres/daniel-artine.1647533644.jpeg', time: times[2].nome }, { + id: uuidv4(), + favorito: false, nome: 'GUILHERME LIMA', cargo: 'Desenvolvedor Python e JavaScript na Alura', imagem: ' https://www.alura.com.br/assets/img/lideres/guilherme-lima.1647533644.jpeg', time: times[2].nome }, { + id: uuidv4(), + favorito: false, nome: 'PAULO SILVEIRA', cargo: 'Hipster e CEO da Alura', imagem: 'https://www.alura.com.br/assets/img/lideres/paulo-silveira.1647533644.jpeg', time: times[2].nome }, { + id: uuidv4(), + favorito: false, nome: 'JULIANA AMOASEI', cargo: 'Desenvolvedora de software e instrutora', imagem: 'https://www.alura.com.br/assets/img/lideres/juliana-amoasei.1647533644.jpeg', time: times[3].nome }, { + id: uuidv4(), + favorito: false, nome: 'DANIEL ARTINE', cargo: 'Engenheiro de Software na Stone Age', imagem: 'https://www.alura.com.br/assets/img/lideres/daniel-artine.1647533644.jpeg', time: times[3].nome }, { + id: uuidv4(), + favorito: false, nome: 'GUILHERME LIMA', cargo: 'Desenvolvedor Python e JavaScript na Alura', imagem: ' https://www.alura.com.br/assets/img/lideres/guilherme-lima.1647533644.jpeg', time: times[3].nome }, { + id: uuidv4(), + favorito: false, nome: 'PAULO SILVEIRA', cargo: 'Hipster e CEO da Alura', imagem: 'https://www.alura.com.br/assets/img/lideres/paulo-silveira.1647533644.jpeg', time: times[3].nome }, { + id: uuidv4(), + favorito: false, nome: 'JULIANA AMOASEI', cargo: 'Desenvolvedora de software e instrutora', imagem: 'https://www.alura.com.br/assets/img/lideres/juliana-amoasei.1647533644.jpeg', time: times[4].nome }, { + id: uuidv4(), + favorito: false, nome: 'DANIEL ARTINE', cargo: 'Engenheiro de Software na Stone Age', imagem: 'https://www.alura.com.br/assets/img/lideres/daniel-artine.1647533644.jpeg', time: times[4].nome }, { + id: uuidv4(), + favorito: false, nome: 'GUILHERME LIMA', cargo: 'Desenvolvedor Python e JavaScript na Alura', imagem: ' https://www.alura.com.br/assets/img/lideres/guilherme-lima.1647533644.jpeg', time: times[4].nome }, { + id: uuidv4(), + favorito: false, nome: 'PAULO SILVEIRA', cargo: 'Hipster e CEO da Alura', imagem: 'https://www.alura.com.br/assets/img/lideres/paulo-silveira.1647533644.jpeg', time: times[4].nome }, { + id: uuidv4(), + favorito: false, nome: 'JULIANA AMOASEI', cargo: 'Desenvolvedora de software e instrutora', imagem: 'https://www.alura.com.br/assets/img/lideres/juliana-amoasei.1647533644.jpeg', time: times[5].nome }, { + id: uuidv4(), + favorito: false, nome: 'DANIEL ARTINE', cargo: 'Engenheiro de Software na Stone Age', imagem: 'https://www.alura.com.br/assets/img/lideres/daniel-artine.1647533644.jpeg', time: times[5].nome }, { + id: uuidv4(), + favorito: false, nome: 'GUILHERME LIMA', cargo: 'Desenvolvedor Python e JavaScript na Alura', imagem: ' https://www.alura.com.br/assets/img/lideres/guilherme-lima.1647533644.jpeg', time: times[5].nome }, { + id: uuidv4(), + favorito: false, nome: 'PAULO SILVEIRA', cargo: 'Hipster e CEO da Alura', imagem: 'https://www.alura.com.br/assets/img/lideres/paulo-silveira.1647533644.jpeg', @@ -193,14 +249,50 @@ function App() { const [colaboradores, setColaboradores] = useState(inicial) + function deletarColaborador(id) { + setColaboradores(colaboradores.filter(colaborador => colaborador.id !== id)); + } + + function mudarCorDoTime(cor, id) { + setTimes(times.map(time => { + if (time.id === id){ + time.cor = cor; + } + return time + })); + } + + function cadastrarTime(novoTime) { + setTimes([...times, { ...novoTime, id: uuidv4() } ]) + } + function resolverFavorito(id) { + setColaboradores(colaboradores.map(colaborador => { + if(colaborador.id === id) colaborador.favorito = !colaborador.favorito; + return colaborador + })) + } + return (