first commit

This commit is contained in:
2025-03-03 20:59:42 +03:00
commit 273e68557a
1099 changed files with 17880 additions and 0 deletions

View File

@@ -0,0 +1,68 @@
// Flutter imports:
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
///
/// Направления свайпов
///
enum SwipeDirection {
///
/// Свайп вниз
///
DOWN,
///
/// Свайп вверх
///
UP,
}
class SwipeGesture extends StatelessWidget {
///
/// Отслеживание свайпа по виджету
///
const SwipeGesture({
required this.swipe,
required this.onSwipe,
required this.child,
super.key,
});
/// Направление движения
final SwipeDirection swipe;
/// Обработка свайпа
final VoidCallback onSwipe;
/// Потомок
final Widget child;
void _onVerticalDragUpdate(DragUpdateDetails e) {
const int sensitivity = 3;
switch (swipe) {
case SwipeDirection.DOWN:
if (e.delta.dy > sensitivity) {
onSwipe();
}
break;
case SwipeDirection.UP:
if (e.delta.dy < sensitivity) {
onSwipe();
}
break;
}
}
@override
Widget build(BuildContext context) {
return GestureDetector(
dragStartBehavior: DragStartBehavior.start,
behavior: HitTestBehavior.opaque,
onVerticalDragUpdate: _onVerticalDragUpdate,
child: child,
);
}
}