Skip to content

Commit e908888

Browse files
committed
Add support for onPageChanged action on page view.
1 parent e4496e5 commit e908888

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

lib/src/transformers/node_transformers/passive_page_view_transformer.dart

+16-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import 'dart:ui';
33
import 'package:codelessly_api/codelessly_api.dart';
44
import 'package:flutter/material.dart';
55

6+
import '../../functions/functions_repository.dart';
67
import '../../utils/extensions.dart';
78
import '../transformers.dart';
89

@@ -16,15 +17,28 @@ class PassivePageViewTransformer extends NodeWidgetTransformer<PageViewNode> {
1617
node: node,
1718
manager: manager,
1819
settings: settings,
20+
onPageChanged: (context, index) => onPageChanged(context, index, node),
1921
);
2022
}
23+
24+
void onPageChanged(BuildContext context, int index, PageViewNode node) {
25+
FunctionsRepository.setNodeValue(context,
26+
node: node, property: 'indexValue', value: index);
27+
28+
FunctionsRepository.setPropertyVariable(context,
29+
node: node, property: 'indexValue', value: '$index');
30+
31+
FunctionsRepository.triggerAction(context, TriggerType.changed,
32+
node: node, value: index);
33+
}
2134
}
2235

2336
class PassivePageViewWidget extends StatefulWidget {
2437
final PageViewNode node;
2538
final NodeTransformerManager manager;
2639
final WidgetBuildSettings settings;
27-
final ValueChanged<int>? onPageChanged;
40+
41+
final Function(BuildContext context, int index)? onPageChanged;
2842

2943
const PassivePageViewWidget({
3044
super.key,
@@ -90,7 +104,7 @@ class _PassivePageViewWidgetState extends State<PassivePageViewWidget> {
90104
padEnds: widget.node.properties.padEnds,
91105
pageSnapping: widget.node.properties.pageSnapping,
92106
controller: controller,
93-
onPageChanged: widget.onPageChanged,
107+
onPageChanged: (index) => widget.onPageChanged?.call(context, index),
94108
itemBuilder: (context, index) => IndexedItemProvider(
95109
key: ValueKey(index),
96110
index: index,

0 commit comments

Comments
 (0)