<script lang="ts" setup>
import type { LocalMessage } from "~/types";

defineProps({
  message: {
    type: Object as PropType<LocalMessage>,
    default: null,
  },
  name: {
    type: String,
    default: "AI 智慧校园",
  },
  icon: {
    type: String,
    default: "tabler:robot-face",
  },
});
</script>

<template>
  <div v-if="message.role === 'user'" class="flex flex-col items-end gap-2">
    <div
      class="rounded-2xl rounded-br-none bg-primary-400 px-3 py-2 text-sm w-fit max-w-8/12 break-all text-justify text-white font-medium dark:bg-primary-500"
    >
      {{ message.message }}
    </div>
  </div>
  <div v-else-if="message.role === 'bot'" class="flex flex-col gap-2">
    <div class="flex gap-1.5 items-center">
      <div
        class="w-7 h-7 rounded-lg border border-neutral-200 bg-white shadow-sm flex justify-center items-center dark:bg-neutral-700 dark:border-neutral-600"
      >
        <UIcon :name="icon" />
      </div>
      <span class="text-sm font-medium">{{ name }}</span>
    </div>
    <div
      class="rounded-lg bg-white/50 p-2 text-sm dark:bg-neutral-800/50 break-all text-justify"
    >
      <div v-if="message.message" class="prose prose-sm">
        {{ message.message }}
      </div>
      <span v-else class="flex items-center gap-1.5">
        <UIcon name="svg-spinners:3-dots-scale" class="text-lg -mt-0.5" />
        <p class="text-xs">思考中</p>
      </span>
    </div>
  </div>
</template>

<style scoped></style>