Skip to content

Commit

Permalink
fix: delete new Flutter project from ios directory XDD
Browse files Browse the repository at this point in the history
  • Loading branch information
24bartixx committed Jan 18, 2025
1 parent d34401b commit be1d720
Show file tree
Hide file tree
Showing 11 changed files with 276 additions and 7 deletions.
1 change: 1 addition & 0 deletions lib/config/nav_bar_config.dart
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ extension IsRouteATabViewX on PageRouteInfo<dynamic> {
ScienceClubDetailRoute.name => context.localize.scientific_cirlces,
GuideDetailRoute.name => context.localize.guide,
DigitalGuideRoute.name => context.localize.digital_guide,
LevelRoute.name => context.localize.level,
_ => null,
};
}
Expand Down
1 change: 1 addition & 0 deletions lib/features/digital_guide_view/data/models/level.dart
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ class LevelTranslations with _$LevelTranslations {
class LevelTranslation with _$LevelTranslation {
const factory LevelTranslation({
required String name,
@JsonKey(name: "room_numbers_range") required String roomNumbersRange,
}) = _LevelTranslation;

factory LevelTranslation.fromJson(Map<String, dynamic> json) =>
Expand Down
22 changes: 22 additions & 0 deletions lib/features/digital_guide_view/data/models/region.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,31 @@ part "region.g.dart";
@freezed
class Region with _$Region {
const factory Region({
required RegionTranslations translations,
@JsonKey(name: "adapted_toilets") required List<int> adaptedToiletsIndices,
@JsonKey(name: "rooms") required List<int> roomsIds,
}) = _Region;

factory Region.fromJson(Map<String, dynamic> json) => _$RegionFromJson(json);
}

@freezed
class RegionTranslations with _$RegionTranslations {
const factory RegionTranslations({
@JsonKey(name: "pl") required RegionTranslation plTranslation,
}) = _RegionTranslations;

factory RegionTranslations.fromJson(Map<String, dynamic> json) =>
_$RegionTranslationsFromJson(json);
}

@freezed
class RegionTranslation with _$RegionTranslation {
const factory RegionTranslation({
required String name,
required String location,
}) = _RegionTranslation;

factory RegionTranslation.fromJson(Map<String, dynamic> json) =>
_$RegionTranslationFromJson(json);
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import "../../../utils/context_extensions.dart";
import "../../../utils/determine_contact_icon.dart";
import "../../../widgets/detail_views/contact_section.dart";
import "../../../widgets/detail_views/detail_view_app_bar.dart";
import "../../../widgets/loading_widgets/shimmer_loading.dart";
import "../../../widgets/my_error_widget.dart";
import "../../../widgets/zoomable_images.dart";
import "../data/models/digital_guide_response.dart";
Expand Down Expand Up @@ -44,11 +45,11 @@ class DigitalGuideView extends ConsumerWidget {
appBar: DetailViewAppBar(),
body: MyErrorWidget(error),
),
// TODO(Bartosh): shimmer loading
loading: () => Scaffold(
appBar: DetailViewAppBar(),
body: const Center(
child: CircularProgressIndicator(),
loading: () => Center(
child: ShimmeringEffect(
child: Container(
color: Colors.white,
),
),
),
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import "../../tabs/amenities/presentation/amenities_expansion_tile_content.dart"
import "../../tabs/evacuation/evacuation_widget.dart";
import "../../tabs/localization/presentation/localization_expansion_tile_content.dart";
import "../../tabs/rooms/presentation/digital_guide_rooms_expansion_tile_content.dart";
import "../../tabs/structure/presentation/structure_expansion_tile_content.dart";
import "../../tabs/surrounding/presentation/surroundings_expansion_tile_content.dart";

typedef TileContent = ({String title, List<Widget> content});
Expand Down Expand Up @@ -79,7 +80,9 @@ class DigitalGuideFeaturesSection extends ConsumerWidget {
),
(
title: context.localize.building_structure,
content: [LocalizationExpansionTileContent()],
content: [
StructureExpansionTileContent(digitalGuideData: digitalGuideData)
],
),
(
title: context.localize.room_information,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
import "package:fast_immutable_collections/fast_immutable_collections.dart";
import "package:flutter/material.dart";
import "package:flutter_riverpod/flutter_riverpod.dart";

import "../../../../../config/ui_config.dart";
import "../../../../../widgets/my_error_widget.dart";
import "../../../../navigator/utils/navigation_commands.dart";
import "../../../data/models/digital_guide_response.dart";
import "../../../data/models/level_with_regions.dart";
import "../../../data/repository/levels_repository.dart";
import "../../../presentation/widgets/digital_guide_nav_link.dart";

class StructureExpansionTileContent extends ConsumerWidget {
const StructureExpansionTileContent({
required this.digitalGuideData,
});

final DigitalGuideResponse digitalGuideData;

@override
Widget build(BuildContext context, WidgetRef ref) {
final levelDataAsync =
ref.watch(levelsWithRegionsRepositoryProvider(digitalGuideData));

return levelDataAsync.when(
data: (data) => _StructureExpansionTileContent(
digitalGuideResponse: digitalGuideData,
levels: data,
),
loading: () => const Center(
child: CircularProgressIndicator(),
),
error: (error, _) => MyErrorWidget(error),
);
}
}

class _StructureExpansionTileContent extends ConsumerWidget {
const _StructureExpansionTileContent({
required this.digitalGuideResponse,
required this.levels,
});

final DigitalGuideResponse digitalGuideResponse;
final IList<LevelWithRegions> levels;

@override
Widget build(BuildContext context, WidgetRef ref) {
return Padding(
padding: const EdgeInsets.only(
top: DigitalGuideConfig.heightMedium,
left: DigitalGuideConfig.heightMedium,
right: DigitalGuideConfig.heightMedium,
),
child: ListView.separated(
physics: const NeverScrollableScrollPhysics(),
itemBuilder: (context, index) => DigitalGuideNavLink(
onTap: () async {
await ref.navigateDigitalGuideLevel(
levels[index],
);
},
text: levels[index].level.translations.plTranslation.name,
),
separatorBuilder: (context, index) => const SizedBox(
height: DigitalGuideConfig.heightMedium,
),
itemCount: levels.length,
shrinkWrap: true,
),
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
import "package:auto_route/auto_route.dart";
import "package:flutter/material.dart";
import "package:flutter_riverpod/flutter_riverpod.dart";

import "../../../../../../config/ui_config.dart";
import "../../../../../../theme/app_theme.dart";
import "../../../../../../utils/context_extensions.dart";
import "../../../../../../widgets/detail_views/detail_view_app_bar.dart";
import "../../../../../navigator/utils/navigation_commands.dart";
import "../../../../data/models/level_with_regions.dart";
import "../../../../presentation/widgets/digital_guide_nav_link.dart";

@RoutePage()
class LevelView extends ConsumerWidget {
const LevelView({
required this.levelInfo,
});
final LevelWithRegions levelInfo;

@override
Widget build(BuildContext context, WidgetRef ref) {
return Scaffold(
appBar: DetailViewAppBar(),
body: Padding(
padding: const EdgeInsets.symmetric(
horizontal: DigitalGuideConfig.heightBig,
),
child: CustomScrollView(
slivers: [
SliverList(
delegate: SliverChildListDelegate([
Text(
levelInfo.level.translations.plTranslation.name,
style: context.textTheme.headline.copyWith(fontSize: 22),
),
const SizedBox(
height: DigitalGuideConfig.heightSmall,
),
Text(
context.localize.rooms_distribution,
style: context.textTheme.boldBody.copyWith(fontSize: 16),
),
const SizedBox(
height: DigitalGuideConfig.heightSmall,
),
Text(
levelInfo.level.translations.plTranslation.roomNumbersRange,
style: context.textTheme.body.copyWith(fontSize: 16),
),
const SizedBox(
height: DigitalGuideConfig.heightMedium,
),
]),
),
SliverList(
delegate: SliverChildBuilderDelegate(
(context, index) => Column(
children: [
DigitalGuideNavLink(
onTap: () async {
await ref.navigateDigitalGuideRegion(
levelInfo.regions[index],
);
},
text: levelInfo
.regions[index].translations.plTranslation.name,
),
const SizedBox(
height: DigitalGuideConfig.heightMedium,
),
],
),
childCount: levelInfo.regions.length,
),
),
],
),
),
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
import "package:auto_route/auto_route.dart";
import "package:flutter/material.dart";
import "package:flutter_riverpod/flutter_riverpod.dart";

import "../../../../../../config/ui_config.dart";
import "../../../../../../theme/app_theme.dart";
import "../../../../../../utils/context_extensions.dart";
import "../../../../../../widgets/detail_views/detail_view_app_bar.dart";
import "../../../../data/models/region.dart";

@RoutePage()
class RegionView extends ConsumerWidget {
const RegionView({
required this.region,
});

final Region region;

@override
Widget build(BuildContext context, WidgetRef ref) {
return Scaffold(
appBar: DetailViewAppBar(),
body: Padding(
padding: const EdgeInsets.symmetric(
horizontal: DigitalGuideConfig.heightBig,
),
child: CustomScrollView(
slivers: [
SliverList(
delegate: SliverChildListDelegate([
Text(
region.translations.plTranslation.name,
style: context.textTheme.headline.copyWith(fontSize: 22),
),
const SizedBox(
height: DigitalGuideConfig.heightSmall,
),
Text(
context.localize.region_location,
style: context.textTheme.boldBody.copyWith(fontSize: 16),
),
const SizedBox(
height: DigitalGuideConfig.heightSmall,
),
Text(
region.translations.plTranslation.location,
style: context.textTheme.body.copyWith(fontSize: 16),
),
const SizedBox(
height: DigitalGuideConfig.heightMedium,
),
// corridors
// DigitalGuideNavLink(
// onTap: onTap,
// text: text
// )
]),
),
],
),
),
);
}
}
10 changes: 10 additions & 0 deletions lib/features/navigator/app_router.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,15 @@ import "../about_us_view/about_us_view.dart";
import "../buildings_view/buildings_view.dart";
import "../department_detail_view/department_detail_view.dart";
import "../departments_view/departments_view.dart";
import "../digital_guide_view/data/models/level_with_regions.dart";
import "../digital_guide_view/data/models/region.dart";
import "../digital_guide_view/presentation/digital_guide_view.dart";
import "../digital_guide_view/tabs/adapted_toilets/data/models/adapted_toilet.dart";
import "../digital_guide_view/tabs/adapted_toilets/presentation/adapted_toilet_detail_view.dart";
import "../digital_guide_view/tabs/rooms/data/models/digital_guide_room.dart";
import "../digital_guide_view/tabs/rooms/presentation/digital_guide_room_detail_view.dart";
import "../digital_guide_view/tabs/structure/presentation/views/level_view.dart";
import "../digital_guide_view/tabs/structure/presentation/views/region_view.dart";
import "../guide_detail_view/guide_detail_view.dart";
import "../guide_view/guide_view.dart";
import "../home_view/home_view.dart";
Expand Down Expand Up @@ -107,6 +111,12 @@ class AppRouter extends RootStackRouter {
AutoRoute(
page: AdaptedToiletDetailRoute.page,
),
AutoRoute(
page: LevelRoute.page,
),
AutoRoute(
page: RegionRoute.page,
),
AutoRoute(
path: "/aboutUs",
page: AboutUsRoute.page,
Expand Down
10 changes: 10 additions & 0 deletions lib/features/navigator/utils/navigation_commands.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import "package:logger/logger.dart";

import "../../../utils/launch_url_util.dart";
import "../../buildings_view/model/building_model.dart";
import "../../digital_guide_view/data/models/level_with_regions.dart";
import "../../digital_guide_view/data/models/region.dart";
import "../../digital_guide_view/tabs/adapted_toilets/data/models/adapted_toilet.dart";
import "../../digital_guide_view/tabs/rooms/data/models/digital_guide_room.dart";
import "../../parkings_view/models/parking.dart";
Expand Down Expand Up @@ -93,6 +95,14 @@ extension NavigationX on WidgetRef {
await _router.push(DigitalGuideRoomDetailRoute(room: room));
}

Future<void> navigateDigitalGuideLevel(LevelWithRegions levelInfo) async {
await _router.push(LevelRoute(levelInfo: levelInfo));
}

Future<void> navigateDigitalGuideRegion(Region region) async {
await _router.push(RegionRoute(region: region));
}

Future<void> navigateBuildingDetailAction(BuildingModel building) async {
return switch (building.externalDigitalGuideMode) {
"web_url" => launch(building.externalDigitalGuideIdOrURL!),
Expand Down
5 changes: 4 additions & 1 deletion lib/l10n/app_pl.arb
Original file line number Diff line number Diff line change
Expand Up @@ -287,5 +287,8 @@
"platforms" : "Podesty",
"stairs" : "Schody",
"key_information" : "Najważniejsze informacje",
"working_hours" : "Godziny otwarcia"
"working_hours" : "Godziny otwarcia",
"rooms_distribution" : "Rozkład pomieszczeń:",
"region_location" : "Lokalizacja strefy:",
"level" : "Piętro"
}

0 comments on commit be1d720

Please sign in to comment.