import { WINDOW_LIST } from '@/enums/cacheEnum'
import { useStorage } from '@vueuse/core'

interface WindowItem {
  // 根据您的需求定义对象属性
  id: string
  value: string
  // 其他属性...
}

export function useWindows(initialValue?: WindowItem[]) {
  // 使用泛型来指定数组中的对象类型
  const windowList = useStorage<WindowItem[]>(WINDOW_LIST, initialValue || [])

  // 添加新窗口到列表
  function addWindow(current: WindowItem) {
    windowList.value = windowList.value.filter(item => item.id === current.id)
    windowList.value.push(current)
  }

  // 获取列表中的特定窗口
  function getWindow(id: string) {
    return windowList.value.filter(item => item.id === id)
  }

  // 设置列表中的特定窗口
  function setWindow(id: string, newItem: WindowItem) {
    const index = windowList.value.findIndex(item => item.id === id)
    if (index !== -1) {
      windowList.value[index] = newItem
    }
  }

  // 添加新窗口到列表
  function closeWindow(id: string) {
    const windows = getWindow(id)
    windows.map(item => {
      const { value } = item
      console.log(value)
      //   const window = JSON.parse(value)
      //   window.close()
      return item
    })
  }

  return { windowList, addWindow, getWindow, setWindow, closeWindow }
}
