2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-07-01 03:10:46 +00:00
Files
inventree-app/lib/settings/release.dart
Ben Hagen 4444884afa Format Code and Add Format Checks to CI (#643)
* Remove unused lib/generated/i18n.dart

* Use `fvm dart format .`

* Add contributing guidelines

* Enforce dart format

* Add `dart format off` directive to generated files
2025-06-24 09:55:01 +10:00

69 lines
1.6 KiB
Dart

import "package:flutter/material.dart";
import "package:flutter_markdown/flutter_markdown.dart";
import "package:inventree/app_colors.dart";
import "package:url_launcher/url_launcher.dart";
import "package:inventree/l10.dart";
import "package:inventree/helpers.dart";
class ReleaseNotesWidget extends StatelessWidget {
const ReleaseNotesWidget(this.releaseNotes);
final String releaseNotes;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(L10().releaseNotes),
backgroundColor: COLOR_APP_BAR,
),
body: Markdown(
selectable: false,
data: releaseNotes,
onTapLink: (url, href, title) {
var link = href ?? "";
if (link.isNotEmpty) {
openLink(link);
}
},
),
);
}
}
class CreditsWidget extends StatelessWidget {
const CreditsWidget(this.credits);
final String credits;
// Callback function when a link is clicked in the markdown
Future<void> openLink(String url) async {
final link = Uri.parse(url);
if (await canLaunchUrl(link)) {
await launchUrl(link);
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(L10().credits),
backgroundColor: COLOR_APP_BAR,
),
body: Markdown(
selectable: false,
data: credits,
onTapLink: (url, href, title) {
var link = href ?? "";
if (link.isNotEmpty) {
openLink(link);
}
},
),
);
}
}