feat: 폼 필드 컴포넌트 분리 및 구독 카드 인터랙션 개선

- billing_cycle_selector, category_selector, currency_selector 컴포넌트 분리
- 구독 카드 클릭 이슈 해결을 위한 리팩토링
- SMS 스캔 화면 UI/UX 개선 및 기능 강화
- 상세 화면 컨트롤러 로직 개선
- 알림 서비스 및 구독 URL 매칭 기능 추가
- CLAUDE.md 프로젝트 가이드라인 대폭 확장
- 전반적인 코드 구조 개선 및 타입 안정성 강화

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
JiWoong Sul
2025-07-14 15:47:46 +09:00
parent 2f60ef585a
commit 111c519883
39 changed files with 2376 additions and 1231 deletions

View File

@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../models/subscription_model.dart';
import '../controllers/detail_screen_controller.dart';
import '../widgets/detail/detail_header_section.dart';
@@ -46,9 +47,11 @@ class _DetailScreenState extends State<DetailScreen>
Widget build(BuildContext context) {
final baseColor = _controller.getCardColor();
return Scaffold(
backgroundColor: AppColors.backgroundColor,
body: CustomScrollView(
return ChangeNotifierProvider<DetailScreenController>.value(
value: _controller,
child: Scaffold(
backgroundColor: AppColors.backgroundColor,
body: CustomScrollView(
controller: _controller.scrollController,
slivers: [
// 상단 헤더 섹션
@@ -74,8 +77,19 @@ class _DetailScreenState extends State<DetailScreen>
vertical: 12,
),
decoration: BoxDecoration(
color: baseColor.withValues(alpha: 0.1),
gradient: LinearGradient(
colors: [
baseColor.withValues(alpha: 0.15),
baseColor.withValues(alpha: 0.08),
],
begin: Alignment.topLeft,
end: Alignment.bottomRight,
),
borderRadius: BorderRadius.circular(16),
border: Border.all(
color: baseColor.withValues(alpha: 0.2),
width: 1,
),
),
child: Row(
children: [
@@ -98,7 +112,7 @@ class _DetailScreenState extends State<DetailScreen>
'변경사항은 저장 후 적용됩니다',
style: TextStyle(
fontSize: 14,
color: baseColor.withValues(alpha: 0.8),
color: AppColors.darkNavy,
),
),
],
@@ -141,6 +155,7 @@ class _DetailScreenState extends State<DetailScreen>
),
),
],
),
),
);
}