feat(types): make the callbacks type-safe
This commit is contained in:
parent
3d1235dc96
commit
1bd59b9946
|
|
@ -51,6 +51,8 @@ class _MyHomePageState extends State<MyHomePage> {
|
||||||
} else if (dir == AxisDirection.down) {
|
} else if (dir == AxisDirection.down) {
|
||||||
debugPrint('onDown ${(widget as CardView).text} $index');
|
debugPrint('onDown ${(widget as CardView).text} $index');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Container(
|
Container(
|
||||||
|
|
|
||||||
|
|
@ -13,19 +13,21 @@ const List<Alignment> cardsAlign = [
|
||||||
];
|
];
|
||||||
final List<Size> cardsSize = List.filled(3, const Size(1, 1));
|
final List<Size> cardsSize = List.filled(3, const Size(1, 1));
|
||||||
|
|
||||||
|
typedef OnCardSwiped = bool Function(
|
||||||
|
AxisDirection dir, int index, Widget? widget);
|
||||||
|
|
||||||
class SwipeableCardsStack extends StatefulWidget {
|
class SwipeableCardsStack extends StatefulWidget {
|
||||||
final SwipeableCardsStackController? cardController;
|
final SwipeableCardsStackController? cardController;
|
||||||
|
|
||||||
//First 3 widgets
|
//First 3 widgets
|
||||||
final List<Widget> items;
|
final List<Widget> items;
|
||||||
final Function? onCardSwiped;
|
final OnCardSwiped? onCardSwiped;
|
||||||
final double cardWidthTopMul;
|
final double cardWidthTopMul;
|
||||||
final double cardWidthMiddleMul;
|
final double cardWidthMiddleMul;
|
||||||
final double cardWidthBottomMul;
|
final double cardWidthBottomMul;
|
||||||
final double cardHeightTopMul;
|
final double cardHeightTopMul;
|
||||||
final double cardHeightMiddleMul;
|
final double cardHeightMiddleMul;
|
||||||
final double cardHeightBottomMul;
|
final double cardHeightBottomMul;
|
||||||
final Function? appendItemCallback;
|
|
||||||
final bool enableSwipeUp;
|
final bool enableSwipeUp;
|
||||||
final bool enableSwipeDown;
|
final bool enableSwipeDown;
|
||||||
final bool enableSwipeLeft;
|
final bool enableSwipeLeft;
|
||||||
|
|
@ -43,7 +45,6 @@ class SwipeableCardsStack extends StatefulWidget {
|
||||||
this.cardHeightTopMul = 0.6,
|
this.cardHeightTopMul = 0.6,
|
||||||
this.cardHeightMiddleMul = 0.55,
|
this.cardHeightMiddleMul = 0.55,
|
||||||
this.cardHeightBottomMul = 0.5,
|
this.cardHeightBottomMul = 0.5,
|
||||||
this.appendItemCallback,
|
|
||||||
this.enableSwipeUp = true,
|
this.enableSwipeUp = true,
|
||||||
this.enableSwipeDown = true,
|
this.enableSwipeDown = true,
|
||||||
this.enableSwipeLeft = true,
|
this.enableSwipeLeft = true,
|
||||||
|
|
@ -98,8 +99,6 @@ class _SwipeableCardsStackState extends State<SwipeableCardsStack>
|
||||||
frontCardAlign = const Alignment(0.0, 0.001);
|
frontCardAlign = const Alignment(0.0, 0.001);
|
||||||
}
|
}
|
||||||
|
|
||||||
shouldAnimate ??= true;
|
|
||||||
|
|
||||||
if (shouldAnimate) {
|
if (shouldAnimate) {
|
||||||
animateCards();
|
animateCards();
|
||||||
}
|
}
|
||||||
|
|
@ -215,8 +214,6 @@ class _SwipeableCardsStackState extends State<SwipeableCardsStack>
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
shouldAnimate ??= true;
|
|
||||||
|
|
||||||
if (shouldAnimate) {
|
if (shouldAnimate) {
|
||||||
animateCards();
|
animateCards();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue