export const PRESET_FONTS = [
  'sans-serif', 'serif', 'Tahoma', 'Arial', 'Verdana',
  // Windows
  'Microsoft YaHei', 'Microsoft JhengHei', 'SimHei', 'SimSun', 'FangSong',
  // Mac
  'Helvetica', 'PingFang SC', 'Hiragino Sans GB',
  // Linux
  'WenQuanYi Micro Hei',
]

// https://fonts.google.com/
export const NETWORK_FONTS = [
  'Changa One',
  'Imprima',
  'Inter',
  'Jacquard 24',
  'Jacquarda Bastarda 9 Charted',
  'Jersey 10 Charted',
  'Lato',
  'Liu Jian Mao Cao',
  'Long Cang',
  'Ma Shan Zheng',
  'Micro 5 Charted',
  'Montserrat',
  'Noto Sans',
  'Noto Sans HK',
  'Noto Sans JP',
  'Noto Sans KR',
  'Noto Sans SC',
  'Noto Sans TC',
  'Noto Serif',
  'Noto Serif HK',
  'Noto Serif JP',
  'Noto Serif KR',
  'Noto Serif SC',
  'Noto Serif TC',
  'Open Sans',
  'Oswald',
  'Platypi',
  'Poppins',
  'Roboto',
  'Roboto Condensed',
  'Sedan',
  'ZCOOL KuaiLe',
  'ZCOOL QingKe HuangYou',
  'ZCOOL XiaoWei',
  'Zhi Mang Xing',
]

let localFontsPromise = null

export async function getLocalFonts() {
  if (!localFontsPromise) {
    localFontsPromise = doGetLocalFonts()
  }
  return localFontsPromise
}

async function doGetLocalFonts() {
  try {
    return (await window.queryLocalFonts()).map(fontData => {
      // 理论上应该用family，但fullName可读性更好
      return fontData.fullName
    })
  } catch (e) {
    console.error(e)
    return []
  }
}
