Path: blob/master/cloud/ai-service-apps/nextjs-carbon-react-ui/src/components/InitialMessage/InitialMessage.js
6408 views
// Modules -------------------------------------------------------------------->12import { useContext } from "react";3import PropTypes from "prop-types";4import cx from "classnames";5import Image from "next/image";6import { DeploymentContext } from "../../contexts/deployment-context";7import QuickChatButton from "../QuickChatButton/QuickChatButton";89// Globals -------------------------------------------------------------------->10const DEFAULT_DESCRIPTION = "You can chat with your gen AI solution.";1112// Component ------------------------------------------------------------------>1314function InitialMessage({ onQuestion }) {15const deployment = useContext(DeploymentContext);1617const promptButtons = deployment?.sample_questions || [];18const initialGreeting = `Welcome to ${deployment?.name || "watsonx Agent"}`; // TODO translate19const beforeStart = deployment?.description || DEFAULT_DESCRIPTION;20const imageUrl = `/${deployment?.placeholder_image}`;21const initialImageUrl = deployment?.placeholder_image ? imageUrl : null;2223const imageContainerClass = cx("initial-message__imageContainer", {24["customImage"]: Boolean(deployment),25});2627return (28<div className="initial-message">29<h2 className="initial-message__header">{initialGreeting}</h2>30<span className="initial-message__message">{beforeStart}</span>31<div className={imageContainerClass}>32{!initialImageUrl && <div className="initial-message__initialMessageImg" />}33{initialImageUrl && (34<Image35src={initialImageUrl}36alt="ALT TO REPLACE"37fill38style={{ objectFit: "cover" }}39className="relative"40sizes="(max-width: 768px)"41priority42/>43)}44</div>45{promptButtons.length > 0 && (46<>47<h2 className="initial-message__quickChatHeader">Quick start samples</h2>48<div className="initial-message__quickChat">49{promptButtons &&50promptButtons.map((promptText, idx) => (51<QuickChatButton52key={idx}53onClick={() => {54onQuestion(promptText);55}}56>57{promptText}58</QuickChatButton>59))}60</div>61</>62)}63</div>64);65}6667InitialMessage.propTypes = {68onQuestion: PropTypes.func.isRequired,69};7071// Public Methods ------------------------------------------------------------->7273export default InitialMessage;747576