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

update project structure

parent bfff9e47
import 'package:json_annotation/json_annotation.dart';
import 'package:intl/intl.dart';
import '../../../directional/directional_screen.dart';
import '../../../shared/navigation/directional_screen.dart';
part 'hover_data_model.g.dart';
@JsonSerializable()
......
import 'package:json_annotation/json_annotation.dart';
import 'package:mypoint_flutter_app/directional/directional_screen.dart';
import 'package:mypoint_flutter_app/shared/navigation/directional_screen.dart';
import '../../flash_sale/models/preview_flash_sale_model.dart';
import 'header_section_type.dart';
......
import 'package:json_annotation/json_annotation.dart';
import 'package:mypoint_flutter_app/directional/directional_screen.dart';
import 'package:mypoint_flutter_app/shared/navigation/directional_screen.dart';
part 'main_service_model.g.dart';
@JsonSerializable()
......
import 'package:flutter/material.dart';
import 'package:get/get_state_manager/src/rx_flutter/rx_obx_widget.dart';
import '../../base/base_screen.dart';
import '../../base/basic_state.dart';
import '../../resources/base_color.dart';
import '../../widgets/custom_navigation_bar.dart';
import 'package:mypoint_flutter_app/shared/widgets/custom_empty_widget.dart';
import '../../shared/widgets/base_view/base_screen.dart';
import '../../shared/widgets/base_view/basic_state.dart';
import '../../core/theme/base_color.dart';
import '../../shared/widgets/custom_navigation_bar.dart';
import 'interestied_categories_viewmodel.dart';
class InterestCategoriesScreen extends BaseScreen {
......@@ -49,6 +50,13 @@ class _InterestCategoriesScreenState extends BaseState<InterestCategoriesScreen>
),
),
const SizedBox(height: 16),
if (listItems.isEmpty)
Expanded(
child: Center(
child: EmptyWidget(isLoading: _viewModel.isLoading.value)
),
),
if (listItems.isNotEmpty)
Flexible(
child: GridView.builder(
padding: const EdgeInsets.only(bottom: 16, left: 16, right: 16),
......
import 'package:get/get_rx/src/rx_types/rx_types.dart';
import 'package:mypoint_flutter_app/networking/restful_api_client_all_request.dart';
import '../../base/base_response_model.dart';
import '../../networking/restful_api_viewmodel.dart';
import 'package:mypoint_flutter_app/core/network/restful_api_client_all_request.dart';
import '../../shared/widgets/base_view/base_response_model.dart';
import '../../core/network/restful_api_viewmodel.dart';
import 'models/interested_categories_model.dart';
class InterestedCategoriesViewModel extends RestfulApiViewModel {
......
import 'package:flutter/material.dart';
import '../../widgets/custom_navigation_bar.dart';
import '../../shared/widgets/custom_navigation_bar.dart';
class InviteFriendCampaignListScreen extends StatefulWidget {
const InviteFriendCampaignListScreen({super.key});
......
......@@ -2,16 +2,16 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_contacts/flutter_contacts.dart';
import 'package:get/get.dart';
import 'package:mypoint_flutter_app/screen/invite_friend_campaign/popup_invite_friend_code.dart';
import 'package:mypoint_flutter_app/widgets/custom_toast_message.dart';
import 'package:mypoint_flutter_app/features/invite_friend_campaign/popup_invite_friend_code.dart';
import 'package:mypoint_flutter_app/shared/widgets/custom_toast_message.dart';
import 'package:share_plus/share_plus.dart';
import 'package:url_launcher/url_launcher.dart';
import '../../base/base_screen.dart';
import '../../base/basic_state.dart';
import '../../resources/base_color.dart';
import '../../shared/widgets/base_view/base_screen.dart';
import '../../shared/widgets/base_view/basic_state.dart';
import '../../core/theme/base_color.dart';
import '../../shared/router_gage.dart';
import '../../widgets/custom_navigation_bar.dart';
import '../../widgets/image_loader.dart';
import '../../shared/widgets/custom_navigation_bar.dart';
import '../../shared/widgets/image_loader.dart';
import 'invite_friend_campaign_viewmodel.dart';
import 'models/invite_friend_campaign_model.dart';
......@@ -32,7 +32,7 @@ class _InviteFriendCampaignScreenState extends BaseState<InviteFriendCampaignScr
fetchContacts();
viewModel.onShowAlertError = (message, onBack) {
if (message.isNotEmpty) {
showAlertError(content: message, onConfirmed: onBack ? () => Get.back() : null, showCloseButton: onBack == null);
showAlertError(content: message, onConfirmed: onBack ? () => Get.back() : null, showCloseButton: !onBack);
}
};
viewModel.phoneInviteFriendResponse = (sms, phone) {
......@@ -304,7 +304,7 @@ class _InviteFriendCampaignScreenState extends BaseState<InviteFriendCampaignScr
...List.generate(displayedContacts.length, (index) {
final contact = displayedContacts[index];
final name = contact.displayName;
final phone = contact.phones?.isNotEmpty == true ? contact.phones?.first.number ?? 'Không số' : 'Không số';
final phone = contact.phones.firstOrNull?.number ?? 'Không số';
return Column(
children: [
if (index != 0) const Divider(height: 1, color: Colors.black12, indent: 16, endIndent: 16),
......@@ -360,7 +360,7 @@ class _InviteFriendCampaignScreenState extends BaseState<InviteFriendCampaignScr
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
itemCount: campaigns.length,
separatorBuilder: (_, __) => const SizedBox(height: 8),
separatorBuilder: (_, _) => const SizedBox(height: 8),
itemBuilder: (context, index) {
final campaign = campaigns[index];
return Container(
......
import 'package:get/get_rx/src/rx_types/rx_types.dart';
import 'package:mypoint_flutter_app/configs/constants.dart';
import 'package:mypoint_flutter_app/networking/restful_api_client_all_request.dart';
import '../../networking/restful_api_viewmodel.dart';
import 'package:mypoint_flutter_app/app/config/constants.dart';
import 'package:mypoint_flutter_app/core/network/restful_api_client_all_request.dart';
import '../../core/network/restful_api_viewmodel.dart';
import 'models/invite_friend_campaign_model.dart';
class InviteFriendCampaignViewModel extends RestfulApiViewModel {
......@@ -19,7 +19,7 @@ class InviteFriendCampaignViewModel extends RestfulApiViewModel {
await callApi<InviteFriendResponse>(
request: () => client.phoneInviteFriend(phone),
onSuccess: (data, _) {
final sms = data?.sms ?? '';
final sms = data.sms ?? '';
if (sms.isNotEmpty) {
phoneInviteFriendResponse?.call(sms, phone);
} else {
......
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