init commit

This commit is contained in:
2025-08-31 17:55:26 +03:00
commit 876ddec94a
78 changed files with 11999 additions and 0 deletions

View File

@@ -0,0 +1,62 @@
import flet as ft
import re
import requests
from config import API_BASE_URL
class ForgotPassword:
def __init__(self, page: ft.Page, auth, login):
self.page = page
self.auth = auth
self.login = login
self.email = ft.TextField(label="Email")
self.error = ft.Text("", color=ft.Colors.RED)
self.success = ft.Text("", color=ft.Colors.GREEN)
self.back_button = ft.TextButton(text="Back to Login", on_click=self.on_back_clicked)
def on_submit(self, e):
email_value = self.email.value.strip()
email_regex = r"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"
if not re.match(email_regex, email_value):
self.error.value = "Please enter a valid email address."
self.success.value = ""
else:
try:
response = requests.post(
f"{API_BASE_URL}/auth/forgot_password",
json={"email": email_value},
timeout=10
)
if response.status_code == 200:
self.success.value = "If the email exists, you will receive a reset link shortly."
self.error.value = ""
else:
self.error.value = "Server error. Please try again later."
self.success.value = ""
except Exception as ex:
self.error.value = "Connection error. Please check your internet."
self.success.value = ""
print(ex)
self.page.update()
def on_back_clicked(self, e):
self.auth.placeholder.content.clean()
self.auth.placeholder.content = self.login.build()
self.auth.placeholder.update()
def build(self):
return ft.Column(
[
ft.Text("Forgot Password", size=30, weight="bold"),
self.email,
ft.ElevatedButton("Reset Password", on_click=self.on_submit, width=150),
self.error,
self.success,
self.back_button,
],
horizontal_alignment=ft.CrossAxisAlignment.CENTER,
alignment=ft.MainAxisAlignment.CENTER,
spacing=20,
width=350
)