"use client"; import type { UseChatHelpers } from "@ai-sdk/react"; import { motion } from "framer-motion"; import { memo } from "react"; import { suggestions } from "@/lib/constants"; import type { ChatMessage } from "@/lib/types"; import { Suggestion } from "../ai-elements/suggestion"; import type { VisibilityType } from "./visibility-selector"; type SuggestedActionsProps = { chatId: string; sendMessage: UseChatHelpers["sendMessage"]; selectedVisibilityType: VisibilityType; }; function PureSuggestedActions({ chatId, sendMessage }: SuggestedActionsProps) { const suggestedActions = suggestions; return (
{suggestedActions.map((suggestedAction, index) => ( { window.history.pushState( {}, "", `${process.env.NEXT_PUBLIC_BASE_PATH ?? ""}/chat/${chatId}` ); sendMessage({ role: "user", parts: [{ type: "text", text: suggestion }], }); }} suggestion={suggestedAction} > {suggestedAction} ))}
); } export const SuggestedActions = memo( PureSuggestedActions, (prevProps, nextProps) => { if (prevProps.chatId !== nextProps.chatId) { return false; } if (prevProps.selectedVisibilityType !== nextProps.selectedVisibilityType) { return false; } return true; } );