49 lines
1.3 KiB
TypeScript
49 lines
1.3 KiB
TypeScript
|
import { Database, Message } from "types";
|
||
|
import WithStyleSheet from "components/WithStyleSheet.tsx";
|
||
|
import { page_style } from "style";
|
||
|
import RenderMsg from "components/RenderMsg.tsx";
|
||
|
|
||
|
export default function ConversationLink({
|
||
|
conv,
|
||
|
db,
|
||
|
interactive,
|
||
|
}: {
|
||
|
conv: string;
|
||
|
db: Database;
|
||
|
interactive: boolean;
|
||
|
}) {
|
||
|
const conv_ = db.conversations[conv];
|
||
|
if (!conv_) return <></>;
|
||
|
|
||
|
const name: Message = {
|
||
|
content: conv_.name,
|
||
|
preset: "page",
|
||
|
};
|
||
|
const description: Message = {
|
||
|
content: conv_.description,
|
||
|
preset: "page",
|
||
|
};
|
||
|
|
||
|
return (
|
||
|
<>
|
||
|
<WithStyleSheet href="/ConversationLink.css" />
|
||
|
<div className="conversation-link" style={page_style(conv_)}>
|
||
|
<a href={`/${conv}${interactive ? "/i" : ""}`}>
|
||
|
<RenderMsg
|
||
|
conversation={conv_}
|
||
|
db={db}
|
||
|
msg={name}
|
||
|
additional_style={{ fontWeight: "bold" }}
|
||
|
/>
|
||
|
<RenderMsg
|
||
|
additional_style={{ fontWeight: "normal" }}
|
||
|
conversation={conv_}
|
||
|
db={db}
|
||
|
msg={description}
|
||
|
/>
|
||
|
</a>
|
||
|
</div>
|
||
|
</>
|
||
|
);
|
||
|
}
|