adding packages
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class OptionalSizedChild extends StatelessWidget {
|
||||
final double? width, height;
|
||||
final Widget Function(BuildContext, Size) builder;
|
||||
|
||||
const OptionalSizedChild({
|
||||
required this.width,
|
||||
required this.height,
|
||||
required this.builder,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return LayoutBuilder(
|
||||
builder: (context, dimens) {
|
||||
final w = width ?? dimens.maxWidth;
|
||||
final h = height ?? dimens.maxHeight;
|
||||
return SizedBox(
|
||||
width: w,
|
||||
height: h,
|
||||
child: builder(context, Size(w, h)),
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:http/http.dart' as http;
|
||||
|
||||
class RemoteContent extends StatelessWidget {
|
||||
const RemoteContent({
|
||||
required this.src,
|
||||
required this.builder,
|
||||
this.headers = const {},
|
||||
});
|
||||
|
||||
final String src;
|
||||
final Map<String, String> headers;
|
||||
final Widget Function(BuildContext, String) builder;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return FutureBuilder<http.Response>(
|
||||
future: http.get(Uri.parse(src), headers: headers),
|
||||
builder: (context, response) {
|
||||
if (!response.hasData) {
|
||||
return Center(child: CircularProgressIndicator());
|
||||
}
|
||||
if (response.data?.statusCode == 200 && response.data?.body != null) {
|
||||
String content = response.data!.body;
|
||||
return builder(context, content);
|
||||
}
|
||||
return Center(child: Icon(Icons.error));
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user