Функции и условия

// Some code
import 'package:flutter/material.dart';
import 'package:lessons_flutter/lesson_variables/onboarding_screen.dart';

class TestAuth extends StatefulWidget {
  const TestAuth({super.key});

  @override
  State<TestAuth> createState() => _TestAuthState();
}

class _TestAuthState extends State<TestAuth> {
  final String name = 'Baiastan';
  final int age = 18;
  final double kg = 56.879;
  bool isMarried = true; // true - false - условия

  Color color = Colors.black;
  IconData icon = Icons.eighteen_mp;

  // Во время компиляции - Во время выполнения

  final TextEditingController nameCon = TextEditingController();
  var car = 'BMW';
  var number = 90;
  var gram = 78.90;
  var isSnow = true;

  dynamic weather = 'Sunny';
  dynamic numberOne = 89;

  final String surname = 'Aitmatov';
  static const Color green = Color(0xFF568299);

  void test() {
    car = 'Mercedes';
    weather = 89;
    numberOne = 'Baiastan';
    weather = true;
  }

  void show() {
    setState(() {});
  }

  // =, +=, -=, /=, *=
  // +, -, /, *

  // bool - ==, !=, >, <, >=, <=, is -       &&, ||,

  String message = '';

  TextEditingController ageController = TextEditingController();

  void check({required int age}) {
    setState(() {
      if (age == 18) {
        message = 'Ты можешь войти ==';
      } else if (age != 18) {
        message = 'Ты не можешь войти';
      } else if (age >= 18) {
        message = 'Ты можешь войти >=';
      } else {
        message = 'Произошло неизвестная ошибка';
      }
    });
  }

  TextEditingController emailController = TextEditingController();

  void login() {
    setState(() {
      if (emailController.text.isEmpty) {
        ScaffoldMessenger.of(
          context,
        ).showSnackBar(SnackBar(content: Text('Email не может быть пусты')));
      } else if (!emailController.text.contains('@')) {
        ScaffoldMessenger.of(
          context,
        ).showSnackBar(SnackBar(content: Text('Email должен содержать @')));
      } else if (emailController.text.length >= 6) {
        ScaffoldMessenger.of(
          context,
        ).showSnackBar(SnackBar(content: Text('Email должен быть больше 6')));
      }
    });
  }

  final _formKey = GlobalKey<FormState>();
  TextEditingController emailOneCon = TextEditingController();

  void register() {
    if (_formKey.currentState!.validate()) {
      Navigator.push(
        context,
        MaterialPageRoute(builder: (context) => OnboardingScreen()),
      );
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        child: Form(
          key: _formKey,
          child: Column(
            children: [
              Text(
                '$name - ${name.length} - '
                '${name.isEmpty} - ${name.isNotEmpty} - '
                '${name.runtimeType} - ${name.characters} ${name.toUpperCase()}, ',
                style: TextStyle(fontSize: 40),
              ),
              Text(
                '$kg - ${kg.isFinite} - ${kg.isInfinite} ',
                style: TextStyle(fontSize: 40),
              ),
              Padding(
                padding: const EdgeInsets.all(8.0),
                child: TextField(
                  controller: ageController,
                  decoration: InputDecoration(border: OutlineInputBorder()),
                ),
              ),
              Text(
                'вывод - $message',
                style: TextStyle(fontSize: 40),
              ),
              ElevatedButton(
                onPressed: () {
                  check(age: int.tryParse(ageController.text)!);
                },
                child: Text('Проверить'),
              ),

              Padding(
                padding: const EdgeInsets.all(8.0),
                child: TextField(
                  controller: emailController,
                  decoration: InputDecoration(
                    border: OutlineInputBorder(),
                    hintText: 'email',
                  ),
                ),
              ),

              ElevatedButton(
                onPressed: () {
                  login();
                },
                child: Text('Войти'),
              ),
              Padding(
                padding: const EdgeInsets.all(8.0),
                child: TextFormField(
                  controller: emailOneCon,
                  validator: (value) {
                    if (value!.isEmpty) {
                      return 'Email не может быть пустым ';
                    } else if(!value!.contains('@')){
                      return 'Email должен иметь @';
                    }
                    return null;
                  },
                  decoration: InputDecoration(
                    border: OutlineInputBorder(),
                    hintText: 'email',
                  ),
                ),
              ),

              ElevatedButton(
                onPressed: () {
                  register();
                },
                child: Text('Войти'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

Last updated