Skip to content

Commit

Permalink
fix(#63): integrando vários conteúdos
Browse files Browse the repository at this point in the history
  • Loading branch information
GabrielCostaDeOliveira committed Feb 2, 2025
1 parent 4cfd14f commit 909579d
Show file tree
Hide file tree
Showing 8 changed files with 79 additions and 14 deletions.
2 changes: 2 additions & 0 deletions lib/core/di/locator.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import 'package:aranduapp/ui/journey/di/di.dart';
import 'package:aranduapp/ui/login/di/di_login.dart';
import 'package:aranduapp/ui/navbar/di/di_navbar.dart';
import 'package:aranduapp/ui/onboarding/di/di_onboarding.dart';
import 'package:aranduapp/ui/pages_content/di/di.dart';
import 'package:aranduapp/ui/profile/di/di_profile.dart';
import 'package:aranduapp/ui/recover_account/di/di_recover_account.dart';
import 'package:aranduapp/ui/register_account/di/di_register_account.dart';
Expand All @@ -33,4 +34,5 @@ void setupLocator() {
setupEditDeleteUser();
setupJoinSubjectsDI();
setupTrailsDI();
setupPagesContentDI();
}
2 changes: 0 additions & 2 deletions lib/ui/navbar/viewmodel/navbar_viewmodel.dart
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
import 'package:aranduapp/core/log/log.dart';
import 'package:aranduapp/core/state/command.dart';
import 'package:flutter/material.dart';

class NavbarViewModel extends ChangeNotifier {
late Command0<void> navbarCommand;
int _selectedIndex = 0;

int get selectedIndex => _selectedIndex;
Expand Down
6 changes: 6 additions & 0 deletions lib/ui/pages_content/di/di.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import 'package:aranduapp/ui/pages_content/viewmodel/page_content_viewmodel.dart';
import 'package:get_it/get_it.dart';

void setupPagesContentDI() {
GetIt.I.registerFactory(() => PageContentViewmodel());
}
43 changes: 43 additions & 0 deletions lib/ui/pages_content/view/pages_content_view.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import 'package:aranduapp/ui/content/view/content_view.dart';
import 'package:aranduapp/ui/pages_content/viewmodel/page_content_viewmodel.dart';
import 'package:flutter/material.dart';
import 'package:get_it/get_it.dart';
import 'package:provider/provider.dart';

class PagesContentView extends StatelessWidget {
final List<String> listContent;

const PagesContentView({super.key, required this.listContent});

@override
Widget build(BuildContext context) {
return ChangeNotifierProvider<PageContentViewmodel>.value(
value: GetIt.instance<PageContentViewmodel>(),
child: PagesContentScreen(listContent: listContent),
);
}
}

class PagesContentScreen extends StatelessWidget {
final List<String> listContent;

final PageController _pageViewController = PageController();

PagesContentScreen({super.key, required this.listContent});

@override
Widget build(BuildContext context) {
PageContentViewmodel viewModel = Provider.of<PageContentViewmodel>(context);

return Stack(
children: [
PageView(
controller: _pageViewController,
onPageChanged: (index) => viewModel.selectedIndex,
children: List.generate(listContent.length, (index) {
return ContentView(contentID: listContent[index]);
})),
],
);
}
}
14 changes: 14 additions & 0 deletions lib/ui/pages_content/viewmodel/page_content_viewmodel.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import 'package:flutter/material.dart';

class PageContentViewmodel extends ChangeNotifier {
int _selectedIndex = 0;

int get selectedIndex => _selectedIndex;

void changeTab(int index) {
if (_selectedIndex != index) {
_selectedIndex = index;
notifyListeners();
}
}
}
4 changes: 2 additions & 2 deletions lib/ui/trails/model/trails_model.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class TrailsModel {
final String id;
final String name;
final String? contectId;
final List<String>? contects;

TrailsModel({required this.id, required this.name, this.contectId});
TrailsModel({required this.id, required this.name, this.contects});
}

15 changes: 9 additions & 6 deletions lib/ui/trails/service/trails_service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,17 @@ class TrailsService {
var res = journeyList.map((e) {
final Map<String, dynamic> trailsMap = e as Map<String, dynamic>;

final list = trailsMap['contents'] as List<dynamic>;
final List<String> list = (trailsMap['contents'] as List<dynamic>)
.map((element) => element as String)
.toList();

Log.t(list);

return TrailsModel(
id: trailsMap['_id']! as String,
name: trailsMap['name']! as String,
contectId: list.isNotEmpty ? list[0] as String : null,
);

id: trailsMap['_id']! as String,
name: trailsMap['name']! as String,
contects: list,
);
}).toList();

return res;
Expand Down
7 changes: 3 additions & 4 deletions lib/ui/trails/view/trails_view.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import 'package:aranduapp/core/log/log.dart';
import 'package:aranduapp/ui/content/view/content_view.dart';
import 'package:aranduapp/ui/journey/model/journey_model.dart';
import 'package:aranduapp/ui/pages_content/view/pages_content_view.dart';
import 'package:aranduapp/ui/shared/erro_screen.dart';
import 'package:aranduapp/ui/shared/loading_widget.dart';
import 'package:aranduapp/ui/trails/viewmodel/trails_viewmodel.dart';
Expand Down Expand Up @@ -104,12 +105,10 @@ class _TrailsScreen extends StatelessWidget {
size: 32,
),
onTap: () {
if (trails.contectId != null) {
if (trails.contects != null) {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => ContentView(
contentID: trails.contectId!,
),
builder: (context) => PagesContentView(listContent: trails.contects ?? [],),
),
);
}
Expand Down

0 comments on commit 909579d

Please sign in to comment.