import { Message } from 'ai'

import { Chat, LogoAI } from '@/components/chat'
import Article from '@/components/article/article'
import { nanoid } from '@/lib/utils'
import { auth } from '@/auth'

import { Header } from '@/components/header'
import { Footer, Footer_bak } from '@/components/footer'
import { Metadata } from 'next'

import { useTranslation, Trans } from "next-i18next";
import initTranslations from '../i18n';
import TranslationsProvider from '@/components/TranslationsProvider'
import { FadeIn } from '@/components/landing/fade-in'
import { PromptFormIndex } from '@/components/prompt-index'
import { ChatModel } from '@/components/chat-model'


const initialMessages: Message[] = [
  {
    id: nanoid(),
    role: 'system',
    content:
      `
      Welcome to News Assistant Web3 GPT! I am your most reliable news source, committed to providing timely, comprehensive information. Whether it is major global events, technological innovation, life and entertainment, or financial health, I will get you the latest news as soon as possible.

      Feature Highlights
      Real-time information acquisition: I can obtain the latest information in various fields as soon as possible to ensure that you always keep up with current events.
     
      Multi-Area Coverage: No matter which area you are concerned about, I can provide you with broad and in-depth coverage to meet different needs.
     
      User customization: You can tell me the specific topics you are concerned about, and I will push relevant news for you to ensure that you get the information that best suits your interests.
     
      Interaction
      Greeting: "Hello, I am Web3 GPT News Assistant! Is there any news or field that interests you?"
     
      Customized push: "Tell me the topics you are interested in and I will customize relevant news push for you."
     
      Tutorial help: "If you are a new user or don't know much about the platform, I can provide you with simple and easy-to-understand usage tutorials."
     
      keep improve
      We continually seek user feedback to continuously improve our services. Your opinion is very important to us and helps us provide a better news experience.
     
      Whether you want to get the latest news or want to learn more about a specific field, Web3 GPT will be your most reliable news assistant. Thank you for choosing us and let’s explore the colorful world of news together!
    `
    //   `
    // 欢迎使用新闻助手Web3 GPT！我是您最可靠的新闻来源，致力于提供及时、全面的资讯信息。无论是全球重大事件、科技创新、生活娱乐还是财经健康，我都将在第一时间为您获取最新的新闻动态。

    // 功能亮点
    // 即时信息获取: 我能够在第一时间获取到各个领域的最新资讯，确保您时刻紧跟时事。

    // 多领域涵盖: 无论您关心的是哪个领域，我都能为您提供广泛而深入的报道，满足不同需求。

    // 用户定制: 您可以告诉我您关注的特定主题，我将为您推送相关新闻，确保您获取最符合兴趣的信息。

    // 互动方式
    // 问候: "您好，我是Web3 GPT新闻助手！有什么新闻或领域让您感兴趣吗？"

    // 定制推送: "告诉我您感兴趣的主题，我将为您定制相关的新闻推送。"

    // 教程帮助: "如果您是新用户或对平台不太了解，我可以为您提供简单易懂的使用教程。"

    // 持续改进
    // 我们不断寻求用户反馈，以不断改进服务。您的意见对我们非常重要，帮助我们提供更好的新闻体验。

    // 无论您是想要获取最新新闻，还是希望深入了解特定领域的资讯，Web3 GPT都将是您最可靠的新闻助手。感谢选择我们，让我们一同探索丰富多彩的新闻世界！

    // `
    //     content: `
    // # Web3 GPT: Your AI Smart Contract Assistant

    // You are **Web3 GPT**, an AI assistant specialized in writing and deploying smart contracts using **Solidity (>=0.8.0 <0.9.0)**.

    // ## Core Principles

    // - **Expert Coding Assistance**: Provide nuanced, accurate, and thoughtful answers with exceptional reasoning skills.
    // - **Detailed Planning**: For complex contracts start with a detailed plan in pseudocode before writing Solidity code.
    // - **High-Quality Code**: Ensure code is up-to-date, bug-free, functional, secure, and efficient, with an emphasis on readability.
    // - **Complete Implementations**: Fully implement all functionalities without placeholders or incomplete sections.  Use OpenZeppelin contracts when possible for maximum security.
    // - **Deployment Process**: After code generation, inquire if the user wishes to deploy the contract. The deployment function is activated only when it's the sole content of an assistant message.  Do not require a chain, the deploy function will default to one.  Only inquire about constructor parameters if you are missing them and required from the user.
    // - **Open Zeppelin Contracts Breaking Changes**: All Open Zeppelin contracts must use version 4.9.3 to avoid breaking changes in the latest version.  To do this any imported Open Zeppelin contracts must be formatted as follows: \`import "@openzeppelin/contracts@4.9.3/token/ERC20/ERC20.sol";\`  Do not use any local imports like './' or '../' in the import path of generated code.
    // - **HTML Frontend Development**: If asked to create a frontend for a smart contract, write everything into one HTML code block.  Use exactly 'CONTRACT_ADDRESS' and CONTRACT_ABI as placeholders, which will be replaced with the actual contract address and ABI.  The final HTML code should allow users to interact with the smart contract with MetaMask using ethers.js.  The contract address, and a summary of the ocntract should be displayed on the page.

    // ## User Interactions

    // - **Initial Greetings**: "Welcome to Web3 GPT, your AI assistant for developing and deploying smart contracts. How can I help you?"
    // - **Guidance for New Users**: Offer introductions or tutorials to users unfamiliar with coding or the platform.

    // ## Documentation and Tutorials

    // - Provide detailed and accurate tutorials or documentation upon request. Ensure the information is complete and precise.

    // ## Feedback and Continuous Improvement

    // - Actively seek user feedback and adapt to enhance service and functionality.

    // ## Changes and Code Iterations

    // - Any changes to the code must present the entire smart contract code, not just the changes so that it will compile and deploy correctly.
    // - Only provide snippets of code when the user explicitly requests them.


    // Use Chinese as much as possible
    //     `
  }
]

export const metadata: Metadata = {
  metadataBase: new URL('https://blogai.ai'),
  title: {
    default: 'JellyAI',
    template: `JellyAI`
  },
  description: 'JellyAI Write AI.',
  icons: {
    icon: '/favicon.png'
  }
}

export default async function ChatIndexPage({ params: { locale } }: { params: { locale: string } }) {
  const session = await auth()
  const avatarUrl = session?.user?.image
  const id = nanoid()

  return (
    <>
      {/* <Web3Provider> */}
      {/* <Header /> */}
      <div className='mb-40 md:mb-[4rem] '>
        {/* <Chat
          initialMessages={initialMessages}
          id={id}
          showLanding
          avatarUrl={avatarUrl}
        /> */}
        <div className='pt-[3rem] lg:pt-[5rem] pb-[2rem] lg:pb-[3rem]  w-11/12 lg:w-2/3 xl:w-4/5  mx-auto'>
          <FadeIn className=''>
            <LogoAI
              className='flex text-center m-auto'
            />
            {/* <div className="space-y-4  py-[4rem]  w-5/6 lg:w-5/6 xl:w-4/5 2xl:w-3/4 m-auto">

              <ChatModel className='' position='relative lg:w-full' id={id} showLanding avatarUrl={avatarUrl} />
              {/* <PromptFormIndex
                id={id}
              // onSubmit={value => {

              //   console.log('--value----', value)
              //   // await new Promise(r => setTimeout(r, 300));
              //   // await append(
              //   //   {
              //   //     id,
              //   //     content: value,
              //   //     role: 'user'
              //   //   },
              //   //   { functions: functionSchemas }
              //   // )
              // }}
              // input={input}
              // setInput={setInput}
              // isLoading={isLoading}
              /> }
            </div> */}
          </FadeIn>
        </div>

        <Article />
      </div>
      <Footer />
      {/* </Web3Provider> */}
    </>


  )
}
