Enhance user experience with multiple improvements
- Add username field to right sidebar and mobile modal with 'guest' default
- Implement real-time username sync with URL query string updates
- Add opencompletion.com button and new room creation in left sidebar
- Implement room name slugification (e.g. "a whole new world" → "a-whole-new-world")
- Create shared utils.js for common functions like slugify
- Add single search result auto-redirect functionality
- Remove redundant UI elements ("Create New Room" header, docs link)
- Preserve user settings (username, model, voice) across redirects and room creation
Technical improvements:
- Consolidated duplicate code into shared utility functions
- Enhanced search logic with parameter preservation
- Improved mobile/desktop sync for all input fields
- Better URL handling and query string management
This commit is contained in:
parent
88f68e4adc
commit
acdf653eaa
5 changed files with 267 additions and 17 deletions
21
app.py
21
app.py
|
|
@ -22,6 +22,8 @@ from flask import (
|
|||
send_from_directory,
|
||||
jsonify,
|
||||
Response,
|
||||
redirect,
|
||||
url_for,
|
||||
)
|
||||
|
||||
from flask_socketio import SocketIO, emit, join_room, leave_room
|
||||
|
|
@ -365,6 +367,25 @@ def search_page():
|
|||
# Call the function to search messages
|
||||
search_results = search_messages(keywords)
|
||||
|
||||
# If there's exactly one search result, redirect directly to that room
|
||||
if len(search_results) == 1:
|
||||
room_result = search_results[0]
|
||||
room_name = room_result["room_name"]
|
||||
|
||||
# Build the redirect URL with current parameters
|
||||
redirect_params = {}
|
||||
if username and username != "guest":
|
||||
redirect_params["username"] = username
|
||||
|
||||
# Preserve other URL parameters like model, voice, etc.
|
||||
for param in ["model", "voice"]:
|
||||
value = request.args.get(param)
|
||||
if value:
|
||||
redirect_params[param] = value
|
||||
|
||||
redirect_url = url_for("chat", room_name=room_name, **redirect_params)
|
||||
return redirect(redirect_url)
|
||||
|
||||
return render_template(
|
||||
"search.html",
|
||||
rooms=rooms,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue