Skip to content

Commit

Permalink
Weather Table added
Browse files Browse the repository at this point in the history
  • Loading branch information
amit-s19 committed Jan 11, 2024
1 parent db77498 commit 3ebcf5e
Show file tree
Hide file tree
Showing 6 changed files with 155 additions and 26 deletions.
8 changes: 6 additions & 2 deletions apps/amakrushi/src/components/NavBar/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import { useFlags } from 'flagsmith/react';
import { useLocalization } from '../../hooks';
import toast from 'react-hot-toast';
import { Sidemenu } from '../Sidemenu';
import { recordUserLocation } from '../../utils/location';

function NavBar() {
const flags = useFlags(['show_download_button', 'show_share_button']);
Expand All @@ -40,10 +41,13 @@ function NavBar() {
toast.error(`${t('error.wait_new_chat')}`);
return;
}

recordUserLocation();

const newConversationId = uuidv4();
sessionStorage.setItem('conversationId', newConversationId);
if(context?.audioElement) context?.audioElement.pause();
if(context?.setAudioPlaying) context?.setAudioPlaying(false);
if (context?.audioElement) context?.audioElement.pause();
if (context?.setAudioPlaying) context?.setAudioPlaying(false);
context?.setConversationId(newConversationId);
context?.setMessages([]);
context?.setIsMsgReceiving(false);
Expand Down
34 changes: 18 additions & 16 deletions apps/amakrushi/src/components/chat-item/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import shareIcon from '../../assets/icons/shareHistory.svg';
import downloadIcon from '../../assets/icons/downloadHistory.svg';
import { useFlags } from 'flagsmith/react';
import { formatDate } from '../../utils/formatDate';
import { recordUserLocation } from '../../utils/location';

const ChatItem: React.FC<ChatItemPropsType> = ({
name,
Expand Down Expand Up @@ -49,6 +50,7 @@ const ChatItem: React.FC<ChatItemPropsType> = ({
.then((res) => {
console.log('deleting conversation');
if (conversationId === sessionStorage.getItem('conversationId')) {
recordUserLocation();
const newConversationId = uuidv4();
sessionStorage.setItem('conversationId', newConversationId);
context?.setConversationId(newConversationId);
Expand All @@ -70,19 +72,19 @@ const ChatItem: React.FC<ChatItemPropsType> = ({
<>
{!isConversationDeleted && (
<div className={styles.chatContainer}>
<div style={{display: 'flex', flexDirection: 'column', flex: 1}} onClick={handleChatPage}>
<div className={styles.sessionContainer} >
<div className={styles.messageIconContainer}>
<Image src={messageIcon} alt="messageIcon" />
<div style={{ display: 'flex', flexDirection: 'column', flex: 1 }} onClick={handleChatPage}>
<div className={styles.sessionContainer} >
<div className={styles.messageIconContainer}>
<Image src={messageIcon} alt="messageIcon" />
</div>
<div className={styles.name}>{name}</div>
</div>
<div style={{ fontSize: '11px' }}>
{formatDate(date)}
</div>
<div className={styles.name}>{name}</div>
</div>
<div style={{fontSize: '11px'}}>
{formatDate(date)}
</div>
</div>
<div style={{display: 'flex', alignItems: 'center', justifyContent: 'center'}}>
{/* {flags?.show_share_button?.enabled && (
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'center' }}>
{/* {flags?.show_share_button?.enabled && (
<div
className={styles.iconContainer}
onClick={() => downloadShareHandler('share', conversationId)}>
Expand All @@ -100,11 +102,11 @@ const ChatItem: React.FC<ChatItemPropsType> = ({
/>
</div>
)} */}
<div
onClick={deleteConversation}
className={styles.deleteIconContainer}>
<Image src={deleteIcon} alt="deleteIcon" layout="responsive" />
</div>
<div
onClick={deleteConversation}
className={styles.deleteIconContainer}>
<Image src={deleteIcon} alt="deleteIcon" layout="responsive" />
</div>
</div>
</div>
)}
Expand Down
63 changes: 62 additions & 1 deletion apps/amakrushi/src/components/chat-message-item/index.module.css
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@
padding: 2px 8px;
}

.msgSpeaker{
.msgSpeaker {
display: flex;
align-items: center;
justify-content: space-evenly;
Expand All @@ -123,3 +123,64 @@
margin-left: auto;
margin-right: 3rem;
}

.tableContainer {
position: relative;
display: flex;
flex-direction: row;
max-width: 90vw;
background: #fff;
padding: 0.5rem;
border-radius: 0.5rem;
box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;

}

.tableHeader {
display: flex;
flex-direction: column;
margin: 0.5rem;
gap: 0.5rem;
white-space: nowrap;
color: var(--secondarygreen);
font-weight: bold;
}

.tableData {
display: flex;
flex-direction: row;
overflow-x: scroll;
}

/* .tableData::-webkit-scrollbar {
display: none;
} */

/* width */
.tableData::-webkit-scrollbar {
height: 7px;
}

/* Track */
.tableData::-webkit-scrollbar-track {
background: #f1f1f1;
}

/* Handle */
.tableData::-webkit-scrollbar-thumb {
background: var(--secondarygreen);
}

.tableDataCol {
display: flex;
flex-direction: column;
align-items: center;
white-space: nowrap;
padding: 0rem 1rem;
margin: 0.5rem 0rem;
gap: 0.5rem;
}

.tableDataCol:nth-child(odd) {
background: #F2F2F2;
}
46 changes: 42 additions & 4 deletions apps/amakrushi/src/components/chat-message-item/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ import Image from 'next/image';
import { Button } from '@chakra-ui/react';
import flagsmith from 'flagsmith/isomorphic';
import Loader from '../loader';
import { Paper, Table, TableBody, TableCell, TableContainer, TableHead, TableRow } from '@material-ui/core';

const getToastMessage = (t: any, reaction: number): string => {
if (reaction === 1) return t('toast.reaction_like');
Expand Down Expand Up @@ -233,7 +234,7 @@ const ChatMessageItem: FC<ChatMessageItemPropType> = ({
}}>
{getFormatedTime(
content?.data?.sentTimestamp ||
content?.data?.repliedTimestamp
content?.data?.repliedTimestamp
)}
</span>
</div>
Expand Down Expand Up @@ -335,7 +336,7 @@ const ChatMessageItem: FC<ChatMessageItemPropType> = ({
<span style={{ color: 'var(--font)', fontSize: '10px' }}>
{getFormatedTime(
content?.data?.sentTimestamp ||
content?.data?.repliedTimestamp
content?.data?.repliedTimestamp
)}
</span>
</div>
Expand Down Expand Up @@ -369,7 +370,7 @@ const ChatMessageItem: FC<ChatMessageItemPropType> = ({
<span style={{ color: 'var(--font)', fontSize: '10px' }}>
{getFormatedTime(
content?.data?.sentTimestamp ||
content?.data?.repliedTimestamp
content?.data?.repliedTimestamp
)}
</span>
</div>
Expand Down Expand Up @@ -407,7 +408,7 @@ const ChatMessageItem: FC<ChatMessageItemPropType> = ({
<span style={{ color: 'var(--font)', fontSize: '10px' }}>
{getFormatedTime(
content?.data?.sentTimestamp ||
content?.data?.repliedTimestamp
content?.data?.repliedTimestamp
)}
</span>
</div>
Expand Down Expand Up @@ -438,6 +439,43 @@ const ChatMessageItem: FC<ChatMessageItemPropType> = ({
</>
);
}

case 'table': {

return (
<>
<div className={styles.tableContainer}>
<div className={styles.tableHeader}>
<div><b>Date</b></div>
<div>Temp Max</div>
<div>Temp Min</div>
<div>Temp</div>
<div>Humidity</div>
<div>Precip</div>
<div>Precip Prob</div>
<div>Windspeed</div>
<div>Cloudcover</div>
<div>Conditions</div>
</div>
<div className={styles.tableData}>
{JSON.parse(content?.text)?.map((el: any, idx: any) => <div className={styles.tableDataCol}>
<div><b> {el.datetime}</b></div>
<div>{el.tempmax}</div>
<div>{el.tempmin}</div>
<div>{el.temp}</div>
<div>{el.humidity}</div>
<div>{el.precip}</div>
<div>{el.precipprob}</div>
<div>{el.windspeed}</div>
<div>{el.cloudcover}</div>
<div>{el.conditions}</div>
</div>)}
</div>

</div>
</>
)
}
default:
return (
<ScrollView
Expand Down
18 changes: 15 additions & 3 deletions apps/amakrushi/src/utils/getMsgType.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
export const getMsgType = (msg: any): string => {
if (isJsonString(msg?.text)) {
if (Array.isArray(JSON.parse(msg?.text))) return 'table';
}
if (msg?.payload?.buttonChoices?.length || msg?.choices?.length) return 'options';
if (msg?.imageUrl) return 'image';
if (msg?.videoUrl) return 'video';
Expand All @@ -22,7 +25,16 @@ export const getMsgType = (msg: any): string => {
return 'text';
}
}
if(msg?.payload?.type==="loading")
return 'loader'
if (msg?.payload?.type === "loading")
return 'loader'
return 'text';
};
};

function isJsonString(str: string) {
try {
JSON.parse(str);
} catch (e) {
return false;
}
return true;
}
12 changes: 12 additions & 0 deletions apps/amakrushi/src/utils/location.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@

export function recordUserLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(saveUserLocation);
}
}

function saveUserLocation(position: any) {
sessionStorage.setItem('userLat', position.coords.latitude);
sessionStorage.setItem('userLong', position.coords.longitude);
}

0 comments on commit 3ebcf5e

Please sign in to comment.