chore: fix 273+ analysis issues and repair corrupted core files

This commit is contained in:
2026-03-20 21:05:23 +05:30
parent d3159bc2ae
commit 39263a4af5
59 changed files with 265 additions and 3268 deletions

View File

@@ -176,104 +176,4 @@ class _QuickLinkItem extends StatelessWidget {
}
}
class _NotificationsSettingsCard extends StatelessWidget {
@override
Widget build(BuildContext context) {
return BlocBuilder<ClientSettingsBloc, ClientSettingsState>(
builder: (BuildContext context, ClientSettingsState state) {
return Card(
elevation: 0,
shape: RoundedRectangleBorder(
borderRadius: UiConstants.radiusLg,
side: const BorderSide(color: UiColors.border),
),
color: UiColors.white,
child: Padding(
padding: const EdgeInsets.all(UiConstants.space4),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
context.t.client_settings.preferences.title,
style: UiTypography.footnote1b.textPrimary,
),
const SizedBox(height: UiConstants.space2),
_NotificationToggle(
icon: UiIcons.bell,
title: context.t.client_settings.preferences.push,
value: state.pushEnabled,
onChanged: (bool val) =>
ReadContext(context).read<ClientSettingsBloc>().add(
ClientSettingsNotificationToggled(
type: 'push',
isEnabled: val,
),
),
),
_NotificationToggle(
icon: UiIcons.mail,
title: context.t.client_settings.preferences.email,
value: state.emailEnabled,
onChanged: (bool val) =>
ReadContext(context).read<ClientSettingsBloc>().add(
ClientSettingsNotificationToggled(
type: 'email',
isEnabled: val,
),
),
),
_NotificationToggle(
icon: UiIcons.phone,
title: context.t.client_settings.preferences.sms,
value: state.smsEnabled,
onChanged: (bool val) =>
ReadContext(context).read<ClientSettingsBloc>().add(
ClientSettingsNotificationToggled(
type: 'sms',
isEnabled: val,
),
),
),
],
),
),
);
},
);
}
}
class _NotificationToggle extends StatelessWidget {
const _NotificationToggle({
required this.icon,
required this.title,
required this.value,
required this.onChanged,
});
final IconData icon;
final String title;
final bool value;
final ValueChanged<bool> onChanged;
@override
Widget build(BuildContext context) {
return Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Row(
children: <Widget>[
Icon(icon, size: 20, color: UiColors.iconSecondary),
const SizedBox(width: UiConstants.space3),
Text(title, style: UiTypography.footnote1m.textPrimary),
],
),
Switch.adaptive(
value: value,
activeColor: UiColors.primary,
onChanged: onChanged,
),
],
);
}
}

View File

@@ -18,7 +18,7 @@ class SettingsProfileHeader extends StatelessWidget {
final String businessName = session?.businessName ?? 'Your Company';
final String email = session?.email ?? 'client@example.com';
// V2 session does not include a photo URL; show letter avatar.
final String? photoUrl = null;
const String? photoUrl = null;
final String avatarLetter = businessName.trim().isNotEmpty
? businessName.trim()[0].toUpperCase()
: 'C';