'use client'; import { motion } from 'framer-motion'; import { Button } from './ui/button'; import { memo } from 'react'; import type { UseChatHelpers } from '@ai-sdk/react'; import type { VisibilityType } from './visibility-selector'; import type { ChatMessage } from '@/lib/types'; interface SuggestedActionsProps { chatId: string; sendMessage: UseChatHelpers['sendMessage']; selectedVisibilityType: VisibilityType; } function PureSuggestedActions({ chatId, sendMessage, selectedVisibilityType, }: SuggestedActionsProps) { const suggestedActions = [ { title: 'What are the advantages', label: 'of using Next.js?', action: 'What are the advantages of using Next.js?', }, { title: 'Write code to', label: `demonstrate djikstra's algorithm`, action: `Write code to demonstrate djikstra's algorithm`, }, { title: 'Help me write an essay', label: `about silicon valley`, action: `Help me write an essay about silicon valley`, }, { title: 'What is the weather', label: 'in San Francisco?', action: 'What is the weather in San Francisco?', }, ]; return (
{suggestedActions.map((suggestedAction, index) => ( 1 ? 'hidden sm:block' : 'block'} > ))}
); } export const SuggestedActions = memo( PureSuggestedActions, (prevProps, nextProps) => { if (prevProps.chatId !== nextProps.chatId) return false; if (prevProps.selectedVisibilityType !== nextProps.selectedVisibilityType) return false; return true; }, );