Giter VIP home page Giter VIP logo

todo-list's Introduction

TODOList

Uma aplicação usando React + MaterialUI + React Scheduler.

Fluxo da Aplicação

Esta aplicação foi desenvolvida tendo em mente a ideia de componentes e containers. No final da seção tem uma imagem ilustrando o fluxo da aplicação.

A aplicação é dividida nesses containers e componentes:

Containers:

  • App - Container raiz da aplicação. Este container possui um estado com as tarefas da aplicação, um estado que contém o filtro que será utilizado e um estado com o termo de busca digitado pelo usuário. Ele é responsável por exibir o container Todos enviando como props uma lista de tarefas já filtradas.

  • Header - Contém o menu superior da aplicação e é responsável por controlar o menu lateral em dispositivos móveis. Também é responsável por guardar o termo digitado na barra de pesquisa e enviá-lo para App.

  • OptionsList - Container que possui a lista de opções da aplicação. Todos os itens nessa lista exceto o último são filtros que são passados para App através da função filterTodos passada nas props. O último item é um botão para mostrar o calendário utilizando CalendarDialog. Este container é chamado em Sidebar para desktop e em Header para dispositivos móveis.

  • Todos - Container responsável por lidar com as operações CRUD da tarefa. Nele são definidos as funções para adicionar, apagar ou atualizar uma tarefa (handleAddTodoInput, deleteTodo e handleEditTodoSubmit respectivamente). Além disso, o container retorna uma lista com todas tarefas passadas pelas props.

  • AddTodo - Exibe um botão de input e um botão para selecionar uma data. Recebe handleAddTodoInput como props e o executa quando a tecla Enter é pressionada.

  • EditTodoForm - Exibe um formulário para editar as informações de uma tarefa. Recebe handleEditTodoSubmit e as informações de texto, data e anotações da tarefa como props e atualiza a tarefa com os dados no formulário após clicar no botão de salvar.

  • Todo - Responsável por exibir uma tarefa específica. Recebe nas props as informações de uma tarefa específica as funções deleteTodo e handleCheckbox, sendo essa última responsável por marcar uma tarefa como concluída. Além disso, é responsável por chamar a tela de edição de uma tarefa (EditTodo) e o modal de confirmação de exclusão da tarefa (DeleteDialog).

Componentes:

  • Calendar - Recebe como props uma lista de tarefas e as exibe em um calendário.

  • CalendarDialog - Exibe Calendar dentro de um modal.

  • DatePicker - Exibe um botão com ícone que quando clicado mostra um mini calendário para o usuário escolher uma data e a guarda. Se uma data for passada para esse componente através de props ele exibe um botão para apagar a data guardada.

  • DeleteDialog - mostra um modal de confirmação de exclusão de uma tarefa. Recebe o id da tarefa e deleteTodo através de props e exclui a tarefa caso o usuário aperte o botão de confirmação.

  • EditTodo - Um componente que estiliza e adiciona as margens para o EditTodoForm.

  • Sidebar - Barra lateral que mostra as opções de filtros e mostrar calendário no desktop. Recebe como props o OptionsList e o renderiza.

Imagem do fluxo do app:

Diagrama

todo-list's People

Contributors

rafahsena avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.