fix: remove Pro-only placeholder in consumer APK, fix A-1/A-3 visibility
- sake_detail_screen: hide SakeMbtiStampSection when isProVersion=false (consumer APK no longer shows Pro版限定 placeholder at card bottom) - sake_grid_item / sake_list_item: apply Pressable to actual tap targets (grid/list cards now animate on press instead of non-interactive LevelTitleCard) - soul_screen / sommelier_screen: ambient glow alpha 0.07→0.12 for visibility Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
17e8d52a67
commit
4758aa5c9c
|
|
@ -105,7 +105,7 @@ class _SommelierScreenState extends ConsumerState<SommelierScreen> {
|
||||||
shape: BoxShape.circle,
|
shape: BoxShape.circle,
|
||||||
gradient: RadialGradient(
|
gradient: RadialGradient(
|
||||||
colors: [
|
colors: [
|
||||||
Theme.of(context).extension<AppColors>()!.brandAccent.withValues(alpha: 0.07),
|
Theme.of(context).extension<AppColors>()!.brandAccent.withValues(alpha: 0.12),
|
||||||
Colors.transparent,
|
Colors.transparent,
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ import '../widgets/sake_detail/sake_detail_memo.dart';
|
||||||
import '../widgets/sake_detail/sake_detail_specs.dart';
|
import '../widgets/sake_detail/sake_detail_specs.dart';
|
||||||
import 'sake_detail/widgets/sake_photo_edit_modal.dart';
|
import 'sake_detail/widgets/sake_photo_edit_modal.dart';
|
||||||
import 'sake_detail/sections/sake_mbti_stamp_section.dart';
|
import 'sake_detail/sections/sake_mbti_stamp_section.dart';
|
||||||
|
import '../main.dart' show isProVersion;
|
||||||
import 'sake_detail/sections/sake_basic_info_section.dart';
|
import 'sake_detail/sections/sake_basic_info_section.dart';
|
||||||
import 'sake_detail/widgets/sake_detail_sliver_app_bar.dart';
|
import 'sake_detail/widgets/sake_detail_sliver_app_bar.dart';
|
||||||
import '../services/mbti_compatibility_service.dart';
|
import '../services/mbti_compatibility_service.dart';
|
||||||
|
|
@ -265,9 +266,11 @@ class _SakeDetailScreenState extends ConsumerState<SakeDetailScreen> {
|
||||||
const SizedBox(height: 48),
|
const SizedBox(height: 48),
|
||||||
],
|
],
|
||||||
|
|
||||||
// MBTI Diagnostic Stamp Section (Phase C3)
|
// MBTI Diagnostic Stamp Section (Pro only)
|
||||||
SakeMbtiStampSection(sake: _sake),
|
if (isProVersion) ...[
|
||||||
const SizedBox(height: 24),
|
SakeMbtiStampSection(sake: _sake),
|
||||||
|
const SizedBox(height: 24),
|
||||||
|
],
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ class _SoulScreenState extends ConsumerState<SoulScreen> {
|
||||||
shape: BoxShape.circle,
|
shape: BoxShape.circle,
|
||||||
gradient: RadialGradient(
|
gradient: RadialGradient(
|
||||||
colors: [
|
colors: [
|
||||||
appColors.brandPrimary.withValues(alpha: 0.07),
|
appColors.brandPrimary.withValues(alpha: 0.12),
|
||||||
Colors.transparent,
|
Colors.transparent,
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import '../../theme/app_theme.dart';
|
||||||
import '../../theme/app_colors.dart';
|
import '../../theme/app_colors.dart';
|
||||||
import '../../providers/ui_experiment_provider.dart';
|
import '../../providers/ui_experiment_provider.dart';
|
||||||
import 'package:lucide_icons/lucide_icons.dart';
|
import 'package:lucide_icons/lucide_icons.dart';
|
||||||
|
import '../common/pressable.dart';
|
||||||
|
|
||||||
class SakeGridItem extends ConsumerWidget {
|
class SakeGridItem extends ConsumerWidget {
|
||||||
final SakeItem sake;
|
final SakeItem sake;
|
||||||
|
|
@ -24,7 +25,8 @@ class SakeGridItem extends ConsumerWidget {
|
||||||
final isSelected = ref.watch(selectedMenuSakeIdsProvider).contains(sake.id);
|
final isSelected = ref.watch(selectedMenuSakeIdsProvider).contains(sake.id);
|
||||||
final appColors = Theme.of(context).extension<AppColors>()!;
|
final appColors = Theme.of(context).extension<AppColors>()!;
|
||||||
|
|
||||||
return Card(
|
return Pressable(
|
||||||
|
child: Card(
|
||||||
clipBehavior: Clip.antiAlias,
|
clipBehavior: Clip.antiAlias,
|
||||||
// Highlight selected
|
// Highlight selected
|
||||||
shape: isMenuMode && isSelected
|
shape: isMenuMode && isSelected
|
||||||
|
|
@ -198,8 +200,9 @@ class SakeGridItem extends ConsumerWidget {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
), // Stack
|
||||||
),
|
), // InkWell
|
||||||
);
|
), // Card
|
||||||
|
); // Pressable
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import '../../screens/sake_detail_screen.dart';
|
||||||
import '../../theme/app_theme.dart';
|
import '../../theme/app_theme.dart';
|
||||||
import '../../theme/app_colors.dart';
|
import '../../theme/app_colors.dart';
|
||||||
import 'package:lucide_icons/lucide_icons.dart';
|
import 'package:lucide_icons/lucide_icons.dart';
|
||||||
// Haptic via InkWell? No, explicit HapticFeedback used generally.
|
import '../common/pressable.dart';
|
||||||
|
|
||||||
class SakeListItem extends ConsumerWidget {
|
class SakeListItem extends ConsumerWidget {
|
||||||
final SakeItem sake;
|
final SakeItem sake;
|
||||||
|
|
@ -29,9 +29,10 @@ class SakeListItem extends ConsumerWidget {
|
||||||
// Adaptive selection color
|
// Adaptive selection color
|
||||||
final selectedColor = appColors.brandAccent.withValues(alpha: 0.15);
|
final selectedColor = appColors.brandAccent.withValues(alpha: 0.15);
|
||||||
|
|
||||||
return Card(
|
return Pressable(
|
||||||
|
child: Card(
|
||||||
clipBehavior: Clip.antiAlias,
|
clipBehavior: Clip.antiAlias,
|
||||||
elevation: 1, // Slight elevation
|
elevation: 1,
|
||||||
color: isMenuMode && isSelected ? selectedColor : null,
|
color: isMenuMode && isSelected ? selectedColor : null,
|
||||||
shape: isMenuMode && isSelected
|
shape: isMenuMode && isSelected
|
||||||
? RoundedRectangleBorder(side: BorderSide(color: appColors.brandAccent, width: 2), borderRadius: BorderRadius.circular(6))
|
? RoundedRectangleBorder(side: BorderSide(color: appColors.brandAccent, width: 2), borderRadius: BorderRadius.circular(6))
|
||||||
|
|
@ -208,8 +209,9 @@ class SakeListItem extends ConsumerWidget {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
), // Row
|
||||||
),
|
), // InkWell
|
||||||
);
|
), // Card
|
||||||
|
); // Pressable
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue