feat(proj): init
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
import 'package:please_pay_me/app/home_tabs.dart';
|
||||
import 'package:please_pay_me/features/auth/login_screen.dart';
|
||||
import 'package:please_pay_me/features/budgets/budgets_screen.dart';
|
||||
import 'package:please_pay_me/features/journal/journal_screen.dart';
|
||||
import 'package:please_pay_me/features/overview/overview_screen.dart';
|
||||
import 'package:please_pay_me/features/profile/profile_screen.dart';
|
||||
import 'package:please_pay_me/features/splash/splash_screen.dart';
|
||||
import 'package:please_pay_me/features/work/work_screen.dart';
|
||||
import 'package:please_pay_me_widgetbook/support/demo_scope.dart';
|
||||
import 'package:widgetbook/widgetbook.dart';
|
||||
|
||||
WidgetbookComponent overviewScreenComponent() {
|
||||
return WidgetbookComponent(
|
||||
name: 'OverviewScreen',
|
||||
useCases: [
|
||||
WidgetbookUseCase(
|
||||
name: 'С активным бюджетом',
|
||||
builder: (context) => const DemoScope(child: OverviewScreen()),
|
||||
),
|
||||
WidgetbookUseCase(
|
||||
name: 'Без бюджетов',
|
||||
builder: (context) => const DemoScope(seeded: false, child: OverviewScreen()),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
WidgetbookComponent journalScreenComponent() {
|
||||
return WidgetbookComponent(
|
||||
name: 'JournalScreen',
|
||||
useCases: [
|
||||
WidgetbookUseCase(
|
||||
name: 'С операциями',
|
||||
builder: (context) => const DemoScope(child: JournalScreen()),
|
||||
),
|
||||
WidgetbookUseCase(
|
||||
name: 'Пустой',
|
||||
builder: (context) => const DemoScope(seeded: false, child: JournalScreen()),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
WidgetbookComponent budgetsScreenComponent() {
|
||||
return WidgetbookComponent(
|
||||
name: 'BudgetsScreen',
|
||||
useCases: [
|
||||
WidgetbookUseCase(
|
||||
name: 'Активные и завершённые',
|
||||
builder: (context) => const DemoScope(child: BudgetsScreen()),
|
||||
),
|
||||
WidgetbookUseCase(
|
||||
name: 'Пустой',
|
||||
builder: (context) => const DemoScope(seeded: false, child: BudgetsScreen()),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
WidgetbookComponent workScreenComponent() {
|
||||
return WidgetbookComponent(
|
||||
name: 'WorkScreen',
|
||||
useCases: [
|
||||
WidgetbookUseCase(
|
||||
name: 'С работой',
|
||||
builder: (context) => const DemoScope(child: WorkScreen()),
|
||||
),
|
||||
WidgetbookUseCase(
|
||||
name: 'Пустой',
|
||||
builder: (context) => const DemoScope(seeded: false, child: WorkScreen()),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
WidgetbookComponent profileScreenComponent() {
|
||||
return WidgetbookComponent(
|
||||
name: 'ProfileScreen',
|
||||
useCases: [
|
||||
WidgetbookUseCase(
|
||||
name: 'Демо-сессия',
|
||||
builder: (context) => const DemoScope(child: ProfileScreen()),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
WidgetbookComponent splashScreenComponent() {
|
||||
return WidgetbookComponent(
|
||||
name: 'SplashScreen',
|
||||
useCases: [
|
||||
WidgetbookUseCase(
|
||||
name: 'Запуск',
|
||||
builder: (context) => const SplashScreen(),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
WidgetbookComponent loginScreenComponent() {
|
||||
return WidgetbookComponent(
|
||||
name: 'LoginScreen',
|
||||
useCases: [
|
||||
WidgetbookUseCase(
|
||||
name: 'Вход через Telegram',
|
||||
builder: (context) => DemoScope(
|
||||
// Desktop has no WebView, so the catalog stubs the launcher to show
|
||||
// the mobile layout.
|
||||
child: LoginScreen(launchTelegramLogin: (_, __) async => null),
|
||||
),
|
||||
),
|
||||
WidgetbookUseCase(
|
||||
name: 'Вход по токену',
|
||||
builder: (context) => const DemoScope(child: LoginScreen()),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
WidgetbookComponent homeTabsComponent() {
|
||||
return WidgetbookComponent(
|
||||
name: 'HomeTabs',
|
||||
useCases: [
|
||||
WidgetbookUseCase(
|
||||
name: 'Полное приложение',
|
||||
builder: (context) => const DemoScope(child: HomeTabs()),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
import 'package:please_pay_me/data/demo/demo_backend.dart';
|
||||
import 'package:please_pay_me/features/budgets/budget_form_sheet.dart';
|
||||
import 'package:please_pay_me/features/expenses/expense_form_sheet.dart';
|
||||
import 'package:please_pay_me/features/work/job_form_sheet.dart';
|
||||
import 'package:please_pay_me_widgetbook/support/demo_scope.dart';
|
||||
import 'package:widgetbook/widgetbook.dart';
|
||||
|
||||
WidgetbookComponent sheetsComponent() {
|
||||
return WidgetbookComponent(
|
||||
name: 'Формы',
|
||||
useCases: [
|
||||
WidgetbookUseCase(
|
||||
name: 'Новая трата',
|
||||
builder: (context) => DemoScope(
|
||||
child: ExpenseFormSheet(
|
||||
budgetName: 'До аванса',
|
||||
remainingToday: 1420,
|
||||
onSubmit: ({required amount, note, required spentAt}) async => null,
|
||||
),
|
||||
),
|
||||
),
|
||||
WidgetbookUseCase(
|
||||
name: 'Новый бюджет',
|
||||
builder: (context) => DemoScope(
|
||||
child: BudgetFormSheet(
|
||||
onSubmit: ({
|
||||
required name,
|
||||
required totalAmount,
|
||||
required startDate,
|
||||
required endDate,
|
||||
required resetExpenses,
|
||||
}) async =>
|
||||
null,
|
||||
),
|
||||
),
|
||||
),
|
||||
WidgetbookUseCase(
|
||||
name: 'Новая работа',
|
||||
builder: (context) => DemoScope(
|
||||
child: JobFormSheet(
|
||||
onSubmit: ({
|
||||
required name,
|
||||
required salaryAmount,
|
||||
required payDays,
|
||||
required firstPayPercent,
|
||||
required weekendPolicy,
|
||||
}) async =>
|
||||
null,
|
||||
),
|
||||
),
|
||||
),
|
||||
WidgetbookUseCase(
|
||||
name: 'Ошибка сохранения',
|
||||
builder: (context) => DemoScope(
|
||||
child: ExpenseFormSheet(
|
||||
budgetName: DemoBackend.user.displayName,
|
||||
onSubmit: ({required amount, note, required spentAt}) async =>
|
||||
'Бюджет уже завершён',
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user