Giter VIP home page Giter VIP logo

task-chuter's Introduction

task-chuter's People

Contributors

sin9270 avatar dragogonone avatar 5x2is avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

task-chuter's Issues

Active Tasksのロード時にログにwarningが出る

Active Tasksのロード時、より正確にはActiveTaskコンポーネントのmount時に、ログに次のようなwarningが出るので解消する。
Found elements with non-unique id #standard-basic:

タスク名のTextFieldにユニークなidを割り当てていないことが原因だと思われる。

タスクの検索中にタスクの並べ替えができない

タスクの検索中にタスクを並べ替えようとしても、順番が変わらない。そもそも検索中に並べ替えても非表示のタスクとの並び順の整合性がとれないので、検索中はタスクのドラッグ自体をできなくし、並べ替え機能を無効化する。

'use strict'を削除する

webpackがstrict modeだと(デフォルトでstrict modeになっている)、トランスパイル時にES6で書かれたファイルに自動で'use strict'を付けてくれるようなので、自分で書く必要はない。

.eslintrc.jsonを作成する

現在はeslintの対象外ファイルを.gitignoreと共有しているが、gitの管理対象外ファイルとは異なるケースがあるので、独自に.eslintrc.jsonを作成する。

milliSecToHhmmssms()を共通化する

milliSecToHhmmssms()がActiveTaskとCompletedTaskにそれぞれ実装されているので、共通化する。
新しくclient/src/utils/taskUtil.js を作成し、そこにmilliSecToHhmmssms()を配置する。

タイトルを編集してリロードすると、変更が保存されていない

タイトルを編集するとstateが変更されるが、タイマーをstartする等をしないとindexedDBには保存されないことが原因。メモも同様。
タイマーの時刻の更新処理の際にはindexedDBに保存したくないので、時刻とその他の項目でstate更新のactionを分け、後者のactionではstateをindexedDBに保存するようにする。

HTML要素のid属性をユニークにする

HTMLの文法では、id属性が重複することは許されていない。
standard-basic standard-search という id が重複しているので、これらが重複しないよう修正する。

対象ファイル
client/src/containers/organisms/ActiveTask.js
client/src/containers/pages/ActiveTaskList.js

TypeScriptを導入する

次の手順で導入する。

  1. TypeScript関連のmoduleをinstallし、transpileとlintができるようにする
  2. JSファイルをTypeScriptで書き直す。lintでエラーが出るので、propTypesは残したままにする
  3. prop-typesのmoduleと、propTypesの定義を削除する
  4. babel関連のmoduleを削除し、関連する設定ファイルを修正する

JSファイルがキャッシュされないようにする

bundleしたJSファイルのファイル名が同じなため、ブラウザにキャッシュされてしまい、スーパーリロードしないと変更が反映されない。ファイルを変更した場合はファイル名が変わるようにwebpackを設定し、キャッシュを防ぐ。

netlify上にデプロイした環境でリソースを直接URLで指定すると404エラーになる

例えば、 https://reverent-lumiere-e24db3.netlify.com/active-task-list にアクセスすると、activeなタスク一覧のページが表示されるはずだが、404エラーになる。netlify上にデプロイした環境で react-router が動作しないことが原因?

次の記事を参考に、 public/_redirects を作成する。
https://medium.com/@rexben/how-to-fix-page-not-found-on-netlify-with-react-router-dom-e0520692be5

webpack-mergeをdevDependenciesに移動する

webpack-mergeは開発時しか使用しないので、devDependenciesに移動する。おそらくno-unpublished-importのエラーが発生するので、.eslintrc.jsonを修正する。

class-based component を functional component に作り替える

class-based component のままだとテストが書きづらいので functional component に書き直す。今ある component は全て functional に置き換えられるはず。ライフサイクルメソッドの処理は hooks API を使って書き換える。

PropTypesのwarningを解消する

Active Tasksのページを開くと、PropTypesのwarningが出てしまう。titleContains、noteContains、lastLogの三つのpropsが必須になっているのにコンポーネントに渡っていないことが原因。これらのpropsは必須ではないので、propTypesの定義からisRequiredを削除する。

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.