ingred-ui icon indicating copy to clipboard operation
ingred-ui copied to clipboard

`Moment.js`の利用方針の検討

Open youchann opened this issue 2 years ago • 6 comments

ref: https://github.com/voyagegroup/ingred-ui/issues/135 ref: https://github.com/voyagegroup/ingred-ui/issues/9

背景

具体的な日は不明瞭だが、2020年後半にMoment.jsがメンテナンスモードとなった。 https://momentjs.com/docs/#/-project-status/

We now generally consider Moment to be a legacy project in maintenance mode. It is not dead, but it is indeed done.

引用部周辺を見るとこのようなスタンスであることがわかる。

  • 新しい機能は追加しない
  • 既知で長年議論されている問題については対処しない
    • バンドルサイズが大きいこと
    • ロケールファイルの問題(要調査)
  • 一方でこの辺りは対処するよ
    • 重要なセキュリティ上の懸念があった場合
    • IANAタイムゾーンのデータ更新(タイムゾーンの規定みたいなものだろう)

この辺りの情報を加味しつつ、ingred-ui側はどう対応していくべきなのかを検討する。

youchann avatar Jun 23 '22 07:06 youchann

公式が利用を推奨してない以上、そろそろ乗り換えはしておきたい。 候補として現実的なのは dayjsdate-fns

maktak1995 avatar Sep 06 '22 08:09 maktak1995

またDatePickerに使用している react-dates は momentjs に依存しているので、こちらも選んだライブラリで構成されているものに置き換える必要がある

maktak1995 avatar Sep 06 '22 09:09 maktak1995

比較するとこんなかんじ

date-fns

  • ネイティブのdate型が使える
  • スポンサーが多くコミュニティが活発

dayjs

  • interfaceが以前のと同じだから載せ替えが楽で軽い
  • 破壊的変更が最小限で済む
  • date-fnsよりも若い

maktak1995 avatar Sep 06 '22 09:09 maktak1995

相談の結果、以下の観点で選定する

  1. 息の長そうなもの(また移行するのは面倒なので)
  2. 移行しやすい(インタフェースが似ている)
  3. 乗り換える予定のカレンダーライブラリとの親和性が高い

dayjsが若く、かつ移行しやすいのでこれを使うことにする

maktak1995 avatar Sep 06 '22 09:09 maktak1995

https://grzracz.github.io/react-dayjs-picker/ これがいいかなー

maktak1995 avatar Sep 06 '22 09:09 maktak1995

まともに使えそうなのが↑しか見つからないのでコレにする

maktak1995 avatar Sep 06 '22 09:09 maktak1995

@maktak1995 このIssueだけみるとどうなったのかわからないので、いい感じに意思決定を書いてCloseしたりしておいてもらえると:pray:

youchann avatar Dec 21 '22 09:12 youchann

  • 後方互換性を考慮してdayjsへの置き換えを進めることに
  • momentjsに依存してるreact-datesも合わせて置き換える
  • いい代替がない & 同時にデザインも変えることになったので、DatePickerごと作り直す
  • 今後は #975 で進めていく

maktak1995 avatar Feb 28 '23 07:02 maktak1995