diff --git a/lib/ui/main_dashboard.dart b/lib/ui/main_dashboard.dart index 604e7e8..0f0239f 100644 --- a/lib/ui/main_dashboard.dart +++ b/lib/ui/main_dashboard.dart @@ -307,23 +307,28 @@ class _MainDashboardState extends State { final List<({String id, Widget child})> tiles = []; if (_isStudent) { + // ๐ŸŒ ์›น์€ NFC ํ•˜๋“œ์›จ์–ด์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์œผ๋‹ˆ, ๋“ฑ๋ก๋œ ๊ธฐ๊ธฐ๊ฐ€ ์•„๋‹ ๋•Œ์™€ ๋˜‘๊ฐ™์ด + // ์ž ๊ธด ๋ชจ์–‘(์ž๋ฌผ์‡  ์•„์ด์ฝ˜ + ํšŒ์ƒ‰)์œผ๋กœ ๋ณด์—ฌ์ฃผ๊ณ  ๋ˆ„๋ฅด๋ฉด ์•ˆ๋‚ด๋งŒ ๋œจ๊ฒŒ ํ•œ๋‹ค. + final bool nfcUnlocked = widget.isDeviceMatched && !kIsWeb; tiles.add(( id: 'nfc_tag', child: _buildModernCard( - icon: widget.isDeviceMatched - ? Icons.contactless_rounded - : Icons.lock_rounded, + icon: nfcUnlocked ? Icons.contactless_rounded : Icons.lock_rounded, title: 'NFC ํƒœ๊ทธ', - subtitle: widget.isDeviceMatched ? '์ถœ์„ ๋ฐ ํฐ ์ˆ˜๊ฑฐ ์™„๋ฃŒ' : '๋ณธ์ธ ์ธ์ฆ ๊ธฐ๊ธฐ ์ „์šฉ', - color: widget.isDeviceMatched ? _tileAccent : AppPalette.sage, - onTap: widget.isDeviceMatched + subtitle: kIsWeb + ? '์Šค๋งˆํŠธํฐ ์•ฑ ์ „์šฉ ๊ธฐ๋Šฅ' + : (widget.isDeviceMatched ? '์ถœ์„ ๋ฐ ํฐ ์ˆ˜๊ฑฐ ์™„๋ฃŒ' : '๋ณธ์ธ ์ธ์ฆ ๊ธฐ๊ธฐ ์ „์šฉ'), + color: nfcUnlocked ? _tileAccent : AppPalette.sage, + onTap: nfcUnlocked ? () => _openPocketCheckIn(context) : () => AppNotice.show( context, - '๋Œ€๋ฆฌ ์ถœ์„ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด ๋“ฑ๋ก๋œ ๋ณธ์ธ ์Šค๋งˆํŠธํฐ์—์„œ๋งŒ ์ถœ์„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.', + kIsWeb + ? 'NFC ํƒœ๊ทธ ๊ธฐ๋Šฅ์€ ์Šค๋งˆํŠธํฐ ์•ฑ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์š”.' + : '๋Œ€๋ฆฌ ์ถœ์„ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด ๋“ฑ๋ก๋œ ๋ณธ์ธ ์Šค๋งˆํŠธํฐ์—์„œ๋งŒ ์ถœ์„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.', icon: Icons.lock_rounded, ), - isActionButton: widget.isDeviceMatched, + isActionButton: nfcUnlocked, isLoading: _controller.isLoading, ), )); @@ -561,12 +566,20 @@ class _MainDashboardState extends State { tiles.add(( id: 'nfc_tag_writer', child: _buildModernCard( - icon: Icons.edit_note_rounded, + icon: kIsWeb ? Icons.lock_rounded : Icons.edit_note_rounded, title: 'NFC ํƒœ๊ทธ ์“ฐ๊ธฐ', - subtitle: '์ฃผ๋จธ๋‹ˆ ์Šคํ‹ฐ์ปค ์ดˆ๊ธฐ ์„ค์ •', - color: _tileAccent, - onTap: () => - pushLaunchpad(context, (context) => const NfcTagWriterScreen()), + subtitle: kIsWeb ? '์Šค๋งˆํŠธํฐ ์•ฑ ์ „์šฉ ๊ธฐ๋Šฅ' : '์ฃผ๋จธ๋‹ˆ ์Šคํ‹ฐ์ปค ์ดˆ๊ธฐ ์„ค์ •', + color: kIsWeb ? AppPalette.sage : _tileAccent, + onTap: kIsWeb + ? () => AppNotice.show( + context, + 'NFC ํƒœ๊ทธ ์“ฐ๊ธฐ๋Š” ์Šค๋งˆํŠธํฐ ์•ฑ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์š”.', + icon: Icons.lock_rounded, + ) + : () => pushLaunchpad( + context, + (context) => const NfcTagWriterScreen(), + ), ), )); } diff --git a/lib/ui/study_calendar_screen.dart b/lib/ui/study_calendar_screen.dart index aefa5bd..1b5adfe 100644 --- a/lib/ui/study_calendar_screen.dart +++ b/lib/ui/study_calendar_screen.dart @@ -313,18 +313,16 @@ class _StudyCalendarScreenState extends State { date.month == today.month && date.day == today.day; + final accentColor = + globalProfileTheme.value?.accent ?? AppPalette.ink; return GestureDetector( onTap: () => _onDayTap(date), child: Container( decoration: BoxDecoration( - color: studied - ? AppPalette.ink - : AppPalette.paper, + color: studied ? accentColor : AppPalette.paper, borderRadius: BorderRadius.circular(12), border: Border.all( - color: isToday - ? AppPalette.ink - : AppPalette.sage, + color: isToday ? accentColor : AppPalette.sage, width: isToday ? 2 : 1, ), ), @@ -362,7 +360,10 @@ class _StudyCalendarScreenState extends State { const SizedBox(height: 16), Row( children: [ - _legendDot(AppPalette.ink, '๊ณต๋ถ€ํ•œ ๋‚ '), + _legendDot( + globalProfileTheme.value?.accent ?? AppPalette.ink, + '๊ณต๋ถ€ํ•œ ๋‚ ', + ), const SizedBox(width: 16), _legendIcon( Icons.card_giftcard_rounded,