[ui] basic responsive

This commit is contained in:
jscampucci 2024-06-11 14:40:49 +02:00
parent 5a951403cd
commit 3503f37134
5 changed files with 59 additions and 29 deletions

View File

@ -15,7 +15,8 @@ class DlForm extends StatelessWidget {
child: Form(child: LayoutBuilder(
builder: (BuildContext context, BoxConstraints constraints) {
debugPrint('Max width: ${constraints.maxWidth}');
if (constraints.maxWidth < 720) {
debugPrint('Max height: ${MediaQuery.of(context).size.height}');
if (constraints.maxWidth < 320) {
return Column(
children: [
Row(children: <Widget>[
@ -23,11 +24,26 @@ class DlForm extends StatelessWidget {
]),
Row(children: <Widget>[
Expanded(flex: 1, child: DropdownFormat()),
]),
Row(children: <Widget>[
Expanded(flex: 1, child: SubmitButton()),
]),
DebugDlFormState(),
],
);
} else if (constraints.maxWidth < 720) {
return Column(
children: [
Row(children: <Widget>[
UrlTextField(),
]),
Row(children: <Widget>[
Expanded(flex: 1, child: DropdownFormat()),
Expanded(flex: 2, child: SubmitButton()),
]),
DebugDlFormState(),
],
);
} else {
return Column(
children: [

View File

@ -17,7 +17,9 @@ class _SubmitButtonState extends State<SubmitButton> {
@override
Widget build(BuildContext context) {
var dlForm = context.watch<DlFormState>();
return MouseRegion(
return ConstrainedBox(
constraints: BoxConstraints.tightFor(width: 200),
child: MouseRegion(
cursor: SystemMouseCursors.click,
child: GestureDetector(
onTap: () {
@ -25,16 +27,17 @@ class _SubmitButtonState extends State<SubmitButton> {
},
child: InkWell(
onHover: (hovering) {
debugPrint('Hovering: $hovering');
setState(() => isHovering = hovering);
},
child: Container(
padding:
const EdgeInsets.symmetric(horizontal: 80, vertical: 14),
padding: const EdgeInsets.symmetric(vertical: 14),
decoration: BoxDecoration(
color: isHovering ? colorDarkRed : colorMainRed,
),
child: const Text('Ok').tr(),
child: const Text('Ok', textAlign: TextAlign.center).tr(),
),
)));
))),
);
}
}

View File

@ -13,6 +13,14 @@ class Home extends StatelessWidget {
title: Text('home').tr(),
),
body: Center(
child: Container(
constraints: BoxConstraints.expand(),
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage("assets/images/wallpaper.webp"),
fit: BoxFit.cover,
),
),
child: Column(
children: <Widget>[
SizedBox(height: 10),
@ -23,6 +31,7 @@ class Home extends StatelessWidget {
child: DlForm())
],
),
),
));
}
}

View File

@ -38,12 +38,13 @@ class DlFormState extends ChangeNotifier {
});
var ytDlpPath = tempFile.path;
var command = url.trim();
var command =
'${url.trim()} --sub-langs "all,-live_chat" --embed-subs --embed-thumbnail --embed-metadata --output temp.mp4';
var shell = Shell();
debugPrint('Running $ytDlpPath $command');
var results = await shell.run('''
pwd
dir
$ytDlpPath $command
''');
}

View File

@ -31,6 +31,7 @@ flutter:
assets:
- lib/translations/
- assets/images/
- assets/executable/
flutter_intl:
enabled: true