import { Component, OnInit } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonHeader, IonToolbar, IonTitle, IonContent, IonButton, IonTextarea, IonInput, IonBackButton, IonButtons, IonCardContent, IonCardTitle, IonCardHeader, IonCard, IonCol, IonRow, IonLabel, IonGrid } from '@ionic/angular/standalone';
import { FmodeChatCompletion, MarkdownPreviewModule } from 'fmode-ng';

@Component({
  selector: 'app-world-setup',
  templateUrl: './world-setup.page.html',
  styleUrls: ['./world-setup.page.scss'],
  standalone: true,
  imports: [
    CommonModule, // 确保 CommonModule 已经导入
    FormsModule,
    IonHeader, IonToolbar, IonTitle, IonContent, IonButton, IonTextarea, IonInput, IonBackButton, IonButtons,
    IonCardContent, IonCardTitle, IonCardHeader, IonCard, IonCol, IonRow, IonLabel, IonGrid,
    // 引入fm-markdown-preview组件模块
    MarkdownPreviewModule
  ],
})
export class WorldSetupPage implements OnInit {

  constructor() { }
  ngOnInit() { }
  novelBackground: string = '在一个神秘的星球上，有许多不同的种族，他们都有着自己独特的文化和历史。';
  responseMsg: string = '';



  backgroundInput(event: any) {
    this.novelBackground = event.target.value;
  }

  // 用户输入提示词
  userPrompt: string = "我希望这个世界有强大的魔法体系，主角从一个普通少年成长为一代宗师。";
  promptInput(ev: any) {
    this.userPrompt = ev.detail.value;
  }





  // 方法：实例化completion对象，传入消息数组，并订阅生成的可观察对象。
  isComplete: boolean = false; // 定义完成状态属性，用来标记是否补全完成
  sendMessage() {
    console.log("create");

    let PromptTemplate = `
  您作为一名专业的小说作者，请您根据以下信息生成一个详细的世界架构设定：
  
  小说背景：${this.novelBackground}
  用户期望：${this.userPrompt}
  
  请确保生成的世界架构与上述信息紧密相关，并且符合小说的整体风格。
`;

    let completion = new FmodeChatCompletion([
      { role: "system", content: "" },
      { role: "user", content: PromptTemplate }
    ]);
    completion.sendCompletion().subscribe((message: any) => {
      // 打印消息体
      console.log(message.content);
      // 赋值消息内容给组件内属性
      this.responseMsg = message.content;
      if (message?.complete) { // 判断message为完成状态，则设置isComplete为完成
        this.isComplete = true;
      }
    });
  }

  // 复制到剪贴板
  copyToClipboard() {
    const textarea = document.createElement('textarea');
    textarea.value = this.responseMsg;
    document.body.appendChild(textarea);
    textarea.select();
    document.execCommand('copy');
    document.body.removeChild(textarea);
    alert('内容已复制到剪贴板');
  }
}
