Replace all .withOpacity() with .withValues(alpha:) across 32 files (189 occurrences) - zero deprecation warnings remaining
This commit is contained in:
parent
2f9f0aaaf2
commit
6867c95ca6
|
|
@ -111,7 +111,7 @@ class _CategorySelectScreenState extends ConsumerState<CategorySelectScreen> {
|
||||||
Text(
|
Text(
|
||||||
'We\'ll use this to personalize your feed. You can adjust this anytime.',
|
'We\'ll use this to personalize your feed. You can adjust this anytime.',
|
||||||
style: AppTheme.bodyMedium.copyWith(
|
style: AppTheme.bodyMedium.copyWith(
|
||||||
color: AppTheme.navyText.withOpacity(0.8), // Replaced AppTheme.textSecondary
|
color: AppTheme.navyText.withValues(alpha: 0.8), // Replaced AppTheme.textSecondary
|
||||||
),
|
),
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
),
|
),
|
||||||
|
|
@ -120,7 +120,7 @@ class _CategorySelectScreenState extends ConsumerState<CategorySelectScreen> {
|
||||||
Container(
|
Container(
|
||||||
padding: const EdgeInsets.all(AppTheme.spacingMd),
|
padding: const EdgeInsets.all(AppTheme.spacingMd),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.error.withOpacity(0.1), // Replaced withValues
|
color: AppTheme.error.withValues(alpha: 0.1), // Replaced withValues
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
border: Border.all(color: AppTheme.error, width: 1),
|
border: Border.all(color: AppTheme.error, width: 1),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -109,7 +109,7 @@ class _ProfileSetupScreenState extends ConsumerState<ProfileSetupScreen> {
|
||||||
Text(
|
Text(
|
||||||
'Your handle is permanent. Choose thoughtfully.',
|
'Your handle is permanent. Choose thoughtfully.',
|
||||||
style: AppTheme.bodyMedium.copyWith(
|
style: AppTheme.bodyMedium.copyWith(
|
||||||
color: AppTheme.navyText.withOpacity(0.8), // Replaced AppTheme.textSecondary
|
color: AppTheme.navyText.withValues(alpha: 0.8), // Replaced AppTheme.textSecondary
|
||||||
),
|
),
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
),
|
),
|
||||||
|
|
@ -120,7 +120,7 @@ class _ProfileSetupScreenState extends ConsumerState<ProfileSetupScreen> {
|
||||||
Container(
|
Container(
|
||||||
padding: const EdgeInsets.all(AppTheme.spacingMd),
|
padding: const EdgeInsets.all(AppTheme.spacingMd),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.error.withOpacity(0.1), // Replaced withValues
|
color: AppTheme.error.withValues(alpha: 0.1), // Replaced withValues
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
border: Border.all(color: AppTheme.error, width: 1),
|
border: Border.all(color: AppTheme.error, width: 1),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -251,7 +251,7 @@ class _SignInScreenState extends ConsumerState<SignInScreen> {
|
||||||
color: AppTheme.cardSurface,
|
color: AppTheme.cardSurface,
|
||||||
borderRadius: BorderRadius.circular(20),
|
borderRadius: BorderRadius.circular(20),
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
color: AppTheme.queenPink.withOpacity(0.6),
|
color: AppTheme.queenPink.withValues(alpha: 0.6),
|
||||||
),
|
),
|
||||||
boxShadow: [
|
boxShadow: [
|
||||||
BoxShadow(
|
BoxShadow(
|
||||||
|
|
@ -283,7 +283,7 @@ class _SignInScreenState extends ConsumerState<SignInScreen> {
|
||||||
padding:
|
padding:
|
||||||
const EdgeInsets.all(AppTheme.spacingMd),
|
const EdgeInsets.all(AppTheme.spacingMd),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.error.withOpacity(0.08),
|
color: AppTheme.error.withValues(alpha: 0.08),
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
color: AppTheme.error, width: 1),
|
color: AppTheme.error, width: 1),
|
||||||
|
|
@ -408,7 +408,7 @@ class _SignInScreenState extends ConsumerState<SignInScreen> {
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
color: _turnstileToken != null
|
color: _turnstileToken != null
|
||||||
? AppTheme.success
|
? AppTheme.success
|
||||||
: AppTheme.egyptianBlue.withOpacity(0.3),
|
: AppTheme.egyptianBlue.withValues(alpha: 0.3),
|
||||||
width: 1,
|
width: 1,
|
||||||
),
|
),
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
|
|
@ -452,7 +452,7 @@ class _SignInScreenState extends ConsumerState<SignInScreen> {
|
||||||
style: AppTheme.textTheme.labelSmall
|
style: AppTheme.textTheme.labelSmall
|
||||||
?.copyWith(
|
?.copyWith(
|
||||||
color: AppTheme.navyText
|
color: AppTheme.navyText
|
||||||
.withOpacity(0.75),
|
.withValues(alpha: 0.75),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -495,7 +495,7 @@ class _SignInScreenState extends ConsumerState<SignInScreen> {
|
||||||
BorderRadius.circular(26),
|
BorderRadius.circular(26),
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
color: AppTheme.egyptianBlue
|
color: AppTheme.egyptianBlue
|
||||||
.withOpacity(0.5),
|
.withValues(alpha: 0.5),
|
||||||
),
|
),
|
||||||
boxShadow: [
|
boxShadow: [
|
||||||
BoxShadow(
|
BoxShadow(
|
||||||
|
|
@ -526,7 +526,7 @@ class _SignInScreenState extends ConsumerState<SignInScreen> {
|
||||||
style: AppTheme.textTheme.labelSmall
|
style: AppTheme.textTheme.labelSmall
|
||||||
?.copyWith(
|
?.copyWith(
|
||||||
color: AppTheme.navyText
|
color: AppTheme.navyText
|
||||||
.withOpacity(0.7),
|
.withValues(alpha: 0.7),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -249,7 +249,7 @@ class _SignUpScreenState extends ConsumerState<SignUpScreen> {
|
||||||
Text(
|
Text(
|
||||||
'Your vibrant journey begins now',
|
'Your vibrant journey begins now',
|
||||||
style: AppTheme.bodyMedium.copyWith(
|
style: AppTheme.bodyMedium.copyWith(
|
||||||
color: AppTheme.navyText.withOpacity(0.8),
|
color: AppTheme.navyText.withValues(alpha: 0.8),
|
||||||
),
|
),
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
),
|
),
|
||||||
|
|
@ -260,7 +260,7 @@ class _SignUpScreenState extends ConsumerState<SignUpScreen> {
|
||||||
Container(
|
Container(
|
||||||
padding: const EdgeInsets.all(AppTheme.spacingMd),
|
padding: const EdgeInsets.all(AppTheme.spacingMd),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.error.withOpacity(0.1),
|
color: AppTheme.error.withValues(alpha: 0.1),
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
border: Border.all(color: AppTheme.error, width: 1),
|
border: Border.all(color: AppTheme.error, width: 1),
|
||||||
),
|
),
|
||||||
|
|
@ -379,7 +379,7 @@ class _SignUpScreenState extends ConsumerState<SignUpScreen> {
|
||||||
Text(
|
Text(
|
||||||
'You must be at least 16 to use Sojorn. Users under 18 cannot access sensitive content.',
|
'You must be at least 16 to use Sojorn. Users under 18 cannot access sensitive content.',
|
||||||
style: AppTheme.textTheme.labelSmall?.copyWith(
|
style: AppTheme.textTheme.labelSmall?.copyWith(
|
||||||
color: AppTheme.navyText.withOpacity(0.6),
|
color: AppTheme.navyText.withValues(alpha: 0.6),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(height: AppTheme.spacingSm),
|
const SizedBox(height: AppTheme.spacingSm),
|
||||||
|
|
@ -439,7 +439,7 @@ class _SignUpScreenState extends ConsumerState<SignUpScreen> {
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
color: _turnstileToken != null
|
color: _turnstileToken != null
|
||||||
? AppTheme.success
|
? AppTheme.success
|
||||||
: AppTheme.egyptianBlue.withOpacity(0.3),
|
: AppTheme.egyptianBlue.withValues(alpha: 0.3),
|
||||||
width: 1,
|
width: 1,
|
||||||
),
|
),
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ class sojornImageEditor extends StatelessWidget {
|
||||||
activeTrackColor: AppTheme.brightNavy,
|
activeTrackColor: AppTheme.brightNavy,
|
||||||
inactiveTrackColor: SojornColors.basicWhite.withValues(alpha: 0.24),
|
inactiveTrackColor: SojornColors.basicWhite.withValues(alpha: 0.24),
|
||||||
thumbColor: AppTheme.brightNavy,
|
thumbColor: AppTheme.brightNavy,
|
||||||
overlayColor: AppTheme.brightNavy.withOpacity(0.2),
|
overlayColor: AppTheme.brightNavy.withValues(alpha: 0.2),
|
||||||
),
|
),
|
||||||
textButtonTheme: TextButtonThemeData(
|
textButtonTheme: TextButtonThemeData(
|
||||||
style: TextButton.styleFrom(
|
style: TextButton.styleFrom(
|
||||||
|
|
|
||||||
|
|
@ -287,7 +287,7 @@ class _sojornVideoEditorState extends State<sojornVideoEditor> {
|
||||||
},
|
},
|
||||||
child: Container(
|
child: Container(
|
||||||
width: 20,
|
width: 20,
|
||||||
color: _brightNavy.withOpacity(0.3),
|
color: _brightNavy.withValues(alpha: 0.3),
|
||||||
child: Center(
|
child: Center(
|
||||||
child: Container(
|
child: Container(
|
||||||
width: 4,
|
width: 4,
|
||||||
|
|
@ -309,7 +309,7 @@ class _sojornVideoEditorState extends State<sojornVideoEditor> {
|
||||||
},
|
},
|
||||||
child: Container(
|
child: Container(
|
||||||
width: 20,
|
width: 20,
|
||||||
color: _brightNavy.withOpacity(0.3),
|
color: _brightNavy.withValues(alpha: 0.3),
|
||||||
child: Center(
|
child: Center(
|
||||||
child: Container(
|
child: Container(
|
||||||
width: 4,
|
width: 4,
|
||||||
|
|
@ -357,7 +357,7 @@ class _sojornVideoEditorState extends State<sojornVideoEditor> {
|
||||||
activeTrackColor: _brightNavy,
|
activeTrackColor: _brightNavy,
|
||||||
inactiveTrackColor: SojornColors.basicWhite.withValues(alpha: 0.24),
|
inactiveTrackColor: SojornColors.basicWhite.withValues(alpha: 0.24),
|
||||||
thumbColor: _brightNavy,
|
thumbColor: _brightNavy,
|
||||||
overlayColor: _brightNavy.withOpacity(0.2),
|
overlayColor: _brightNavy.withValues(alpha: 0.2),
|
||||||
trackHeight: 4,
|
trackHeight: 4,
|
||||||
thumbShape: const RoundSliderThumbShape(enabledThumbRadius: 8),
|
thumbShape: const RoundSliderThumbShape(enabledThumbRadius: 8),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -324,12 +324,12 @@ class _DiscoverScreenState extends ConsumerState<DiscoverScreen> {
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.scaffoldBg,
|
color: AppTheme.scaffoldBg,
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
border: Border.all(color: AppTheme.egyptianBlue.withOpacity(0.3)),
|
border: Border.all(color: AppTheme.egyptianBlue.withValues(alpha: 0.3)),
|
||||||
),
|
),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Icon(Icons.search,
|
Icon(Icons.search,
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.6), size: 20),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.6), size: 20),
|
||||||
const SizedBox(width: 10),
|
const SizedBox(width: 10),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: TextField(
|
child: TextField(
|
||||||
|
|
@ -337,7 +337,7 @@ class _DiscoverScreenState extends ConsumerState<DiscoverScreen> {
|
||||||
focusNode: focusNode,
|
focusNode: focusNode,
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
hintText: 'Search people, hashtags, posts...',
|
hintText: 'Search people, hashtags, posts...',
|
||||||
hintStyle: TextStyle(color: AppTheme.egyptianBlue.withOpacity(0.5)),
|
hintStyle: TextStyle(color: AppTheme.egyptianBlue.withValues(alpha: 0.5)),
|
||||||
border: InputBorder.none,
|
border: InputBorder.none,
|
||||||
isDense: true,
|
isDense: true,
|
||||||
contentPadding: EdgeInsets.zero,
|
contentPadding: EdgeInsets.zero,
|
||||||
|
|
@ -396,7 +396,7 @@ class _DiscoverScreenState extends ConsumerState<DiscoverScreen> {
|
||||||
fontWeight: FontWeight.w600,
|
fontWeight: FontWeight.w600,
|
||||||
fontSize: 14,
|
fontSize: 14,
|
||||||
),
|
),
|
||||||
backgroundColor: AppTheme.royalPurple.withOpacity(0.1),
|
backgroundColor: AppTheme.royalPurple.withValues(alpha: 0.1),
|
||||||
side: BorderSide.none,
|
side: BorderSide.none,
|
||||||
shape: RoundedRectangleBorder(
|
shape: RoundedRectangleBorder(
|
||||||
borderRadius: BorderRadius.circular(20),
|
borderRadius: BorderRadius.circular(20),
|
||||||
|
|
@ -480,11 +480,11 @@ class _DiscoverScreenState extends ConsumerState<DiscoverScreen> {
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Icon(Icons.search_off,
|
Icon(Icons.search_off,
|
||||||
size: 64, color: AppTheme.egyptianBlue.withOpacity(0.5)),
|
size: 64, color: AppTheme.egyptianBlue.withValues(alpha: 0.5)),
|
||||||
const SizedBox(height: 16),
|
const SizedBox(height: 16),
|
||||||
Text('No results found',
|
Text('No results found',
|
||||||
style: AppTheme.headlineSmall
|
style: AppTheme.headlineSmall
|
||||||
.copyWith(color: AppTheme.navyText.withOpacity(0.7))),
|
.copyWith(color: AppTheme.navyText.withValues(alpha: 0.7))),
|
||||||
const SizedBox(height: 8),
|
const SizedBox(height: 8),
|
||||||
Text('Try a different search term',
|
Text('Try a different search term',
|
||||||
style: AppTheme.bodyMedium.copyWith(color: AppTheme.egyptianBlue)),
|
style: AppTheme.bodyMedium.copyWith(color: AppTheme.egyptianBlue)),
|
||||||
|
|
@ -562,7 +562,7 @@ class _DiscoverScreenState extends ConsumerState<DiscoverScreen> {
|
||||||
children: [
|
children: [
|
||||||
CircleAvatar(
|
CircleAvatar(
|
||||||
radius: 30,
|
radius: 30,
|
||||||
backgroundColor: AppTheme.royalPurple.withOpacity(0.2),
|
backgroundColor: AppTheme.royalPurple.withValues(alpha: 0.2),
|
||||||
child: user.avatarUrl != null
|
child: user.avatarUrl != null
|
||||||
? ClipRRect(
|
? ClipRRect(
|
||||||
borderRadius: BorderRadius.circular(30),
|
borderRadius: BorderRadius.circular(30),
|
||||||
|
|
@ -596,7 +596,7 @@ class _DiscoverScreenState extends ConsumerState<DiscoverScreen> {
|
||||||
Text(
|
Text(
|
||||||
'@${user.username}',
|
'@${user.username}',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.7), fontSize: 11),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.7), fontSize: 11),
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
overflow: TextOverflow.ellipsis,
|
overflow: TextOverflow.ellipsis,
|
||||||
),
|
),
|
||||||
|
|
@ -615,7 +615,7 @@ class _DiscoverScreenState extends ConsumerState<DiscoverScreen> {
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.cardSurface,
|
color: AppTheme.cardSurface,
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
border: Border.all(color: AppTheme.egyptianBlue.withOpacity(0.2)),
|
border: Border.all(color: AppTheme.egyptianBlue.withValues(alpha: 0.2)),
|
||||||
),
|
),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
|
|
@ -623,7 +623,7 @@ class _DiscoverScreenState extends ConsumerState<DiscoverScreen> {
|
||||||
width: 40,
|
width: 40,
|
||||||
height: 40,
|
height: 40,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.royalPurple.withOpacity(0.1),
|
color: AppTheme.royalPurple.withValues(alpha: 0.1),
|
||||||
borderRadius: BorderRadius.circular(10),
|
borderRadius: BorderRadius.circular(10),
|
||||||
),
|
),
|
||||||
child: Icon(Icons.tag, color: AppTheme.royalPurple, size: 20),
|
child: Icon(Icons.tag, color: AppTheme.royalPurple, size: 20),
|
||||||
|
|
@ -640,13 +640,13 @@ class _DiscoverScreenState extends ConsumerState<DiscoverScreen> {
|
||||||
fontSize: 15)),
|
fontSize: 15)),
|
||||||
Text('${tag.count} posts',
|
Text('${tag.count} posts',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.7),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.7),
|
||||||
fontSize: 13)),
|
fontSize: 13)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Icon(Icons.chevron_right,
|
Icon(Icons.chevron_right,
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.5)),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.5)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -239,7 +239,7 @@ class _EmptyState extends StatelessWidget {
|
||||||
'Your feed is vibrant!', // Updated text
|
'Your feed is vibrant!', // Updated text
|
||||||
style: AppTheme.headlineSmall.copyWith(
|
style: AppTheme.headlineSmall.copyWith(
|
||||||
color: AppTheme.navyText
|
color: AppTheme.navyText
|
||||||
.withOpacity(0.8), // Replaced AppTheme.textSecondary
|
.withValues(alpha: 0.8), // Replaced AppTheme.textSecondary
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(height: AppTheme.spacingSm),
|
const SizedBox(height: AppTheme.spacingSm),
|
||||||
|
|
|
||||||
|
|
@ -129,7 +129,7 @@ class _HomeShellState extends ConsumerState<HomeShell> with WidgetsBindingObserv
|
||||||
borderRadius: BorderRadius.circular(16),
|
borderRadius: BorderRadius.circular(16),
|
||||||
boxShadow: [
|
boxShadow: [
|
||||||
BoxShadow(
|
BoxShadow(
|
||||||
color: (hasState ? AppTheme.brightNavy : AppTheme.navyBlue).withOpacity(0.4),
|
color: (hasState ? AppTheme.brightNavy : AppTheme.navyBlue).withValues(alpha: 0.4),
|
||||||
blurRadius: 12,
|
blurRadius: 12,
|
||||||
offset: const Offset(0, 4),
|
offset: const Offset(0, 4),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -370,7 +370,7 @@ class _NotificationsScreenState extends ConsumerState<NotificationsScreen> {
|
||||||
},
|
},
|
||||||
indicatorColor: AppTheme.egyptianBlue,
|
indicatorColor: AppTheme.egyptianBlue,
|
||||||
labelColor: AppTheme.egyptianBlue,
|
labelColor: AppTheme.egyptianBlue,
|
||||||
unselectedLabelColor: AppTheme.egyptianBlue.withOpacity(0.5),
|
unselectedLabelColor: AppTheme.egyptianBlue.withValues(alpha: 0.5),
|
||||||
tabs: const [
|
tabs: const [
|
||||||
Tab(text: 'Active'),
|
Tab(text: 'Active'),
|
||||||
Tab(text: 'Archived'),
|
Tab(text: 'Archived'),
|
||||||
|
|
@ -429,7 +429,7 @@ class _NotificationsScreenState extends ConsumerState<NotificationsScreen> {
|
||||||
background: Container(
|
background: Container(
|
||||||
alignment: Alignment.centerRight,
|
alignment: Alignment.centerRight,
|
||||||
padding: const EdgeInsets.only(right: 20),
|
padding: const EdgeInsets.only(right: 20),
|
||||||
color: AppTheme.royalPurple.withOpacity(0.8),
|
color: AppTheme.royalPurple.withValues(alpha: 0.8),
|
||||||
child: const Row(
|
child: const Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.end,
|
mainAxisAlignment: MainAxisAlignment.end,
|
||||||
children: [
|
children: [
|
||||||
|
|
@ -507,10 +507,10 @@ class _NotificationItem extends StatelessWidget {
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: notification.isRead
|
color: notification.isRead
|
||||||
? SojornColors.transparent
|
? SojornColors.transparent
|
||||||
: AppTheme.royalPurple.withOpacity(0.05),
|
: AppTheme.royalPurple.withValues(alpha: 0.05),
|
||||||
border: Border(
|
border: Border(
|
||||||
bottom: BorderSide(
|
bottom: BorderSide(
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.15),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.15),
|
||||||
width: 1,
|
width: 1,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -552,7 +552,7 @@ class _NotificationItem extends StatelessWidget {
|
||||||
Text(
|
Text(
|
||||||
notification.postBody!,
|
notification.postBody!,
|
||||||
style: AppTheme.textTheme.labelSmall?.copyWith(
|
style: AppTheme.textTheme.labelSmall?.copyWith(
|
||||||
color: AppTheme.navyText.withOpacity(0.6),
|
color: AppTheme.navyText.withValues(alpha: 0.6),
|
||||||
),
|
),
|
||||||
maxLines: 2,
|
maxLines: 2,
|
||||||
overflow: TextOverflow.ellipsis,
|
overflow: TextOverflow.ellipsis,
|
||||||
|
|
@ -562,7 +562,7 @@ class _NotificationItem extends StatelessWidget {
|
||||||
Text(
|
Text(
|
||||||
timeago.format(notification.createdAt, locale: 'en_short'),
|
timeago.format(notification.createdAt, locale: 'en_short'),
|
||||||
style: AppTheme.textTheme.labelSmall?.copyWith(
|
style: AppTheme.textTheme.labelSmall?.copyWith(
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.7),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.7),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
@ -625,10 +625,10 @@ class _NotificationItem extends StatelessWidget {
|
||||||
width: 40,
|
width: 40,
|
||||||
height: 40,
|
height: 40,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: iconColor.withOpacity(0.1),
|
color: iconColor.withValues(alpha: 0.1),
|
||||||
shape: BoxShape.circle,
|
shape: BoxShape.circle,
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
color: iconColor.withOpacity(0.3),
|
color: iconColor.withValues(alpha: 0.3),
|
||||||
width: 1,
|
width: 1,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -664,10 +664,10 @@ class _FollowRequestItem extends StatelessWidget {
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: notification.isRead
|
color: notification.isRead
|
||||||
? SojornColors.transparent
|
? SojornColors.transparent
|
||||||
: AppTheme.royalPurple.withOpacity(0.05),
|
: AppTheme.royalPurple.withValues(alpha: 0.05),
|
||||||
border: Border(
|
border: Border(
|
||||||
bottom: BorderSide(
|
bottom: BorderSide(
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.15),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.15),
|
||||||
width: 1,
|
width: 1,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -715,7 +715,7 @@ class _FollowRequestItem extends StatelessWidget {
|
||||||
Text(
|
Text(
|
||||||
'@$handle',
|
'@$handle',
|
||||||
style: AppTheme.textTheme.labelSmall?.copyWith(
|
style: AppTheme.textTheme.labelSmall?.copyWith(
|
||||||
color: AppTheme.navyText.withOpacity(0.7),
|
color: AppTheme.navyText.withValues(alpha: 0.7),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
@ -723,7 +723,7 @@ class _FollowRequestItem extends StatelessWidget {
|
||||||
Text(
|
Text(
|
||||||
'requested to follow you',
|
'requested to follow you',
|
||||||
style: AppTheme.textTheme.bodySmall?.copyWith(
|
style: AppTheme.textTheme.bodySmall?.copyWith(
|
||||||
color: AppTheme.navyText.withOpacity(0.8),
|
color: AppTheme.navyText.withValues(alpha: 0.8),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(height: AppTheme.spacingSm),
|
const SizedBox(height: AppTheme.spacingSm),
|
||||||
|
|
@ -746,7 +746,7 @@ class _FollowRequestItem extends StatelessWidget {
|
||||||
Text(
|
Text(
|
||||||
timeago.format(notification.createdAt, locale: 'en_short'),
|
timeago.format(notification.createdAt, locale: 'en_short'),
|
||||||
style: AppTheme.textTheme.labelSmall?.copyWith(
|
style: AppTheme.textTheme.labelSmall?.copyWith(
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.7),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.7),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
@ -807,7 +807,7 @@ class _EmptyState extends StatelessWidget {
|
||||||
Icon(
|
Icon(
|
||||||
Icons.notifications_none,
|
Icons.notifications_none,
|
||||||
size: 80,
|
size: 80,
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.3),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.3),
|
||||||
),
|
),
|
||||||
const SizedBox(height: AppTheme.spacingLg),
|
const SizedBox(height: AppTheme.spacingLg),
|
||||||
Text(
|
Text(
|
||||||
|
|
@ -819,7 +819,7 @@ class _EmptyState extends StatelessWidget {
|
||||||
Text(
|
Text(
|
||||||
"You'll see notifications here when someone appreciates your posts, chains them, or follows you.",
|
"You'll see notifications here when someone appreciates your posts, chains them, or follows you.",
|
||||||
style: AppTheme.textTheme.bodyMedium?.copyWith(
|
style: AppTheme.textTheme.bodyMedium?.copyWith(
|
||||||
color: AppTheme.navyText.withOpacity(0.7),
|
color: AppTheme.navyText.withValues(alpha: 0.7),
|
||||||
),
|
),
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -174,12 +174,12 @@ class _BlockedUsersScreenState extends ConsumerState<BlockedUsersScreen> {
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Icon(Icons.block, size: 64, color: AppTheme.egyptianBlue.withOpacity(0.3)),
|
Icon(Icons.block, size: 64, color: AppTheme.egyptianBlue.withValues(alpha: 0.3)),
|
||||||
const SizedBox(height: 16),
|
const SizedBox(height: 16),
|
||||||
Text(
|
Text(
|
||||||
'No blocked users',
|
'No blocked users',
|
||||||
style: AppTheme.textTheme.titleMedium?.copyWith(
|
style: AppTheme.textTheme.titleMedium?.copyWith(
|
||||||
color: AppTheme.navyText.withOpacity(0.5),
|
color: AppTheme.navyText.withValues(alpha: 0.5),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,7 @@ class _CategoryDiscoveryScreenState extends ConsumerState<CategoryDiscoveryScree
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: SojornColors.basicWhite,
|
color: SojornColors.basicWhite,
|
||||||
borderRadius: BorderRadius.circular(16),
|
borderRadius: BorderRadius.circular(16),
|
||||||
border: Border.all(color: AppTheme.egyptianBlue.withOpacity(0.1)),
|
border: Border.all(color: AppTheme.egyptianBlue.withValues(alpha: 0.1)),
|
||||||
),
|
),
|
||||||
child: SwitchListTile(
|
child: SwitchListTile(
|
||||||
activeColor: AppTheme.brightNavy,
|
activeColor: AppTheme.brightNavy,
|
||||||
|
|
|
||||||
|
|
@ -126,7 +126,7 @@ class _FollowRequestsScreenState extends ConsumerState<FollowRequestsScreen> {
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.cardSurface,
|
color: AppTheme.cardSurface,
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
border: Border.all(color: AppTheme.queenPink.withOpacity(0.6)),
|
border: Border.all(color: AppTheme.queenPink.withValues(alpha: 0.6)),
|
||||||
),
|
),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
|
|
@ -168,7 +168,7 @@ class _FollowRequestsScreenState extends ConsumerState<FollowRequestsScreen> {
|
||||||
Text(
|
Text(
|
||||||
'@${request.handle}',
|
'@${request.handle}',
|
||||||
style: AppTheme.textTheme.labelSmall?.copyWith(
|
style: AppTheme.textTheme.labelSmall?.copyWith(
|
||||||
color: AppTheme.navyText.withOpacity(0.7),
|
color: AppTheme.navyText.withValues(alpha: 0.7),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -165,7 +165,7 @@ class _FollowersFollowingScreenState
|
||||||
controller: _tabController,
|
controller: _tabController,
|
||||||
indicatorColor: AppTheme.ksuPurple,
|
indicatorColor: AppTheme.ksuPurple,
|
||||||
labelColor: AppTheme.navyText,
|
labelColor: AppTheme.navyText,
|
||||||
unselectedLabelColor: AppTheme.navyText.withOpacity(0.5),
|
unselectedLabelColor: AppTheme.navyText.withValues(alpha: 0.5),
|
||||||
tabs: [
|
tabs: [
|
||||||
Tab(text: 'Followers (${_followers.length})'),
|
Tab(text: 'Followers (${_followers.length})'),
|
||||||
Tab(text: 'Following (${_following.length})'),
|
Tab(text: 'Following (${_following.length})'),
|
||||||
|
|
@ -216,7 +216,7 @@ class _FollowersFollowingScreenState
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Icon(Icons.error_outline, size: 48, color: AppTheme.navyText.withOpacity(0.5)),
|
Icon(Icons.error_outline, size: 48, color: AppTheme.navyText.withValues(alpha: 0.5)),
|
||||||
const SizedBox(height: 16),
|
const SizedBox(height: 16),
|
||||||
Text('Failed to load', style: AppTheme.bodyLarge),
|
Text('Failed to load', style: AppTheme.bodyLarge),
|
||||||
const SizedBox(height: 8),
|
const SizedBox(height: 8),
|
||||||
|
|
@ -237,12 +237,12 @@ class _FollowersFollowingScreenState
|
||||||
Icon(
|
Icon(
|
||||||
isFollowersList ? Icons.people_outline : Icons.person_add_outlined,
|
isFollowersList ? Icons.people_outline : Icons.person_add_outlined,
|
||||||
size: 64,
|
size: 64,
|
||||||
color: AppTheme.navyText.withOpacity(0.3),
|
color: AppTheme.navyText.withValues(alpha: 0.3),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 16),
|
const SizedBox(height: 16),
|
||||||
Text(
|
Text(
|
||||||
isFollowersList ? 'No followers yet' : 'Not following anyone yet',
|
isFollowersList ? 'No followers yet' : 'Not following anyone yet',
|
||||||
style: AppTheme.bodyLarge.copyWith(color: AppTheme.navyText.withOpacity(0.6)),
|
style: AppTheme.bodyLarge.copyWith(color: AppTheme.navyText.withValues(alpha: 0.6)),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
@ -342,7 +342,7 @@ class _UserListTile extends StatelessWidget {
|
||||||
case 'bronze':
|
case 'bronze':
|
||||||
return const Color(0xFFCD7F32);
|
return const Color(0xFFCD7F32);
|
||||||
default:
|
default:
|
||||||
return AppTheme.navyText.withOpacity(0.5);
|
return AppTheme.navyText.withValues(alpha: 0.5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -382,7 +382,7 @@ class _UserListTile extends StatelessWidget {
|
||||||
Container(
|
Container(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 6, vertical: 2),
|
padding: const EdgeInsets.symmetric(horizontal: 6, vertical: 2),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: _getTierColor(user.harmonyTier).withOpacity(0.2),
|
color: _getTierColor(user.harmonyTier).withValues(alpha: 0.2),
|
||||||
borderRadius: BorderRadius.circular(4),
|
borderRadius: BorderRadius.circular(4),
|
||||||
),
|
),
|
||||||
child: Text(
|
child: Text(
|
||||||
|
|
@ -399,14 +399,14 @@ class _UserListTile extends StatelessWidget {
|
||||||
),
|
),
|
||||||
subtitle: Text(
|
subtitle: Text(
|
||||||
'@${user.handle}',
|
'@${user.handle}',
|
||||||
style: AppTheme.labelSmall.copyWith(color: AppTheme.navyText.withOpacity(0.6)),
|
style: AppTheme.labelSmall.copyWith(color: AppTheme.navyText.withValues(alpha: 0.6)),
|
||||||
),
|
),
|
||||||
trailing: isFollowersList
|
trailing: isFollowersList
|
||||||
? null // Followers don't have action button for now
|
? null // Followers don't have action button for now
|
||||||
: TextButton(
|
: TextButton(
|
||||||
onPressed: onAction,
|
onPressed: onAction,
|
||||||
style: TextButton.styleFrom(
|
style: TextButton.styleFrom(
|
||||||
foregroundColor: AppTheme.navyText.withOpacity(0.7),
|
foregroundColor: AppTheme.navyText.withValues(alpha: 0.7),
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 12),
|
padding: const EdgeInsets.symmetric(horizontal: 12),
|
||||||
),
|
),
|
||||||
child: const Text('Unfollow'),
|
child: const Text('Unfollow'),
|
||||||
|
|
|
||||||
|
|
@ -214,7 +214,7 @@ class _FollowingScreenState extends ConsumerState<FollowingScreen> {
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.cardSurface,
|
color: AppTheme.cardSurface,
|
||||||
border: Border(
|
border: Border(
|
||||||
bottom: BorderSide(color: AppTheme.egyptianBlue.withOpacity(0.3)),
|
bottom: BorderSide(color: AppTheme.egyptianBlue.withValues(alpha: 0.3)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
child: TabBar(
|
child: TabBar(
|
||||||
|
|
@ -222,7 +222,7 @@ class _FollowingScreenState extends ConsumerState<FollowingScreen> {
|
||||||
return Tab(text: tab.displayName);
|
return Tab(text: tab.displayName);
|
||||||
}).toList(),
|
}).toList(),
|
||||||
labelColor: AppTheme.navyBlue,
|
labelColor: AppTheme.navyBlue,
|
||||||
unselectedLabelColor: AppTheme.egyptianBlue.withOpacity(0.5),
|
unselectedLabelColor: AppTheme.egyptianBlue.withValues(alpha: 0.5),
|
||||||
indicatorColor: AppTheme.royalPurple,
|
indicatorColor: AppTheme.royalPurple,
|
||||||
indicatorWeight: 3,
|
indicatorWeight: 3,
|
||||||
onTap: (index) {
|
onTap: (index) {
|
||||||
|
|
@ -240,7 +240,7 @@ class _FollowingScreenState extends ConsumerState<FollowingScreen> {
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.scaffoldBg,
|
color: AppTheme.scaffoldBg,
|
||||||
border: Border(
|
border: Border(
|
||||||
bottom: BorderSide(color: AppTheme.egyptianBlue.withOpacity(0.2)),
|
bottom: BorderSide(color: AppTheme.egyptianBlue.withValues(alpha: 0.2)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
child: Row(
|
child: Row(
|
||||||
|
|
@ -264,7 +264,7 @@ class _FollowingScreenState extends ConsumerState<FollowingScreen> {
|
||||||
),
|
),
|
||||||
underline: Container(
|
underline: Container(
|
||||||
height: 1,
|
height: 1,
|
||||||
color: AppTheme.royalPurple.withOpacity(0.3),
|
color: AppTheme.royalPurple.withValues(alpha: 0.3),
|
||||||
),
|
),
|
||||||
onChanged: (FollowingSort? newValue) {
|
onChanged: (FollowingSort? newValue) {
|
||||||
if (newValue != null) {
|
if (newValue != null) {
|
||||||
|
|
@ -350,7 +350,7 @@ class _FollowingScreenState extends ConsumerState<FollowingScreen> {
|
||||||
Icon(
|
Icon(
|
||||||
Icons.people_outline,
|
Icons.people_outline,
|
||||||
size: 64,
|
size: 64,
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.5),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.5),
|
||||||
),
|
),
|
||||||
const SizedBox(height: AppTheme.spacingMd),
|
const SizedBox(height: AppTheme.spacingMd),
|
||||||
Text(
|
Text(
|
||||||
|
|
@ -483,7 +483,7 @@ class _UserListItem extends StatelessWidget {
|
||||||
color: AppTheme.scaffoldBg,
|
color: AppTheme.scaffoldBg,
|
||||||
borderRadius: BorderRadius.circular(8),
|
borderRadius: BorderRadius.circular(8),
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.2),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.2),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
child: Column(
|
child: Column(
|
||||||
|
|
@ -503,7 +503,7 @@ class _UserListItem extends StatelessWidget {
|
||||||
? timeago.format(user.latestPostCreatedAt!)
|
? timeago.format(user.latestPostCreatedAt!)
|
||||||
: '',
|
: '',
|
||||||
style: AppTheme.labelSmall.copyWith(
|
style: AppTheme.labelSmall.copyWith(
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.7),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.7),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
@ -516,13 +516,13 @@ class _UserListItem extends StatelessWidget {
|
||||||
Icon(
|
Icon(
|
||||||
Icons.access_time,
|
Icons.access_time,
|
||||||
size: 12,
|
size: 12,
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.6),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.6),
|
||||||
),
|
),
|
||||||
const SizedBox(width: 4),
|
const SizedBox(width: 4),
|
||||||
Text(
|
Text(
|
||||||
'Active ${timeago.format(user.lastActive)}',
|
'Active ${timeago.format(user.lastActive)}',
|
||||||
style: AppTheme.labelSmall.copyWith(
|
style: AppTheme.labelSmall.copyWith(
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.7),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.7),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(width: 12),
|
const SizedBox(width: 12),
|
||||||
|
|
@ -546,7 +546,7 @@ class _UserListItem extends StatelessWidget {
|
||||||
),
|
),
|
||||||
Icon(
|
Icon(
|
||||||
Icons.chevron_right,
|
Icons.chevron_right,
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.5),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.5),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -195,13 +195,13 @@ class _ProfileSettingsScreenState extends ConsumerState<ProfileSettingsScreen> {
|
||||||
height: 180,
|
height: 180,
|
||||||
width: double.infinity,
|
width: double.infinity,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.1),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.1),
|
||||||
),
|
),
|
||||||
child: _isBannerUploading
|
child: _isBannerUploading
|
||||||
? const Center(child: CircularProgressIndicator())
|
? const Center(child: CircularProgressIndicator())
|
||||||
: profile.coverUrl != null
|
: profile.coverUrl != null
|
||||||
? SignedMediaImage(url: profile.coverUrl!, fit: BoxFit.cover)
|
? SignedMediaImage(url: profile.coverUrl!, fit: BoxFit.cover)
|
||||||
: Center(child: Icon(Icons.add_photo_alternate_outlined, color: AppTheme.egyptianBlue.withOpacity(0.5), size: 40)),
|
: Center(child: Icon(Icons.add_photo_alternate_outlined, color: AppTheme.egyptianBlue.withValues(alpha: 0.5), size: 40)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
// Glass Overlay for Banner Action
|
// Glass Overlay for Banner Action
|
||||||
|
|
@ -264,16 +264,16 @@ class _ProfileSettingsScreenState extends ConsumerState<ProfileSettingsScreen> {
|
||||||
return Container(
|
return Container(
|
||||||
padding: const EdgeInsets.all(AppTheme.spacingMd),
|
padding: const EdgeInsets.all(AppTheme.spacingMd),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.royalPurple.withOpacity(0.05),
|
color: AppTheme.royalPurple.withValues(alpha: 0.05),
|
||||||
borderRadius: BorderRadius.circular(16),
|
borderRadius: BorderRadius.circular(16),
|
||||||
border: Border.all(color: AppTheme.royalPurple.withOpacity(0.2)),
|
border: Border.all(color: AppTheme.royalPurple.withValues(alpha: 0.2)),
|
||||||
),
|
),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
padding: const EdgeInsets.all(10),
|
padding: const EdgeInsets.all(10),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.royalPurple.withOpacity(0.1),
|
color: AppTheme.royalPurple.withValues(alpha: 0.1),
|
||||||
shape: BoxShape.circle,
|
shape: BoxShape.circle,
|
||||||
),
|
),
|
||||||
child: Icon(Icons.spa_outlined, color: AppTheme.royalPurple),
|
child: Icon(Icons.spa_outlined, color: AppTheme.royalPurple),
|
||||||
|
|
@ -287,7 +287,7 @@ class _ProfileSettingsScreenState extends ConsumerState<ProfileSettingsScreen> {
|
||||||
const SizedBox(height: 2),
|
const SizedBox(height: 2),
|
||||||
Text(
|
Text(
|
||||||
'Your current reach multiplier is based on your contribution to the community.',
|
'Your current reach multiplier is based on your contribution to the community.',
|
||||||
style: AppTheme.textTheme.bodySmall?.copyWith(color: AppTheme.navyText.withOpacity(0.6)),
|
style: AppTheme.textTheme.bodySmall?.copyWith(color: AppTheme.navyText.withValues(alpha: 0.6)),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
@ -302,13 +302,13 @@ class _ProfileSettingsScreenState extends ConsumerState<ProfileSettingsScreen> {
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(title, style: AppTheme.textTheme.headlineSmall),
|
Text(title, style: AppTheme.textTheme.headlineSmall),
|
||||||
Text(subtitle, style: AppTheme.textTheme.labelSmall?.copyWith(color: AppTheme.navyText.withOpacity(0.5))),
|
Text(subtitle, style: AppTheme.textTheme.labelSmall?.copyWith(color: AppTheme.navyText.withValues(alpha: 0.5))),
|
||||||
const SizedBox(height: AppTheme.spacingMd),
|
const SizedBox(height: AppTheme.spacingMd),
|
||||||
Container(
|
Container(
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: SojornColors.basicWhite.withValues(alpha: 0.5),
|
color: SojornColors.basicWhite.withValues(alpha: 0.5),
|
||||||
borderRadius: BorderRadius.circular(20),
|
borderRadius: BorderRadius.circular(20),
|
||||||
border: Border.all(color: AppTheme.egyptianBlue.withOpacity(0.1)),
|
border: Border.all(color: AppTheme.egyptianBlue.withValues(alpha: 0.1)),
|
||||||
),
|
),
|
||||||
clipBehavior: Clip.antiAlias,
|
clipBehavior: Clip.antiAlias,
|
||||||
child: Column(children: children),
|
child: Column(children: children),
|
||||||
|
|
@ -322,7 +322,7 @@ class _ProfileSettingsScreenState extends ConsumerState<ProfileSettingsScreen> {
|
||||||
onTap: onTap,
|
onTap: onTap,
|
||||||
leading: Icon(icon, color: color ?? AppTheme.navyBlue, size: 22),
|
leading: Icon(icon, color: color ?? AppTheme.navyBlue, size: 22),
|
||||||
title: Text(title, style: AppTheme.textTheme.bodyLarge),
|
title: Text(title, style: AppTheme.textTheme.bodyLarge),
|
||||||
trailing: Icon(Icons.chevron_right, color: AppTheme.egyptianBlue.withOpacity(0.3)),
|
trailing: Icon(Icons.chevron_right, color: AppTheme.egyptianBlue.withValues(alpha: 0.3)),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -362,8 +362,8 @@ class _ProfileSettingsScreenState extends ConsumerState<ProfileSettingsScreen> {
|
||||||
return Center(
|
return Center(
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
Text('Sojorn Sanctuary', style: AppTheme.textTheme.labelMedium?.copyWith(color: AppTheme.navyText.withOpacity(0.4))),
|
Text('Sojorn Sanctuary', style: AppTheme.textTheme.labelMedium?.copyWith(color: AppTheme.navyText.withValues(alpha: 0.4))),
|
||||||
Text('A product of MPLS LLC \u00a9 ${DateTime.now().year}', style: AppTheme.textTheme.labelSmall?.copyWith(color: AppTheme.navyText.withOpacity(0.3))),
|
Text('A product of MPLS LLC \u00a9 ${DateTime.now().year}', style: AppTheme.textTheme.labelSmall?.copyWith(color: AppTheme.navyText.withValues(alpha: 0.3))),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
@ -441,7 +441,7 @@ class _ProfileSettingsScreenState extends ConsumerState<ProfileSettingsScreen> {
|
||||||
width: double.infinity,
|
width: double.infinity,
|
||||||
padding: const EdgeInsets.symmetric(vertical: 14, horizontal: 20),
|
padding: const EdgeInsets.symmetric(vertical: 14, horizontal: 20),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.cardSurface.withOpacity(0.6),
|
color: AppTheme.cardSurface.withValues(alpha: 0.6),
|
||||||
borderRadius: BorderRadius.circular(16),
|
borderRadius: BorderRadius.circular(16),
|
||||||
border: Border.all(color: AppTheme.navyBlue.withValues(alpha: 0.08)),
|
border: Border.all(color: AppTheme.navyBlue.withValues(alpha: 0.08)),
|
||||||
),
|
),
|
||||||
|
|
@ -451,13 +451,13 @@ class _ProfileSettingsScreenState extends ConsumerState<ProfileSettingsScreen> {
|
||||||
Icon(
|
Icon(
|
||||||
Icons.shield_outlined,
|
Icons.shield_outlined,
|
||||||
size: 16,
|
size: 16,
|
||||||
color: AppTheme.textSecondary.withOpacity(0.5),
|
color: AppTheme.textSecondary.withValues(alpha: 0.5),
|
||||||
),
|
),
|
||||||
const SizedBox(width: 8),
|
const SizedBox(width: 8),
|
||||||
Text(
|
Text(
|
||||||
'Content Sensitivity Settings',
|
'Content Sensitivity Settings',
|
||||||
style: AppTheme.textTheme.labelSmall?.copyWith(
|
style: AppTheme.textTheme.labelSmall?.copyWith(
|
||||||
color: AppTheme.textSecondary.withOpacity(0.5),
|
color: AppTheme.textSecondary.withValues(alpha: 0.5),
|
||||||
fontSize: 12,
|
fontSize: 12,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -465,7 +465,7 @@ class _ProfileSettingsScreenState extends ConsumerState<ProfileSettingsScreen> {
|
||||||
Icon(
|
Icon(
|
||||||
_nsfwSectionExpanded ? Icons.expand_less : Icons.expand_more,
|
_nsfwSectionExpanded ? Icons.expand_less : Icons.expand_more,
|
||||||
size: 16,
|
size: 16,
|
||||||
color: AppTheme.textSecondary.withOpacity(0.5),
|
color: AppTheme.textSecondary.withValues(alpha: 0.5),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -667,7 +667,7 @@ class _UnifiedProfileScreenState extends ConsumerState<UnifiedProfileScreen>
|
||||||
Text(
|
Text(
|
||||||
'Control who can see your profile and posts.',
|
'Control who can see your profile and posts.',
|
||||||
style: AppTheme.bodyMedium.copyWith(
|
style: AppTheme.bodyMedium.copyWith(
|
||||||
color: AppTheme.navyText.withOpacity(0.7),
|
color: AppTheme.navyText.withValues(alpha: 0.7),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(height: AppTheme.spacingLg),
|
const SizedBox(height: AppTheme.spacingLg),
|
||||||
|
|
@ -972,7 +972,7 @@ class _UnifiedProfileScreenState extends ConsumerState<UnifiedProfileScreen>
|
||||||
TabBar(
|
TabBar(
|
||||||
controller: _tabController,
|
controller: _tabController,
|
||||||
labelColor: AppTheme.navyText,
|
labelColor: AppTheme.navyText,
|
||||||
unselectedLabelColor: AppTheme.navyText.withOpacity(0.6),
|
unselectedLabelColor: AppTheme.navyText.withValues(alpha: 0.6),
|
||||||
indicatorColor: AppTheme.royalPurple,
|
indicatorColor: AppTheme.royalPurple,
|
||||||
indicatorWeight: 3,
|
indicatorWeight: 3,
|
||||||
labelStyle: AppTheme.labelMedium,
|
labelStyle: AppTheme.labelMedium,
|
||||||
|
|
@ -1064,7 +1064,7 @@ class _UnifiedProfileScreenState extends ConsumerState<UnifiedProfileScreen>
|
||||||
child: Text(
|
child: Text(
|
||||||
'No posts yet',
|
'No posts yet',
|
||||||
style: AppTheme.bodyMedium.copyWith(
|
style: AppTheme.bodyMedium.copyWith(
|
||||||
color: AppTheme.navyText.withOpacity(0.7),
|
color: AppTheme.navyText.withValues(alpha: 0.7),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -1134,7 +1134,7 @@ class _UnifiedProfileScreenState extends ConsumerState<UnifiedProfileScreen>
|
||||||
Icon(
|
Icon(
|
||||||
Icons.lock_outline,
|
Icons.lock_outline,
|
||||||
size: 64,
|
size: 64,
|
||||||
color: AppTheme.navyText.withOpacity(0.5),
|
color: AppTheme.navyText.withValues(alpha: 0.5),
|
||||||
),
|
),
|
||||||
const SizedBox(height: AppTheme.spacingMd),
|
const SizedBox(height: AppTheme.spacingMd),
|
||||||
Text(
|
Text(
|
||||||
|
|
@ -1146,7 +1146,7 @@ class _UnifiedProfileScreenState extends ConsumerState<UnifiedProfileScreen>
|
||||||
Text(
|
Text(
|
||||||
'Follow @${profile.handle} to see their bio, location, website, and interests.',
|
'Follow @${profile.handle} to see their bio, location, website, and interests.',
|
||||||
style: AppTheme.bodyMedium.copyWith(
|
style: AppTheme.bodyMedium.copyWith(
|
||||||
color: AppTheme.navyText.withOpacity(0.8),
|
color: AppTheme.navyText.withValues(alpha: 0.8),
|
||||||
),
|
),
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
),
|
),
|
||||||
|
|
@ -1172,7 +1172,7 @@ class _UnifiedProfileScreenState extends ConsumerState<UnifiedProfileScreen>
|
||||||
Text(
|
Text(
|
||||||
profile.bio!,
|
profile.bio!,
|
||||||
style: AppTheme.bodyMedium.copyWith(
|
style: AppTheme.bodyMedium.copyWith(
|
||||||
color: AppTheme.navyText.withOpacity(0.85),
|
color: AppTheme.navyText.withValues(alpha: 0.85),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(height: AppTheme.spacingLg),
|
const SizedBox(height: AppTheme.spacingLg),
|
||||||
|
|
@ -1185,7 +1185,7 @@ class _UnifiedProfileScreenState extends ConsumerState<UnifiedProfileScreen>
|
||||||
Text(
|
Text(
|
||||||
profile.location!,
|
profile.location!,
|
||||||
style: AppTheme.bodyMedium.copyWith(
|
style: AppTheme.bodyMedium.copyWith(
|
||||||
color: AppTheme.navyText.withOpacity(0.85),
|
color: AppTheme.navyText.withValues(alpha: 0.85),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
@ -1262,7 +1262,7 @@ class _UnifiedProfileScreenState extends ConsumerState<UnifiedProfileScreen>
|
||||||
Text(
|
Text(
|
||||||
_formatDate(profile.createdAt),
|
_formatDate(profile.createdAt),
|
||||||
style: AppTheme.bodyMedium.copyWith(
|
style: AppTheme.bodyMedium.copyWith(
|
||||||
color: AppTheme.navyText.withOpacity(0.85),
|
color: AppTheme.navyText.withValues(alpha: 0.85),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
if (profile.trustState != null) ...[
|
if (profile.trustState != null) ...[
|
||||||
|
|
@ -1300,7 +1300,7 @@ class _UnifiedProfileScreenState extends ConsumerState<UnifiedProfileScreen>
|
||||||
Text(
|
Text(
|
||||||
'Tier: ',
|
'Tier: ',
|
||||||
style: AppTheme.bodyMedium.copyWith(
|
style: AppTheme.bodyMedium.copyWith(
|
||||||
color: AppTheme.navyText.withOpacity(0.85),
|
color: AppTheme.navyText.withValues(alpha: 0.85),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
|
|
@ -1318,7 +1318,7 @@ class _UnifiedProfileScreenState extends ConsumerState<UnifiedProfileScreen>
|
||||||
Text(
|
Text(
|
||||||
'Harmony Score: ',
|
'Harmony Score: ',
|
||||||
style: AppTheme.bodyMedium.copyWith(
|
style: AppTheme.bodyMedium.copyWith(
|
||||||
color: AppTheme.navyText.withOpacity(0.85),
|
color: AppTheme.navyText.withValues(alpha: 0.85),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
|
|
@ -1421,7 +1421,6 @@ class _ProfileHeader extends StatelessWidget {
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.end,
|
mainAxisAlignment: MainAxisAlignment.end,
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
clipBehavior: Clip.hardEdge,
|
|
||||||
children: [
|
children: [
|
||||||
if (isOwnProfile)
|
if (isOwnProfile)
|
||||||
Align(
|
Align(
|
||||||
|
|
@ -1464,7 +1463,7 @@ class _ProfileHeader extends StatelessWidget {
|
||||||
Text(
|
Text(
|
||||||
profile.displayName,
|
profile.displayName,
|
||||||
style: AppTheme.headlineMedium.copyWith(
|
style: AppTheme.headlineMedium.copyWith(
|
||||||
color: AppTheme.white.withOpacity(0.95),
|
color: AppTheme.white.withValues(alpha: 0.95),
|
||||||
fontSize: isCompact ? 16 : 18,
|
fontSize: isCompact ? 16 : 18,
|
||||||
shadows: [
|
shadows: [
|
||||||
Shadow(
|
Shadow(
|
||||||
|
|
@ -1485,7 +1484,7 @@ class _ProfileHeader extends StatelessWidget {
|
||||||
'@${profile.handle}',
|
'@${profile.handle}',
|
||||||
style: AppTheme.bodyMedium.copyWith(
|
style: AppTheme.bodyMedium.copyWith(
|
||||||
fontSize: 12,
|
fontSize: 12,
|
||||||
color: AppTheme.white.withOpacity(0.85),
|
color: AppTheme.white.withValues(alpha: 0.85),
|
||||||
shadows: [
|
shadows: [
|
||||||
Shadow(
|
Shadow(
|
||||||
color: const Color(0x33000000),
|
color: const Color(0x33000000),
|
||||||
|
|
@ -1558,7 +1557,7 @@ class _ProfileHeader extends StatelessWidget {
|
||||||
onPressed: onMessageTap,
|
onPressed: onMessageTap,
|
||||||
style: OutlinedButton.styleFrom(
|
style: OutlinedButton.styleFrom(
|
||||||
foregroundColor: AppTheme.white,
|
foregroundColor: AppTheme.white,
|
||||||
side: BorderSide(color: AppTheme.white.withOpacity(0.7)),
|
side: BorderSide(color: AppTheme.white.withValues(alpha: 0.7)),
|
||||||
padding: const EdgeInsets.symmetric(
|
padding: const EdgeInsets.symmetric(
|
||||||
horizontal: AppTheme.spacingMd,
|
horizontal: AppTheme.spacingMd,
|
||||||
vertical: AppTheme.spacingSm,
|
vertical: AppTheme.spacingSm,
|
||||||
|
|
@ -1777,13 +1776,13 @@ class _HarmonyAvatar extends StatelessWidget {
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.circular(radius * 0.45),
|
borderRadius: BorderRadius.circular(radius * 0.45),
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
color: ringWidth >= 4 ? ringColor : ringColor.withOpacity(0.8),
|
color: ringWidth >= 4 ? ringColor : ringColor.withValues(alpha: 0.8),
|
||||||
width: ringWidth,
|
width: ringWidth,
|
||||||
),
|
),
|
||||||
boxShadow: [
|
boxShadow: [
|
||||||
if (ringWidth >= 4)
|
if (ringWidth >= 4)
|
||||||
BoxShadow(
|
BoxShadow(
|
||||||
color: ringColor.withOpacity(0.5),
|
color: ringColor.withValues(alpha: 0.5),
|
||||||
blurRadius: 12,
|
blurRadius: 12,
|
||||||
spreadRadius: 2,
|
spreadRadius: 2,
|
||||||
),
|
),
|
||||||
|
|
@ -1852,7 +1851,7 @@ class _HarmonyBadge extends StatelessWidget {
|
||||||
vertical: 4,
|
vertical: 4,
|
||||||
),
|
),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: badgeColor.withOpacity(0.2),
|
color: badgeColor.withValues(alpha: 0.2),
|
||||||
border: Border.all(color: badgeColor, width: 1.5),
|
border: Border.all(color: badgeColor, width: 1.5),
|
||||||
borderRadius: BorderRadius.circular(AppTheme.radiusSm),
|
borderRadius: BorderRadius.circular(AppTheme.radiusSm),
|
||||||
),
|
),
|
||||||
|
|
@ -1911,7 +1910,7 @@ class _HeaderActionButton extends StatelessWidget {
|
||||||
onPressed: onPressed,
|
onPressed: onPressed,
|
||||||
style: OutlinedButton.styleFrom(
|
style: OutlinedButton.styleFrom(
|
||||||
foregroundColor: AppTheme.white,
|
foregroundColor: AppTheme.white,
|
||||||
side: BorderSide(color: AppTheme.white.withOpacity(0.7)),
|
side: BorderSide(color: AppTheme.white.withValues(alpha: 0.7)),
|
||||||
padding: const EdgeInsets.symmetric(
|
padding: const EdgeInsets.symmetric(
|
||||||
horizontal: AppTheme.spacingMd,
|
horizontal: AppTheme.spacingMd,
|
||||||
vertical: AppTheme.spacingSm,
|
vertical: AppTheme.spacingSm,
|
||||||
|
|
|
||||||
|
|
@ -191,7 +191,7 @@ class _QuipEditorScreenState extends ConsumerState<QuipEditorScreen> {
|
||||||
color: SojornColors.basicBlack,
|
color: SojornColors.basicBlack,
|
||||||
borderRadius: BorderRadius.circular(16),
|
borderRadius: BorderRadius.circular(16),
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
color: AppTheme.brightNavy.withOpacity(0.3),
|
color: AppTheme.brightNavy.withValues(alpha: 0.3),
|
||||||
width: 2,
|
width: 2,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -295,7 +295,7 @@ class _QuipEditorScreenState extends ConsumerState<QuipEditorScreen> {
|
||||||
backgroundColor: AppTheme.brightNavy,
|
backgroundColor: AppTheme.brightNavy,
|
||||||
foregroundColor: SojornColors.basicWhite,
|
foregroundColor: SojornColors.basicWhite,
|
||||||
padding: const EdgeInsets.symmetric(vertical: 16),
|
padding: const EdgeInsets.symmetric(vertical: 16),
|
||||||
disabledBackgroundColor: AppTheme.brightNavy.withOpacity(0.5),
|
disabledBackgroundColor: AppTheme.brightNavy.withValues(alpha: 0.5),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -282,12 +282,12 @@ class _SearchScreenState extends ConsumerState<SearchScreen> {
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.scaffoldBg,
|
color: AppTheme.scaffoldBg,
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
border: Border.all(color: AppTheme.egyptianBlue.withOpacity(0.3)),
|
border: Border.all(color: AppTheme.egyptianBlue.withValues(alpha: 0.3)),
|
||||||
),
|
),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Icon(Icons.search,
|
Icon(Icons.search,
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.6), size: 20),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.6), size: 20),
|
||||||
const SizedBox(width: 10),
|
const SizedBox(width: 10),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: TextField(
|
child: TextField(
|
||||||
|
|
@ -349,11 +349,11 @@ class _SearchScreenState extends ConsumerState<SearchScreen> {
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Icon(Icons.search_off,
|
Icon(Icons.search_off,
|
||||||
size: 64, color: AppTheme.egyptianBlue.withOpacity(0.5)),
|
size: 64, color: AppTheme.egyptianBlue.withValues(alpha: 0.5)),
|
||||||
const SizedBox(height: 16),
|
const SizedBox(height: 16),
|
||||||
Text('No results found',
|
Text('No results found',
|
||||||
style: AppTheme.headlineSmall
|
style: AppTheme.headlineSmall
|
||||||
.copyWith(color: AppTheme.navyText.withOpacity(0.7))),
|
.copyWith(color: AppTheme.navyText.withValues(alpha: 0.7))),
|
||||||
const SizedBox(height: 8),
|
const SizedBox(height: 8),
|
||||||
Text('Try a different search term',
|
Text('Try a different search term',
|
||||||
style:
|
style:
|
||||||
|
|
@ -471,7 +471,7 @@ class _SearchScreenState extends ConsumerState<SearchScreen> {
|
||||||
search.type == RecentSearchType.user
|
search.type == RecentSearchType.user
|
||||||
? Icons.person
|
? Icons.person
|
||||||
: Icons.tag,
|
: Icons.tag,
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.6),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.6),
|
||||||
),
|
),
|
||||||
title: Text(
|
title: Text(
|
||||||
search.type == RecentSearchType.user
|
search.type == RecentSearchType.user
|
||||||
|
|
@ -480,7 +480,7 @@ class _SearchScreenState extends ConsumerState<SearchScreen> {
|
||||||
style: AppTheme.bodyMedium,
|
style: AppTheme.bodyMedium,
|
||||||
),
|
),
|
||||||
trailing: Icon(Icons.history,
|
trailing: Icon(Icons.history,
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.4), size: 18),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.4), size: 18),
|
||||||
onTap: () => onRecentSearchTap(search),
|
onTap: () => onRecentSearchTap(search),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
@ -547,7 +547,7 @@ class _SearchScreenState extends ConsumerState<SearchScreen> {
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.cardSurface,
|
color: AppTheme.cardSurface,
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
border: Border.all(color: AppTheme.egyptianBlue.withOpacity(0.2)),
|
border: Border.all(color: AppTheme.egyptianBlue.withValues(alpha: 0.2)),
|
||||||
),
|
),
|
||||||
child: sojornPostCard(
|
child: sojornPostCard(
|
||||||
post: post,
|
post: post,
|
||||||
|
|
@ -611,7 +611,7 @@ class _SearchScreenState extends ConsumerState<SearchScreen> {
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.cardSurface,
|
color: AppTheme.cardSurface,
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
border: Border.all(color: AppTheme.egyptianBlue.withOpacity(0.2)),
|
border: Border.all(color: AppTheme.egyptianBlue.withValues(alpha: 0.2)),
|
||||||
),
|
),
|
||||||
child: sojornPostCard(
|
child: sojornPostCard(
|
||||||
post: minimalPost,
|
post: minimalPost,
|
||||||
|
|
@ -680,7 +680,7 @@ class UserResultItem extends StatelessWidget {
|
||||||
Text(
|
Text(
|
||||||
'@${user.username}',
|
'@${user.username}',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.7), fontSize: 11),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.7), fontSize: 11),
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
overflow: TextOverflow.ellipsis,
|
overflow: TextOverflow.ellipsis,
|
||||||
),
|
),
|
||||||
|
|
@ -707,7 +707,7 @@ class TagResultItem extends StatelessWidget {
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.cardSurface,
|
color: AppTheme.cardSurface,
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
border: Border.all(color: AppTheme.egyptianBlue.withOpacity(0.2)),
|
border: Border.all(color: AppTheme.egyptianBlue.withValues(alpha: 0.2)),
|
||||||
),
|
),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
|
|
@ -732,13 +732,13 @@ class TagResultItem extends StatelessWidget {
|
||||||
fontSize: 15)),
|
fontSize: 15)),
|
||||||
Text('${tag.count} posts',
|
Text('${tag.count} posts',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.7),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.7),
|
||||||
fontSize: 13)),
|
fontSize: 13)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Icon(Icons.chevron_right,
|
Icon(Icons.chevron_right,
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.5)),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.5)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -760,7 +760,7 @@ class TrendingTagItem extends StatelessWidget {
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.cardSurface,
|
color: AppTheme.cardSurface,
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
border: Border.all(color: AppTheme.egyptianBlue.withOpacity(0.2)),
|
border: Border.all(color: AppTheme.egyptianBlue.withValues(alpha: 0.2)),
|
||||||
),
|
),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
|
|
|
||||||
|
|
@ -108,14 +108,14 @@ class _ChatDataManagementScreenState extends State<ChatDataManagementScreen> {
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
gradient: LinearGradient(
|
gradient: LinearGradient(
|
||||||
colors: isHealthy
|
colors: isHealthy
|
||||||
? [AppTheme.brightNavy.withOpacity(0.08), AppTheme.brightNavy.withOpacity(0.03)]
|
? [AppTheme.brightNavy.withValues(alpha: 0.08), AppTheme.brightNavy.withValues(alpha: 0.03)]
|
||||||
: [AppTheme.cardSurface, AppTheme.cardSurface],
|
: [AppTheme.cardSurface, AppTheme.cardSurface],
|
||||||
begin: Alignment.topLeft,
|
begin: Alignment.topLeft,
|
||||||
end: Alignment.bottomRight,
|
end: Alignment.bottomRight,
|
||||||
),
|
),
|
||||||
borderRadius: BorderRadius.circular(16),
|
borderRadius: BorderRadius.circular(16),
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
color: isHealthy ? AppTheme.brightNavy.withOpacity(0.2) : AppTheme.border,
|
color: isHealthy ? AppTheme.brightNavy.withValues(alpha: 0.2) : AppTheme.border,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
child: Column(
|
child: Column(
|
||||||
|
|
@ -125,7 +125,7 @@ class _ChatDataManagementScreenState extends State<ChatDataManagementScreen> {
|
||||||
Container(
|
Container(
|
||||||
padding: const EdgeInsets.all(10),
|
padding: const EdgeInsets.all(10),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: color.withOpacity(0.12),
|
color: color.withValues(alpha: 0.12),
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
),
|
),
|
||||||
child: Icon(icon, color: color, size: 28),
|
child: Icon(icon, color: color, size: 28),
|
||||||
|
|
@ -191,7 +191,7 @@ class _ChatDataManagementScreenState extends State<ChatDataManagementScreen> {
|
||||||
return Expanded(
|
return Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
Icon(icon, size: 18, color: AppTheme.brightNavy.withOpacity(0.6)),
|
Icon(icon, size: 18, color: AppTheme.brightNavy.withValues(alpha: 0.6)),
|
||||||
const SizedBox(height: 4),
|
const SizedBox(height: 4),
|
||||||
Text(
|
Text(
|
||||||
value,
|
value,
|
||||||
|
|
@ -318,7 +318,7 @@ class _ChatDataManagementScreenState extends State<ChatDataManagementScreen> {
|
||||||
label: Text(_isRestoring ? 'Restoring...' : 'Restore Backup'),
|
label: Text(_isRestoring ? 'Restoring...' : 'Restore Backup'),
|
||||||
style: OutlinedButton.styleFrom(
|
style: OutlinedButton.styleFrom(
|
||||||
foregroundColor: AppTheme.royalPurple,
|
foregroundColor: AppTheme.royalPurple,
|
||||||
side: BorderSide(color: AppTheme.royalPurple.withOpacity(0.4)),
|
side: BorderSide(color: AppTheme.royalPurple.withValues(alpha: 0.4)),
|
||||||
padding: const EdgeInsets.symmetric(vertical: 14),
|
padding: const EdgeInsets.symmetric(vertical: 14),
|
||||||
shape: RoundedRectangleBorder(
|
shape: RoundedRectangleBorder(
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
|
|
@ -483,7 +483,7 @@ class _ChatDataManagementScreenState extends State<ChatDataManagementScreen> {
|
||||||
padding: const EdgeInsets.symmetric(vertical: 12),
|
padding: const EdgeInsets.symmetric(vertical: 12),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Icon(icon, color: color.withOpacity(0.7), size: 20),
|
Icon(icon, color: color.withValues(alpha: 0.7), size: 20),
|
||||||
const SizedBox(width: 12),
|
const SizedBox(width: 12),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
|
|
|
||||||
|
|
@ -226,7 +226,7 @@ class _SecureChatScreenState extends State<SecureChatScreen>
|
||||||
width: 36,
|
width: 36,
|
||||||
height: 36,
|
height: 36,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.queenPink.withOpacity(0.3),
|
color: AppTheme.queenPink.withValues(alpha: 0.3),
|
||||||
borderRadius: BorderRadius.circular(10),
|
borderRadius: BorderRadius.circular(10),
|
||||||
),
|
),
|
||||||
child: widget.conversation.otherUserAvatarUrl != null
|
child: widget.conversation.otherUserAvatarUrl != null
|
||||||
|
|
@ -559,7 +559,7 @@ class _SecureChatScreenState extends State<SecureChatScreen>
|
||||||
key: ValueKey(_activeDateLabel),
|
key: ValueKey(_activeDateLabel),
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6),
|
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.cardSurface.withOpacity(0.95),
|
color: AppTheme.cardSurface.withValues(alpha: 0.95),
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
),
|
),
|
||||||
child: Text(
|
child: Text(
|
||||||
|
|
@ -639,7 +639,7 @@ class _SecureChatScreenState extends State<SecureChatScreen>
|
||||||
width: 80,
|
width: 80,
|
||||||
height: 80,
|
height: 80,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.queenPink.withOpacity(0.3),
|
color: AppTheme.queenPink.withValues(alpha: 0.3),
|
||||||
shape: BoxShape.circle,
|
shape: BoxShape.circle,
|
||||||
),
|
),
|
||||||
child: Icon(
|
child: Icon(
|
||||||
|
|
@ -714,7 +714,7 @@ class _SecureChatScreenState extends State<SecureChatScreen>
|
||||||
height: 4,
|
height: 4,
|
||||||
margin: const EdgeInsets.symmetric(vertical: 12),
|
margin: const EdgeInsets.symmetric(vertical: 12),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.navyBlue.withOpacity(0.2),
|
color: AppTheme.navyBlue.withValues(alpha: 0.2),
|
||||||
borderRadius: BorderRadius.circular(2),
|
borderRadius: BorderRadius.circular(2),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -897,9 +897,9 @@ class _SecureChatScreenState extends State<SecureChatScreen>
|
||||||
Container(
|
Container(
|
||||||
padding: const EdgeInsets.all(12),
|
padding: const EdgeInsets.all(12),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.error.withOpacity(0.1),
|
color: AppTheme.error.withValues(alpha: 0.1),
|
||||||
borderRadius: BorderRadius.circular(8),
|
borderRadius: BorderRadius.circular(8),
|
||||||
border: Border.all(color: AppTheme.error.withOpacity(0.3)),
|
border: Border.all(color: AppTheme.error.withValues(alpha: 0.3)),
|
||||||
),
|
),
|
||||||
child: Text(
|
child: Text(
|
||||||
'⚠️ THIS ACTION CANNOT BE UNDONE\n\nBoth you and the other person will lose all messages permanently.',
|
'⚠️ THIS ACTION CANNOT BE UNDONE\n\nBoth you and the other person will lose all messages permanently.',
|
||||||
|
|
|
||||||
|
|
@ -263,7 +263,7 @@ class _ImageFiltersScreenState extends ConsumerState<ImageFiltersScreen> {
|
||||||
return Container(
|
return Container(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 2),
|
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 2),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.1),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.1),
|
||||||
borderRadius: BorderRadius.circular(4),
|
borderRadius: BorderRadius.circular(4),
|
||||||
),
|
),
|
||||||
child: Text(
|
child: Text(
|
||||||
|
|
@ -282,9 +282,9 @@ class _ImageFiltersScreenState extends ConsumerState<ImageFiltersScreen> {
|
||||||
return Container(
|
return Container(
|
||||||
padding: const EdgeInsets.all(AppTheme.spacingMd),
|
padding: const EdgeInsets.all(AppTheme.spacingMd),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.royalPurple.withOpacity(0.1),
|
color: AppTheme.royalPurple.withValues(alpha: 0.1),
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
border: Border.all(color: AppTheme.royalPurple.withOpacity(0.3)),
|
border: Border.all(color: AppTheme.royalPurple.withValues(alpha: 0.3)),
|
||||||
),
|
),
|
||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
|
@ -306,7 +306,7 @@ class _ImageFiltersScreenState extends ConsumerState<ImageFiltersScreen> {
|
||||||
'Filters are applied to images before upload. Custom filters can be created from presets. '
|
'Filters are applied to images before upload. Custom filters can be created from presets. '
|
||||||
'The original image is preserved - filters only affect the uploaded version.',
|
'The original image is preserved - filters only affect the uploaded version.',
|
||||||
style: AppTheme.textTheme.bodySmall?.copyWith(
|
style: AppTheme.textTheme.bodySmall?.copyWith(
|
||||||
color: AppTheme.navyText.withOpacity(0.8),
|
color: AppTheme.navyText.withValues(alpha: 0.8),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(height: AppTheme.spacingMd),
|
const SizedBox(height: AppTheme.spacingMd),
|
||||||
|
|
@ -329,7 +329,7 @@ class _ImageFiltersScreenState extends ConsumerState<ImageFiltersScreen> {
|
||||||
child: Text(
|
child: Text(
|
||||||
tip,
|
tip,
|
||||||
style: AppTheme.textTheme.bodySmall?.copyWith(
|
style: AppTheme.textTheme.bodySmall?.copyWith(
|
||||||
color: AppTheme.navyText.withOpacity(0.7),
|
color: AppTheme.navyText.withValues(alpha: 0.7),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -708,12 +708,12 @@ class _NotificationBannerState extends State<_NotificationBanner>
|
||||||
color: AppTheme.cardSurface,
|
color: AppTheme.cardSurface,
|
||||||
borderRadius: BorderRadius.circular(20),
|
borderRadius: BorderRadius.circular(20),
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.1),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.1),
|
||||||
width: 1.5,
|
width: 1.5,
|
||||||
),
|
),
|
||||||
boxShadow: [
|
boxShadow: [
|
||||||
BoxShadow(
|
BoxShadow(
|
||||||
color: AppTheme.brightNavy.withOpacity(0.12),
|
color: AppTheme.brightNavy.withValues(alpha: 0.12),
|
||||||
blurRadius: 20,
|
blurRadius: 20,
|
||||||
offset: const Offset(0, 8),
|
offset: const Offset(0, 8),
|
||||||
),
|
),
|
||||||
|
|
@ -726,7 +726,7 @@ class _NotificationBannerState extends State<_NotificationBanner>
|
||||||
width: 44,
|
width: 44,
|
||||||
height: 44,
|
height: 44,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.brightNavy.withOpacity(0.1),
|
color: AppTheme.brightNavy.withValues(alpha: 0.1),
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
),
|
),
|
||||||
child: Center(
|
child: Center(
|
||||||
|
|
@ -758,7 +758,7 @@ class _NotificationBannerState extends State<_NotificationBanner>
|
||||||
Text(
|
Text(
|
||||||
notification!.body!,
|
notification!.body!,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: AppTheme.textSecondary.withOpacity(0.8),
|
color: AppTheme.textSecondary.withValues(alpha: 0.8),
|
||||||
fontSize: 13,
|
fontSize: 13,
|
||||||
height: 1.3,
|
height: 1.3,
|
||||||
),
|
),
|
||||||
|
|
@ -776,7 +776,7 @@ class _NotificationBannerState extends State<_NotificationBanner>
|
||||||
padding: const EdgeInsets.all(8),
|
padding: const EdgeInsets.all(8),
|
||||||
child: Icon(
|
child: Icon(
|
||||||
Icons.close,
|
Icons.close,
|
||||||
color: AppTheme.textSecondary.withOpacity(0.3),
|
color: AppTheme.textSecondary.withValues(alpha: 0.3),
|
||||||
size: 18,
|
size: 18,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ class _SanctuarySheetState extends State<SanctuarySheet> {
|
||||||
color: AppTheme.scaffoldBg,
|
color: AppTheme.scaffoldBg,
|
||||||
borderRadius: const BorderRadius.vertical(top: Radius.circular(30)),
|
borderRadius: const BorderRadius.vertical(top: Radius.circular(30)),
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.1),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.1),
|
||||||
width: 1.5,
|
width: 1.5,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -51,7 +51,7 @@ class _SanctuarySheetState extends State<SanctuarySheet> {
|
||||||
width: 40,
|
width: 40,
|
||||||
height: 5,
|
height: 5,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.2),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.2),
|
||||||
borderRadius: BorderRadius.circular(10),
|
borderRadius: BorderRadius.circular(10),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -96,7 +96,7 @@ class _SanctuarySheetState extends State<SanctuarySheet> {
|
||||||
Text(
|
Text(
|
||||||
"Protect the harmony of your Circle.",
|
"Protect the harmony of your Circle.",
|
||||||
style: AppTheme.labelSmall.copyWith(
|
style: AppTheme.labelSmall.copyWith(
|
||||||
color: AppTheme.navyText.withOpacity(0.6),
|
color: AppTheme.navyText.withValues(alpha: 0.6),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 32),
|
const SizedBox(height: 32),
|
||||||
|
|
@ -167,9 +167,9 @@ class _SanctuarySheetState extends State<SanctuarySheet> {
|
||||||
style: TextStyle(color: AppTheme.navyText),
|
style: TextStyle(color: AppTheme.navyText),
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
hintText: "Briefly describe the violation...",
|
hintText: "Briefly describe the violation...",
|
||||||
hintStyle: TextStyle(color: AppTheme.navyText.withOpacity(0.4)),
|
hintStyle: TextStyle(color: AppTheme.navyText.withValues(alpha: 0.4)),
|
||||||
filled: true,
|
filled: true,
|
||||||
fillColor: AppTheme.egyptianBlue.withOpacity(0.05),
|
fillColor: AppTheme.egyptianBlue.withValues(alpha: 0.05),
|
||||||
border: OutlineInputBorder(
|
border: OutlineInputBorder(
|
||||||
borderRadius: BorderRadius.circular(15),
|
borderRadius: BorderRadius.circular(15),
|
||||||
borderSide: BorderSide.none,
|
borderSide: BorderSide.none,
|
||||||
|
|
@ -212,7 +212,7 @@ class _SanctuarySheetState extends State<SanctuarySheet> {
|
||||||
child: Text(
|
child: Text(
|
||||||
"This will structurally separate you and @${widget.post.author?.handle ?? 'this user'}. You will both be invisible to each other across Sojorn.",
|
"This will structurally separate you and @${widget.post.author?.handle ?? 'this user'}. You will both be invisible to each other across Sojorn.",
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: AppTheme.bodyMedium.copyWith(color: AppTheme.navyText.withOpacity(0.7)),
|
style: AppTheme.bodyMedium.copyWith(color: AppTheme.navyText.withValues(alpha: 0.7)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 32),
|
const SizedBox(height: 32),
|
||||||
|
|
@ -250,14 +250,14 @@ class _SanctuarySheetState extends State<SanctuarySheet> {
|
||||||
child: Container(
|
child: Container(
|
||||||
padding: const EdgeInsets.all(16),
|
padding: const EdgeInsets.all(16),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: (color ?? AppTheme.navyText).withOpacity(0.05),
|
color: (color ?? AppTheme.navyText).withValues(alpha: 0.05),
|
||||||
borderRadius: BorderRadius.circular(15),
|
borderRadius: BorderRadius.circular(15),
|
||||||
border: Border.all(color: (color ?? AppTheme.navyText).withOpacity(0.1)),
|
border: Border.all(color: (color ?? AppTheme.navyText).withValues(alpha: 0.1)),
|
||||||
),
|
),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
if (icon != null) ...[
|
if (icon != null) ...[
|
||||||
Icon(icon, color: color ?? AppTheme.navyText.withOpacity(0.7), size: 28),
|
Icon(icon, color: color ?? AppTheme.navyText.withValues(alpha: 0.7), size: 28),
|
||||||
const SizedBox(width: 16),
|
const SizedBox(width: 16),
|
||||||
],
|
],
|
||||||
Expanded(
|
Expanded(
|
||||||
|
|
@ -266,11 +266,11 @@ class _SanctuarySheetState extends State<SanctuarySheet> {
|
||||||
children: [
|
children: [
|
||||||
Text(title, style: AppTheme.labelLarge.copyWith(color: color ?? AppTheme.navyText)),
|
Text(title, style: AppTheme.labelLarge.copyWith(color: color ?? AppTheme.navyText)),
|
||||||
const SizedBox(height: 2),
|
const SizedBox(height: 2),
|
||||||
Text(subtitle, style: AppTheme.labelSmall.copyWith(color: (color ?? AppTheme.navyText).withOpacity(0.6))),
|
Text(subtitle, style: AppTheme.labelSmall.copyWith(color: (color ?? AppTheme.navyText).withValues(alpha: 0.6))),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Icon(Icons.chevron_right, color: AppTheme.egyptianBlue.withOpacity(0.3)),
|
Icon(Icons.chevron_right, color: AppTheme.egyptianBlue.withValues(alpha: 0.3)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -271,7 +271,7 @@ class _PrivacyIcon extends StatelessWidget {
|
||||||
child: Icon(
|
child: Icon(
|
||||||
icon,
|
icon,
|
||||||
size: 12,
|
size: 12,
|
||||||
color: AppTheme.navyText.withOpacity(0.6),
|
color: AppTheme.navyText.withValues(alpha: 0.6),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -358,7 +358,7 @@ class _sojornSwipeablePostState extends ConsumerState<sojornSwipeablePost> {
|
||||||
width: double.infinity,
|
width: double.infinity,
|
||||||
height: double.infinity,
|
height: double.infinity,
|
||||||
loadingBuilder: (context) => Container(
|
loadingBuilder: (context) => Container(
|
||||||
color: _getTrustColor().withOpacity(0.3),
|
color: _getTrustColor().withValues(alpha: 0.3),
|
||||||
),
|
),
|
||||||
errorBuilder: (context, error, stackTrace) =>
|
errorBuilder: (context, error, stackTrace) =>
|
||||||
_buildGradientBackground(palette),
|
_buildGradientBackground(palette),
|
||||||
|
|
@ -467,7 +467,7 @@ class _sojornSwipeablePostState extends ConsumerState<sojornSwipeablePost> {
|
||||||
child: Icon(
|
child: Icon(
|
||||||
_privacyIcon(_visibility),
|
_privacyIcon(_visibility),
|
||||||
size: 12,
|
size: 12,
|
||||||
color: palette.subTextColor.withOpacity(0.8),
|
color: palette.subTextColor.withValues(alpha: 0.8),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -193,7 +193,7 @@ class _ChatBubbleWidgetState extends State<ChatBubbleWidget>
|
||||||
|
|
||||||
Widget _buildAvatar() {
|
Widget _buildAvatar() {
|
||||||
final background =
|
final background =
|
||||||
widget.isMe ? AppTheme.navyBlue.withOpacity(0.12) : AppTheme.queenPink;
|
widget.isMe ? AppTheme.navyBlue.withValues(alpha: 0.12) : AppTheme.queenPink;
|
||||||
final border = widget.isMe ? AppTheme.navyBlue : AppTheme.brightNavy;
|
final border = widget.isMe ? AppTheme.navyBlue : AppTheme.brightNavy;
|
||||||
final textColor = widget.isMe ? AppTheme.navyBlue : AppTheme.navyBlue;
|
final textColor = widget.isMe ? AppTheme.navyBlue : AppTheme.navyBlue;
|
||||||
final label = (widget.avatarInitial ?? '?').trim();
|
final label = (widget.avatarInitial ?? '?').trim();
|
||||||
|
|
@ -225,7 +225,7 @@ class _ChatBubbleWidgetState extends State<ChatBubbleWidget>
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: background,
|
color: background,
|
||||||
borderRadius: BorderRadius.circular(10),
|
borderRadius: BorderRadius.circular(10),
|
||||||
border: Border.all(color: border.withOpacity(0.3), width: 1),
|
border: Border.all(color: border.withValues(alpha: 0.3), width: 1),
|
||||||
),
|
),
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
child: Text(
|
child: Text(
|
||||||
|
|
@ -242,8 +242,8 @@ class _ChatBubbleWidgetState extends State<ChatBubbleWidget>
|
||||||
final background = widget.isMe ? AppTheme.navyBlue : AppTheme.cardSurface;
|
final background = widget.isMe ? AppTheme.navyBlue : AppTheme.cardSurface;
|
||||||
final textColor = widget.isMe ? AppTheme.white : AppTheme.navyText;
|
final textColor = widget.isMe ? AppTheme.white : AppTheme.navyText;
|
||||||
final borderColor = widget.isMe
|
final borderColor = widget.isMe
|
||||||
? AppTheme.navyBlue.withOpacity(0.35)
|
? AppTheme.navyBlue.withValues(alpha: 0.35)
|
||||||
: AppTheme.navyBlue.withOpacity(0.08);
|
: AppTheme.navyBlue.withValues(alpha: 0.08);
|
||||||
|
|
||||||
final parsed = _parseReply(widget.message);
|
final parsed = _parseReply(widget.message);
|
||||||
final attachments = _extractAttachments(parsed?.body ?? widget.message);
|
final attachments = _extractAttachments(parsed?.body ?? widget.message);
|
||||||
|
|
@ -276,7 +276,7 @@ class _ChatBubbleWidgetState extends State<ChatBubbleWidget>
|
||||||
border: Border.all(color: borderColor, width: 1),
|
border: Border.all(color: borderColor, width: 1),
|
||||||
boxShadow: [
|
boxShadow: [
|
||||||
BoxShadow(
|
BoxShadow(
|
||||||
color: AppTheme.navyBlue.withOpacity(0.08),
|
color: AppTheme.navyBlue.withValues(alpha: 0.08),
|
||||||
blurRadius: 10,
|
blurRadius: 10,
|
||||||
offset: const Offset(0, 4),
|
offset: const Offset(0, 4),
|
||||||
),
|
),
|
||||||
|
|
@ -297,7 +297,7 @@ class _ChatBubbleWidgetState extends State<ChatBubbleWidget>
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
color: widget.isMe
|
color: widget.isMe
|
||||||
? SojornColors.basicWhite.withValues(alpha: 0.12)
|
? SojornColors.basicWhite.withValues(alpha: 0.12)
|
||||||
: AppTheme.navyBlue.withOpacity(0.08),
|
: AppTheme.navyBlue.withValues(alpha: 0.08),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
child: Column(
|
child: Column(
|
||||||
|
|
@ -497,7 +497,7 @@ class _ChatBubbleWidgetState extends State<ChatBubbleWidget>
|
||||||
duration: const Duration(milliseconds: 150),
|
duration: const Duration(milliseconds: 150),
|
||||||
child: DecoratedBox(
|
child: DecoratedBox(
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.cardSurface.withOpacity(0.95),
|
color: AppTheme.cardSurface.withValues(alpha: 0.95),
|
||||||
borderRadius: BorderRadius.circular(16),
|
borderRadius: BorderRadius.circular(16),
|
||||||
boxShadow: [
|
boxShadow: [
|
||||||
BoxShadow(
|
BoxShadow(
|
||||||
|
|
@ -602,7 +602,7 @@ class _VideoAttachment extends StatelessWidget {
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
color: isMine
|
color: isMine
|
||||||
? SojornColors.basicWhite.withValues(alpha: 0.2)
|
? SojornColors.basicWhite.withValues(alpha: 0.2)
|
||||||
: AppTheme.navyBlue.withOpacity(0.1),
|
: AppTheme.navyBlue.withValues(alpha: 0.1),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
child: ListTile(
|
child: ListTile(
|
||||||
|
|
|
||||||
|
|
@ -201,7 +201,7 @@ class _ComposerWidgetState extends State<ComposerWidget>
|
||||||
color: AppTheme.cardSurface,
|
color: AppTheme.cardSurface,
|
||||||
border: Border(
|
border: Border(
|
||||||
top: BorderSide(
|
top: BorderSide(
|
||||||
color: AppTheme.navyBlue.withOpacity(0.1),
|
color: AppTheme.navyBlue.withValues(alpha: 0.1),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -241,7 +241,7 @@ class _ComposerWidgetState extends State<ComposerWidget>
|
||||||
color: SojornColors.basicWhite.withValues(alpha: 0.04),
|
color: SojornColors.basicWhite.withValues(alpha: 0.04),
|
||||||
borderRadius: BorderRadius.circular(18),
|
borderRadius: BorderRadius.circular(18),
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
color: AppTheme.navyBlue.withOpacity(0.08),
|
color: AppTheme.navyBlue.withValues(alpha: 0.08),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
child: Shortcuts(
|
child: Shortcuts(
|
||||||
|
|
|
||||||
|
|
@ -100,7 +100,7 @@ class sojornButton extends StatelessWidget {
|
||||||
disabledBackgroundColor:
|
disabledBackgroundColor:
|
||||||
AppTheme.queenPinkLight, // Replaced AppTheme.surfaceVariant
|
AppTheme.queenPinkLight, // Replaced AppTheme.surfaceVariant
|
||||||
disabledForegroundColor: AppTheme.navyText
|
disabledForegroundColor: AppTheme.navyText
|
||||||
.withOpacity(0.5), // Replaced AppTheme.textDisabled
|
.withValues(alpha: 0.5), // Replaced AppTheme.textDisabled
|
||||||
elevation: 0,
|
elevation: 0,
|
||||||
shadowColor: SojornColors.transparent,
|
shadowColor: SojornColors.transparent,
|
||||||
padding: _getPadding(),
|
padding: _getPadding(),
|
||||||
|
|
@ -121,7 +121,7 @@ class sojornButton extends StatelessWidget {
|
||||||
disabledBackgroundColor:
|
disabledBackgroundColor:
|
||||||
AppTheme.queenPinkLight, // Replaced AppTheme.surfaceVariant
|
AppTheme.queenPinkLight, // Replaced AppTheme.surfaceVariant
|
||||||
disabledForegroundColor: AppTheme.navyText
|
disabledForegroundColor: AppTheme.navyText
|
||||||
.withOpacity(0.5), // Replaced AppTheme.textDisabled
|
.withValues(alpha: 0.5), // Replaced AppTheme.textDisabled
|
||||||
elevation: 0,
|
elevation: 0,
|
||||||
shadowColor: SojornColors.transparent,
|
shadowColor: SojornColors.transparent,
|
||||||
padding: _getPadding(),
|
padding: _getPadding(),
|
||||||
|
|
@ -139,10 +139,10 @@ class sojornButton extends StatelessWidget {
|
||||||
style: OutlinedButton.styleFrom(
|
style: OutlinedButton.styleFrom(
|
||||||
foregroundColor: AppTheme.brightNavy, // Replaced AppTheme.accent
|
foregroundColor: AppTheme.brightNavy, // Replaced AppTheme.accent
|
||||||
disabledForegroundColor: AppTheme.navyText
|
disabledForegroundColor: AppTheme.navyText
|
||||||
.withOpacity(0.5), // Replaced AppTheme.textDisabled
|
.withValues(alpha: 0.5), // Replaced AppTheme.textDisabled
|
||||||
side: BorderSide(
|
side: BorderSide(
|
||||||
color: isDisabled
|
color: isDisabled
|
||||||
? AppTheme.egyptianBlue.withOpacity(0.5)
|
? AppTheme.egyptianBlue.withValues(alpha: 0.5)
|
||||||
: AppTheme.egyptianBlue, // Replaced borderSubtle and border
|
: AppTheme.egyptianBlue, // Replaced borderSubtle and border
|
||||||
width: 1,
|
width: 1,
|
||||||
),
|
),
|
||||||
|
|
@ -161,7 +161,7 @@ class sojornButton extends StatelessWidget {
|
||||||
style: TextButton.styleFrom(
|
style: TextButton.styleFrom(
|
||||||
foregroundColor: AppTheme.brightNavy, // Replaced AppTheme.accent
|
foregroundColor: AppTheme.brightNavy, // Replaced AppTheme.accent
|
||||||
disabledForegroundColor: AppTheme.navyText
|
disabledForegroundColor: AppTheme.navyText
|
||||||
.withOpacity(0.5), // Replaced AppTheme.textDisabled
|
.withValues(alpha: 0.5), // Replaced AppTheme.textDisabled
|
||||||
padding: _getPadding(),
|
padding: _getPadding(),
|
||||||
shape: RoundedRectangleBorder(
|
shape: RoundedRectangleBorder(
|
||||||
borderRadius: BorderRadius.circular(
|
borderRadius: BorderRadius.circular(
|
||||||
|
|
|
||||||
|
|
@ -225,13 +225,13 @@ class _sojornPostCardState extends ConsumerState<sojornPostCard> {
|
||||||
margin: const EdgeInsets.symmetric(horizontal: 4),
|
margin: const EdgeInsets.symmetric(horizontal: 4),
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 4),
|
padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 4),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.ksuPurple.withOpacity(0.1),
|
color: AppTheme.ksuPurple.withValues(alpha: 0.1),
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
),
|
),
|
||||||
child: Text("!", style: TextStyle(
|
child: Text("!", style: TextStyle(
|
||||||
fontSize: 18,
|
fontSize: 18,
|
||||||
fontWeight: FontWeight.w900,
|
fontWeight: FontWeight.w900,
|
||||||
color: AppTheme.royalPurple.withOpacity(0.7),
|
color: AppTheme.royalPurple.withValues(alpha: 0.7),
|
||||||
)),
|
)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -98,7 +98,7 @@ class sojornRichText extends StatelessWidget {
|
||||||
fontWeight: FontWeight.w600, // Bolder for "Awake" feel
|
fontWeight: FontWeight.w600, // Bolder for "Awake" feel
|
||||||
decoration:
|
decoration:
|
||||||
isMention || isHashtag ? null : TextDecoration.underline,
|
isMention || isHashtag ? null : TextDecoration.underline,
|
||||||
decorationColor: linkColor.withOpacity(0.7),
|
decorationColor: linkColor.withValues(alpha: 0.7),
|
||||||
) ??
|
) ??
|
||||||
TextStyle(
|
TextStyle(
|
||||||
color: linkColor,
|
color: linkColor,
|
||||||
|
|
|
||||||
|
|
@ -300,7 +300,7 @@ class _TraditionalQuipsSheetState extends ConsumerState<TraditionalQuipsSheet> {
|
||||||
borderRadius: const BorderRadius.vertical(top: Radius.circular(24)),
|
borderRadius: const BorderRadius.vertical(top: Radius.circular(24)),
|
||||||
border: Border(
|
border: Border(
|
||||||
bottom: BorderSide(
|
bottom: BorderSide(
|
||||||
color: AppTheme.egyptianBlue.withOpacity(0.1),
|
color: AppTheme.egyptianBlue.withValues(alpha: 0.1),
|
||||||
width: 1
|
width: 1
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -313,7 +313,7 @@ class _TraditionalQuipsSheetState extends ConsumerState<TraditionalQuipsSheet> {
|
||||||
height: 4,
|
height: 4,
|
||||||
margin: const EdgeInsets.only(top: 12, bottom: 4),
|
margin: const EdgeInsets.only(top: 12, bottom: 4),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.navyBlue.withOpacity(0.1),
|
color: AppTheme.navyBlue.withValues(alpha: 0.1),
|
||||||
borderRadius: BorderRadius.circular(2),
|
borderRadius: BorderRadius.circular(2),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -414,11 +414,11 @@ class _TraditionalQuipsSheetState extends ConsumerState<TraditionalQuipsSheet> {
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Icon(Icons.chat_bubble_outline, size: 48, color: AppTheme.navyBlue.withOpacity(0.1)),
|
Icon(Icons.chat_bubble_outline, size: 48, color: AppTheme.navyBlue.withValues(alpha: 0.1)),
|
||||||
const SizedBox(height: 16),
|
const SizedBox(height: 16),
|
||||||
Text(
|
Text(
|
||||||
'No messages yet',
|
'No messages yet',
|
||||||
style: GoogleFonts.inter(color: AppTheme.textSecondary.withOpacity(0.5), fontSize: 16),
|
style: GoogleFonts.inter(color: AppTheme.textSecondary.withValues(alpha: 0.5), fontSize: 16),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
@ -479,7 +479,7 @@ class _TraditionalQuipsSheetState extends ConsumerState<TraditionalQuipsSheet> {
|
||||||
if (_replyingToNode != null)
|
if (_replyingToNode != null)
|
||||||
Container(
|
Container(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
|
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
|
||||||
color: AppTheme.brightNavy.withOpacity(0.05),
|
color: AppTheme.brightNavy.withValues(alpha: 0.05),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Icon(Icons.reply, size: 14, color: AppTheme.brightNavy),
|
Icon(Icons.reply, size: 14, color: AppTheme.brightNavy),
|
||||||
|
|
@ -503,7 +503,7 @@ class _TraditionalQuipsSheetState extends ConsumerState<TraditionalQuipsSheet> {
|
||||||
padding: EdgeInsets.fromLTRB(16, 12, 16, MediaQuery.of(context).viewInsets.bottom + 16),
|
padding: EdgeInsets.fromLTRB(16, 12, 16, MediaQuery.of(context).viewInsets.bottom + 16),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.cardSurface,
|
color: AppTheme.cardSurface,
|
||||||
border: Border(top: BorderSide(color: AppTheme.egyptianBlue.withOpacity(0.1))),
|
border: Border(top: BorderSide(color: AppTheme.egyptianBlue.withValues(alpha: 0.1))),
|
||||||
),
|
),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
|
|
@ -513,7 +513,7 @@ class _TraditionalQuipsSheetState extends ConsumerState<TraditionalQuipsSheet> {
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.scaffoldBg,
|
color: AppTheme.scaffoldBg,
|
||||||
borderRadius: BorderRadius.circular(16),
|
borderRadius: BorderRadius.circular(16),
|
||||||
border: Border.all(color: AppTheme.egyptianBlue.withOpacity(0.2)),
|
border: Border.all(color: AppTheme.egyptianBlue.withValues(alpha: 0.2)),
|
||||||
),
|
),
|
||||||
child: TextField(
|
child: TextField(
|
||||||
controller: _commentController,
|
controller: _commentController,
|
||||||
|
|
@ -521,7 +521,7 @@ class _TraditionalQuipsSheetState extends ConsumerState<TraditionalQuipsSheet> {
|
||||||
style: TextStyle(color: AppTheme.textPrimary),
|
style: TextStyle(color: AppTheme.textPrimary),
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
hintText: _replyingToNode != null ? 'Type your reply...' : 'Add a comment...',
|
hintText: _replyingToNode != null ? 'Type your reply...' : 'Add a comment...',
|
||||||
hintStyle: TextStyle(color: AppTheme.textSecondary.withOpacity(0.5)),
|
hintStyle: TextStyle(color: AppTheme.textSecondary.withValues(alpha: 0.5)),
|
||||||
border: InputBorder.none,
|
border: InputBorder.none,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -537,7 +537,7 @@ class _TraditionalQuipsSheetState extends ConsumerState<TraditionalQuipsSheet> {
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
boxShadow: [
|
boxShadow: [
|
||||||
BoxShadow(
|
BoxShadow(
|
||||||
color: AppTheme.brightNavy.withOpacity(0.2),
|
color: AppTheme.brightNavy.withValues(alpha: 0.2),
|
||||||
blurRadius: 8,
|
blurRadius: 8,
|
||||||
offset: const Offset(0, 4),
|
offset: const Offset(0, 4),
|
||||||
),
|
),
|
||||||
|
|
@ -601,10 +601,10 @@ class _CommentTile extends StatelessWidget {
|
||||||
child: Container(
|
child: Container(
|
||||||
padding: const EdgeInsets.all(14),
|
padding: const EdgeInsets.all(14),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: isSelected ? AppTheme.brightNavy.withOpacity(0.08) : AppTheme.cardSurface,
|
color: isSelected ? AppTheme.brightNavy.withValues(alpha: 0.08) : AppTheme.cardSurface,
|
||||||
borderRadius: BorderRadius.circular(20),
|
borderRadius: BorderRadius.circular(20),
|
||||||
border: Border.all(
|
border: Border.all(
|
||||||
color: isSelected ? AppTheme.brightNavy.withOpacity(0.3) : AppTheme.egyptianBlue.withOpacity(0.1),
|
color: isSelected ? AppTheme.brightNavy.withValues(alpha: 0.3) : AppTheme.egyptianBlue.withValues(alpha: 0.1),
|
||||||
width: isSelected ? 2 : 1,
|
width: isSelected ? 2 : 1,
|
||||||
),
|
),
|
||||||
boxShadow: [
|
boxShadow: [
|
||||||
|
|
@ -664,7 +664,7 @@ class _CommentTile extends StatelessWidget {
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
timeago.format(node.post.createdAt, locale: 'en_short'),
|
timeago.format(node.post.createdAt, locale: 'en_short'),
|
||||||
style: TextStyle(color: AppTheme.textSecondary.withOpacity(0.5), fontSize: 13),
|
style: TextStyle(color: AppTheme.textSecondary.withValues(alpha: 0.5), fontSize: 13),
|
||||||
),
|
),
|
||||||
const SizedBox(width: 24),
|
const SizedBox(width: 24),
|
||||||
GestureDetector(
|
GestureDetector(
|
||||||
|
|
@ -706,7 +706,7 @@ class _CommentTile extends StatelessWidget {
|
||||||
icon: Icon(
|
icon: Icon(
|
||||||
node.post.isLiked == true ? Icons.favorite : Icons.favorite_border,
|
node.post.isLiked == true ? Icons.favorite : Icons.favorite_border,
|
||||||
size: 20,
|
size: 20,
|
||||||
color: node.post.isLiked == true ? SojornColors.destructive : AppTheme.textSecondary.withOpacity(0.2),
|
color: node.post.isLiked == true ? SojornColors.destructive : AppTheme.textSecondary.withValues(alpha: 0.2),
|
||||||
),
|
),
|
||||||
onPressed: () => onReaction('❤️'),
|
onPressed: () => onReaction('❤️'),
|
||||||
visualDensity: VisualDensity.compact,
|
visualDensity: VisualDensity.compact,
|
||||||
|
|
@ -714,7 +714,7 @@ class _CommentTile extends StatelessWidget {
|
||||||
if (node.post.likeCount != null && node.post.likeCount! > 0)
|
if (node.post.likeCount != null && node.post.likeCount! > 0)
|
||||||
Text(
|
Text(
|
||||||
'${node.post.likeCount}',
|
'${node.post.likeCount}',
|
||||||
style: TextStyle(color: AppTheme.textSecondary.withOpacity(0.6), fontSize: 13, fontWeight: FontWeight.w700),
|
style: TextStyle(color: AppTheme.textSecondary.withValues(alpha: 0.6), fontSize: 13, fontWeight: FontWeight.w700),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
@ -730,9 +730,9 @@ class _CommentTile extends StatelessWidget {
|
||||||
width: 40,
|
width: 40,
|
||||||
height: 40,
|
height: 40,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppTheme.navyBlue.withOpacity(0.05),
|
color: AppTheme.navyBlue.withValues(alpha: 0.05),
|
||||||
borderRadius: BorderRadius.circular(20),
|
borderRadius: BorderRadius.circular(20),
|
||||||
border: Border.all(color: AppTheme.egyptianBlue.withOpacity(0.1)),
|
border: Border.all(color: AppTheme.egyptianBlue.withValues(alpha: 0.1)),
|
||||||
),
|
),
|
||||||
child: author?.avatarUrl != null && author!.avatarUrl!.isNotEmpty
|
child: author?.avatarUrl != null && author!.avatarUrl!.isNotEmpty
|
||||||
? ClipRRect(
|
? ClipRRect(
|
||||||
|
|
@ -745,12 +745,12 @@ class _CommentTile extends StatelessWidget {
|
||||||
|
|
||||||
Widget _buildMenu(BuildContext context, bool isMyComment, bool isVideoAuthor) {
|
Widget _buildMenu(BuildContext context, bool isMyComment, bool isVideoAuthor) {
|
||||||
return PopupMenuButton<String>(
|
return PopupMenuButton<String>(
|
||||||
icon: Icon(Icons.more_horiz, size: 22, color: AppTheme.textSecondary.withOpacity(0.4)),
|
icon: Icon(Icons.more_horiz, size: 22, color: AppTheme.textSecondary.withValues(alpha: 0.4)),
|
||||||
padding: EdgeInsets.zero,
|
padding: EdgeInsets.zero,
|
||||||
color: AppTheme.cardSurface,
|
color: AppTheme.cardSurface,
|
||||||
shape: RoundedRectangleBorder(
|
shape: RoundedRectangleBorder(
|
||||||
borderRadius: BorderRadius.circular(16),
|
borderRadius: BorderRadius.circular(16),
|
||||||
side: BorderSide(color: AppTheme.egyptianBlue.withOpacity(0.1)),
|
side: BorderSide(color: AppTheme.egyptianBlue.withValues(alpha: 0.1)),
|
||||||
),
|
),
|
||||||
itemBuilder: (context) => [
|
itemBuilder: (context) => [
|
||||||
if (isVideoAuthor)
|
if (isVideoAuthor)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue