refactor(client): widgets 颜色迁移到 context.tokens

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-06-24 23:12:20 +08:00
parent 1671edd913
commit b37c46fb9c
20 changed files with 151 additions and 137 deletions
+5
View File
@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:jiu_client/core/theme/themes.dart';
import 'package:jiu_client/core/utils/date_util.dart';
import 'package:jiu_client/widgets/date_picker_field.dart';
@@ -33,6 +34,7 @@ void main() {
group('DatePickerField', () {
testWidgets('渲染可键入框 + 日历图标', (tester) async {
await tester.pumpWidget(MaterialApp(
theme: buildTheme('a'),
home: Scaffold(
body: DatePickerField(value: '2026-06-19', onChanged: (_) {}),
),
@@ -44,6 +46,7 @@ void main() {
testWidgets('初始值回显到输入框', (tester) async {
await tester.pumpWidget(MaterialApp(
theme: buildTheme('a'),
home: Scaffold(
body: DatePickerField(value: '2026-06-19', onChanged: (_) {}),
),
@@ -55,6 +58,7 @@ void main() {
testWidgets('只输年份归一为 yyyy-01-01', (tester) async {
String? out;
await tester.pumpWidget(MaterialApp(
theme: buildTheme('a'),
home: Scaffold(
body: DatePickerField(onChanged: (v) => out = v),
),
@@ -66,6 +70,7 @@ void main() {
testWidgets('年月归一为 yyyy-MM-01', (tester) async {
String? out;
await tester.pumpWidget(MaterialApp(
theme: buildTheme('a'),
home: Scaffold(
body: DatePickerField(onChanged: (v) => out = v),
),
+3 -2
View File
@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:jiu_client/core/models/page_result.dart';
import 'package:jiu_client/core/theme/themes.dart';
import 'package:jiu_client/models/license.dart';
import 'package:jiu_client/models/partner.dart';
import 'package:jiu_client/providers/license_provider.dart';
@@ -103,7 +104,7 @@ Widget _buildApp({
() => _FakePartnerNotifier('customer', customerState),
),
],
child: const MaterialApp(home: Scaffold(body: PartnersScreen())),
child: MaterialApp(theme: buildTheme('a'), home: const Scaffold(body: PartnersScreen())),
);
}
@@ -118,7 +119,7 @@ Widget _buildLoadingApp() {
() => _FakeLoadingPartnerNotifier('customer'),
),
],
child: const MaterialApp(home: Scaffold(body: PartnersScreen())),
child: MaterialApp(theme: buildTheme('a'), home: const Scaffold(body: PartnersScreen())),
);
}
@@ -8,6 +8,7 @@ import 'package:jiu_client/core/api/api_client.dart';
import 'package:jiu_client/core/auth/auth_state.dart';
import 'package:jiu_client/core/config/license_copy.dart';
import 'package:jiu_client/core/models/page_result.dart';
import 'package:jiu_client/core/theme/themes.dart';
import 'package:jiu_client/models/license.dart';
import 'package:jiu_client/models/partner.dart';
import 'package:jiu_client/providers/license_provider.dart';
@@ -76,7 +77,7 @@ Widget _buildApp({required bool readonly}) {
),
),
],
child: const MaterialApp(home: Scaffold(body: PartnersScreen())),
child: MaterialApp(theme: buildTheme('a'), home: const Scaffold(body: PartnersScreen())),
);
}
@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:jiu_client/core/theme/themes.dart';
import 'package:jiu_client/widgets/searchable_option_field.dart';
void main() {
@@ -8,6 +9,7 @@ void main() {
Future<int?> Function(String)? onCreate,
}) {
return MaterialApp(
theme: buildTheme('a'),
home: Scaffold(
body: SearchableOptionField(
options: [OptionItem(id: 1, name: '53度')],
+3 -2
View File
@@ -5,6 +5,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:go_router/go_router.dart';
import 'package:jiu_client/core/models/page_result.dart';
import 'package:jiu_client/core/theme/themes.dart';
import 'package:jiu_client/models/license.dart';
import 'package:jiu_client/models/stock_in.dart';
import 'package:jiu_client/providers/license_provider.dart';
@@ -119,7 +120,7 @@ Widget _buildApp(AsyncValue<PageResult<StockInOrder>> state) {
licenseProvider.overrideWith(() => _FakeLicenseNotifier()),
stockInListProvider.overrideWith(() => _FakeStockInNotifier(state)),
],
child: MaterialApp.router(routerConfig: router),
child: MaterialApp.router(theme: buildTheme('a'), routerConfig: router),
);
}
@@ -143,7 +144,7 @@ Widget _buildLoadingApp() {
licenseProvider.overrideWith(() => _FakeLicenseNotifier()),
stockInListProvider.overrideWith(() => _FakeLoadingStockInNotifier()),
],
child: MaterialApp.router(routerConfig: router),
child: MaterialApp.router(theme: buildTheme('a'), routerConfig: router),
);
}
+2
View File
@@ -3,6 +3,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:jiu_client/core/auth/auth_state.dart';
import 'package:jiu_client/core/config/license_copy.dart';
import 'package:jiu_client/core/theme/themes.dart';
import 'package:jiu_client/models/license.dart';
import 'package:jiu_client/providers/license_provider.dart';
import 'package:jiu_client/widgets/write_guard.dart';
@@ -37,6 +38,7 @@ Widget _harness({
licenseProvider.overrideWith(() => _FakeLicenseNotifier(lic)),
],
child: MaterialApp(
theme: buildTheme('a'),
home: Scaffold(
body: WriteGuard(
child: ElevatedButton(