Files
please-pay-me/mobile/widgetbook/lib/use_cases/navigation/dialogs_use_cases.dart
T
2026-09-21 04:06:43 +03:00

74 lines
2.8 KiB
Dart

import 'package:flutter/cupertino.dart';
import 'package:please_pay_me/theme/theme.dart';
import 'package:please_pay_me/ui/ui.dart';
import 'package:please_pay_me_widgetbook/knobs/common_knobs.dart';
import 'package:please_pay_me_widgetbook/support/preview.dart';
import 'package:widgetbook/widgetbook.dart';
WidgetbookComponent dialogsComponent() {
return WidgetbookComponent(
name: 'AppAlert',
useCases: [
WidgetbookUseCase(
name: 'Alert',
builder: (context) {
final message = knobText(
context,
label: 'Message',
initialValue: 'Операция будет удалена без возможности восстановления.',
);
return IosPreview.centered(
child: AppAlert(
title: knobText(context, label: 'Title', initialValue: 'Удалить трату?'),
message: message.isEmpty ? null : message,
confirmLabel: knobText(context, label: 'Confirm', initialValue: 'Удалить'),
cancelLabel: knobBool(context, label: 'Cancel button', initialValue: true)
? 'Отмена'
: null,
destructive: knobBool(context, label: 'Destructive', initialValue: true),
),
);
},
),
WidgetbookUseCase(
name: 'Triggers',
builder: (context) {
return IosPreview(
stretch: true,
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
AppButton(
label: 'Показать alert',
onPressed: () => showAppAlert(
context: context,
title: 'Удалить трату?',
message: 'Действие необратимо.',
confirmLabel: 'Удалить',
cancelLabel: 'Отмена',
destructive: true,
),
),
const SizedBox(height: AppSpacing.s3),
AppButton(
label: 'Показать action sheet',
style: AppButtonStyle.gray,
onPressed: () => showAppActionSheet(
context: context,
title: 'Операция',
actions: const [
AppActionSheetAction(label: 'Редактировать', isDefault: true),
AppActionSheetAction(label: 'Дублировать'),
AppActionSheetAction(label: 'Удалить', destructive: true),
],
),
),
],
),
);
},
),
],
);
}