init commit,

This commit is contained in:
louiscklaw
2025-05-28 09:55:51 +08:00
commit efe70ceb69
8042 changed files with 951668 additions and 0 deletions

View File

@@ -0,0 +1,73 @@
import {
IonIcon,
IonItem,
IonItemOption,
IonItemOptions,
IonItemSliding,
IonNavLink,
IonText,
IonThumbnail,
} from '@ionic/react';
import { checkmarkDone } from 'ionicons/icons';
import ChatHelloworld from '../../pages/chat';
import { ContactStore } from '../../store';
import { getContacts } from '../../store/Selectors';
import HKPartyIonDeleteIcon from '../HKPartyIonDeleteIcon';
import './style.scss';
const ChatItem = ({ chat }) => {
const contacts = ContactStore.useState(getContacts);
const { chats, contact_id } = chat;
const { read, date, preview, received } = chats[chats.length - 1];
const contact = contacts.filter(c => c.id === contact_id)[0];
const notificationCount = chats.filter(chat => chat.read === false).length;
return (
<>
<IonItemSliding>
{/*
<IonItemOptions side="start">
<IonItemOption color="success">Archive</IonItemOption>
</IonItemOptions>
*/}
{/* */}
<IonNavLink routerDirection="forward" component={() => <ChatHelloworld />}>
<IonItem
className="chat-row"
// routerLink={`/tabs/messages/${contact.id}`}
lines="full"
detail={false}
>
<IonThumbnail slot="start" style={{ '--border-radius': '50%' }}>
<img alt="Silhouette of mountains" src="https://ionicframework.com/docs/img/demos/thumbnail.svg" />
</IonThumbnail>
<div className="chat-row-content">
<IonText>{contact.name}</IonText>
<IonText>{read && received && <IonIcon icon={checkmarkDone} color="primary" />}</IonText>
<IonText>{preview}</IonText>
</div>
<div slot="end">
<div>
<IonText>{date}</IonText>
<IonText>
{notificationCount > 0 && <IonText className="chat-notification">{notificationCount}</IonText>}
</IonText>
</div>
</div>
</IonItem>
</IonNavLink>
{/* */}
<IonItemOptions side="end">
<IonItemOption color="danger">
<HKPartyIonDeleteIcon size={'large'} />
</IonItemOption>
</IonItemOptions>
</IonItemSliding>
</>
);
};
export default ChatItem;