refactor: formatting

This commit is contained in:
cogwheel0
2025-09-24 12:00:49 +05:30
parent b8c024d0b0
commit 5f013b1b73
27 changed files with 158 additions and 121 deletions

View File

@@ -31,7 +31,8 @@ class _ChatActionButtonState extends ConsumerState<ChatActionButton> {
Widget build(BuildContext context) {
final theme = context.conduitTheme;
final hapticEnabled = ref.read(hapticEnabledProvider);
final radius = widget.borderRadius ?? BorderRadius.circular(AppBorderRadius.lg);
final radius =
widget.borderRadius ?? BorderRadius.circular(AppBorderRadius.lg);
final overlay = theme.buttonPrimary.withValues(alpha: 0.08);
return Tooltip(
@@ -100,4 +101,3 @@ class _ChatActionButtonState extends ConsumerState<ChatActionButton> {
);
}
}

View File

@@ -101,7 +101,8 @@ class ConduitButton extends ConsumerWidget {
),
child: isLoading
? Semantics(
label: AppLocalizations.of(context)?.loadingContent ?? 'Loading',
label:
AppLocalizations.of(context)?.loadingContent ?? 'Loading',
excludeSemantics: true,
child: SizedBox(
width: IconSize.small,
@@ -206,7 +207,10 @@ class ConduitInput extends StatelessWidget {
SizedBox(height: Spacing.sm),
],
Semantics(
label: semanticLabel ?? label ?? (AppLocalizations.of(context)?.inputField ?? 'Input field'),
label:
semanticLabel ??
label ??
(AppLocalizations.of(context)?.inputField ?? 'Input field'),
textField: true,
child: TextField(
controller: controller,
@@ -784,7 +788,10 @@ class AccessibleFormField extends StatelessWidget {
SizedBox(height: isCompact ? Spacing.xs : Spacing.sm),
],
Semantics(
label: semanticLabel ?? label ?? (AppLocalizations.of(context)?.inputField ?? 'Input field'),
label:
semanticLabel ??
label ??
(AppLocalizations.of(context)?.inputField ?? 'Input field'),
textField: true,
child: TextFormField(
controller: controller,

View File

@@ -348,8 +348,13 @@ class LoadingStateWrapper<T> extends StatelessWidget {
return asyncValue.when(
data: builder,
loading: () => showLoadingOverlay
? ConduitLoading.overlay(message: AppLocalizations.of(context)!.loadingContent)
: loadingWidget ?? ConduitLoading.primary(message: AppLocalizations.of(context)!.loadingContent),
? ConduitLoading.overlay(
message: AppLocalizations.of(context)!.loadingContent,
)
: loadingWidget ??
ConduitLoading.primary(
message: AppLocalizations.of(context)!.loadingContent,
),
error: (error, stackTrace) {
if (errorBuilder != null) {
return errorBuilder!(error, stackTrace);

View File

@@ -155,7 +155,11 @@ class ConduitMarkdownConfig {
);
}
static Widget _buildBase64Image(String dataUrl, BuildContext context, ConduitThemeExtension theme) {
static Widget _buildBase64Image(
String dataUrl,
BuildContext context,
ConduitThemeExtension theme,
) {
try {
// Extract base64 part from data URL
final commaIndex = dataUrl.indexOf(',');

View File

@@ -20,7 +20,8 @@ class StreamingMarkdownWidget extends StatefulWidget {
});
@override
State<StreamingMarkdownWidget> createState() => _StreamingMarkdownWidgetState();
State<StreamingMarkdownWidget> createState() =>
_StreamingMarkdownWidgetState();
}
class _StreamingMarkdownWidgetState extends State<StreamingMarkdownWidget> {
@@ -59,38 +60,38 @@ class _StreamingMarkdownWidgetState extends State<StreamingMarkdownWidget> {
if (fenceCount % 2 != 0) {
content += '\n```';
}
// Fix incomplete bold/italic markers
final boldCount = RegExp(r'\*\*').allMatches(content).length;
if (boldCount % 2 != 0) {
content += '**';
}
final italicCount = RegExp(r'(?<!\*)\*(?!\*)').allMatches(content).length;
if (italicCount % 2 != 0) {
content += '*';
}
// Fix incomplete link brackets
final openBrackets = '['.allMatches(content).length;
final closeBrackets = ']'.allMatches(content).length;
if (openBrackets > closeBrackets) {
content += ']' * (openBrackets - closeBrackets);
}
final openParens = '('.allMatches(content).length;
final closeParens = ')'.allMatches(content).length;
if (openParens > closeParens) {
content += ')' * (openParens - closeParens);
}
return content;
}
@override
void didUpdateWidget(StreamingMarkdownWidget oldWidget) {
super.didUpdateWidget(oldWidget);
// Handle stream changes
if (widget.contentStream != oldWidget.contentStream) {
_streamSubscription?.cancel();
@@ -98,7 +99,7 @@ class _StreamingMarkdownWidgetState extends State<StreamingMarkdownWidget> {
_streamSubscription = widget.contentStream!.listen(_handleChunk);
}
}
// Handle static content changes
if (widget.staticContent != oldWidget.staticContent) {
setState(() {
@@ -182,9 +183,7 @@ class MarkdownWithLoading extends StatelessWidget {
if (isLoading && (content == null || content!.isEmpty)) {
return Container(
padding: padding ?? const EdgeInsets.all(16),
child: const Center(
child: CircularProgressIndicator(),
),
child: const Center(child: CircularProgressIndicator()),
);
}
@@ -194,4 +193,4 @@ class MarkdownWithLoading extends StatelessWidget {
padding: padding,
);
}
}
}

View File

@@ -22,8 +22,9 @@ class MiddleEllipsisText extends StatelessWidget {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, constraints) {
final TextStyle effectiveStyle =
DefaultTextStyle.of(context).style.merge(style);
final TextStyle effectiveStyle = DefaultTextStyle.of(
context,
).style.merge(style);
final TextDirection direction = Directionality.of(context);
final double maxWidth = constraints.maxWidth;
@@ -74,8 +75,10 @@ class MiddleEllipsisText extends StatelessWidget {
? ''
: text.substring(text.length - rightCount);
final trialSpan =
TextSpan(text: '$start$ellipsis$end', style: effectiveStyle);
final trialSpan = TextSpan(
text: '$start$ellipsis$end',
style: effectiveStyle,
);
final trialPainter = TextPainter(
text: trialSpan,
textDirection: direction,
@@ -116,4 +119,3 @@ class MiddleEllipsisText extends StatelessWidget {
);
}
}

View File

@@ -130,7 +130,9 @@ class _OptimizedListState<T> extends ConsumerState<OptimizedList<T>> {
return widget.emptyWidget ??
ImprovedEmptyState(
title: AppLocalizations.of(context)!.noItems,
subtitle: widget.emptyMessage ?? AppLocalizations.of(context)!.noItemsToDisplay,
subtitle:
widget.emptyMessage ??
AppLocalizations.of(context)!.noItemsToDisplay,
icon: Icons.inbox_outlined,
);
}
@@ -138,7 +140,8 @@ class _OptimizedListState<T> extends ConsumerState<OptimizedList<T>> {
// Build the list
Widget listWidget;
final ScrollPhysics effectivePhysics = widget.physics ??
final ScrollPhysics effectivePhysics =
widget.physics ??
(widget.onRefresh != null
? const AlwaysScrollableScrollPhysics()
: const ClampingScrollPhysics());
@@ -276,14 +279,16 @@ class OptimizedSliverList<T> extends ConsumerWidget {
return SliverToBoxAdapter(
child:
emptyWidget ??
Builder(builder: (context) {
final l10n = AppLocalizations.of(context)!;
return ImprovedEmptyState(
title: l10n.noItems,
subtitle: emptyMessage ?? l10n.noItemsToDisplay,
icon: Icons.inbox_outlined,
);
}),
Builder(
builder: (context) {
final l10n = AppLocalizations.of(context)!;
return ImprovedEmptyState(
title: l10n.noItems,
subtitle: emptyMessage ?? l10n.noItemsToDisplay,
icon: Icons.inbox_outlined,
);
},
),
);
}

View File

@@ -9,15 +9,18 @@ class SheetHandle extends StatelessWidget {
Widget build(BuildContext context) {
return Center(
child: Container(
margin: margin ?? const EdgeInsets.only(top: Spacing.sm, bottom: Spacing.md),
margin:
margin ??
const EdgeInsets.only(top: Spacing.sm, bottom: Spacing.md),
width: 40,
height: 4,
decoration: BoxDecoration(
color: context.conduitTheme.textPrimary.withValues(alpha: Alpha.medium),
color: context.conduitTheme.textPrimary.withValues(
alpha: Alpha.medium,
),
borderRadius: BorderRadius.circular(AppBorderRadius.xs),
),
),
);
}
}

View File

@@ -145,8 +145,10 @@ class ThemedDialogs {
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(AppBorderRadius.md),
borderSide:
BorderSide(color: theme.buttonPrimary, width: 1),
borderSide: BorderSide(
color: theme.buttonPrimary,
width: 1,
),
),
contentPadding: const EdgeInsets.symmetric(
horizontal: Spacing.md,
@@ -155,8 +157,8 @@ class ThemedDialogs {
),
onSubmitted: (v) {
final trimmed = v.trim();
final unchanged = (initialValue != null &&
trimmed == initialValue.trim());
final unchanged =
(initialValue != null && trimmed == initialValue.trim());
if (trimmed.isEmpty || unchanged) return;
Navigator.of(ctx).pop(trimmed);
},