Miquel Farré commited on
Commit
5921b80
·
1 Parent(s): e50e776
Files changed (1) hide show
  1. app.py +28 -22
app.py CHANGED
@@ -4,7 +4,7 @@ from huggingface_hub import HfApi, CommitOperationAdd, create_commit
4
  import pandas as pd
5
  from datetime import datetime
6
  import tempfile
7
- from typing import Optional
8
 
9
  # Initialize Hugging Face client
10
  hf_api = HfApi(token=os.getenv("HF_TOKEN"))
@@ -66,13 +66,13 @@ def join_waitlist(
66
 
67
  # Check if user already registered
68
  if profile.username in current_data['userid'].values:
69
- return "You're already on the waitlist! We'll keep you updated."
70
 
71
  # Try to commit the update
72
  error = commit_signup(profile.username, current_data)
73
 
74
  if error is None: # Success
75
- return "Thanks for joining the waitlist! We'll keep you updated on SmolVLM2 iPhone app and source code release."
76
 
77
  # If we got a conflict error, retry
78
  if "Conflict" in str(error) and attempt < MAX_RETRIES - 1:
@@ -80,39 +80,45 @@ def join_waitlist(
80
 
81
  # Other error or last attempt
82
  gr.Error(f"An error occurred: {str(error)}")
83
- return "Sorry, something went wrong. Please try again later."
84
 
85
  except Exception as e:
86
- print(str(e))
87
  if attempt == MAX_RETRIES - 1: # Last attempt
88
  gr.Error(f"An error occurred: {str(e)}")
89
- return "Sorry, something went wrong. Please try again later."
90
-
91
- def show_welcome(profile: gr.OAuthProfile | None) -> str:
92
- """Show welcome message based on login status"""
93
  if profile is None:
94
- return "Please sign in with your Hugging Face account to join the waitlist."
95
- return f"Welcome {profile.name}! Click the button below to join the waitlist."
 
 
 
 
 
 
 
 
96
 
97
  # Create the interface
98
  with gr.Blocks(title="SmolVLM2 Waitlist") as demo:
99
  gr.Markdown("""
100
  # Join SmolVLM2 iPhone Waitlist 📱
101
- Sign up to be notified when the SmolVLM2 iPhone app and source code are released.
102
-
103
- By joining the waitlist, you'll get:
104
- - Early access to the SmolVLM2 iPhone app
105
- - Updates on development progress
106
- - First look at the source code when available
107
  """)
108
 
109
  gr.LoginButton()
110
- welcome_msg = gr.Markdown()
111
- join_button = gr.Button("Join Waitlist", variant="primary")
112
- status_msg = gr.Markdown()
113
 
114
- # Show welcome message on load and auth change
115
- demo.load(show_welcome, None, welcome_msg)
 
 
 
 
116
 
117
  # Handle join button click
118
  join_button.click(join_waitlist, None, status_msg)
 
4
  import pandas as pd
5
  from datetime import datetime
6
  import tempfile
7
+ from typing import Optional, Tuple
8
 
9
  # Initialize Hugging Face client
10
  hf_api = HfApi(token=os.getenv("HF_TOKEN"))
 
66
 
67
  # Check if user already registered
68
  if profile.username in current_data['userid'].values:
69
+ return "## 😎 You're already on the waitlist! We'll keep you updated."
70
 
71
  # Try to commit the update
72
  error = commit_signup(profile.username, current_data)
73
 
74
  if error is None: # Success
75
+ return "## 🎉 Thanks for joining the waitlist! We'll keep you updated on SmolVLM2 iPhone app."
76
 
77
  # If we got a conflict error, retry
78
  if "Conflict" in str(error) and attempt < MAX_RETRIES - 1:
 
80
 
81
  # Other error or last attempt
82
  gr.Error(f"An error occurred: {str(error)}")
83
+ return "## 🫠 Sorry, something went wrong. Please try again later."
84
 
85
  except Exception as e:
 
86
  if attempt == MAX_RETRIES - 1: # Last attempt
87
  gr.Error(f"An error occurred: {str(e)}")
88
+ return "## 🫠 Sorry, something went wrong. Please try again later."
89
+
90
+ def update_ui(profile: gr.OAuthProfile | None) -> Tuple[str, bool, bool]:
91
+ """Update UI elements based on login status"""
92
  if profile is None:
93
+ return (
94
+ "## Please sign in with your Hugging Face account to join the waitlist.", # welcome message
95
+ False, # hide join button
96
+ False, # hide status message
97
+ )
98
+ return (
99
+ f"## Welcome {profile.name} 👋 Click the button below 👇 to receive any updates related with the SmolVLM2 iPhone application", # welcome message
100
+ True, # show join button
101
+ True, # show status message
102
+ )
103
 
104
  # Create the interface
105
  with gr.Blocks(title="SmolVLM2 Waitlist") as demo:
106
  gr.Markdown("""
107
  # Join SmolVLM2 iPhone Waitlist 📱
108
+ ## Please log-in using your Hugging Face Id to continue
 
 
 
 
 
109
  """)
110
 
111
  gr.LoginButton()
112
+ welcome_msg = gr.Markdown(visible=True)
113
+ join_button = gr.Button("Join Waitlist", variant="primary", visible=False)
114
+ status_msg = gr.Markdown(visible=False)
115
 
116
+ # Update UI elements on load and auth change
117
+ demo.load(
118
+ fn=update_ui,
119
+ inputs=None,
120
+ outputs=[welcome_msg, join_button, status_msg]
121
+ )
122
 
123
  # Handle join button click
124
  join_button.click(join_waitlist, None, status_msg)