Skip to content

keiyuTAKAI/reactgrid

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

動作方法

1.clone
2.$ npm start
(動かない場合はnpm install)
表の作成のためヘッダーデータや、各設定を呼び出す側から要求する(現在はindex.tsxから呼び出し)
ヘッダーデータを適切に変更することで表の初期化が可能となる

現段階の不具合、実装できていない点

・numberCellの初期値を空白にすること 完了4/16✅
・(優先度A)dropdownCellの値をキーボード入力できるようにする 完了4/19✅
・(優先度A)dropdownCellの値を設定するメニューが開けるようにする 完了4/18✅
・(優先度B)dropdownCellの初期値を空白にすること 完了4/19✅
・(優先度A)dropdownCellのコピーペースト、フィルハンドルによるコピーを可能にすること 完了4/22✅
・(優先度B)TimeCellの実装 完了4/22✅
・(優先度D)headerCellクリック時、表全体をクリックされたコラムを軸にソートすること
・(優先度C)制限メッセージの実装 完了4/24✅
・(優先度B)dropdownCell、該当するセルとメニュー以外をクリックした場合をメニュー削除すること 完了4/22✅
・(優先度B)dropdownCell、セルから文字がはみ出た場合切り捨て表示すること完了4/24✅

コメント

4/10 reactGridを用いた基本的な表の実現と行追加・削除追加
4/11 コラムヘッダーの属性モック作成。dropdownセルテンプレートの基本機能であるオプションの表示がされない
4/12 forkしたライブラリをインストールした時に想定通りの動作が確認できず、パッケージ依存関係に問題が生じている
4/16 カスタマイズしたライブラリをインストールするのではなく、カスタマイズしたライブラリをそのまま本番環境にコンポーネントとして利用する。この際、かなり多くの変更点が生じた
4/17 dropdownセルについて:
dropdownセルは通常のセルとは異なり外部ライブラリreact-selectを使用している。ただreactgridライブラリでは十分に制御出来ておらず、長い間ユーザ間で議論されているが結論は結局出ていない。この時の詳細な問題は以下である
・セルクリック時にメニューが開きはするが、理想的な流れではない。ただし、表全体を管理する方法で開くものと開かないものが存在する。表を1列の集合とみた場合は開き、セルを縦横の集合とみた場合はそもそも開かない
例:pointerdown(isOpen:true)→menuClose(isOpen:false)→menuClose(isOpen:true)により強制的にメニュー開閉を実現している。
これは、react-selectのmenuOpenやmenuCloseの発火のタイミングとセルのpropsであるisOpen変化のタイミング制御が難しいからである。
・キーボード入力がデフォルトで設定されておらず、react-selectでキーボード入力が可能になるカスタマイズとreactgridライブラリのdropdownコンポーネントによるセルの値の嚙み合わせが悪い
・reactgridによるコピーペースト、フィルハンドルの実現とreact-selectの値変更の嚙み合わせが悪い
解決方法:react-selectを使わず完全に新しいdropdownセルテンプレートを作成する。考え方としてはtextCellにメニュー開閉トグル、オプションが反映されたメニュー、選択されたオプションまたは入力によるセルの更新を追加実装すること。
4/18 既存のライブラリ特にreactの場合、クラスコンポーネントと関数コンポーネントが共存していることがある。その場合クラスコンポーネントでhookが使用できないことなどが新機能の追加に対して大きな障害となることが多い。また、一見必要な機能、今回でいうdropdownセルでコピーペーストを可能にすることなどが実装されていない場合はライブラリ開発者側もそのことについて考えるまたは不具合を発見したユーザが問い合わせるだろう。それでも今日まで修正されていない時は、最新ヴァージョンの設計に沿って修正することが難しいのだと理解し、機能によるが大きく設計の方から見直す必要がある。
4/23 文字列のはみ出し修正についてscssだけで修正するのが難しい。jsxの変更を視野に入れる必要がある

About

Add spreadsheet-like behavior to your React app

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 91.6%
  • JavaScript 5.5%
  • SCSS 2.6%
  • Other 0.3%