Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

segmentedControlを作成する #63

Open
yutteee opened this issue Jan 2, 2025 · 6 comments
Open

segmentedControlを作成する #63

yutteee opened this issue Jan 2, 2025 · 6 comments

Comments

@yutteee
Copy link
Collaborator

yutteee commented Jan 2, 2025

No description provided.

@yutteee
Copy link
Collaborator Author

yutteee commented Jan 3, 2025

@yutteee
Copy link
Collaborator Author

yutteee commented Jan 4, 2025

各stepで、procedureに追加する形でstateを管理するようにする

@yutteee
Copy link
Collaborator Author

yutteee commented Jan 4, 2025

バケツリレーになっているのがこいつら

  // 折り方選択で、現在のステップを保持する変数
  const [inputStep, setInputStep] = useState<Step>("axis");
  const [procedureIndex, setProcedureIndex] = useState(1);

  // 各procedureでの、最終的に必要な情報を保持する変数
  const [origamiDescription, setOrigamiDescription] = useState("");
  const [fixBoards, setFixBoards] = useState<Board[]>([initialBoard]);
  const [moveBoards, setMoveBoards] = useState<Board[]>([]);
  const [foldingAngle, setFoldingAngle] = useState(180);
  // rotateAxisも必要

  // 最終的に保存したい情報を保持する変数。
  const [procedure, setProcedure] = useState<Procedure>({
    "1": {
      description: "",
      fixBoards: [],
      moveBoards: [],
      rotateAxis: [],
    },
  });

@yutteee
Copy link
Collaborator Author

yutteee commented Jan 4, 2025

こいつらを、procedureという一つで管理できたらいい。
jotaiでバケツリレー回避できたらさらにいい。

@yutteee
Copy link
Collaborator Author

yutteee commented Jan 5, 2025

procedure一つで管理するためには?

まずこいつら

  // 折り方選択で、現在のステップを保持する変数
  const [inputStep, setInputStep] = useState<Step>("axis");
  const [procedureIndex, setProcedureIndex] = useState(1);
  • どこを表示するかを管理することができる。
  • これとprocedureを合わせて管理することで、すべての表示を制御できるのではと思っている。
    • procedureIndexで、objectのどのkeyを取得するかを決められる
    • inputStepで、どの情報をとってくるかを決めることができる?
      • axisだったら、1個前のfixBoardsとmoveBoardsをまとめてfixBoardsとしてとってくる
      • targetだったら、rotateAxisと、1個前のfixBoardsとmoveBoardsをまとめてfixBoardsとして取ってくる
        • leftBoarsとrightBoardsに分けているところがあるけど、そこを板の描画と同じところに持ってくる必要がある
      • foldの場合、fixBoardsとmoveBoardsを持ってくればいい?

ちょっと面倒なのが、
leftBoards, rightBoards, isMoveBoardsRightという各stepでのみ必要な変数
こいつらは、モデルの保存には必要ないが、状態を行き来する際には必要

だから、それらの変数も同時に管理しておいて、保存の時だけfilterするようにするのが一番わかりやすいよね

@yutteee
Copy link
Collaborator Author

yutteee commented Jan 5, 2025

  • procedureIndexで、objectのどのkeyを取得するかを決められる
  • inputStepで、どの情報をとってくるかを決めることができる?
    • axisだったら、1個前のfixBoardsとmoveBoardsをまとめてとってくる
    • targetだったら、rightBoardsとleftBoardsをもってくる
    • foldの場合、fixBoardsとmoveBoardsをもってくる

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant