shellphone.app/app/phone-calls/components/phone-calls-list.tsx

45 lines
1.5 KiB
TypeScript
Raw Normal View History

import { HiPhoneMissedCall, HiPhoneOutgoing } from "react-icons/hi";
2021-08-30 20:13:40 +00:00
import { Direction } from "../../../db";
import usePhoneCalls from "../hooks/use-phone-calls";
2021-08-30 20:13:40 +00:00
import { formatRelativeDate } from "../../core/helpers/date-formatter";
import clsx from "clsx";
2021-07-31 14:33:18 +00:00
export default function PhoneCallsList() {
2021-08-05 17:07:15 +00:00
const phoneCalls = usePhoneCalls()[0];
2021-07-31 14:33:18 +00:00
if (phoneCalls.length === 0) {
return <div>empty state</div>;
2021-07-31 14:33:18 +00:00
}
return (
<ul className="divide-y">
{phoneCalls.map((phoneCall) => {
2021-08-30 20:13:40 +00:00
const isOutboundCall = phoneCall.direction === Direction.Outbound;
const isMissedCall = !isOutboundCall && phoneCall.duration === "0"; // TODO
const recipient = isOutboundCall
? phoneCall.toMeta.formattedPhoneNumber
: phoneCall.fromMeta.formattedPhoneNumber;
2021-07-31 14:33:18 +00:00
return (
2021-08-30 20:13:40 +00:00
<li key={phoneCall.id} className="flex flex-row py-2 px-4 ml-12">
<div className="h-4 w-4 mt-1 -ml-12">
{isOutboundCall ? <HiPhoneOutgoing className="text-[#C4C4C6]" /> : null}
2021-08-30 20:13:40 +00:00
</div>
<div className="flex flex-col items-start justify-center ml-4">
<strong className={clsx(isMissedCall && "text-[#FF362A]")}>{recipient}</strong>
<span className="text-[#89898C] text-sm">
{isOutboundCall ? phoneCall.toMeta.country : phoneCall.fromMeta.country}
</span>
</div>
<span className="text-[#89898C] text-sm self-center ml-auto">
{formatRelativeDate(new Date(phoneCall.createdAt))}
</span>
2021-07-31 14:33:18 +00:00
</li>
);
2021-07-31 14:33:18 +00:00
})}
</ul>
);
2021-07-31 14:33:18 +00:00
}