import { useEffect, useState } from 'react'; import clsx from 'clsx'; import { useSearchParams } from 'react-router-dom'; import { Row, Col, Card } from 'antd'; import { InboxOutlined } from '@ant-design/icons'; import { os, invoke } from '@tauri-apps/api'; import useInit from '@/hooks/useInit'; import useJson from '@/hooks/useJson'; import { CHAT_AWESOME_JSON, CHAT_CONF_JSON, readJSON } from '@/utils'; import './index.scss'; export default function Dashboard() { const [params] = useSearchParams(); const { json } = useJson[]>(CHAT_AWESOME_JSON); const [list, setList] = useState[]]>>(); const [hasClass, setClass] = useState(false); const [theme, setTheme] = useState(''); useInit(async () => { const getOS = await os.platform(); const conf = await readJSON(CHAT_CONF_JSON); const appTheme = await invoke('get_theme'); setTheme(appTheme as string); setClass(!conf?.titlebar && getOS === 'darwin'); }); useEffect(() => { if (!json) return; const categories = new Map(); if (Array.isArray(json)) { json?.forEach((i) => { if (!i.enable) return; if (!categories.has(i.category)) { categories.set(i.category, []); } categories.get(i?.category).push(i); }); setList(Array.from(categories) || []); } else { setList([]); } }, [JSON.stringify(json)]); const handleLink = async (item: Record) => { await invoke('wa_window', { label: btoa(item.url).replace(/[^a-zA-Z0-9]/g, ''), title: item.title, url: item.url, }); }; if (!list) return null; if (list?.length === 0) { return (

No data
Go to invoke('control_window')}>{'Control Center -> Awesome'} to add data and make sure they are enabled.
); } return (
{list.map((i) => { return (
{i[1].map((j, idx) => { return ( handleLink(j)}> {j?.title} ); })}
); })}
); }