Skip to content

Commit

Permalink
Merge pull request #7 from Metatavu/feature-1-task-details-view
Browse files Browse the repository at this point in the history
Added task details view without functionality
  • Loading branch information
lauriLukkarinen committed May 13, 2024
2 parents b3d299a + ea2b14a commit 2aceb92
Show file tree
Hide file tree
Showing 42 changed files with 1,721 additions and 259 deletions.
5 changes: 4 additions & 1 deletion .fvmrc
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
{
"flutter": "3.19.6",
"flavors": {}
"flavors": {},
"runPubGetOnSdkChanges": true,
"updateVscodeSettings": true,
"updateGitIgnore": true
}
2 changes: 1 addition & 1 deletion analysis_options.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ analyzer:
- packages/**
- "**.gen.dart"
plugins:
- custom-lint
- custom_lint

linter:
# The lint rules applied to this project can be customized in the
Expand Down
13 changes: 11 additions & 2 deletions assets/l10n/fi-FI/localizations.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
"login": "Kirjaudu",
"errors": {
"listPublicTrucks": "Virhe listatessa ajoneuvoja",
"listRoutes": "Virhe listatessa reittejä"
"listRoutes": "Virhe listatessa reittejä",
"findTask": "Virhe haettaessa tehtävää"
},
"equipment": "Kalusto",
"routes": "Reitit",
Expand All @@ -20,5 +21,13 @@
"tasks": "Tehtävät",
"noTasksForRoute": "Ei tehtäviä",
"load": "Lastaus",
"unload": "Purku"
"unload": "Purku",
"backToTaskList": "Takaisin tehtävälistaan",
"start": "Aloita",
"end": "Lopeta",
"waybill": "Rahtikirja",
"sender": "Lähettäjä",
"recipient": "Vastaanottaja",
"pointOfDeparture": "Lähtöpaikka",
"destination": "Määräpaikka"
}
6 changes: 3 additions & 3 deletions lib/app/openapi_config.dart
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
// Openapi Generator last run: : 2024-04-24T09:27:04.483875
// Openapi Generator last run: : 2024-05-02T16:32:35.026923
import "package:openapi_generator_annotations/openapi_generator_annotations.dart";

@Openapi(
inputSpec: InputSpec(
path: "specs/specs/app.yaml",
path: "../vp-kuljetus-transport-management-specs/specs/app.yaml",
),
generatorName: Generator.dio,
outputDirectory: "../packages/tms_api",
outputDirectory: "./packages/tms_api",
additionalProperties: DioProperties(pubName: "tms_api"),
)
class OpenApiGeneratorConfig {}
2 changes: 1 addition & 1 deletion lib/app/router.dart
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ GoRouter router(final RouterRef ref) {
routes: [
GoRoute(
name: "taskDetails",
path: ":taskId",
path: "task-details",
pageBuilder: (final context, final state) =>
const NoTransitionPage(child: TaskDetailsScreen()),
),
Expand Down
2 changes: 1 addition & 1 deletion lib/app/router.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 13 additions & 0 deletions lib/app/theme.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ ThemeData getTheme(final BuildContext context) {
colorScheme: ColorScheme.fromSeed(
seedColor: const Color(0xFF00414F),
secondary: const Color(0xFF547476),
error: const Color(0xFFEE3912),
),
useMaterial3: true,
);
Expand Down Expand Up @@ -47,5 +48,17 @@ ThemeData getTheme(final BuildContext context) {
),
),
),
filledButtonTheme: FilledButtonThemeData(
style: ButtonStyle(
padding: const MaterialStatePropertyAll(
EdgeInsets.symmetric(vertical: 16, horizontal: 16),
),
shape: const MaterialStatePropertyAll(StadiumBorder()),
surfaceTintColor: const MaterialStatePropertyAll(Colors.white),
textStyle: MaterialStatePropertyAll(
themeWithFonts.textTheme.titleMedium,
),
),
),
);
}
19 changes: 19 additions & 0 deletions lib/models/views/freight_card.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import "package:tms_api/tms_api.dart";

class FreightCardData {
const FreightCardData({
required this.freight,
required this.senderSite,
required this.recipientSite,
required this.pointOfDepartureSite,
required this.destinationSite,
required this.freightUnits,
});

final Freight freight;
final Site senderSite;
final Site recipientSite;
final Site pointOfDepartureSite;
final Site destinationSite;
final List<FreightUnit> freightUnits;
}
11 changes: 11 additions & 0 deletions lib/models/views/route_tasks_screen.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import "package:tms_api/tms_api.dart";

class RouteTasksScreenData {
const RouteTasksScreenData({
required this.route,
required this.tasks,
});

final Route route;
final List<Task> tasks;
}
28 changes: 28 additions & 0 deletions lib/models/views/task_details_screen.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import "package:flutter/foundation.dart";
import "package:tms_api/tms_api.dart";

class TaskDetailsScreenData {
const TaskDetailsScreenData({
required this.tasks,
required this.customerSite,
});

final List<Task> tasks;
final Site customerSite;
}

class TaskIdList {
const TaskIdList({required this.list});

final List<String> list;

@override
bool operator ==(final Object other) {
if (identical(this, other)) return true;

return other is TaskIdList && listEquals(other.list, list);
}

@override
int get hashCode => list.map((final id) => id.hashCode).join("").hashCode;
}
32 changes: 32 additions & 0 deletions lib/providers/freight_units/freight_units_providers.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import "dart:developer";

import "package:dio/dio.dart";
import "package:riverpod_annotation/riverpod_annotation.dart";
import "package:tms_api/tms_api.dart";
import "package:vp_kuljetus_driver_app/services/api/api.dart";
import "package:vp_kuljetus_driver_app/utils/provider_cache.dart";

part "freight_units_providers.g.dart";

@riverpod
Future<List<FreightUnit>> listFreightUnits(
final ListFreightUnitsRef ref, {
required final String freightId,
}) async {
final cancelToken = CancelToken();
ref.onDispose(cancelToken.cancel);

try {
final response = await tmsApi.getFreightUnitsApi().listFreightUnits(
cancelToken: cancelToken,
freightId: freightId,
);

ref.cacheFor(const Duration(minutes: 5));
return response.data!.asList();
} on DioException catch (error) {
log("Failed to list freight units: $error");
log(error.requestOptions.toString());
rethrow;
}
}
160 changes: 160 additions & 0 deletions lib/providers/freight_units/freight_units_providers.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

32 changes: 32 additions & 0 deletions lib/providers/freights/freights_providers.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import "dart:developer";

import "package:dio/dio.dart";
import "package:riverpod_annotation/riverpod_annotation.dart";
import "package:tms_api/tms_api.dart";
import "package:vp_kuljetus_driver_app/services/api/api.dart";
import "package:vp_kuljetus_driver_app/utils/provider_cache.dart";

part "freights_providers.g.dart";

@riverpod
Future<Freight> findFreight(
final FindFreightRef ref, {
required final String freightId,
}) async {
final cancelToken = CancelToken();
ref.onDispose(cancelToken.cancel);

try {
final response = await tmsApi.getFreightsApi().findFreight(
cancelToken: cancelToken,
freightId: freightId,
);

ref.cacheFor(const Duration(minutes: 5));
return response.data!;
} on DioException catch (error) {
log("Failed to find freight: $error");
log(error.requestOptions.toString());
rethrow;
}
}

0 comments on commit 2aceb92

Please sign in to comment.