prasule/lib/pw/platformwidget.dart

31 lines
847 B
Dart
Raw Normal View History

2024-06-30 20:25:36 +02:00
// SPDX-FileCopyrightText: (C) 2024 Matyáš Caras
//
// SPDX-License-Identifier: AGPL-3.0-only
2023-09-08 11:50:21 +02:00
import 'dart:io';
import 'package:flutter/material.dart';
/// Abstract class used to create widgets for the respective platform UI library
abstract class PlatformWidget<A extends Widget, I extends Widget>
extends StatelessWidget {
/// Abstract class used to create widgets
/// for the respective platform UI library
2023-09-08 11:50:21 +02:00
const PlatformWidget({super.key});
@override
Widget build(BuildContext context) {
if (Platform.isIOS || Platform.isMacOS) {
2023-09-08 11:50:21 +02:00
return createIosWidget(context);
} else {
return createAndroidWidget(context);
2023-09-08 11:50:21 +02:00
}
}
/// The widget that will be shown on Android
2023-09-08 11:50:21 +02:00
A createAndroidWidget(BuildContext context);
/// The widget that will be shown on iOS
2023-09-08 11:50:21 +02:00
I createIosWidget(BuildContext context);
}