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.")) | |