Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
G
gm_flutter
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
林生雨
gm_flutter
Commits
376e160a
Commit
376e160a
authored
Jul 13, 2020
by
林生雨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
w
parent
0e864ab7
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
80 additions
and
59 deletions
+80
-59
LevelOneItem.dart
lib/ClueModel/page/levelOne/LevelOneItem.dart
+0
-0
LevelOneList.dart
lib/ClueModel/page/levelOne/LevelOneList.dart
+29
-22
LevelOnePage.dart
lib/ClueModel/page/levelOne/LevelOnePage.dart
+16
-13
LevelTwoPage.dart
lib/ClueModel/page/levelTwo/LevelTwoPage.dart
+9
-10
PlanItem.dart
lib/ClueModel/page/plan/PlanItem.dart
+1
-1
TopPage.dart
lib/ClueModel/page/top/TopPage.dart
+2
-2
BaseComponent.dart
lib/commonModel/base/BaseComponent.dart
+22
-10
main.dart
lib/main.dart
+1
-1
No files found.
lib/ClueModel/page/levelOne/LevelOneItem.dart
View file @
376e160a
This diff is collapsed.
Click to expand it.
lib/ClueModel/page/levelOne/LevelOneList.dart
View file @
376e160a
...
@@ -101,8 +101,11 @@ class LevelOneListState extends State<LevelOneList>
...
@@ -101,8 +101,11 @@ class LevelOneListState extends State<LevelOneList>
color:
Color
(
0xffF7F6FA
),
color:
Color
(
0xffF7F6FA
),
);
);
}
}
return
LevelOneItem
(
return
Container
(
color:
Colors
.
white
,
child:
LevelOneItem
(
_model
.
data
[
index
],
_model
.
data
[
index
],
allSize:
_model
.
data
.
length
,
lowPrice:
()
{
lowPrice:
()
{
if
(
CacheManager
.
getInstance
()
if
(
CacheManager
.
getInstance
()
.
get
(
MEMORY_CACHE
)
.
get
(
MEMORY_CACHE
)
...
@@ -111,19 +114,18 @@ class LevelOneListState extends State<LevelOneList>
...
@@ -111,19 +114,18 @@ class LevelOneListState extends State<LevelOneList>
RouterCenterImpl
()
RouterCenterImpl
()
.
findMainRouter
()
.
findMainRouter
()
.
isWithNative
())
{
.
isWithNative
())
{
RouterCenterImpl
()
RouterCenterImpl
().
findMainRouter
().
jumpPage
(
.
findMainRouter
()
context
,
"show_login"
,
null
,
true
);
.
jumpPage
(
context
,
"show_login"
,
null
,
true
);
return
;
return
;
}
}
var
data2
=
_model
.
data
[
index
];
var
data2
=
_model
.
data
[
index
];
if
(
data2
.
cardType
==
"doctor"
)
{
if
(
data2
.
cardType
==
"doctor"
)
{
buried_on_click_button
(
index
,
"bargain"
,
"doctor
"
,
buried_on_click_button
(
index
,
"bargain
"
,
data2
.
doctor
.
doctor_id
);
"doctor"
,
data2
.
doctor
.
doctor_id
);
}
else
if
(
data2
.
cardType
==
"hospital"
)
{
}
else
if
(
data2
.
cardType
==
"hospital"
)
{
buried_on_click_button
(
index
,
"bargain"
,
"hospital
"
,
buried_on_click_button
(
index
,
"bargain
"
,
data2
.
hospital
.
hosiptalId
);
"hospital"
,
data2
.
hospital
.
hosiptalId
);
}
else
if
(
data2
.
cardType
==
"plan"
)
{
}
else
if
(
data2
.
cardType
==
"plan"
)
{
buried_on_click_button
(
index
,
"bargain"
,
buried_on_click_button
(
index
,
"bargain"
,
"level_two_plan"
,
"
${data2.plan.plan_id}
"
);
"level_two_plan"
,
"
${data2.plan.plan_id}
"
);
...
@@ -146,19 +148,25 @@ class LevelOneListState extends State<LevelOneList>
...
@@ -146,19 +148,25 @@ class LevelOneListState extends State<LevelOneList>
NativeToast
.
showNativeToast
(
"该机构未开通私信功能"
);
NativeToast
.
showNativeToast
(
"该机构未开通私信功能"
);
return
;
return
;
}
}
buried_on_click_button
(
index
,
"consult"
,
"doctor
"
,
buried_on_click_button
(
index
,
"consult
"
,
data2
.
doctor
.
doctor_id
);
"doctor"
,
data2
.
doctor
.
doctor_id
);
RouterCenterImpl
().
findMainRouter
().
jumpPage
(
RouterCenterImpl
().
findMainRouter
().
jumpPage
(
context
,
data2
.
doctor
.
messageUrl
,
null
,
true
);
context
,
data2
.
doctor
.
messageUrl
,
null
,
true
);
}
else
if
(
data2
.
cardType
==
"hospital"
)
{
}
else
if
(
data2
.
cardType
==
"hospital"
)
{
if
(!
data2
.
hospital
.
accept_private_msg
)
{
if
(!
data2
.
hospital
.
accept_private_msg
)
{
NativeToast
.
showNativeToast
(
"该机构未开通私信功能"
);
NativeToast
.
showNativeToast
(
"该机构未开通私信功能"
);
return
;
return
;
}
}
buried_on_click_button
(
index
,
"consult"
,
"hospital
"
,
buried_on_click_button
(
index
,
"consult
"
,
data2
.
hospital
.
hosiptalId
);
"hospital"
,
data2
.
hospital
.
hosiptalId
);
RouterCenterImpl
().
findMainRouter
().
jumpPage
(
RouterCenterImpl
().
findMainRouter
().
jumpPage
(
context
,
data2
.
hospital
.
messageUrl
,
null
,
true
);
context
,
data2
.
hospital
.
messageUrl
,
null
,
true
);
}
else
if
(
data2
.
cardType
==
"plan"
)
{
}
else
if
(
data2
.
cardType
==
"plan"
)
{
if
(
CacheManager
.
getInstance
()
if
(
CacheManager
.
getInstance
()
.
get
(
MEMORY_CACHE
)
.
get
(
MEMORY_CACHE
)
...
@@ -167,9 +175,8 @@ class LevelOneListState extends State<LevelOneList>
...
@@ -167,9 +175,8 @@ class LevelOneListState extends State<LevelOneList>
RouterCenterImpl
()
RouterCenterImpl
()
.
findMainRouter
()
.
findMainRouter
()
.
isWithNative
())
{
.
isWithNative
())
{
RouterCenterImpl
()
RouterCenterImpl
().
findMainRouter
().
jumpPage
(
.
findMainRouter
()
context
,
"show_login"
,
null
,
true
);
.
jumpPage
(
context
,
"show_login"
,
null
,
true
);
return
;
return
;
}
}
buried_on_click_button
(
index
,
"consult"
,
buried_on_click_button
(
index
,
"consult"
,
...
@@ -183,11 +190,11 @@ class LevelOneListState extends State<LevelOneList>
...
@@ -183,11 +190,11 @@ class LevelOneListState extends State<LevelOneList>
compare:
(
int
planId
)
{
compare:
(
int
planId
)
{
var
data2
=
_model
.
data
[
index
];
var
data2
=
_model
.
data
[
index
];
if
(
data2
.
cardType
==
"doctor"
)
{
if
(
data2
.
cardType
==
"doctor"
)
{
buried_on_click_button
(
index
,
"compare"
,
"doctor
"
,
buried_on_click_button
(
index
,
"compare
"
,
data2
.
doctor
.
doctor_id
);
"doctor"
,
data2
.
doctor
.
doctor_id
);
}
else
if
(
data2
.
cardType
==
"hospital"
)
{
}
else
if
(
data2
.
cardType
==
"hospital"
)
{
buried_on_click_button
(
index
,
"compare"
,
"hospital
"
,
buried_on_click_button
(
index
,
"compare
"
,
data2
.
hospital
.
hosiptalId
);
"hospital"
,
data2
.
hospital
.
hosiptalId
);
}
else
if
(
data2
.
cardType
==
"plan"
)
{
}
else
if
(
data2
.
cardType
==
"plan"
)
{
buried_on_click_button
(
index
,
"compare"
,
buried_on_click_button
(
index
,
"compare"
,
"level_two_plan"
,
"
${data2.plan.plan_id}
"
);
"level_two_plan"
,
"
${data2.plan.plan_id}
"
);
...
@@ -209,7 +216,7 @@ class LevelOneListState extends State<LevelOneList>
...
@@ -209,7 +216,7 @@ class LevelOneListState extends State<LevelOneList>
},
},
tabName:
widget
.
tabName
,
tabName:
widget
.
tabName
,
position:
index
,
position:
index
,
);
)
);
},
},
childCount:
_model
.
data
.
length
+
1
,
childCount:
_model
.
data
.
length
+
1
,
),
),
...
...
lib/ClueModel/page/levelOne/LevelOnePage.dart
View file @
376e160a
...
@@ -221,7 +221,8 @@ class LevelOneState extends BaseState<LevelOnePage>
...
@@ -221,7 +221,8 @@ class LevelOneState extends BaseState<LevelOnePage>
SliverOverlapAbsorber
(
SliverOverlapAbsorber
(
handle:
extend
.
NestedScrollView
.
sliverOverlapAbsorberHandleFor
(
handle:
extend
.
NestedScrollView
.
sliverOverlapAbsorberHandleFor
(
context
),
context
),
sliver:
baseSliverAppBar
(
_model
.
imageUrl
)),
sliver:
baseSliverAppBar
(
_model
.
imageUrl
,
height:
ScreenUtil
().
setHeight
(
200
))),
SliverList
(
SliverList
(
delegate:
SliverChildBuilderDelegate
((
BuildContext
c
,
int
i
)
{
delegate:
SliverChildBuilderDelegate
((
BuildContext
c
,
int
i
)
{
if
(
i
==
0
)
{
if
(
i
==
0
)
{
...
@@ -246,15 +247,17 @@ class LevelOneState extends BaseState<LevelOnePage>
...
@@ -246,15 +247,17 @@ class LevelOneState extends BaseState<LevelOnePage>
),
),
];
];
},
},
body:
TabBarView
(
controller:
tabController
,
children:
list
));
body:
Container
(
color:
Color
(
0xffF7F6FA
),
child:
TabBarView
(
controller:
tabController
,
children:
list
)));
}
}
List
<
Widget
>
getTabs
()
{
List
<
Widget
>
getTabs
()
{
List
<
Widget
>
list
=
[];
List
<
Widget
>
list
=
[];
for
(
int
i
=
0
;
i
<
_model
.
tabsList
.
length
;
i
++)
{
for
(
int
i
=
0
;
i
<
_model
.
tabsList
.
length
;
i
++)
{
list
.
add
(
baseTabBarItem
(
_model
.
tabsList
[
i
].
name
,
list
.
add
(
baseTabBarItem
(
_model
.
tabsList
[
i
].
name
,
leftPadding:
i
==
0
?
2
4
:
28
,
leftPadding:
i
==
0
?
2
1.5
:
14
,
rightPadding:
i
==
_model
.
tabsList
.
length
-
1
?
2
4
:
28
));
rightPadding:
i
==
_model
.
tabsList
.
length
-
1
?
2
1.5
:
14
));
}
}
return
list
;
return
list
;
}
}
...
@@ -283,7 +286,7 @@ class LevelOneState extends BaseState<LevelOnePage>
...
@@ -283,7 +286,7 @@ class LevelOneState extends BaseState<LevelOnePage>
return
Container
(
return
Container
(
width:
MediaQuery
.
of
(
context
).
size
.
width
,
width:
MediaQuery
.
of
(
context
).
size
.
width
,
height:
54
,
height:
54
,
margin:
EdgeInsets
.
only
(
top:
1
4
,
bottom:
12
),
margin:
EdgeInsets
.
only
(
top:
1
9
,
bottom:
12
),
child:
Stack
(
child:
Stack
(
children:
<
Widget
>[
children:
<
Widget
>[
Positioned
(
Positioned
(
...
@@ -293,7 +296,7 @@ class LevelOneState extends BaseState<LevelOnePage>
...
@@ -293,7 +296,7 @@ class LevelOneState extends BaseState<LevelOnePage>
bold:
true
),
bold:
true
),
),
),
Positioned
(
Positioned
(
bottom:
6
,
bottom:
3.5
,
left:
15
,
left:
15
,
child:
Container
(
child:
Container
(
width:
MediaQuery
.
of
(
context
).
size
.
width
-
30
-
100
,
width:
MediaQuery
.
of
(
context
).
size
.
width
-
30
-
100
,
...
@@ -411,11 +414,9 @@ class LevelOneState extends BaseState<LevelOnePage>
...
@@ -411,11 +414,9 @@ class LevelOneState extends BaseState<LevelOnePage>
Widget
explain
()
{
Widget
explain
()
{
List
<
Widget
>
list
=
[];
List
<
Widget
>
list
=
[];
list
.
add
(
Container
(
list
.
add
(
Row
(
height:
31
,
child:
Row
(
children:
<
Widget
>[
children:
<
Widget
>[
baseText
(
"项目说明"
,
15
,
Color
(
0xff282828
)
),
baseText
(
"项目说明"
,
15
,
Color
(
0xff282828
),
bold:
true
),
Expanded
(
Expanded
(
child:
Container
(),
child:
Container
(),
),
),
...
@@ -434,12 +435,14 @@ class LevelOneState extends BaseState<LevelOnePage>
...
@@ -434,12 +435,14 @@ class LevelOneState extends BaseState<LevelOnePage>
child:
baseText
(
"了解更多"
,
12
,
Color
(
0xff3FB5AF
)),
child:
baseText
(
"了解更多"
,
12
,
Color
(
0xff3FB5AF
)),
)
)
],
],
),
));
list
.
add
(
Container
(
height:
11
,
));
));
if
(
_model
.
planoverItem
!=
null
)
{
if
(
_model
.
planoverItem
!=
null
)
{
_model
.
planoverItem
.
explanationAttrs
.
forEach
((
element
)
{
_model
.
planoverItem
.
explanationAttrs
.
forEach
((
element
)
{
list
.
add
(
Container
(
list
.
add
(
Container
(
margin:
EdgeInsets
.
only
(
bottom:
1
5
),
margin:
EdgeInsets
.
only
(
bottom:
1
0
),
child:
Row
(
child:
Row
(
children:
<
Widget
>[
children:
<
Widget
>[
Container
(
Container
(
...
@@ -489,7 +492,7 @@ class LevelOneState extends BaseState<LevelOnePage>
...
@@ -489,7 +492,7 @@ class LevelOneState extends BaseState<LevelOnePage>
});
});
}
}
return
Container
(
return
Container
(
margin:
EdgeInsets
.
only
(
left:
15
,
right:
15
,
bottom:
20
),
margin:
EdgeInsets
.
only
(
left:
15
,
right:
15
,
bottom:
9
),
child:
Column
(
child:
Column
(
mainAxisSize:
MainAxisSize
.
min
,
mainAxisSize:
MainAxisSize
.
min
,
children:
list
,
children:
list
,
...
...
lib/ClueModel/page/levelTwo/LevelTwoPage.dart
View file @
376e160a
...
@@ -256,8 +256,8 @@ class LevelTwoState extends BaseState<LevelTwoPage>
...
@@ -256,8 +256,8 @@ class LevelTwoState extends BaseState<LevelTwoPage>
List
<
Widget
>
list
=
[];
List
<
Widget
>
list
=
[];
for
(
int
i
=
0
;
i
<
_model
.
tabsList
.
length
;
i
++)
{
for
(
int
i
=
0
;
i
<
_model
.
tabsList
.
length
;
i
++)
{
list
.
add
(
baseTabBarItem
(
_model
.
tabsList
[
i
].
name
,
list
.
add
(
baseTabBarItem
(
_model
.
tabsList
[
i
].
name
,
leftPadding:
i
==
0
?
2
4
:
28
,
leftPadding:
i
==
0
?
2
1.5
:
14
,
rightPadding:
i
==
_model
.
tabsList
.
length
-
1
?
2
4
:
28
));
rightPadding:
i
==
_model
.
tabsList
.
length
-
1
?
2
1.5
:
14
));
}
}
return
list
;
return
list
;
}
}
...
@@ -372,7 +372,7 @@ class LevelTwoState extends BaseState<LevelTwoPage>
...
@@ -372,7 +372,7 @@ class LevelTwoState extends BaseState<LevelTwoPage>
),
),
width:
double
.
maxFinite
,
width:
double
.
maxFinite
,
height:
62
,
height:
62
,
margin:
EdgeInsets
.
only
(
left:
15
,
right:
15
,
bottom:
1
2
),
margin:
EdgeInsets
.
only
(
left:
15
,
right:
15
,
bottom:
1
7
),
child:
Row
(
child:
Row
(
crossAxisAlignment:
CrossAxisAlignment
.
center
,
crossAxisAlignment:
CrossAxisAlignment
.
center
,
children:
list
,
children:
list
,
...
@@ -382,12 +382,9 @@ class LevelTwoState extends BaseState<LevelTwoPage>
...
@@ -382,12 +382,9 @@ class LevelTwoState extends BaseState<LevelTwoPage>
Widget
explain
()
{
Widget
explain
()
{
List
<
Widget
>
list
=
[];
List
<
Widget
>
list
=
[];
list
.
add
(
Container
(
list
.
add
(
Row
(
margin:
EdgeInsets
.
only
(
bottom:
4
),
height:
31
,
child:
Row
(
children:
<
Widget
>[
children:
<
Widget
>[
baseText
(
"项目说明"
,
15
,
Color
(
0xff282828
),
bold:
true
),
baseText
(
"项目说明"
,
15
,
Color
(
0xff282828
),
bold:
true
),
Expanded
(
Expanded
(
child:
Container
(),
child:
Container
(),
),
),
...
@@ -406,7 +403,9 @@ class LevelTwoState extends BaseState<LevelTwoPage>
...
@@ -406,7 +403,9 @@ class LevelTwoState extends BaseState<LevelTwoPage>
child:
baseText
(
"了解更多"
,
12
,
Color
(
0xff3FB5AF
)),
child:
baseText
(
"了解更多"
,
12
,
Color
(
0xff3FB5AF
)),
)
)
],
],
),
));
list
.
add
(
Container
(
height:
11
,
));
));
if
(
_model
.
planoverItem
!=
null
)
{
if
(
_model
.
planoverItem
!=
null
)
{
_model
.
planoverItem
.
explanationAttrs
.
forEach
((
element
)
{
_model
.
planoverItem
.
explanationAttrs
.
forEach
((
element
)
{
...
@@ -456,7 +455,7 @@ class LevelTwoState extends BaseState<LevelTwoPage>
...
@@ -456,7 +455,7 @@ class LevelTwoState extends BaseState<LevelTwoPage>
});
});
}
}
return
Container
(
return
Container
(
margin:
EdgeInsets
.
only
(
left:
15
,
right:
15
,
bottom:
3
),
margin:
EdgeInsets
.
only
(
left:
15
,
right:
15
,
bottom:
9
),
child:
Column
(
child:
Column
(
mainAxisSize:
MainAxisSize
.
min
,
mainAxisSize:
MainAxisSize
.
min
,
children:
list
,
children:
list
,
...
...
lib/ClueModel/page/plan/PlanItem.dart
View file @
376e160a
...
@@ -139,7 +139,7 @@ class PlanItem extends StatelessWidget {
...
@@ -139,7 +139,7 @@ class PlanItem extends StatelessWidget {
left:
91
,
left:
91
,
bottom:
12
,
bottom:
12
,
child:
Container
(
child:
Container
(
width:
MediaQuery
.
of
(
context
).
size
.
width
-
30
-
91
-
10
,
width:
MediaQuery
.
of
(
context
).
size
.
width
-
30
-
91
-
4
,
child:
Row
(
child:
Row
(
textBaseline:
TextBaseline
.
alphabetic
,
textBaseline:
TextBaseline
.
alphabetic
,
crossAxisAlignment:
CrossAxisAlignment
.
baseline
,
crossAxisAlignment:
CrossAxisAlignment
.
baseline
,
...
...
lib/ClueModel/page/top/TopPage.dart
View file @
376e160a
...
@@ -199,8 +199,8 @@ class TopPageState extends BaseState<TopPage> with TickerProviderStateMixin {
...
@@ -199,8 +199,8 @@ class TopPageState extends BaseState<TopPage> with TickerProviderStateMixin {
List
<
Widget
>
list
=
[];
List
<
Widget
>
list
=
[];
for
(
int
i
=
0
;
i
<
_model
.
tabs
.
length
;
i
++)
{
for
(
int
i
=
0
;
i
<
_model
.
tabs
.
length
;
i
++)
{
list
.
add
(
baseTabBarItem
(
_model
.
tabs
[
i
].
name
,
list
.
add
(
baseTabBarItem
(
_model
.
tabs
[
i
].
name
,
leftPadding:
i
==
0
?
2
4
:
28
,
leftPadding:
i
==
0
?
2
1.5
:
14
,
rightPadding:
i
==
_model
.
tabs
.
length
-
1
?
2
4
:
28
));
rightPadding:
i
==
_model
.
tabs
.
length
-
1
?
2
1.5
:
14
));
}
}
return
list
;
return
list
;
}
}
...
...
lib/commonModel/base/BaseComponent.dart
View file @
376e160a
...
@@ -458,17 +458,30 @@ Widget baseTabBar(
...
@@ -458,17 +458,30 @@ Widget baseTabBar(
Widget
baseTabBarItem
(
String
text
,
Widget
baseTabBarItem
(
String
text
,
{
double
leftPadding
,
double
rightPadding
,
double
wantWidth
})
{
{
double
leftPadding
,
double
rightPadding
,
double
wantWidth
})
{
leftPadding
=
leftPadding
??
28.0
;
leftPadding
=
leftPadding
??
14.0
;
rightPadding
=
rightPadding
??
28.0
;
rightPadding
=
rightPadding
??
14.0
;
double
width
=
leftPadding
+
text
.
length
*
16.0
+
rightPadding
;
return
Row
(
return
Container
(
mainAxisSize:
MainAxisSize
.
min
,
height:
40.0
,
children:
<
Widget
>[
width:
wantWidth
??
width
,
Container
(
alignment:
Alignment
.
center
,
width:
leftPadding
,
child:
Tab
(
),
Tab
(
text:
text
,
text:
text
,
),
),
Container
(
width:
rightPadding
,
)
],
);
);
// Container(
// height: 40.0,
// width: wantWidth ?? width,
// alignment: Alignment.center,
// child: Tab(
// text: text,
// ),
// );
}
}
Widget
baseSliverAppBar
(
String
url
,
Widget
baseSliverAppBar
(
String
url
,
...
@@ -485,8 +498,7 @@ Widget baseSliverAppBar(String url,
...
@@ -485,8 +498,7 @@ Widget baseSliverAppBar(String url,
imageUrl:
url
??
''
,
imageUrl:
url
??
''
,
fit:
BoxFit
.
cover
,
fit:
BoxFit
.
cover
,
)
)
:
Container
(
:
Container
(),
),
),
),
);
);
}
}
...
...
lib/main.dart
View file @
376e160a
...
@@ -120,7 +120,7 @@ class Home extends StatefulWidget {
...
@@ -120,7 +120,7 @@ class Home extends StatefulWidget {
class
HomeState
extends
State
<
Home
>
{
class
HomeState
extends
State
<
Home
>
{
@override
@override
Widget
build
(
BuildContext
context
)
{
Widget
build
(
BuildContext
context
)
{
ScreenUtil
.
init
(
context
,
width:
375
,
height:
810
);
ScreenUtil
.
init
(
context
,
width:
375
,
height:
667
);
return
isDebug
return
isDebug
?
RouterCenterImpl
().
findMainRouter
().
getTestPage
()
?
RouterCenterImpl
().
findMainRouter
().
getTestPage
()
:
Container
(
:
Container
(
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment