made UI better for mobile and chat

pull/3/head
Simon Huang 6 years ago
parent accaeaeac3
commit eb281313ac

@ -9,20 +9,6 @@ ion-textarea {
margin: 0;
}
.input-card-row {
position: fixed;
width: 100%;
}
.input-card-col {
margin: 0;
border-top: solid 1px #999;
}
.input-card-content {
padding: 0;
}
.send-msg {
align-items: center;
justify-content: center;
@ -33,6 +19,23 @@ ion-textarea {
width: 100%;
}
.text-area {
.message-input {
height: 100%;
border: 1px solid #999;
border-radius: 5px;
}
@media (max-width: 576px) {
.message-input {
border-radius: 10px;
height: 35px;
}
.send-msg {
display: none;
}
.native-input.sc-ion-input-ios {
padding-inline-start: 5px;
}
}

@ -1,4 +1,4 @@
import { IonButton, IonCard, IonCardContent, IonCol, IonRow, IonTextarea } from '@ionic/react';
import { IonButton, IonCard, IonCol, IonFooter, IonInput, IonRow } from '@ionic/react';
import React, { useState } from 'react';
import { db, timestamp } from '../services/firebase';
import './Chatbox.css';
@ -14,40 +14,47 @@ const Chat: React.FC<ChatboxProps> = ({ roomId, userId }) => {
// Send message to database
const sendMessage = async () => {
await db.collection('rooms').doc(roomId).collection('messages').add({
createdAt: timestamp,
senderId: userId,
content: message,
type: 'user',
});
if (message !== '') {
await db.collection('rooms').doc(roomId).collection('messages').add({
createdAt: timestamp,
senderId: userId,
content: message,
type: 'user',
});
}
// Reset textarea field
setMessage('');
};
const onEnter = (e: React.KeyboardEvent<HTMLIonInputElement>) => {
if (e.key === 'Enter') {
sendMessage();
}
};
return (
<IonCard class="chat-card">
<Messages roomId={roomId} userId={userId}></Messages>
<IonRow class="input-card-row">
<IonCol size="12" sizeLg="3" class="input-card-col">
<IonCardContent class="input-card-content">
<IonRow>
<IonCol size="9">
<IonTextarea
onIonChange={(e) => setMessage(e.detail.value!)}
value={message}
class="textarea"
></IonTextarea>
</IonCol>
<IonCol size="3" class="send-msg">
<IonButton expand="block" color="primary" onClick={sendMessage} class="send-button">
Send
</IonButton>
</IonCol>
</IonRow>
</IonCardContent>
</IonCol>
</IonRow>
<IonFooter>
<IonRow>
<IonCol size="12" sizeSm="9" class="message-col">
<IonInput
onIonChange={(e) => setMessage(e.detail.value!)}
onKeyDown={(e) => onEnter(e)}
value={message}
placeholder="Send message"
enterkeyhint="send"
class="message-input"
></IonInput>
</IonCol>
<IonCol size="3" class="send-msg">
<IonButton expand="block" color="primary" onClick={sendMessage} class="send-button">
Send
</IonButton>
</IonCol>
</IonRow>
</IonFooter>
</IonCard>
);
};

@ -1,4 +1,4 @@
import { IonCol, IonContent, IonGrid, IonRow } from '@ionic/react';
import { IonCol, IonGrid, IonRow, IonContent } from '@ionic/react';
import React, { useEffect, useState } from 'react';
import { currTime, db } from '../services/firebase';
import './Messages.css';

@ -111,6 +111,13 @@ const VideoPlayer: React.FC<VideoPlayerProps> = ({ ownerId, userId, roomId }) =>
onPause={onPause}
playing={playing}
muted={true}
config={{
youtube: {
playerVars: {
showinfo: 1, // Keeps mute/full screen controls at bottom for iOS
},
},
}}
></ReactPlayer>
);
};

Loading…
Cancel
Save