Skip to content

Commit

Permalink
Team initials while adding team (#108)
Browse files Browse the repository at this point in the history
* team initials

* team initials not empty

* rename identifier

* change to custom formatter
  • Loading branch information
cp-sidhdhi-p authored Oct 4, 2024
1 parent 25a4dd8 commit 4de5f89
Show file tree
Hide file tree
Showing 23 changed files with 149 additions and 38 deletions.
1 change: 1 addition & 0 deletions data/lib/api/team/team_model.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ abstract class TeamModel with _$TeamModel {
required String name,
required String name_lowercase,
String? city,
String? name_initial,
String? profile_img_url,
String? created_by,
DateTime? created_at,
Expand Down
24 changes: 23 additions & 1 deletion data/lib/api/team/team_model.freezed.dart
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ mixin _$TeamModel {
String get name => throw _privateConstructorUsedError;
String get name_lowercase => throw _privateConstructorUsedError;
String? get city => throw _privateConstructorUsedError;
String? get name_initial => throw _privateConstructorUsedError;
String? get profile_img_url => throw _privateConstructorUsedError;
String? get created_by => throw _privateConstructorUsedError;
DateTime? get created_at => throw _privateConstructorUsedError;
Expand All @@ -48,6 +49,7 @@ abstract class $TeamModelCopyWith<$Res> {
String name,
String name_lowercase,
String? city,
String? name_initial,
String? profile_img_url,
String? created_by,
DateTime? created_at,
Expand All @@ -72,6 +74,7 @@ class _$TeamModelCopyWithImpl<$Res, $Val extends TeamModel>
Object? name = null,
Object? name_lowercase = null,
Object? city = freezed,
Object? name_initial = freezed,
Object? profile_img_url = freezed,
Object? created_by = freezed,
Object? created_at = freezed,
Expand All @@ -95,6 +98,10 @@ class _$TeamModelCopyWithImpl<$Res, $Val extends TeamModel>
? _value.city
: city // ignore: cast_nullable_to_non_nullable
as String?,
name_initial: freezed == name_initial
? _value.name_initial
: name_initial // ignore: cast_nullable_to_non_nullable
as String?,
profile_img_url: freezed == profile_img_url
? _value.profile_img_url
: profile_img_url // ignore: cast_nullable_to_non_nullable
Expand Down Expand Up @@ -132,6 +139,7 @@ abstract class _$$TeamModelImplCopyWith<$Res>
String name,
String name_lowercase,
String? city,
String? name_initial,
String? profile_img_url,
String? created_by,
DateTime? created_at,
Expand All @@ -154,6 +162,7 @@ class __$$TeamModelImplCopyWithImpl<$Res>
Object? name = null,
Object? name_lowercase = null,
Object? city = freezed,
Object? name_initial = freezed,
Object? profile_img_url = freezed,
Object? created_by = freezed,
Object? created_at = freezed,
Expand All @@ -177,6 +186,10 @@ class __$$TeamModelImplCopyWithImpl<$Res>
? _value.city
: city // ignore: cast_nullable_to_non_nullable
as String?,
name_initial: freezed == name_initial
? _value.name_initial
: name_initial // ignore: cast_nullable_to_non_nullable
as String?,
profile_img_url: freezed == profile_img_url
? _value.profile_img_url
: profile_img_url // ignore: cast_nullable_to_non_nullable
Expand Down Expand Up @@ -210,6 +223,7 @@ class _$TeamModelImpl implements _TeamModel {
required this.name,
required this.name_lowercase,
this.city,
this.name_initial,
this.profile_img_url,
this.created_by,
this.created_at,
Expand All @@ -230,6 +244,8 @@ class _$TeamModelImpl implements _TeamModel {
@override
final String? city;
@override
final String? name_initial;
@override
final String? profile_img_url;
@override
final String? created_by;
Expand All @@ -249,7 +265,7 @@ class _$TeamModelImpl implements _TeamModel {

@override
String toString() {
return 'TeamModel(id: $id, name: $name, name_lowercase: $name_lowercase, city: $city, profile_img_url: $profile_img_url, created_by: $created_by, created_at: $created_at, created_time: $created_time, players: $players)';
return 'TeamModel(id: $id, name: $name, name_lowercase: $name_lowercase, city: $city, name_initial: $name_initial, profile_img_url: $profile_img_url, created_by: $created_by, created_at: $created_at, created_time: $created_time, players: $players)';
}

@override
Expand All @@ -262,6 +278,8 @@ class _$TeamModelImpl implements _TeamModel {
(identical(other.name_lowercase, name_lowercase) ||
other.name_lowercase == name_lowercase) &&
(identical(other.city, city) || other.city == city) &&
(identical(other.name_initial, name_initial) ||
other.name_initial == name_initial) &&
(identical(other.profile_img_url, profile_img_url) ||
other.profile_img_url == profile_img_url) &&
(identical(other.created_by, created_by) ||
Expand All @@ -281,6 +299,7 @@ class _$TeamModelImpl implements _TeamModel {
name,
name_lowercase,
city,
name_initial,
profile_img_url,
created_by,
created_at,
Expand All @@ -307,6 +326,7 @@ abstract class _TeamModel implements TeamModel {
required final String name,
required final String name_lowercase,
final String? city,
final String? name_initial,
final String? profile_img_url,
final String? created_by,
final DateTime? created_at,
Expand All @@ -326,6 +346,8 @@ abstract class _TeamModel implements TeamModel {
@override
String? get city;
@override
String? get name_initial;
@override
String? get profile_img_url;
@override
String? get created_by;
Expand Down
2 changes: 2 additions & 0 deletions data/lib/api/team/team_model.g.dart

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

1 change: 1 addition & 0 deletions khelo/assets/locales/app_en.arb
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@
"add_team_edit_team_screen_title": "Edit Team",
"add_team_add_as_member_description_text": "Add me as a team member",
"add_team_enter_team_name_placeholder_text": "Enter team name",
"add_team_team_initial_placeholder_text": "Team initials (e.g. IND, AUS, PBKS)",
"add_team_player_role_title": "Playing role",
"add_team_player_add_via_contact_title": "Add via Contact",
"add_team_players_text": "Players",
Expand Down
26 changes: 13 additions & 13 deletions khelo/ios/Runner.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
9C8DD79CF293961A8F4177C2 /* [CP] Embed Pods Frameworks */,
9EE7146958D62CE1CD764FEE /* [CP] Copy Pods Resources */,
3526C9B46C8E72D356D2469A /* FlutterFire: "flutterfire upload-crashlytics-symbols" */,
4355A474366F3412FC529595 /* FlutterFire: "flutterfire upload-crashlytics-symbols" */,
);
buildRules = (
);
Expand Down Expand Up @@ -301,39 +301,39 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
3526C9B46C8E72D356D2469A /* FlutterFire: "flutterfire upload-crashlytics-symbols" */ = {
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${TARGET_BUILD_DIR}/${INFOPLIST_PATH}",
);
name = "FlutterFire: \"flutterfire upload-crashlytics-symbols\"";
outputFileListPaths = (
);
name = "Thin Binary";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\n#!/bin/bash\nPATH=${PATH}:$FLUTTER_ROOT/bin:$HOME/.pub-cache/bin\nflutterfire upload-crashlytics-symbols --upload-symbols-script-path=$PODS_ROOT/FirebaseCrashlytics/upload-symbols --platform=ios --apple-project-path=${SRCROOT} --env-platform-name=${PLATFORM_NAME} --env-configuration=${CONFIGURATION} --env-project-dir=${PROJECT_DIR} --env-built-products-dir=${BUILT_PRODUCTS_DIR} --env-dwarf-dsym-folder-path=${DWARF_DSYM_FOLDER_PATH} --env-dwarf-dsym-file-name=${DWARF_DSYM_FILE_NAME} --env-infoplist-path=${INFOPLIST_PATH} --default-config=default\n";
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin\n";
};
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
4355A474366F3412FC529595 /* FlutterFire: "flutterfire upload-crashlytics-symbols" */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${TARGET_BUILD_DIR}/${INFOPLIST_PATH}",
);
name = "Thin Binary";
name = "FlutterFire: \"flutterfire upload-crashlytics-symbols\"";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin\n";
shellScript = "\n#!/bin/bash\nPATH=${PATH}:$FLUTTER_ROOT/bin:$HOME/.pub-cache/bin\nflutterfire upload-crashlytics-symbols --upload-symbols-script-path=$PODS_ROOT/FirebaseCrashlytics/upload-symbols --platform=ios --apple-project-path=${SRCROOT} --env-platform-name=${PLATFORM_NAME} --env-configuration=${CONFIGURATION} --env-project-dir=${PROJECT_DIR} --env-built-products-dir=${BUILT_PRODUCTS_DIR} --env-dwarf-dsym-folder-path=${DWARF_DSYM_FOLDER_PATH} --env-dwarf-dsym-file-name=${DWARF_DSYM_FILE_NAME} --env-infoplist-path=${INFOPLIST_PATH} --default-config=default\n";
};
9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase;
Expand Down
17 changes: 12 additions & 5 deletions khelo/lib/components/image_avatar.dart
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,18 @@ class ImageAvatar extends StatelessWidget {
}

Widget _initialView(BuildContext context) {
return Text(
initial,
style: AppTextStyle.subtitle1.copyWith(
color: foregroundColor ?? context.colorScheme.textPrimary,
fontSize: size / 2.15),
return Padding(
padding: const EdgeInsets.all(4),
child: FittedBox(
fit: BoxFit.scaleDown,
child: Text(
initial,
textAlign: TextAlign.center,
style: AppTextStyle.subtitle1.copyWith(
color: foregroundColor ?? context.colorScheme.textPrimary,
fontSize: size / 2.15),
),
),
);
}
}
4 changes: 3 additions & 1 deletion khelo/lib/ui/flow/home/home_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import 'package:khelo/components/empty_screen.dart';
import 'package:khelo/components/error_screen.dart';
import 'package:khelo/components/image_avatar.dart';
import 'package:khelo/domain/extensions/context_extensions.dart';
import 'package:khelo/domain/extensions/string_extensions.dart';
import 'package:khelo/domain/formatter/date_formatter.dart';
import 'package:khelo/ui/app_route.dart';
import 'package:khelo/ui/flow/home/home_view_model.dart';
Expand Down Expand Up @@ -246,7 +247,8 @@ class _HomeScreenState extends ConsumerState<HomeScreen> {
mainAxisSize: MainAxisSize.min,
children: [
ImageAvatar(
initial: matchTeam.team.name[0].toUpperCase(),
initial:
matchTeam.team.name_initial ?? matchTeam.team.name.initials(limit: 1),
imageUrl: matchTeam.team.profile_img_url,
size: 32,
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import 'package:cached_network_image/cached_network_image.dart';
import 'package:data/api/team/team_model.dart';
import 'package:flutter/material.dart';
import 'package:khelo/domain/extensions/context_extensions.dart';
import 'package:khelo/domain/extensions/string_extensions.dart';
import 'package:khelo/ui/app_route.dart';
import 'package:khelo/ui/flow/matches/add_match/add_match_view_model.dart';
import 'package:style/animations/on_tap_scale.dart';
Expand Down Expand Up @@ -111,7 +112,7 @@ class TeamSelectionView extends StatelessWidget {
)
: (team.profile_img_url == null)
? Text(
team.name[0].toUpperCase(),
team.name_initial ?? team.name.initials(limit: 1),
style: AppTextStyle.subtitle1.copyWith(
color: context.colorScheme.textDisabled),
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ class CommentaryOverOverview extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.start,
children: [
ImageAvatar(
initial: team?.name.initials(limit: 1) ?? "?",
initial: team?.name_initial ?? team?.name.initials(limit: 1) ?? "?",
imageUrl: team?.profile_img_url,
size: 35,
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:khelo/components/image_avatar.dart';
import 'package:khelo/components/match_status_tag.dart';
import 'package:khelo/domain/extensions/string_extensions.dart';
import 'package:khelo/ui/flow/matches/match_detail/match_detail_tab_view_model.dart';
import 'package:khelo/components/won_by_message_text.dart';
import 'package:style/extensions/context_extensions.dart';
Expand Down Expand Up @@ -59,7 +60,7 @@ class FinalScoreView extends ConsumerWidget {
return Row(
children: [
ImageAvatar(
initial: team.team.name[0].toUpperCase(),
initial: team.team.name_initial ?? team.team.name.initials(limit: 1),
imageUrl: team.team.profile_img_url,
size: 32,
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ class _MatchDetailTabScreenState extends ConsumerState<MatchDetailTabScreen> {
String _getScreenTitle(BuildContext context, MatchDetailTabState state) {
if (state.match != null) {
String title = state.match!.teams
.map((e) => e.team.name.initials(limit: 3))
.map((e) => e.team.name_initial ?? e.team.name.initials(limit: 3))
.join(" ${context.l10n.common_versus_short_title} ");
return title;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import 'package:khelo/components/error_snackbar.dart';
import 'package:khelo/components/image_avatar.dart';
import 'package:khelo/domain/extensions/context_extensions.dart';
import 'package:khelo/domain/extensions/enum_extensions.dart';
import 'package:khelo/domain/extensions/string_extensions.dart';
import 'package:khelo/domain/extensions/widget_extension.dart';
import 'package:khelo/gen/assets.gen.dart';
import 'package:khelo/ui/app_route.dart';
Expand Down Expand Up @@ -101,11 +102,12 @@ class _AddTossDetailScreenState extends ConsumerState<AddTossDetailScreen> {
(team) => _tossCellView(
context: context,
imageUrl: team.team.profile_img_url,
initial: team.team.name[0].toUpperCase(),
initial: team.team.name_initial ??
team.team.name.initials(limit: 1),
title: team.team.name,
isSelected: tossWinnerTeamId == team.team.id,
onTap: () => notifier
.onTossWinnerSelect(team.team.id),
onTap: () =>
notifier.onTossWinnerSelect(team.team.id),
),
)
.toList() ??
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import 'package:flutter/services.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:go_router/go_router.dart';
import 'package:khelo/domain/extensions/context_extensions.dart';
import 'package:khelo/domain/extensions/string_extensions.dart';
import 'package:khelo/ui/flow/score_board/components/bottom_sheet_wrapper.dart';
import 'package:khelo/ui/flow/score_board/components/user_cell_view.dart';
import 'package:khelo/ui/flow/score_board/score_board_view_model.dart';
Expand Down Expand Up @@ -153,7 +154,9 @@ class _AddPenaltyRunSheetState extends ConsumerState<AddPenaltyRunSheet> {
title: firstTeam?.name ?? "",
imageUrl: firstTeam?.profile_img_url,
outerPadding: 32,
initial: firstTeam?.name[0].toUpperCase(),
initial: firstTeam?.name_initial ??
firstTeam?.name.initials(limit: 1) ??
"?",
isSelected: selectedTeamId == firstTeam?.id,
onTap: () => setState(() {
selectedTeamId = firstTeam?.id;
Expand All @@ -165,7 +168,9 @@ class _AddPenaltyRunSheetState extends ConsumerState<AddPenaltyRunSheet> {
UserCellView(
title: secondTeam?.name ?? "",
imageUrl: secondTeam?.profile_img_url,
initial: secondTeam?.name[0].toUpperCase(),
initial: secondTeam?.name_initial ??
secondTeam?.name.initials(limit: 1) ??
"?",
outerPadding: 32,
isSelected: selectedTeamId == secondTeam?.id,
onTap: () => setState(() {
Expand Down
Loading

0 comments on commit 4de5f89

Please sign in to comment.