Mobile UI changes

This commit is contained in:
James Ketr 2025-09-16 10:03:37 -07:00
parent 046321dafb
commit d4b3bc6ce4
4 changed files with 48 additions and 8 deletions

View File

@ -205,12 +205,22 @@ const LobbyView: React.FC<LobbyProps> = (props: LobbyProps) => {
}; };
return ( return (
<Paper className="Lobby" sx={{ p: 2, m: 2, width: "fit-content" }}> <Paper
className="Lobby"
sx={{
p: { xs: 1, sm: 2 },
m: { xs: 0, sm: 2 },
width: { xs: "100%", sm: "fit-content" },
maxWidth: { xs: "100%", sm: 600 },
}}
>
{readyState !== ReadyState.OPEN || !session ? ( {readyState !== ReadyState.OPEN || !session ? (
<ConnectionStatus readyState={readyState} reconnectAttempt={reconnectAttempt} /> <ConnectionStatus readyState={readyState} reconnectAttempt={reconnectAttempt} />
) : ( ) : (
<> <>
<Box sx={{ mb: 2, display: "flex", gap: 2, alignItems: "flex-start", flexDirection: "column" }}> <Box
sx={{ mb: 2, display: "flex", gap: 2, alignItems: "flex-start", flexDirection: { xs: "column", sm: "row" } }}
>
<Box> <Box>
<Typography variant="h5">AI Voice Chat Lobby: {lobbyName}</Typography> <Typography variant="h5">AI Voice Chat Lobby: {lobbyName}</Typography>
<Typography variant="caption"> <Typography variant="caption">
@ -226,7 +236,7 @@ const LobbyView: React.FC<LobbyProps> = (props: LobbyProps) => {
You can optionally set a password to reserve this name; supply it again to takeover the name from You can optionally set a password to reserve this name; supply it again to takeover the name from
another client. another client.
</Typography> </Typography>
<Box sx={{ display: "flex", gap: 1, width: "100%" }}> <Box sx={{ display: "flex", gap: 1, width: "100%", flexDirection: { xs: "column", sm: "row" } }}>
<Input <Input
type="text" type="text"
value={editName} value={editName}
@ -339,7 +349,7 @@ const App = () => {
}, [session, getSession]); }, [session, getSession]);
return ( return (
<Box> <Box sx={{ p: { xs: 1, sm: 2 }, maxWidth: { xs: "100%", sm: 800 }, margin: "0 auto", height: "100vh", overflowY: "auto" }}>
{!session && ( {!session && (
<ConnectionStatus <ConnectionStatus
readyState={sessionRetryAttempt > 0 ? ReadyState.CLOSED : ReadyState.CONNECTING} readyState={sessionRetryAttempt > 0 ? ReadyState.CLOSED : ReadyState.CONNECTING}

View File

@ -171,7 +171,16 @@ const BotManager: React.FC<BotManagerProps> = ({ lobbyId, onBotAdded, sx }) => {
const providerCount = botProviders.length; const providerCount = botProviders.length;
return ( return (
<Paper sx={{ p: 2, ...sx }}> <Paper
sx={{
p: { xs: 1, sm: 2 },
maxWidth: { xs: "100%", sm: 500 },
m: { xs: 0, sm: 2 },
maxHeight: "80vh",
overflowY: "auto",
...sx,
}}
>
<Box display="flex" alignItems="center" justifyContent="space-between" mb={2}> <Box display="flex" alignItems="center" justifyContent="space-between" mb={2}>
<Typography variant="h6" display="flex" alignItems="center" gap={1}> <Typography variant="h6" display="flex" alignItems="center" gap={1}>
<BotIcon /> <BotIcon />

View File

@ -135,7 +135,19 @@ const LobbyChat: React.FC<LobbyChatProps> = ({ socketUrl, session, lobbyId }) =>
}; };
return ( return (
<Paper className="lobby-chat" sx={{ height: 400, display: "flex", flexDirection: "column", p: 1 }}> <Paper
className="lobby-chat"
sx={{
height: { xs: 300, sm: 400 },
display: "flex",
flexDirection: "column",
p: { xs: 1, sm: 2 },
maxWidth: { xs: "100%", sm: 500 },
m: { xs: 0, sm: 2 },
maxHeight: "80vh",
overflowY: "auto",
}}
>
<Box sx={{ display: "flex", justifyContent: "space-between", alignItems: "center", mb: 1 }}> <Box sx={{ display: "flex", justifyContent: "space-between", alignItems: "center", mb: 1 }}>
<Typography variant="h6" sx={{ textAlign: "center", flexGrow: 1 }}> <Typography variant="h6" sx={{ textAlign: "center", flexGrow: 1 }}>
Chat Chat
@ -198,7 +210,7 @@ const LobbyChat: React.FC<LobbyChatProps> = ({ socketUrl, session, lobbyId }) =>
</Box> </Box>
{session.name ? ( {session.name ? (
<Box sx={{ display: "flex", gap: 1, alignItems: "flex-end" }}> <Box sx={{ display: "flex", gap: 1, alignItems: "flex-end", flexDirection: { xs: "column", sm: "row" } }}>
<TextField <TextField
fullWidth fullWidth
size="small" size="small"

View File

@ -146,7 +146,16 @@ const UserList: React.FC<UserListProps> = (props: UserListProps) => {
}, [users, sendJsonMessage]); }, [users, sendJsonMessage]);
return ( return (
<Paper className={`UserList ${videoClass}`}> <Paper
className={`UserList ${videoClass}`}
sx={{
maxWidth: { xs: "100%", sm: 500 },
p: { xs: 1, sm: 2 },
m: { xs: 0, sm: 2 },
maxHeight: "80vh",
overflowY: "auto",
}}
>
<MediaAgent {...{ session, socketUrl, peers, setPeers }} /> <MediaAgent {...{ session, socketUrl, peers, setPeers }} />
<List className="UserSelector"> <List className="UserSelector">
{users?.map((user) => ( {users?.map((user) => (