mirror of
https://github.com/Iconica-Development/flutter_start.git
synced 2025-05-19 10:33:45 +02:00
Compare commits
No commits in common. "master" and "4.2.0" have entirely different histories.
9 changed files with 42 additions and 110 deletions
14
.github/workflows/release.yml
vendored
14
.github/workflows/release.yml
vendored
|
@ -1,14 +0,0 @@
|
||||||
name: Iconica Standard Component Release Workflow
|
|
||||||
# Workflow Caller version: 1.0.0
|
|
||||||
|
|
||||||
on:
|
|
||||||
release:
|
|
||||||
types: [published]
|
|
||||||
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
call-global-iconica-workflow:
|
|
||||||
uses: Iconica-Development/.github/.github/workflows/component-release.yml@master
|
|
||||||
secrets: inherit
|
|
||||||
permissions: write-all
|
|
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -44,7 +44,3 @@ app.*.map.json
|
||||||
ios
|
ios
|
||||||
.metadata
|
.metadata
|
||||||
pubspec.lock
|
pubspec.lock
|
||||||
|
|
||||||
# FVM Version Cache
|
|
||||||
.fvm/
|
|
||||||
.fvmrc
|
|
||||||
|
|
12
CHANGELOG.md
12
CHANGELOG.md
|
@ -1,15 +1,3 @@
|
||||||
## 4.2.4
|
|
||||||
- Fixed the userstory to always call the splashScreenFuture and killswitchservice logic when a custom splashScreenBuilder is provided
|
|
||||||
|
|
||||||
## 4.2.3
|
|
||||||
- Added check if introduction should be shown according to the service before showing the introduction at all
|
|
||||||
|
|
||||||
## 4.2.2
|
|
||||||
- Added custom navigator in the root of the navigator user-story
|
|
||||||
|
|
||||||
## 4.2.1
|
|
||||||
- Updated flutter_introduction to 5.0.0
|
|
||||||
|
|
||||||
## 4.1.0
|
## 4.1.0
|
||||||
- Updated README
|
- Updated README
|
||||||
- Removed check if the introductions should be shown.
|
- Removed check if the introductions should be shown.
|
||||||
|
|
3
example/.gitignore
vendored
3
example/.gitignore
vendored
|
@ -31,9 +31,6 @@ migrate_working_dir/
|
||||||
.pub/
|
.pub/
|
||||||
/build/
|
/build/
|
||||||
|
|
||||||
# platforms
|
|
||||||
/web
|
|
||||||
|
|
||||||
# Symbolication related
|
# Symbolication related
|
||||||
app.*.symbols
|
app.*.symbols
|
||||||
|
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
# example
|
|
||||||
|
|
||||||
A new Flutter project.
|
|
||||||
|
|
||||||
## Getting Started
|
|
||||||
|
|
||||||
This project is a starting point for a Flutter application.
|
|
||||||
|
|
||||||
A few resources to get you started if this is your first Flutter project:
|
|
||||||
|
|
||||||
- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
|
|
||||||
- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook)
|
|
||||||
|
|
||||||
For help getting started with Flutter development, view the
|
|
||||||
[online documentation](https://docs.flutter.dev/), which offers tutorials,
|
|
||||||
samples, guidance on mobile development, and a full API reference.
|
|
|
@ -12,8 +12,10 @@ dependencies:
|
||||||
flutter_start:
|
flutter_start:
|
||||||
path: ../
|
path: ../
|
||||||
flutter_introduction_shared_preferences:
|
flutter_introduction_shared_preferences:
|
||||||
hosted: https://forgejo.internal.iconica.nl/api/packages/internal/pub/
|
git:
|
||||||
version: ^5.0.0
|
url: https://github.com/Iconica-Development/flutter_introduction
|
||||||
|
ref: 4.0.0
|
||||||
|
path: packages/flutter_introduction_shared_preferences
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
|
|
@ -19,11 +19,13 @@ class NavigatorStartUserStory extends StatelessWidget {
|
||||||
final void Function(BuildContext context) onComplete;
|
final void Function(BuildContext context) onComplete;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) => Navigator(
|
Widget build(BuildContext context) {
|
||||||
onGenerateInitialRoutes: (_, __) => [
|
if (!configuration.showSplashScreen) {
|
||||||
_getInitialRoute(configuration, onComplete),
|
return _introduction(configuration, context, onComplete);
|
||||||
],
|
}
|
||||||
);
|
|
||||||
|
return _splashScreen(configuration, context, onComplete);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Enter the start user story with the Navigator 1.0 API.
|
/// Enter the start user story with the Navigator 1.0 API.
|
||||||
|
@ -40,15 +42,6 @@ Future<void> startNavigatorUserStory(
|
||||||
StartUserStoryConfiguration configuration, {
|
StartUserStoryConfiguration configuration, {
|
||||||
required void Function(BuildContext context) onComplete,
|
required void Function(BuildContext context) onComplete,
|
||||||
}) async {
|
}) async {
|
||||||
var initialRoute = _getInitialRoute(configuration, onComplete);
|
|
||||||
|
|
||||||
await Navigator.of(context).push(initialRoute);
|
|
||||||
}
|
|
||||||
|
|
||||||
MaterialPageRoute<dynamic> _getInitialRoute(
|
|
||||||
StartUserStoryConfiguration configuration,
|
|
||||||
void Function(BuildContext context) onComplete,
|
|
||||||
) {
|
|
||||||
var initialRoute = MaterialPageRoute(
|
var initialRoute = MaterialPageRoute(
|
||||||
builder: (context) => _splashScreen(
|
builder: (context) => _splashScreen(
|
||||||
configuration,
|
configuration,
|
||||||
|
@ -66,7 +59,8 @@ MaterialPageRoute<dynamic> _getInitialRoute(
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return initialRoute;
|
|
||||||
|
await Navigator.of(context).push(initialRoute);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _splashScreen(
|
Widget _splashScreen(
|
||||||
|
@ -104,16 +98,12 @@ Widget _splashScreen(
|
||||||
|
|
||||||
if (configuration.useKillswitch && isAllowedToPassThrough) return;
|
if (configuration.useKillswitch && isAllowedToPassThrough) return;
|
||||||
|
|
||||||
var introService = configuration.introductionService ??
|
if ((!configuration.showIntroduction) && context.mounted) {
|
||||||
IntroductionService(SharedPreferencesIntroductionDataProvider());
|
onComplete(context);
|
||||||
|
return;
|
||||||
var shouldShowIntroduction =
|
}
|
||||||
configuration.showIntroduction && await introService.shouldShow();
|
|
||||||
|
|
||||||
if (!context.mounted) return;
|
|
||||||
|
|
||||||
if (!shouldShowIntroduction) return onComplete(context);
|
|
||||||
|
|
||||||
|
if (context.mounted) {
|
||||||
await navigator.pushReplacement(
|
await navigator.pushReplacement(
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
builder: (context) => _introduction(
|
builder: (context) => _introduction(
|
||||||
|
@ -124,12 +114,12 @@ Widget _splashScreen(
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
unawaited(splashHandler());
|
|
||||||
|
|
||||||
var builder = configuration.splashScreenBuilder;
|
var builder = configuration.splashScreenBuilder;
|
||||||
|
|
||||||
if (builder == null) {
|
if (builder == null) {
|
||||||
|
unawaited(splashHandler());
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: configuration.splashScreenBackgroundColor,
|
backgroundColor: configuration.splashScreenBackgroundColor,
|
||||||
body: Center(
|
body: Center(
|
||||||
|
|
25
pubspec.yaml
25
pubspec.yaml
|
@ -1,8 +1,7 @@
|
||||||
name: flutter_start
|
name: flutter_start
|
||||||
description: "Flutter_start is a package that allows you to jumpstart your application with a splashScreen, introduction and a home."
|
description: "Flutter_start is a package that allows you to jumpstart your application with a splashScreen, introduction and a home."
|
||||||
version: 4.2.4
|
publish_to: "none"
|
||||||
|
version: 4.2.0
|
||||||
publish_to: https://forgejo.internal.iconica.nl/api/packages/internal/pub
|
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=3.2.5 <4.0.0"
|
sdk: ">=3.2.5 <4.0.0"
|
||||||
|
@ -10,16 +9,20 @@ environment:
|
||||||
dependencies:
|
dependencies:
|
||||||
flutter:
|
flutter:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
cupertino_icons: ">=1.0.2 <2.0.0"
|
cupertino_icons: ^1.0.2
|
||||||
go_router: ">=14.2.0 <15.0.0"
|
go_router: any
|
||||||
http: ">=1.2.1 <2.0.0"
|
http: any
|
||||||
package_info_plus: ">=8.0.0 <9.0.0"
|
package_info_plus: any
|
||||||
flutter_introduction:
|
flutter_introduction:
|
||||||
hosted: https://forgejo.internal.iconica.nl/api/packages/internal/pub
|
git:
|
||||||
version: ^5.0.0
|
url: https://github.com/Iconica-Development/flutter_introduction
|
||||||
|
ref: 4.0.0
|
||||||
|
path: packages/flutter_introduction
|
||||||
flutter_introduction_shared_preferences:
|
flutter_introduction_shared_preferences:
|
||||||
hosted: https://forgejo.internal.iconica.nl/api/packages/internal/pub/
|
git:
|
||||||
version: ^5.0.0
|
url: https://github.com/Iconica-Development/flutter_introduction
|
||||||
|
ref: 4.0.0
|
||||||
|
path: packages/flutter_introduction_shared_preferences
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
// This is an example unit test.
|
|
||||||
//
|
|
||||||
// A unit test tests a single function, method, or class. To learn more about
|
|
||||||
// writing unit tests, visit
|
|
||||||
// https://flutter.dev/docs/cookbook/testing/unit/introduction
|
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
|
||||||
|
|
||||||
void main() {
|
|
||||||
group('Plus Operator', () {
|
|
||||||
test('should add two numbers together', () {
|
|
||||||
expect(1 + 1, 2);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
Loading…
Reference in a new issue