2024-05-22 20:48:44 +00:00
|
|
|
import 'dart:async';
|
|
|
|
|
|
|
|
|
|
import 'package:flutter/cupertino.dart';
|
2024-06-14 19:47:28 +00:00
|
|
|
import 'package:mnemo_cards/main.dart';
|
2024-06-15 15:42:18 +00:00
|
|
|
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
|
2024-07-18 21:45:04 +00:00
|
|
|
import 'package:mnemo_cards_frontend_common/mnemo_cards_frontend_common.dart';
|
2024-05-22 20:48:44 +00:00
|
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
|
|
2024-07-18 21:45:04 +00:00
|
|
|
class MobileSharedPrefButton<T> extends StatelessWidget {
|
2024-06-15 15:42:18 +00:00
|
|
|
final Function(T)? onClick;
|
2024-05-22 20:48:44 +00:00
|
|
|
final String spKey;
|
2024-06-15 15:42:18 +00:00
|
|
|
final T Function(T? current)? setOnTap;
|
|
|
|
|
final bool Function(T? current)? shouldRebuild;
|
|
|
|
|
final Widget Function(T? value, ValueSetter<T> setValue)? builder;
|
2024-05-22 20:48:44 +00:00
|
|
|
|
2024-07-18 21:45:04 +00:00
|
|
|
MobileSharedPrefButton({
|
2024-06-15 15:42:18 +00:00
|
|
|
this.builder,
|
2024-05-22 20:48:44 +00:00
|
|
|
required this.spKey,
|
2024-06-15 15:42:18 +00:00
|
|
|
this.setOnTap,
|
2024-05-22 20:48:44 +00:00
|
|
|
this.onClick,
|
2024-06-15 15:42:18 +00:00
|
|
|
this.shouldRebuild,
|
|
|
|
|
});
|
|
|
|
|
|
2024-07-18 21:45:04 +00:00
|
|
|
MobileSharedPrefButton.builder({
|
2024-06-15 15:42:18 +00:00
|
|
|
this.builder,
|
|
|
|
|
required this.spKey,
|
|
|
|
|
this.setOnTap,
|
|
|
|
|
this.onClick,
|
|
|
|
|
this.shouldRebuild,
|
2024-05-22 20:48:44 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
@override
|
2024-07-18 21:45:04 +00:00
|
|
|
Widget build(BuildContext context) => SharedPrefButton(
|
|
|
|
|
sharedPreferences: globalSharedPreferences,
|
|
|
|
|
spKey: spKey,
|
|
|
|
|
setOnTap: setOnTap,
|
|
|
|
|
onClick: onClick,
|
|
|
|
|
shouldRebuild: shouldRebuild,
|
|
|
|
|
builder: builder,
|
|
|
|
|
);
|
2024-05-22 20:48:44 +00:00
|
|
|
}
|