53 lines
1.9 KiB
Dart
53 lines
1.9 KiB
Dart
// lib/views/authentication/widgets/authentication_app_bar.dart
|
|
|
|
import 'package:didvan/config/theme_data.dart';
|
|
import 'package:didvan/constants/app_icons.dart';
|
|
import 'package:didvan/views/authentication/authentication_state.dart';
|
|
import 'package:didvan/views/widgets/didvan/icon_button.dart';
|
|
import 'package:didvan/views/widgets/didvan/text.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:provider/provider.dart';
|
|
|
|
class AuthenticationAppBar extends StatelessWidget {
|
|
final String? title;
|
|
const AuthenticationAppBar({Key? key, this.title}) : super(key: key);
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final state = context.read<AuthenticationState>();
|
|
return Row(
|
|
children: [
|
|
DidvanIconButton(
|
|
icon: DidvanIcons.back_regular,
|
|
onPressed: () {
|
|
// اگر در صفحه اول باشیم، از صفحه احراز هویت خارج میشویم
|
|
if (state.currentPageIndex == 0) {
|
|
Navigator.of(context).pop();
|
|
return;
|
|
}
|
|
|
|
// ** منطق جدید برای بازگشت از صفحه OTP **
|
|
// اگر کاربر رمز عبور نداشته و در صفحه OTP باشد
|
|
if (state.currentPageIndex == 2 && !state.hasPassword) {
|
|
// او را به صفحه اول (ورود شماره) برمیگردانیم
|
|
state.currentPageIndex = 0;
|
|
return;
|
|
}
|
|
|
|
// در غیر این صورت، به صفحه قبلی برمیگردیم
|
|
state.currentPageIndex--;
|
|
},
|
|
),
|
|
const SizedBox(
|
|
width: 4,
|
|
),
|
|
if (title != null)
|
|
DidvanText(
|
|
title!,
|
|
style: Theme.of(context).textTheme.titleSmall,
|
|
color: Theme.of(context).colorScheme.title,
|
|
)
|
|
],
|
|
);
|
|
}
|
|
} |