fix: use Builder to get descendant context for Scaffold.of() in bottom nav (#403)
## Summary Fixes the crash reported in #397: `Scaffold.of() called with a context that does not contain a Scaffold.` - `Scaffold.of(context)` was called in the `onPressed` of the bottom-nav menu `IconButton` using the widget's own `build` context. That context is the *parent* of the `Scaffold` being returned, so Flutter correctly throws. - Fix: wrap the `IconButton` in a `Builder`, which provides a child `ctx` that is a proper descendant of the `Scaffold`. `Scaffold.of(ctx)` then resolves correctly. ## Test plan - [ ] Run app with bottom menu position enabled, tap the hamburger icon — drawer opens without crashing. - [ ] Run app with top menu position — no regression (bottom nav is not rendered). Closes #397 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Thomas SharedInbox <sharedinbox@thomas-guettler.de> Reviewed-on: https://codeberg.org/guettli/sharedinbox/pulls/403
This commit was merged in pull request #403.
This commit is contained in:
committed by
guettli
co-authored by
guettli
Thomas SharedInbox
parent
b0354c7423
commit
cd8c930000
@@ -51,10 +51,12 @@ class MailboxListScreen extends ConsumerWidget {
|
||||
? BottomAppBar(
|
||||
child: Row(
|
||||
children: [
|
||||
IconButton(
|
||||
icon: const Icon(Icons.menu),
|
||||
tooltip: 'Open folders',
|
||||
onPressed: () => Scaffold.of(context).openDrawer(),
|
||||
Builder(
|
||||
builder: (ctx) => IconButton(
|
||||
icon: const Icon(Icons.menu),
|
||||
tooltip: 'Open folders',
|
||||
onPressed: () => Scaffold.of(ctx).openDrawer(),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user