Skip to content

Commit

Permalink
Enhancing UX for adding content (PalisadoesFoundation#2213)
Browse files Browse the repository at this point in the history
* Enhancing UX for adding content

* resolving asked changes

* fixing constant sizing
  • Loading branch information
Dante291 authored and palisadian committed Jan 10, 2024
1 parent db51896 commit 313e7e2
Show file tree
Hide file tree
Showing 8 changed files with 67 additions and 19 deletions.
3 changes: 3 additions & 0 deletions lib/constants/routing_constants.dart
Original file line number Diff line number Diff line change
Expand Up @@ -99,4 +99,7 @@ class Routes {

/// static variable to access pinnedpostscreen.
static const String pinnedPostScreen = '/pinnedpostscreen';

/// static variable to access addPostScreen.
static const String addPostScreen = '/addpostscreen';
}
9 changes: 8 additions & 1 deletion lib/router.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import 'package:talawa/models/task/task_model.dart';
import 'package:talawa/splash_screen.dart';
import 'package:talawa/view_model/after_auth_view_models/chat_view_models/direct_chat_view_model.dart';
import 'package:talawa/view_model/after_auth_view_models/event_view_models/create_event_view_model.dart';
import 'package:talawa/views/after_auth_screens/add_post_page.dart';
import 'package:talawa/views/after_auth_screens/app_settings/app_settings_page.dart';
import 'package:talawa/views/after_auth_screens/chat/chat_message_screen.dart';
import 'package:talawa/views/after_auth_screens/chat/select_contact.dart';
Expand Down Expand Up @@ -302,11 +303,17 @@ Route<dynamic> generateRoute(RouteSettings settings) {
task: task,
),
);
// Returns the DemoPageView Widget by default
case Routes.selectContact:
return MaterialPageRoute(
builder: (context) => const SelectContact(key: Key('selectContact')),
);
case Routes.addPostScreen:
return MaterialPageRoute(
builder: (context) => const AddPost(
key: Key('addPostScreen'),
),
);
// Returns the DemoPageView Widget by default
default:
return MaterialPageRoute(
builder: (context) => const DemoPageView(
Expand Down
15 changes: 0 additions & 15 deletions lib/view_model/main_screen_view_model.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import 'package:talawa/plugins/fetch_plugin_list.dart';
import 'package:talawa/services/size_config.dart';
import 'package:talawa/utils/app_localization.dart';
import 'package:talawa/view_model/base_view_model.dart';
import 'package:talawa/views/after_auth_screens/add_post_page.dart';
// import 'package:talawa/views/after_auth_screens/chat/chat_list_screen.dart';
import 'package:talawa/views/after_auth_screens/events/explore_events.dart';
import 'package:talawa/views/after_auth_screens/feed/organization_feed.dart';
Expand Down Expand Up @@ -232,13 +231,6 @@ class MainScreenViewModel extends BaseModel {
),
label: AppLocalizations.of(context)!.strictTranslate('Events'),
),
BottomNavigationBarItem(
icon: Icon(
Icons.add_box,
key: keyBNPost,
),
label: AppLocalizations.of(context)!.strictTranslate('Add'),
),

/// Makes chat inaccessible for the user
//TODO: add chat functionality
Expand Down Expand Up @@ -267,13 +259,6 @@ class MainScreenViewModel extends BaseModel {
key: const Key('ExploreEvents'),
homeModel: this,
),
AddPost(
key: const Key('AddPost'),
drawerKey: MainScreenViewModel.scaffoldKey,
),
// const ChatPage(
// key: Key('Chats'),
// ),
ProfilePage(
key: keySPEditProfile,
homeModel: this,
Expand Down
10 changes: 8 additions & 2 deletions lib/views/after_auth_screens/add_post_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -39,15 +39,21 @@ class AddPost extends StatelessWidget {
//TODO: showing the null pointer exception
key: const Key('add_post_icon_button1'),
color: Theme.of(context).iconTheme.color,
icon: const Icon(Icons.menu),
onPressed: () => drawerKey!.currentState!.openDrawer(),
icon: const Icon(
Icons.arrow_back,
size: 36,
),
onPressed: () {
navigationService.pop();
},
),
// button to upload the post.
actions: [
TextButton(
key: const Key('add_post_text_btn1'),
onPressed: () {
model.uploadPost();
navigationService.pop();
// convertImageToBase64(sampleBase64Image);
},
child: Text(
Expand Down
16 changes: 15 additions & 1 deletion lib/views/after_auth_screens/feed/organization_feed.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import 'package:flutter/material.dart';
import 'package:talawa/locator.dart';
import 'package:talawa/services/size_config.dart';
import 'package:talawa/view_model/after_auth_view_models/feed_view_models/organization_feed_view_model.dart';
import 'package:talawa/view_model/main_screen_view_model.dart';
import 'package:talawa/views/base_view.dart';
Expand All @@ -24,8 +26,20 @@ class OrganizationFeed extends StatelessWidget {
return BaseView<OrganizationFeedViewModel>(
onModelReady: (model) => model.initialise(isTest: forTest),
builder: (context, model, child) {
print(model.posts);
return Scaffold(
floatingActionButton: FloatingActionButton(
shape: const CircleBorder(side: BorderSide.none),
key: const Key('floating_action_btn'),
backgroundColor: Colors.green,
onPressed: () {
navigationService.pushScreen('/addpostscreen');
},
child: Icon(
Icons.add,
size: SizeConfig.screenHeight! * 0.045,
color: Colors.white,
),
),
appBar: AppBar(
// AppBar returns a widget for the header of the page.
backgroundColor: Colors.green,
Expand Down
12 changes: 12 additions & 0 deletions test/router_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import 'package:talawa/models/user/user_info.dart';
import 'package:talawa/router.dart';
import 'package:talawa/splash_screen.dart';
import 'package:talawa/view_model/after_auth_view_models/chat_view_models/direct_chat_view_model.dart';
import 'package:talawa/views/after_auth_screens/add_post_page.dart';
import 'package:talawa/views/after_auth_screens/app_settings/app_settings_page.dart';
import 'package:talawa/views/after_auth_screens/chat/chat_message_screen.dart';
import 'package:talawa/views/after_auth_screens/chat/select_contact.dart';
Expand Down Expand Up @@ -338,6 +339,17 @@ void main() {
}
});

testWidgets('Test for addPostpage route', (WidgetTester tester) async {
final route =
generateRoute(const RouteSettings(name: Routes.addPostScreen));
expect(route, isA<MaterialPageRoute>());
if (route is MaterialPageRoute) {
final builder = route.builder;
final widget = builder(MockBuildContext());
expect(widget, isA<AddPost>());
}
});

testWidgets('Test for default DemoPage route', (WidgetTester tester) async {
final route = generateRoute(const RouteSettings(name: 'default'));
expect(route, isA<MaterialPageRoute>());
Expand Down
10 changes: 10 additions & 0 deletions test/widget_tests/after_auth_screens/add_post_page_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,16 @@ void main() {
});

group('createAddPostScreen Test', () {
testWidgets('check if back button in app bar works', (tester) async {
await tester.pumpWidget(createAddPostScreen());
await tester.pump();
final backButtonFinder = find.byKey(const Key('add_post_icon_button1'));
expect(backButtonFinder, findsOneWidget);
await tester.tap(backButtonFinder);
await tester.pump();
verify(navigationService.pop()).called(1);
});

testWidgets('check if createAddPostScreen shows up', (tester) async {
await tester.pumpWidget(createAddPostScreen());
await tester.pump();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -168,4 +168,15 @@ void main() {
await tester.pumpWidget(createOrganizationFeedScreen2(homeModel: model));
await tester.pumpAndSettle(const Duration(seconds: 1));
});
testWidgets('check if floating action button is visible and functional',
(tester) async {
final model = locator<MainScreenViewModel>();
await tester.pumpWidget(createOrganizationFeedScreen(homeModel: model));
await tester.pump();
final fabFinder = find.byKey(const Key('floating_action_btn'));
expect(fabFinder, findsOneWidget);
await tester.tap(fabFinder);
await tester.pump();
verify(navigationService.pushScreen('/addpostscreen')).called(1);
});
}

0 comments on commit 313e7e2

Please sign in to comment.