feat(mobile): Pulse polish — flat feed, compose page, shared filter chips, like + accent fixes (#796)

Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co>
This commit is contained in:
Wes
2026-05-29 14:33:45 -07:00
committed by GitHub
co-authored by Brain
parent 10f37e4cab
commit b820420909
18 changed files with 796 additions and 602 deletions
@@ -0,0 +1,39 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:sprout_mobile/shared/theme/theme.dart';
import 'package:sprout_mobile/shared/widgets/filter_chip_bar.dart';
void main() {
testWidgets('selected chip resolves the accent (scheme.primary) as fill', (
tester,
) async {
final accented = applyAccent(darkColorScheme, 0); // Blue accent
final accent = accented.primary;
await tester.pumpWidget(
MaterialApp(
theme: AppTheme.dark(colorScheme: accented),
home: Scaffold(
body: FilterChipBar<int>(
selected: 0,
onSelected: (_) {},
items: const [
FilterChipItem(id: 0, label: 'Everyone'),
FilterChipItem(id: 1, label: 'Following'),
],
),
),
),
);
await tester.pumpAndSettle();
// The chip's container color comes from ChipThemeData.color resolved for
// the selected state. Resolve it the same way the chip does and assert
// it's the accent.
final chipTheme = ChipTheme.of(
tester.element(find.widgetWithText(RawChip, 'Everyone')),
);
final resolved = chipTheme.color?.resolve({WidgetState.selected});
expect(resolved, accent);
});
}