thinking
Builds ThinkingBlock Toggle ToggleGroup


The code that drew it
A still frame holds a repeating animation at its first frame and a one-shot at its last, because a still of a moving thing is not reproducible. Run the gallery to review motion.
fn thinking(_window: &mut Window, cx: &mut App) -> AnyElement {
let theme = cx.theme().clone();
stack(&theme)
.child(ThinkingBlock::new(
"scene.thinking.collapsed",
Reasoning::present("The brief asks for two files, so read both before answering."),
))
// Reasoning that has finished and reasoning still arriving are the
// same words in the same place, so the difference has to be shown.
.child(
ThinkingBlock::new(
"scene.thinking.working",
Reasoning::present("Reading the second file before answering."),
)
.thinking(true),
)
.child(
ThinkingBlock::new(
"scene.thinking.open",
Reasoning::present(
"The brief asks for two files.\nRead both before answering.\nThen summarise.",
),
)
.expanded(true)
.on_toggle(|_, _, _| {}),
)
// Withheld and absent are two different facts, and neither is the
// collapsed block above.
.child(ThinkingBlock::new(
"scene.thinking.withheld",
Reasoning::withheld("This connection does not hand over reasoning."),
))
.child(ThinkingBlock::new(
"scene.thinking.absent",
Reasoning::Absent,
))
.into_any_element()
}