Spaces:
Sleeping
Sleeping
import streamlit as st | |
from datetime import datetime | |
# App title | |
st.title("Chat and Call Application") | |
# Sidebar for navigation | |
menu = ["Home", "Add Contact", "Chat", "Call"] | |
choice = st.sidebar.selectbox("Menu", menu) | |
# Global variables (for simulation) | |
if 'contacts' not in st.session_state: | |
st.session_state['contacts'] = {} | |
if 'chat_history' not in st.session_state: | |
st.session_state['chat_history'] = {} | |
# Home page | |
if choice == "Home": | |
st.header("Welcome to the Chat and Call App") | |
st.write("Use the sidebar to navigate between features.") | |
# Add Contact page | |
elif choice == "Add Contact": | |
st.header("Add a New Contact") | |
with st.form("add_contact_form"): | |
name = st.text_input("Contact Name") | |
phone = st.text_input("Phone Number") | |
submit = st.form_submit_button("Add Contact") | |
if submit: | |
if name and phone: | |
st.session_state['contacts'][name] = phone | |
st.success(f"Contact {name} added successfully!") | |
else: | |
st.error("Please provide both name and phone number.") | |
# Chat page | |
elif choice == "Chat": | |
st.header("Chat with Your Contacts") | |
if not st.session_state['contacts']: | |
st.warning("No contacts available. Please add contacts first.") | |
else: | |
contact = st.selectbox("Select a Contact", list(st.session_state['contacts'].keys())) | |
if contact: | |
st.write(f"Chatting with: {contact}") | |
chat_key = contact | |
# Display chat history | |
if chat_key not in st.session_state['chat_history']: | |
st.session_state['chat_history'][chat_key] = [] | |
chat_history = st.session_state['chat_history'][chat_key] | |
for message in chat_history: | |
st.write(message) | |
# Input for sending a message | |
with st.form("send_message_form"): | |
message = st.text_input("Enter your message") | |
send = st.form_submit_button("Send") | |
if send: | |
if message: | |
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") | |
chat_history.append(f"You ({timestamp}): {message}") | |
st.session_state['chat_history'][chat_key] = chat_history | |
st.experimental_rerun() | |
else: | |
st.error("Message cannot be empty.") | |
# Call page | |
elif choice == "Call": | |
st.header("Make a Call") | |
if not st.session_state['contacts']: | |
st.warning("No contacts available. Please add contacts first.") | |
else: | |
contact = st.selectbox("Select a Contact to Call", list(st.session_state['contacts'].keys())) | |
if contact: | |
st.write(f"Calling {contact}...") | |
st.button("End Call", on_click=lambda: st.success(f"Call with {contact} ended.")) | |