Skip to content

Commit c663552

Browse files
merge pull request #2 from ignite-projects/develop
develop
2 parents fe13cb1 + de91f2c commit c663552

File tree

8 files changed

+2760
-113
lines changed

8 files changed

+2760
-113
lines changed
19.9 KB
Loading
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: releases
2+
3+
on:
4+
push:
5+
branches: [main]
6+
7+
jobs:
8+
build:
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- uses: actions/checkout@v2
13+
- uses: actions/setup-node@v1
14+
with:
15+
node-version: "^16.10.0"
16+
17+
- name: Install dependencies
18+
run: yarn install
19+
20+
- name: Run release
21+
run: yarn release
22+
env:
23+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.husky/commit-msg

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/usr/bin/env sh
2+
. "$(dirname -- "$0")/_/husky.sh"
3+
4+
yarn commitlint --edit $1

.releaserc.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"plugins": [
3+
"@semantic-release/commit-analyzer",
4+
"@semantic-release/release-notes-generator",
5+
"@semantic-release/github",
6+
"@semantic-release/changelog",
7+
[
8+
"@semantic-release/npm",
9+
{
10+
"npmPublish": false
11+
}
12+
],
13+
{
14+
"path": "@semantic-release/git",
15+
"assets": ["package.json", "package-lock.json", "CHANGELOG.md"],
16+
"message": "chore(release): ${nextRelease.version}\n\n${nextRelease.notes}"
17+
}
18+
],
19+
"branches": ["main", "next"]
20+
}

README.md

Lines changed: 47 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,84 +1,67 @@
1-
# Desafio 01 - Conceitos do React
1+
<p align="center">Ignite Challenge</p>
2+
<h1 align="center">
3+
to.do
4+
</h1>
25

3-
## 💻 Sobre o desafio
6+
<div aling="center" id="top">
47

5-
Nesse desafio, você deverá criar uma aplicação para treinar o que aprendeu até agora no ReactJS
6-
Essa será uma aplicação onde o seu principal objetivo é uma pequena aplicação de atividades a fazer, para treinar um pouco mais sobre manipulação do estado no React.
8+
<p align="center">
9+
<img alt="Version" src="https://img.shields.io/github/v/tag/ignite-projects/todo-ignite">
10+
<img alt="Stars" src="https://img.shields.io/github/stars/ignite-projects/todo-ignite">
11+
<img alt="Issues" src="https://img.shields.io/github/issues/ignite-projects/todo-ignite?logoColor=1DA1F2">
12+
</p>
713

8-
- Adicionar uma nova tarefa
9-
- Remover uma tarefa
10-
- Marcar e desmarcar uma tarefa como concluída
14+
<p align="center">
15+
<a href="#about">About</a> &#xa0; | &#xa0;
16+
<a href="#technologies">Technologies</a> &#xa0; | &#xa0;
17+
<a href="#requirements">Requirements</a> &#xa0; | &#xa0;
18+
<a href="#installation">Installation</a> &#xa0;
19+
</p>
20+
</div>
1121

12-
A seguir veremos com mais detalhes o que e como precisa ser feito 🚀
22+
<p align="center">
23+
<img alt="project cover" src=".github/images/screen-home-todo-ignite.png">
24+
</p>
1325

14-
## Template da aplicação
26+
## About
1527

16-
Para realizar esse desafio, criamos para você esse modelo que você deve utilizar como um template do GitHub.
28+
Small to-do web app developed using react.js.
1729

18-
O template está disponível na seguinte URL:
19-
https://github.com/rocketseat-education/ignite-template-reactjs-conceitos-do-react
30+
## Technologies
2031

21-
Dica: Caso não saiba utilizar repositórios do GitHub como template, temos um guia em [nosso FAQ](https://www.notion.so/FAQ-Desafios-ddd8fcdf2339436a816a0d9e45767664).
32+
- React.Js
33+
- TypeScript
34+
- Scss
2235

23-
## O que devo editar na aplicação?
36+
## Requirements
2437

25-
Com o template já clonado, as depêndencias instaladas, você deve completar onde não possui código com o código para atingir os objetivos de cada teste. Nesse desafio, você deve editar apenas o seguinte arquivo para completar as funcionalidades da aplicação:
38+
- [Git](https://git-scm.com/)
39+
- [Node.js](https://nodejs.org/en/)
40+
- [Yarn](https://yarnpkg.com/)
2641

27-
- [src/components/TaskList.tsx;](https://github.com/rocketseat-education/ignite-template-reactjs-conceitos-do-react/blob/main/src/components/TaskList.tsx)
42+
## Installation
2843

29-
## components/TaskList.tsx
44+
To make it run on your machine, follow the steps below
3045

31-
Esse é o componente responsável por todas as funcionalidades da aplicação, é um componente simples, mas onde botaremos em prática várias partes da manipulação do estado.
46+
```bash
47+
# Clone the repository in some folder on your machine
48+
$ git clone git@github.com:ignite-projects/todo-ignite.git
3249

33-
Você deve criar as funcionalidades para as três funções presentes nesse arquivo, que são:
50+
# Enter the repository
51+
$ cd todo-ignite
3452

35-
- **handleCreateNewTask:** Deve ser possível adicionar uma nova task no estado de `tasks`, com os campos `id` que deve ser gerado de forma aleatória, `title` que deve ser um texto e `isComplete` que deve iniciar como false.
36-
- **handleToggleTaskCompletion:** Deve alterar o status de `isComplete` para uma task com um ID específico que é recebido por parâmetro.
37-
- **handleToggleTaskCompletion:** Deve alterar o status de isComplete para uma task com um ID específico que é recebido por parâmetro.
53+
# Install the dependencies by typing in the terminal
54+
$ yarn install
3855

39-
## Especificação dos testes
40-
41-
Em cada teste, tem uma breve descrição no que sua aplicação deve cumprir para que o teste passe.
42-
43-
> 💡Caso você tenha dúvidas quanto ao que são os testes, e como interpretá-los, dê uma olhada em [nosso FAQ](https://www.notion.so/FAQ-Desafios-ddd8fcdf2339436a816a0d9e45767664)
44-
45-
Para esse desafio, temos os seguintes testes:
46-
47-
## Teste TaskList.spec.tsx
48-
49-
- should be able to add a task
50-
Para que esse teste passe, você deve permitir que task seja criada e com isso, exibida em tela. As taks criadas devem conter os atributos seguindo o padrão da interface, que é:
51-
52-
```ts
53-
interface Task {
54-
id: number;
55-
title: string;
56-
isComplete: boolean;
57-
}
56+
# Run the application
57+
$ yarn dev
5858
```
5959

60-
- should not be able to add a task with an empty title
61-
62-
Para que esse teste passe, antes de criar uma nova task, você deve validar se algo foi digitado no input e não permitir a criação da task caso o valor seja vazio, caso o valor digitado seja vazio, você deve impedir a criação da task.
63-
64-
- should be able to remove a task
65-
66-
Para que esse teste passe, antes de criar uma nova task, você deve validar se algo foi digitado no input e não permitir a criação da task caso o valor seja vazio, caso o valor digitado seja vazio, você deve impedir a criação da task.
67-
68-
- should be able to remove a task
69-
70-
Para que esse teste passe, você deve permitir que ao clicar no botão com ícone de uma lixeira, a task relacionada a esse botão seja removida do estado da aplicação, consequentemente sendo removida da tela.
71-
72-
- should be able to check a task
73-
74-
Para que esse teste passe, você deve permitir que ao clicar no checkbox ao lado da task, ela seja marcada como concluída ou não concluída de acordo com seu estado atual, alterando seu valor de `isComplete` de `false` para `true` ou ao contrário, de `true` para `false`.
75-
76-
## Como deve ficar a aplicação ao final?
77-
78-
Está com dúvidas (ou curioso 👀) para ver como deve ficar a aplicação ao final do desafio? Deixamos abaixo um vídeo mostrando as principais funcionalidades que você deve implementar para te ajudar (ou matar sua curiosidade 👀).
79-
80-
## 📅 Entrega
60+
<div align="right">
61+
Connect with me
8162

82-
Esse desafio deve ser entregue a partir da plataforma da Rocketseat. Envie o link do repositório que você fez suas alterações. Após concluir o desafio, além de ter mandado o código para o GitHub, fazer um post no Linkedin é uma boa forma de demonstrar seus conhecimentos e esforços para evoluir na sua carreira para oportunidades futuras.
63+
[![Linkedin Badge](https://img.shields.io/badge/-Robson%20Natanael-blue?style=flat-square&logo=Linkedin&logoColor=white&link=https://www.linkedin.com/in/robsonnatanael)](https://www.linkedin.com/in/robsonnatanael)
64+
[![Twitter Badge](https://img.shields.io/badge/-@robsonnatanael-1ca0f1?style=flat-square&labelColor=1ca0f1&logo=twitter&logoColor=white&link=https://twitter.com/robsonnatanael)](https://twitter.com/robsonnatanael)
65+
[![Rocketseat](https://img.shields.io/badge/-Rocketseat%20Profile-8358e1?style=flat-square&labelColor=8358e1&logoColor=white&link=https://app.rocketseat.com.br/me/robsonnatanael)](https://app.rocketseat.com.br/me/robsonnatanael)
8366

84-
Link oficial do [desafio](https://www.notion.so/Desafio-01-Conceitos-do-React-51e4099a6e2f4d4bae94f9fe75bb769d).
67+
</div>

commitlint.config.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module.exports = {
2+
extends: ["@commitlint/config-conventional"],
3+
};

package.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
"scripts": {
77
"dev": "webpack serve",
88
"build": "cross-env NODE_ENV=production webpack",
9-
"test": "jest --watchAll"
9+
"test": "jest --watchAll",
10+
"postinstall": "husky install",
11+
"release": "semantic-release"
1012
},
1113
"dependencies": {
1214
"react": "^17.0.1",
@@ -19,7 +21,11 @@
1921
"@babel/preset-env": "^7.12.11",
2022
"@babel/preset-react": "^7.12.10",
2123
"@babel/preset-typescript": "^7.12.7",
24+
"@commitlint/cli": "^17.0.3",
25+
"@commitlint/config-conventional": "^17.0.3",
2226
"@pmmmwh/react-refresh-webpack-plugin": "^0.4.3",
27+
"@semantic-release/changelog": "^6.0.1",
28+
"@semantic-release/git": "^10.0.1",
2329
"@testing-library/jest-dom": "^5.11.9",
2430
"@testing-library/react": "^11.2.5",
2531
"@types/react-dom": "^17.0.0",
@@ -28,12 +34,14 @@
2834
"cross-env": "^7.0.3",
2935
"css-loader": "^5.0.1",
3036
"html-webpack-plugin": "^4.5.1",
37+
"husky": "^8.0.1",
3138
"identity-obj-proxy": "^3.0.0",
3239
"jest": "^26.6.3",
3340
"node-sass": "^6.0.1",
3441
"react-app-polyfill": "^2.0.0",
3542
"react-refresh": "^0.9.0",
3643
"sass-loader": "^10.1.1",
44+
"semantic-release": "^19.0.3",
3745
"style-loader": "^2.0.0",
3846
"ts-node": "^9.1.1",
3947
"typescript": "^4.1.3",

0 commit comments

Comments
 (0)