Closed sokahiri closed 2 years ago
ごめんなさい! 仕様に関して修正してほしい点がありました!
save,loadの実装に伴って、一度saveしたラインを再度redoさせないために、saveしたラインは別のリストに保管する仕様にしました。loadではこれを読み取っています。 また、キャンバスから離れる直前に保存していない変更があればセーブの確認を行うようにし、saveボタンを押したらセーブするようにしました。
今回の仕様は save => itemListを丸ごとjson.stringifyしてlocalstorageに保存する load => localstorageからロード& itemStackを空にする
これでredoは防げるはずです!見落としがあったら言ってください!
今回の仕様は save => itemListを丸ごとjson.stringifyしてlocalstorageに保存する load => localstorageからロード& itemStackを空にする
これでredoは防げるはずです!見落としがあったら言ってください!
ごめんなさい。redoだけじゃなくundoも防ぎたいです!書き忘れてました。。 同じitemListにsave後のラインと未saveのラインを混ぜて管理していると、一見外からそれらを見分ける手段がないと思ったので、物理的にリストを分けました。 工夫すれば同じリストでも管理できるとも思いましたが、save後のラインに手を加えられないようにすることを考えると、物理的に分けてしまうのが一番早いかなと思ったので、このようにしました。
なるほど! ちなみにundoを防ぎたい理由などはあったりしますか?
セーブした内容はundoできないという謎の思い込みがあったのですが、今確認するとVScodeとかは別にそうなってないですね。。redoもできますし ここは仕様から見直す必要がありますね。。VScodeを参考にして、 「一度セーブした内容もredoやundo等の操作が可能で、ロード時にredoはできなくなる」という仕様で再実装してみようと思いますが、この内容に違和感ないでしょうか?
上記の仕様を実装しようとすると、Leandroさんが最初に提案されていました方法での実装になりそうですね!
@sokahiri そちらの仕様で問題ないと思います! ありがとうございます!🙏🙏
一度セーブした内容もredoやundo等の操作が可能で、ロード時にredoはできなくなる
仕様をこのように変更して再度pushしました!
セーブが完了したかどうかのModalはまた別のissueにしようと思うので一旦マージしちゃいますね!
やったこと
説明
save,loadの実装に伴って、一度saveしたラインを再度redoさせないために、saveしたラインは別のリストに保管する仕様にしました。loadではこれを読み取っています。 また、キャンバスから離れる直前に保存していない変更があればセーブの確認を行うようにし、saveボタンを押したらセーブするようにしました。 キャンバスページへ戻ってきた際にセーブした内容はロードされます。また、一時的にxキーを押すことによってもロードを試すことができます。(後々削除予定)
やり残し、改善点
レビューしてほしい箇所
挙動テストをお願いします。 余裕があればコードレビューもお願いしたいです。
質問
やり残しの部分につきまして、取り組むべき優先度について意見をお伺いしたいです。