Skip to content

Commit

Permalink
page routes
Browse files Browse the repository at this point in the history
  • Loading branch information
arifayduran committed Dec 6, 2024
1 parent 976c1b1 commit ce7fa36
Show file tree
Hide file tree
Showing 18 changed files with 663 additions and 590 deletions.
4 changes: 4 additions & 0 deletions firebase.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@
"**/node_modules/**"
],
"rewrites": [
{
"source": "/projects",
"destination": "/index.html"
},
{
"source": "**",
"destination": "/index.html"
Expand Down
6 changes: 6 additions & 0 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,15 @@ PODS:
- shared_preferences_foundation (0.0.1):
- Flutter
- FlutterMacOS
- url_launcher_ios (0.0.1):
- Flutter

DEPENDENCIES:
- Flutter (from `Flutter`)
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
- rive_common (from `.symlinks/plugins/rive_common/ios`)
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)

EXTERNAL SOURCES:
Flutter:
Expand All @@ -24,12 +27,15 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/rive_common/ios"
shared_preferences_foundation:
:path: ".symlinks/plugins/shared_preferences_foundation/darwin"
url_launcher_ios:
:path: ".symlinks/plugins/url_launcher_ios/ios"

SPEC CHECKSUMS:
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
rive_common: 4743dbfd2911c99066547a3c6454681e0fa907df
shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe

PODFILE CHECKSUM: 819463e6a0290f5a72f145ba7cde16e8b6ef0796

Expand Down
5 changes: 3 additions & 2 deletions lib/main.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'package:arifayduran_dev/src/features/settings/application/language_provider.dart';
import 'package:arifayduran_dev/src/features/settings/application/language_service.dart';
import 'package:flutter/material.dart';
import 'src/core/my_portfolio_app.dart';
import 'src/core/my_app.dart';
import 'src/features/settings/application/ui_mode_controller.dart';
import 'src/features/settings/application/ui_mode_service.dart';
import 'package:provider/provider.dart';
Expand All @@ -12,7 +12,8 @@ void main() async {
await uiModeController.loadSettings();
await LanguageService().getLanguage();


runApp(ChangeNotifierProvider(
create: (context) => LanguageProvider(),
child: MyPortfolioApp(uiModeController: uiModeController)));
child: MyApp(uiModeController: uiModeController)));
}
1 change: 1 addition & 0 deletions lib/src/config/route_links.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
const String wetterAppUrl = 'https://wetterapp.arifayduran.dev';
4 changes: 4 additions & 0 deletions lib/src/core/application/scaffold_messenger_key.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import 'package:flutter/material.dart';

final GlobalKey<ScaffoldMessengerState> scaffoldMessengerKey =
GlobalKey<ScaffoldMessengerState>();
13 changes: 13 additions & 0 deletions lib/src/core/application/url_launcher_new_tab.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import 'package:url_launcher/url_launcher.dart';

void urlLauncherNewTab(String url) async {
final Uri uri = Uri.parse(url);
if (await canLaunchUrl(uri)) {
await launchUrl(
uri,
mode: LaunchMode.externalApplication,
);
} else {
throw 'Could not launch $url';
}
}
39 changes: 19 additions & 20 deletions lib/src/core/my_portfolio_app.dart → lib/src/core/my_app.dart
Original file line number Diff line number Diff line change
@@ -1,60 +1,59 @@
import 'package:arifayduran_dev/src/core/application/scaffold_messenger_key.dart';
import 'package:arifayduran_dev/src/features/projects/presentation/projects_screen.dart';
import 'package:arifayduran_dev/src/features/settings/application/language_provider.dart';
import 'package:arifayduran_dev/src/features/settings/application/routes_service.dart';
import 'package:arifayduran_dev/src/features/settings/application/ui_mode_controller.dart';
import 'package:arifayduran_dev/src/features/settings/data/language_settings.dart';
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:arifayduran_dev/src/config/my_custom_scroll_behavior.dart';
import 'package:arifayduran_dev/src/config/theme.dart';
import 'package:arifayduran_dev/src/core/my_portfolio_home.dart';
import 'package:arifayduran_dev/src/features/home/presentation/home_screen.dart';
import 'package:provider/provider.dart';

class MyPortfolioApp extends StatelessWidget {
const MyPortfolioApp({
class MyApp extends StatelessWidget {
MyApp({
super.key,
required this.uiModeController,
});

final UiModeController uiModeController;
final RouteService _routeService = RouteService();
final RouteObserver<PageRoute> routeObserver = RouteObserver<PageRoute>();

@override
Widget build(BuildContext context) {
return ListenableBuilder(
listenable: uiModeController,
builder: (BuildContext context, Widget? child) {
return MaterialApp(
// showPerformanceOverlay: true,
scrollBehavior: MyCustomScrollBehavior(),
scaffoldMessengerKey: scaffoldMessengerKey,
debugShowCheckedModeBanner: false,
restorationScopeId: 'app',
locale: Provider.of<LanguageProvider>(context).userSelectedLang,
localizationsDelegates: AppLocalizations.localizationsDelegates,
supportedLocales: AppLocalizations.supportedLocales,
// localizationsDelegates: const [
// AppLocalizations.delegate,
// GlobalMaterialLocalizations.delegate,
// GlobalWidgetsLocalizations.delegate,
// GlobalCupertinoLocalizations.delegate,
// ],
// supportedLocales: const [
// Locale('en', ''),
// Locale('de', ''),
// Locale('tr', ''),
// ],
onGenerateTitle: (BuildContext context) =>
AppLocalizations.of(context)!.appTitle,
theme: lightTheme,
darkTheme: darkTheme,
themeMode: uiModeController.themeMode,
initialRoute: "/",
navigatorObservers: [routeObserver],
onGenerateRoute: (RouteSettings routeSettings) {
currentRoute = routeSettings.name;
_routeService.updateLastVisitedRoute(routeSettings.name ?? '/');

return MaterialPageRoute<void>(
settings: routeSettings,
builder: (BuildContext context) {
switch (routeSettings.name) {
// case SettingsView.routeName:
// return SettingsView(controller: uiModeController);

case MyPortfolioHome.routeName:
case ProjectsScreen.routeName:
return ProjectsScreen(uiModeController: uiModeController);
case HomeScreen.routeName:
default:
return MyPortfolioHome(uiModeController: uiModeController);
return HomeScreen(uiModeController: uiModeController);
}
},
);
Expand Down
Loading

0 comments on commit ce7fa36

Please sign in to comment.