fixed news and radar web route
This commit is contained in:
parent
424226fe6f
commit
b2961ca7d8
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"type": "chrome",
|
||||
"request": "launch",
|
||||
"name": "Launch Chrome against localhost",
|
||||
"url": "http://localhost:8080",
|
||||
"webRoot": "${workspaceFolder}"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -38,6 +38,8 @@ import 'package:flutter_downloader/flutter_downloader.dart';
|
|||
import 'package:sentry_flutter/sentry_flutter.dart';
|
||||
import 'package:app_links/app_links.dart';
|
||||
|
||||
import 'services/network/request.dart';
|
||||
|
||||
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
|
||||
Uri? initialURI;
|
||||
|
||||
|
|
@ -126,6 +128,16 @@ class _DidvanState extends State<Didvan> with WidgetsBindingObserver {
|
|||
void _navigateTo(Uri uri) {
|
||||
if (mounted) {
|
||||
String path = uri.path;
|
||||
final Map<String, String> params = uri.queryParameters;
|
||||
|
||||
final String? token = params['token'];
|
||||
|
||||
if (token != null) {
|
||||
//todo: this didnt work
|
||||
print("DEBUG: received token in url, token: $token, path: $path");
|
||||
RequestService.token = token;
|
||||
}
|
||||
|
||||
if (path.startsWith('/news/')) {
|
||||
final id = path.split('/news/').last;
|
||||
if (id.isNotEmpty) {
|
||||
|
|
@ -134,13 +146,7 @@ class _DidvanState extends State<Didvan> with WidgetsBindingObserver {
|
|||
arguments: {'id': int.parse(id), 'args': const NewsRequestArgs(page: 0)},
|
||||
);
|
||||
}
|
||||
} else {
|
||||
navigatorKey.currentState?.pushNamed(path);
|
||||
}
|
||||
}
|
||||
if (mounted) {
|
||||
String path = uri.path;
|
||||
if (path.startsWith('/radar/')) {
|
||||
} else if (path.startsWith('/radar/')) {
|
||||
final id = path.split('/radar/').last;
|
||||
if (id.isNotEmpty) {
|
||||
navigatorKey.currentState?.pushNamed(
|
||||
|
|
@ -148,8 +154,6 @@ class _DidvanState extends State<Didvan> with WidgetsBindingObserver {
|
|||
arguments: {'id': int.parse(id), 'args': const RadarRequestArgs(page: 0)},
|
||||
);
|
||||
}
|
||||
} else {
|
||||
navigatorKey.currentState?.pushNamed(path);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -82,6 +82,7 @@ class HomeState extends CoreProvier {
|
|||
);
|
||||
await service.httpGet();
|
||||
if (service.isSuccess) {
|
||||
print("DEBUG : Homestate is succes");
|
||||
lastPage = service.result['lastPage'];
|
||||
results.addAll(
|
||||
List<OverviewData>.from(
|
||||
|
|
@ -94,12 +95,14 @@ class HomeState extends CoreProvier {
|
|||
appState = AppState.idle;
|
||||
return;
|
||||
}
|
||||
print("DEBUG : Homestate is NOT succes");
|
||||
appState = AppState.failed;
|
||||
}
|
||||
|
||||
Future<void> searchAll({required int page}) async {
|
||||
this.page = page;
|
||||
if (page == 1) {
|
||||
print("DEBUG : serach is busy");
|
||||
results.clear();
|
||||
appState = AppState.busy;
|
||||
}
|
||||
|
|
@ -115,6 +118,7 @@ class HomeState extends CoreProvier {
|
|||
);
|
||||
await service.httpGet();
|
||||
if (service.isSuccess) {
|
||||
print("DEBUG : HTTPget Home is succes");
|
||||
lastPage = service.result['lastPage'];
|
||||
unreadCount = service.result['unread'] ?? unreadCount;
|
||||
results.addAll(
|
||||
|
|
@ -128,6 +132,7 @@ class HomeState extends CoreProvier {
|
|||
appState = AppState.idle;
|
||||
return;
|
||||
}
|
||||
print("DEBUG : Homestate is faild");
|
||||
appState = AppState.failed;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -33,22 +33,36 @@ class MainPage extends StatefulWidget {
|
|||
class _MainPageState extends State<MainPage> {
|
||||
@override
|
||||
void initState() {
|
||||
context.read<MainPageState>().init();
|
||||
super.initState();
|
||||
print("DEBUG: _MainPageState initstate called");
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
print("DEBUG: addPostFrameCallback called");
|
||||
context.read<MainPageState>().init();
|
||||
});
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
print("DEBUG: _MainPageState build called");
|
||||
return StateHandler<MainPageState>(
|
||||
onRetry: context.read<MainPageState>().init,
|
||||
onRetry: () => {
|
||||
print("DEBUG: _MainPageState onRetry called"),
|
||||
context.read<MainPageState>().init
|
||||
},
|
||||
state: context.watch<MainPageState>(),
|
||||
builder: (context, state) => ListView(
|
||||
builder: (context, state) {
|
||||
print("DEBUG: FutureBuilder waiting");
|
||||
print("DEBUG: FutureBuilder state.stories.isNotEmpty: ${state.stories.isNotEmpty}");
|
||||
print("DEBUG: FutureBuilder state.content: ${state.content!.lists}");
|
||||
print("DEBUG: FutureBuilder state.content != null: ${state.content != null}");
|
||||
print("DEBUG: FutureBuilder state.content!.lists.isNotEmpty: ${state.content!.lists.isNotEmpty}");
|
||||
return ListView(
|
||||
padding: const EdgeInsets.symmetric(vertical: 16),
|
||||
children: [
|
||||
if (state.stories.isNotEmpty) StorySection(stories: state.stories),
|
||||
const SizedBox(height: 12),
|
||||
const MainPageMainContent(),
|
||||
|
||||
Builder(builder: (context) {
|
||||
final List<Widget> pageContent = [];
|
||||
if (state.content != null && state.content!.lists.isNotEmpty) {
|
||||
|
|
@ -118,10 +132,12 @@ class _MainPageState extends State<MainPage> {
|
|||
}
|
||||
}
|
||||
}
|
||||
print("DEBUG: FutureBuilder error");
|
||||
return Column(children: pageContent);
|
||||
}),
|
||||
],
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -289,7 +305,6 @@ class _MainPageSection extends StatelessWidget {
|
|||
return const SizedBox();
|
||||
}
|
||||
|
||||
// This condition handles the "Soha" module, which should not display the Opportunity/Threat module.
|
||||
if (list.type == 'delphi') {
|
||||
return Column(
|
||||
children: [
|
||||
|
|
@ -299,7 +314,6 @@ class _MainPageSection extends StatelessWidget {
|
|||
);
|
||||
}
|
||||
|
||||
// For all other modules, display as before.
|
||||
return Column(
|
||||
children: [
|
||||
_buildSectionHeader(context, icon),
|
||||
|
|
|
|||
|
|
@ -24,12 +24,19 @@ class MainPageState extends CoreProvier {
|
|||
List<SwotItem> swotItems = [];
|
||||
|
||||
Future<void> _getMainPageContent() async {
|
||||
print("DEBUG: _getMainPageContent started");
|
||||
final service = RequestService(RequestHelper.mainPageContent);
|
||||
await service.httpGet();
|
||||
if (service.isSuccess) {
|
||||
print("DEBUG: _getMainPageContent success");
|
||||
content = MainPageContent.fromJson(service.result);
|
||||
print("DEBUG: _getMainPageContent service.result: ${service.result}");
|
||||
unread = service.result['unread'];
|
||||
print("DEBUG: __getMainPageContent unread: $unread, content: $content");
|
||||
notifyListeners();
|
||||
} else {
|
||||
print("DEBUG: _getMainPageContent failed state");
|
||||
notifyListeners();
|
||||
throw Exception('Failed to load main page content');
|
||||
}
|
||||
}
|
||||
|
|
@ -43,14 +50,14 @@ class MainPageState extends CoreProvier {
|
|||
try {
|
||||
swotItems = await SwotService.fetchSwotItems();
|
||||
} catch (e) {
|
||||
|
||||
print(e);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _fetchStories() async {
|
||||
try {
|
||||
stories = await StoryService.getStories();
|
||||
print("Fetched ${stories.length} stories.");
|
||||
// print("Fetched ${stories.length} stories.");
|
||||
} catch (e) {
|
||||
stories = [];
|
||||
debugPrint("Could not fetch stories: $e");
|
||||
|
|
@ -58,6 +65,7 @@ class MainPageState extends CoreProvier {
|
|||
}
|
||||
|
||||
void init() {
|
||||
print("DEBUG: MainPageState init called");
|
||||
Future.delayed(Duration.zero, () async {
|
||||
appState = AppState.busy;
|
||||
try {
|
||||
|
|
@ -71,6 +79,7 @@ class MainPageState extends CoreProvier {
|
|||
appState = AppState.failed;
|
||||
}
|
||||
});
|
||||
_getMainPageContent();
|
||||
}
|
||||
|
||||
void markChangeHandler(String type, int id, bool value) {
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@ class _SplashState extends State<Splash> {
|
|||
await ServerDataProvider.getData();
|
||||
}
|
||||
|
||||
print("token route is $token");
|
||||
print("token route is $token, initalURI.path: ${initialURI?.path}, intitlPath: ${initialURI?.path}");
|
||||
String extractedPath = initialURI?.path.toString() == '/' ? Routes.home : initialURI?.path.toString() ?? Routes.home;
|
||||
final String destinationRoute = token == null ? Routes.authenticaion : extractedPath;
|
||||
dynamic routeArguments = token == null ? {'isResetPassword': false} : {'showDialogs': true};
|
||||
|
|
@ -143,7 +143,7 @@ class _SplashState extends State<Splash> {
|
|||
|
||||
if (destinationRoute == Routes.home) {
|
||||
print("destination route was home and init uri is $initialURI");
|
||||
(routeArguments as Map)['deepLinkUri'] = initialURI;
|
||||
// (routeArguments as Map)['deepLinkUri'] = initialURI;
|
||||
initialURI = null;
|
||||
}
|
||||
|
||||
|
|
@ -155,7 +155,7 @@ class _SplashState extends State<Splash> {
|
|||
print("destination route: $destinationRoute, route args: $routeArguments");
|
||||
await navigatorKey.currentState!.pushReplacementNamed(
|
||||
destinationRoute,
|
||||
arguments: routeArguments,
|
||||
arguments: token == null ? false : null,
|
||||
);
|
||||
} catch (e) {
|
||||
setState(() {
|
||||
|
|
|
|||
Loading…
Reference in New Issue