Toggle navigation
Toggle navigation
This project
Loading...
Sign in
flutter_package
/
fluttertpc_get
Go to a project
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
Jonny Borges
2021-07-21 07:02:24 -0300
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
79bda64c3a4552064c3a3043677c3dc87f3a0178
79bda64c
1 parent
51143c07
add arguments and parameters to getdelegate
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
43 additions
and
25 deletions
example/lib/pages/home/presentation/controllers/home_controller.dart
example/lib/pages/home/presentation/views/country_view.dart
example/lib/pages/home/presentation/views/details_view.dart
example_nav2/lib/app/modules/login/views/login_view.dart
lib/get_navigation/src/nav2/get_router_delegate.dart
lib/get_navigation/src/root/parse_route.dart
lib/get_navigation/src/routes/get_route.dart
lib/get_navigation/src/routes/observers/route_observer.dart
lib/get_navigation/src/routes/route_middleware.dart
test/navigation/parse_route_test.dart
example/lib/pages/home/presentation/controllers/home_controller.dart
View file @
79bda64
...
...
@@ -16,6 +16,15 @@ class HomeController extends SuperController<CasesModel> {
append
(()
=>
homeRepository
.
getCases
);
}
Country
getCountryById
(
String
id
)
{
final
index
=
int
.
tryParse
(
id
);
if
(
index
!=
null
)
{
return
state
!.
countries
[
index
];
}
return
state
!.
countries
.
first
;
}
@override
void
onReady
()
{
print
(
'The build method is done. '
...
...
example/lib/pages/home/presentation/views/country_view.dart
View file @
79bda64
...
...
@@ -34,8 +34,8 @@ class CountryView extends GetView<HomeController> {
return
ListTile
(
onTap:
()
{
//Get.rootDelegate.toNamed('/home/country');
Get
.
rootDelegate
.
toNamed
(
'/home/country/details'
,
arguments:
country
);
Get
.
rootDelegate
.
offNamed
(
'/home/country/details?id=
$index
'
);
},
trailing:
CircleAvatar
(
backgroundImage:
NetworkImage
(
...
...
example/lib/pages/home/presentation/views/details_view.dart
View file @
79bda64
...
...
@@ -2,13 +2,13 @@ import 'dart:ui';
import
'package:flutter/material.dart'
;
import
'package:get/get.dart'
;
import
'../controllers/home_controller.dart'
;
import
'../../domain/entity/cases_model.dart'
;
class
DetailsView
extends
StatelessWidget
{
class
DetailsView
extends
GetView
<
HomeController
>
{
@override
Widget
build
(
BuildContext
context
)
{
final
country
=
Get
.
rootDelegate
.
arguments
<
Country
>();
final
parameter
=
Get
.
rootDelegate
.
parameters
;
final
country
=
controller
.
getCountryById
(
parameter
[
'id'
]
??
''
);
return
Container
(
decoration:
BoxDecoration
(
image:
DecorationImage
(
...
...
example_nav2/lib/app/modules/login/views/login_view.dart
View file @
79bda64
...
...
@@ -32,7 +32,7 @@ class LoginView extends GetView<LoginController> {
onPressed:
()
{
AuthService
.
to
.
login
();
final
thenTo
=
Get
.
rootDelegate
.
currentConfiguration
!
.
currentPage
!.
parameter
?[
'then'
];
.
currentPage
!.
parameter
s
?[
'then'
];
Get
.
rootDelegate
.
offNamed
(
thenTo
??
Routes
.
HOME
);
},
),
...
...
lib/get_navigation/src/nav2/get_router_delegate.dart
View file @
79bda64
...
...
@@ -112,6 +112,10 @@ class GetDelegate extends RouterDelegate<GetNavConfig>
return
currentConfiguration
?.
currentPage
?.
arguments
as
T
;
}
Map
<
String
,
String
>
get
parameters
{
return
currentConfiguration
?.
currentPage
?.
parameters
??
{};
}
// void _unsafeHistoryClear() {
// history.clear();
// }
...
...
@@ -144,7 +148,7 @@ class GetDelegate extends RouterDelegate<GetNavConfig>
if
(
originalEntryIndex
>=
0
)
{
switch
(
preventDuplicateHandlingMode
)
{
case
PreventDuplicateHandlingMode
.
PopUntilOriginalRoute
:
u
ntil
(
config
.
location
!,
popMode:
PopMode
.
Page
);
backU
ntil
(
config
.
location
!,
popMode:
PopMode
.
Page
);
break
;
case
PreventDuplicateHandlingMode
.
ReorderRoutes
:
_unsafeHistoryRemoveAt
(
originalEntryIndex
);
...
...
@@ -231,7 +235,7 @@ class GetDelegate extends RouterDelegate<GetNavConfig>
}
bool
_canPopHistory
()
{
return
history
.
length
>
1
;
return
history
.
length
>
0
;
}
Future
<
bool
>
canPopHistory
()
{
...
...
@@ -324,7 +328,6 @@ class GetDelegate extends RouterDelegate<GetNavConfig>
}
final
decoder
=
Get
.
routeTree
.
matchRoute
(
page
,
arguments:
arguments
);
Get
.
parameters
=
decoder
.
parameters
;
decoder
.
replaceArguments
(
arguments
);
return
pushHistory
<
T
>(
...
...
@@ -345,7 +348,7 @@ class GetDelegate extends RouterDelegate<GetNavConfig>
/// Removes routes according to [PopMode]
/// until it reaches the specifc [fullRoute],
/// DOES NOT remove the [fullRoute]
void
u
ntil
(
void
backU
ntil
(
String
fullRoute
,
{
PopMode
popMode
=
PopMode
.
Page
,
})
{
...
...
lib/get_navigation/src/root/parse_route.dart
View file @
79bda64
...
...
@@ -18,6 +18,14 @@ class RouteDecoder {
treeBranch
[
index
]
=
_route
.
copy
(
arguments:
arguments
);
}
}
void
replaceParameters
(
Object
?
arguments
)
{
final
_route
=
route
;
if
(
_route
!=
null
)
{
final
index
=
treeBranch
.
indexOf
(
_route
);
treeBranch
[
index
]
=
_route
.
copy
(
parameters:
parameters
);
}
}
}
class
ParseRouteTree
{
...
...
@@ -62,8 +70,8 @@ class ParseRouteTree {
final
mappedTreeBranch
=
treeBranch
.
map
(
(
e
)
=>
e
.
value
.
copy
(
parameter:
{
if
(
e
.
value
.
parameter
!=
null
)
...
e
.
value
.
parameter
!,
parameters:
{
if
(
e
.
value
.
parameters
!=
null
)
...
e
.
value
.
parameters
!,
...
params
,
},
name:
e
.
key
,
...
...
lib/get_navigation/src/routes/get_route.dart
View file @
79bda64
...
...
@@ -30,7 +30,7 @@ class PathDecoded {
class
GetPage
<
T
>
extends
Page
<
T
>
{
final
GetPageBuilder
page
;
final
bool
?
popGesture
;
final
Map
<
String
,
String
>?
parameter
;
final
Map
<
String
,
String
>?
parameter
s
;
final
String
?
title
;
final
Transition
?
transition
;
final
Curve
curve
;
...
...
@@ -72,7 +72,7 @@ class GetPage<T> extends Page<T> {
this
.
maintainState
=
true
,
this
.
curve
=
Curves
.
linear
,
this
.
alignment
,
this
.
parameter
,
this
.
parameter
s
,
this
.
opaque
=
true
,
this
.
transitionDuration
,
this
.
popGesture
,
...
...
@@ -119,7 +119,7 @@ class GetPage<T> extends Page<T> {
String
?
name
,
GetPageBuilder
?
page
,
bool
?
popGesture
,
Map
<
String
,
String
>?
parameter
,
Map
<
String
,
String
>?
parameter
s
,
String
?
title
,
Transition
?
transition
,
Curve
?
curve
,
...
...
@@ -147,7 +147,7 @@ class GetPage<T> extends Page<T> {
name:
name
??
this
.
name
,
page:
page
??
this
.
page
,
popGesture:
popGesture
??
this
.
popGesture
,
parameter
:
parameter
??
this
.
parameter
,
parameter
s:
parameters
??
this
.
parameters
,
title:
title
??
this
.
title
,
transition:
transition
??
this
.
transition
,
curve:
curve
??
this
.
curve
,
...
...
lib/get_navigation/src/routes/observers/route_observer.dart
View file @
79bda64
...
...
@@ -196,7 +196,6 @@ class GetObserver extends NavigatorObserver {
value
.
isDialog
=
currentRoute
.
isDialog
?
false
:
value
.
isDialog
;
});
if
(
oldRoute
is
GetPageRoute
)
{
print
(
oldRoute
.
reference
);
GetInstance
().
reloadDependencyByRoute
(
oldRoute
.
reference
);
}
...
...
@@ -223,7 +222,6 @@ class GetObserver extends NavigatorObserver {
});
if
(
route
is
GetPageRoute
)
{
print
(
route
.
reference
);
GetInstance
().
reloadDependencyByRoute
(
route
.
reference
);
}
routing
?.
call
(
_routeSend
);
...
...
lib/get_navigation/src/routes/route_middleware.dart
View file @
79bda64
...
...
@@ -196,7 +196,7 @@ class PageRedirect {
final
_r
=
(
isUnknown
?
unknownRoute
:
route
)!;
return
GetPageRoute
<
T
>(
page:
_r
.
page
,
parameter:
_r
.
parameter
,
parameter:
_r
.
parameter
s
,
settings:
isUnknown
?
RouteSettings
(
name:
_r
.
name
,
...
...
@@ -225,7 +225,7 @@ class PageRedirect {
return
GetPageRoute
<
T
>(
page:
_r
.
page
,
parameter:
_r
.
parameter
,
parameter:
_r
.
parameter
s
,
alignment:
_r
.
alignment
,
title:
_r
.
title
,
maintainState:
_r
.
maintainState
,
...
...
@@ -277,10 +277,10 @@ class PageRedirect {
}
void
addPageParameter
(
GetPage
route
)
{
if
(
route
.
parameter
==
null
)
return
;
if
(
route
.
parameter
s
==
null
)
return
;
final
parameters
=
Get
.
parameters
;
parameters
.
addEntries
(
route
.
parameter
!.
entries
);
parameters
.
addEntries
(
route
.
parameter
s
!.
entries
);
Get
.
parameters
=
parameters
;
}
}
...
...
test/navigation/parse_route_test.dart
View file @
79bda64
...
...
@@ -25,7 +25,7 @@ void main() {
GetPage
(
name:
'/pen'
,
page:
()
=>
Container
(),
parameter:
testParams
,
parameter
s
:
testParams
,
),
GetPage
(
name:
'/paper'
,
page:
()
=>
Container
()),
],
...
...
@@ -48,7 +48,7 @@ void main() {
final
match
=
tree
.
matchRoute
(
searchRoute
);
expect
(
match
,
isNotNull
);
expect
(
match
.
route
!.
name
,
searchRoute
);
final
testRouteParam
=
match
.
route
!.
parameter
!;
final
testRouteParam
=
match
.
route
!.
parameter
s
!;
for
(
final
tParam
in
testParams
.
entries
)
{
expect
(
testRouteParam
[
tParam
.
key
],
tParam
.
value
);
}
...
...
Please
register
or
login
to post a comment