Commit 6b980613 authored by DatHV's avatar DatHV
Browse files

update project structure

parent bfff9e47
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:mypoint_flutter_app/screen/transaction/history/transaction_history_emun.dart'; import 'package:mypoint_flutter_app/features/transaction/history/transaction_history_emun.dart';
import 'package:mypoint_flutter_app/shared/router_gage.dart'; import 'package:mypoint_flutter_app/shared/router_gage.dart';
import 'package:mypoint_flutter_app/widgets/dashed_line.dart'; import 'package:mypoint_flutter_app/shared/widgets/custom_empty_widget.dart';
import '../../../base/base_screen.dart'; import 'package:mypoint_flutter_app/shared/widgets/dashed_line.dart';
import '../../../base/basic_state.dart'; import '../../../shared/widgets/base_view/base_screen.dart';
import '../../../resources/base_color.dart'; import '../../../shared/widgets/base_view/basic_state.dart';
import '../../../widgets/back_button.dart'; import '../../../core/theme/base_color.dart';
import '../../../widgets/custom_navigation_bar.dart'; import '../../../shared/widgets/back_button.dart';
import '../../../widgets/custom_toast_message.dart'; import '../../../shared/widgets/custom_navigation_bar.dart';
import '../../../widgets/image_loader.dart'; import '../../../shared/widgets/custom_toast_message.dart';
import '../../../shared/widgets/image_loader.dart';
import 'transaction_history_detail_viewmodel.dart'; import 'transaction_history_detail_viewmodel.dart';
import 'transaction_history_model.dart'; import 'transaction_history_model.dart';
...@@ -56,13 +57,9 @@ class _TransactionHistoryDetailScreenState extends BaseState<TransactionHistoryD ...@@ -56,13 +57,9 @@ class _TransactionHistoryDetailScreenState extends BaseState<TransactionHistoryD
], ],
), ),
body: Obx(() { body: Obx(() {
final isLoading = _viewModel.isLoading.value;
final data = _viewModel.transactionData.value; final data = _viewModel.transactionData.value;
if (isLoading) {
return const Center(child: CircularProgressIndicator());
}
if (data == null) { if (data == null) {
return const Center(child: Text('Không tìm thấy dữ liệu giao dịch')); return Center(child: EmptyWidget(isLoading: _viewModel.isLoading.value));
} }
return Column( return Column(
children: [ children: [
...@@ -250,7 +247,7 @@ class _TransactionHistoryDetailScreenState extends BaseState<TransactionHistoryD ...@@ -250,7 +247,7 @@ class _TransactionHistoryDetailScreenState extends BaseState<TransactionHistoryD
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
if (transaction.titleRedButton != null) if (transaction.titleRedButton.isNotEmpty)
ElevatedButton( ElevatedButton(
onPressed: () { onPressed: () {
final finish = transaction.directionScreenRedButton?.begin(); final finish = transaction.directionScreenRedButton?.begin();
......
import 'package:get/get_rx/src/rx_types/rx_types.dart'; import 'package:get/get_rx/src/rx_types/rx_types.dart';
import 'package:mypoint_flutter_app/networking/restful_api_client_all_request.dart'; import 'package:mypoint_flutter_app/core/network/restful_api_client_all_request.dart';
import 'package:mypoint_flutter_app/screen/transaction/history/transaction_history_model.dart'; import 'package:mypoint_flutter_app/features/transaction/history/transaction_history_model.dart';
import '../../../networking/restful_api_viewmodel.dart'; import '../../../core/network/restful_api_viewmodel.dart';
import '../../../configs/constants.dart';
class TransactionHistoryDetailViewModel extends RestfulApiViewModel { class TransactionHistoryDetailViewModel extends RestfulApiViewModel {
String orderID; String orderID;
TransactionHistoryDetailViewModel({required this.orderID}); TransactionHistoryDetailViewModel({required this.orderID});
var transactionData = Rxn<TransactionHistoryModel>(); var transactionData = Rxn<TransactionHistoryModel>();
final RxBool isLoading = false.obs;
void Function(String message)? onShowAlertError; void Function(String message)? onShowAlertError;
@override @override
...@@ -19,14 +17,14 @@ class TransactionHistoryDetailViewModel extends RestfulApiViewModel { ...@@ -19,14 +17,14 @@ class TransactionHistoryDetailViewModel extends RestfulApiViewModel {
} }
Future<void> _loadData() async { Future<void> _loadData() async {
showLoading(); await callApi<TransactionHistoryModel>(
client.getTransactionHistoryDetail(orderID).then((value) { request: () => client.getTransactionHistoryDetail(orderID),
hideLoading(); onSuccess: (data, _) {
if (value.isSuccess) { transactionData.value = data;
transactionData.value = value.data; },
} else { onFailure: (message, _, _) {
onShowAlertError?.call(value.errorMessage ?? Constants.commonError); onShowAlertError?.call(message);
} },
}); );
} }
} }
import 'package:json_annotation/json_annotation.dart'; import 'package:json_annotation/json_annotation.dart';
import 'package:mypoint_flutter_app/screen/transaction/history/transaction_history_emun.dart'; import 'package:mypoint_flutter_app/features/transaction/history/transaction_history_emun.dart';
import '../../../directional/directional_action_type.dart'; import '../../../app/routing/directional_action_type.dart';
import '../../../directional/directional_screen.dart'; import '../../../shared/navigation/directional_screen.dart';
import '../../voucher/models/product_type.dart'; import '../../voucher/models/product_type.dart';
part 'transaction_history_model.g.dart'; part 'transaction_history_model.g.dart';
......
import 'package:mypoint_flutter_app/screen/transaction/history/transaction_history_model.dart'; import 'package:mypoint_flutter_app/features/transaction/history/transaction_history_model.dart';
class TransactionHistoryResponse { class TransactionHistoryResponse {
List<TransactionHistoryModel>? items; List<TransactionHistoryModel>? items;
......
import 'package:json_annotation/json_annotation.dart'; import 'package:json_annotation/json_annotation.dart';
import '../../voucher/models/product_type.dart';
import 'order_items_product_payment_response_model.dart'; import 'order_items_product_payment_response_model.dart';
part 'order_product_payment_response_model.g.dart'; part 'order_product_payment_response_model.g.dart';
......
import 'package:json_annotation/json_annotation.dart'; import 'package:json_annotation/json_annotation.dart';
import 'package:mypoint_flutter_app/screen/transaction/model/payment_method_type.dart'; import 'package:mypoint_flutter_app/features/transaction/model/payment_method_type.dart';
part 'payment_method_model.g.dart'; part 'payment_method_model.g.dart';
@JsonSerializable() @JsonSerializable()
......
import 'dart:core'; import 'dart:core';
import 'package:json_annotation/json_annotation.dart'; import 'package:json_annotation/json_annotation.dart';
import 'package:mypoint_flutter_app/screen/transaction/model/preview_order_payment_point_data_model.dart'; import 'package:mypoint_flutter_app/features/transaction/model/preview_order_payment_point_data_model.dart';
import 'package:mypoint_flutter_app/screen/transaction/model/preview_order_product_info_model.dart'; import 'package:mypoint_flutter_app/features/transaction/model/preview_order_product_info_model.dart';
part 'preview_order_payment_model.g.dart'; part 'preview_order_payment_model.g.dart';
@JsonSerializable() @JsonSerializable()
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment