Skip to content

Commit

Permalink
chore: inherited widget lookup type (#227)
Browse files Browse the repository at this point in the history
  • Loading branch information
nank1ro authored Jan 7, 2025
1 parent dd0ea8c commit 9149883
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 5 deletions.
3 changes: 2 additions & 1 deletion example/lib/pages/tabs.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,11 @@ class TabsPage extends StatelessWidget {
wrapSingleChildInColumn: false,
alignment: Alignment.topCenter,
children: [
ShadTabs<String>(
ShadTabs(
value: 'account',
tabBarConstraints: const BoxConstraints(maxWidth: 400),
contentConstraints: const BoxConstraints(maxWidth: 400),
onChanged: (value) => print(value),
tabs: [
ShadTab(
value: 'account',
Expand Down
3 changes: 2 additions & 1 deletion lib/src/components/accordion.dart
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,8 @@ class _ShadAccordionItemState<T> extends State<ShadAccordionItem<T>>

@override
Widget build(BuildContext context) {
final inherited = context.watch<ShadAccordionState<dynamic>>();
final inherited =
context.watch<ShadAccordionState<dynamic>>() as ShadAccordionState<T>;
final expanded = inherited.values.contains(widget.value);
final theme = ShadTheme.of(context);
final effectiveSeparator = widget.separator ?? const Divider();
Expand Down
3 changes: 2 additions & 1 deletion lib/src/components/radio.dart
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,8 @@ class _ShadRadioState<T> extends State<ShadRadio<T>> {
Widget build(BuildContext context) {
assert(debugCheckHasShadTheme(context));
final theme = ShadTheme.of(context);
final inheritedRadioGroup = context.watch<ShadRadioGroupState<dynamic>>();
final inheritedRadioGroup =
context.watch<ShadRadioGroupState<dynamic>>() as ShadRadioGroupState<T>;

void onTap() {
inheritedRadioGroup.select(widget.value);
Expand Down
6 changes: 4 additions & 2 deletions lib/src/components/select.dart
Original file line number Diff line number Diff line change
Expand Up @@ -979,7 +979,8 @@ class _ShadOptionState<T> extends State<ShadOption<T>> {
super.initState();
focusNode.addListener(onFocusChange);

final inherited = context.read<ShadSelectState<dynamic>>();
final inherited =
context.read<ShadSelectState<dynamic>>() as ShadSelectState<T>;
final selected = inherited.selectedValues.contains(widget.value);
if (selected) focusNode.requestFocus();
}
Expand All @@ -1000,7 +1001,8 @@ class _ShadOptionState<T> extends State<ShadOption<T>> {
@override
Widget build(BuildContext context) {
final theme = ShadTheme.of(context);
final inheritedSelect = context.watch<ShadSelectState<dynamic>>();
final inheritedSelect =
context.watch<ShadSelectState<dynamic>>() as ShadSelectState<T>;
final selected = inheritedSelect.selectedValues.contains(widget.value);

if (selected) {
Expand Down

0 comments on commit 9149883

Please sign in to comment.