import React, { useContext, useState, useEffect } from "react"; import { Collapse, Badge } from "@douyinfe/semi-ui"; import { SettingsContext, TableContext, TypeContext } from "../pages/Editor"; import { validateDiagram, arrayIsEqual } from "../utils"; export default function Issues() { const { settings } = useContext(SettingsContext); const { types } = useContext(TypeContext); const { tables, relationships } = useContext(TableContext); const [issues, setIssues] = useState([]); useEffect(() => { const findIssues = async () => { const newIssues = validateDiagram({ tables: tables, relationships: relationships, types: types, }); if (!arrayIsEqual(newIssues, issues)) { setIssues(newIssues); } }; findIssues(); }, [tables, relationships, issues, types]); return ( 0 ? "danger" : "primary"} count={settings.strictMode ? null : issues.length} overflowCount={99} className="mt-1" >
Issues
} itemKey="1" >
{settings.strictMode ? (
Strict mode is off so no issues will be displayed.
) : issues.length > 0 ? ( <> {issues.map((e, i) => (
{e}
))} ) : (
No issues were detected.
)}
); }