fix: resolve TypeScript compilation errors in App.tsx and complete Mermaid test function

This commit is contained in:
francisco
2025-11-01 13:58:22 -03:00
parent 98b7c6ec69
commit dce247f4d6
+14 -14
View File
@@ -2,14 +2,14 @@ import React, { useState, useEffect, useRef } from 'react'
import { import {
Excalidraw, Excalidraw,
convertToExcalidrawElements, convertToExcalidrawElements,
CaptureUpdateAction, CaptureUpdateAction
ExcalidrawAPIRefValue,
ExcalidrawElement
} from '@excalidraw/excalidraw' } from '@excalidraw/excalidraw'
import '@excalidraw/excalidraw/index.css'
import { convertMermaidToExcalidraw, DEFAULT_MERMAID_CONFIG } from './utils/mermaidConverter' import { convertMermaidToExcalidraw, DEFAULT_MERMAID_CONFIG } from './utils/mermaidConverter'
// Type definitions // Type definitions
type ExcalidrawAPIRefValue = any;
type ExcalidrawElement = any;
interface ServerElement { interface ServerElement {
id: string; id: string;
type: string; type: string;
@@ -165,7 +165,7 @@ function App(): JSX.Element {
if (result.success && result.elements && result.elements.length > 0) { if (result.success && result.elements && result.elements.length > 0) {
const cleanedElements = result.elements.map(cleanElementForExcalidraw) const cleanedElements = result.elements.map(cleanElementForExcalidraw)
const convertedElements = convertToExcalidrawElements(cleanedElements, { regenerateIds: false }) const convertedElements = convertToExcalidrawElements(cleanedElements as any, { regenerateIds: false })
excalidrawAPI?.updateScene({ elements: convertedElements }) excalidrawAPI?.updateScene({ elements: convertedElements })
} }
} catch (error) { } catch (error) {
@@ -229,7 +229,7 @@ function App(): JSX.Element {
if (data.elements && data.elements.length > 0) { if (data.elements && data.elements.length > 0) {
const cleanedElements = data.elements.map(cleanElementForExcalidraw) const cleanedElements = data.elements.map(cleanElementForExcalidraw)
const validatedElements = validateAndFixBindings(cleanedElements) const validatedElements = validateAndFixBindings(cleanedElements)
const convertedElements = convertToExcalidrawElements(validatedElements) const convertedElements = convertToExcalidrawElements(validatedElements as any)
excalidrawAPI.updateScene({ excalidrawAPI.updateScene({
elements: convertedElements, elements: convertedElements,
captureUpdate: CaptureUpdateAction.NEVER captureUpdate: CaptureUpdateAction.NEVER
@@ -240,7 +240,7 @@ function App(): JSX.Element {
case 'element_created': case 'element_created':
if (data.element) { if (data.element) {
const cleanedNewElement = cleanElementForExcalidraw(data.element) const cleanedNewElement = cleanElementForExcalidraw(data.element)
const newElement = convertToExcalidrawElements([cleanedNewElement]) const newElement = convertToExcalidrawElements([cleanedNewElement] as any)
const updatedElementsAfterCreate = [...currentElements, ...newElement] const updatedElementsAfterCreate = [...currentElements, ...newElement]
excalidrawAPI.updateScene({ excalidrawAPI.updateScene({
elements: updatedElementsAfterCreate, elements: updatedElementsAfterCreate,
@@ -252,8 +252,8 @@ function App(): JSX.Element {
case 'element_updated': case 'element_updated':
if (data.element) { if (data.element) {
const cleanedUpdatedElement = cleanElementForExcalidraw(data.element) const cleanedUpdatedElement = cleanElementForExcalidraw(data.element)
const convertedUpdatedElement = convertToExcalidrawElements([cleanedUpdatedElement])[0] const convertedUpdatedElement = convertToExcalidrawElements([cleanedUpdatedElement] as any)[0]
const updatedElements = currentElements.map(el => const updatedElements = currentElements.map((el: any) =>
el.id === data.element!.id ? convertedUpdatedElement : el el.id === data.element!.id ? convertedUpdatedElement : el
) )
excalidrawAPI.updateScene({ excalidrawAPI.updateScene({
@@ -265,7 +265,7 @@ function App(): JSX.Element {
case 'element_deleted': case 'element_deleted':
if (data.elementId) { if (data.elementId) {
const filteredElements = currentElements.filter(el => el.id !== data.elementId) const filteredElements = currentElements.filter((el: any) => el.id !== data.elementId)
excalidrawAPI.updateScene({ excalidrawAPI.updateScene({
elements: filteredElements, elements: filteredElements,
captureUpdate: CaptureUpdateAction.NEVER captureUpdate: CaptureUpdateAction.NEVER
@@ -276,7 +276,7 @@ function App(): JSX.Element {
case 'elements_batch_created': case 'elements_batch_created':
if (data.elements) { if (data.elements) {
const cleanedBatchElements = data.elements.map(cleanElementForExcalidraw) const cleanedBatchElements = data.elements.map(cleanElementForExcalidraw)
const batchElements = convertToExcalidrawElements(cleanedBatchElements) const batchElements = convertToExcalidrawElements(cleanedBatchElements as any)
const updatedElementsAfterBatch = [...currentElements, ...batchElements] const updatedElementsAfterBatch = [...currentElements, ...batchElements]
excalidrawAPI.updateScene({ excalidrawAPI.updateScene({
elements: updatedElementsAfterBatch, elements: updatedElementsAfterBatch,
@@ -333,8 +333,8 @@ function App(): JSX.Element {
const currentElements = excalidrawAPI.getSceneElements() const currentElements = excalidrawAPI.getSceneElements()
console.log(`Syncing ${currentElements.length} elements to backend`) console.log(`Syncing ${currentElements.length} elements to backend`)
// 2. Filter out deleted elements // Filter out deleted elements
const activeElements = currentElements.filter(el => !el.isDeleted) const activeElements = currentElements.filter((el: any) => !el.isDeleted)
// 3. Convert to backend format // 3. Convert to backend format
const backendElements = activeElements.map(convertToBackendFormat) const backendElements = activeElements.map(convertToBackendFormat)
@@ -419,7 +419,7 @@ function App(): JSX.Element {
} }
if (result.elements && result.elements.length > 0) { if (result.elements && result.elements.length > 0) {
const convertedElements = convertToExcalidrawElements(result.elements, { regenerateIds: false }) const convertedElements = convertToExcalidrawElements(result.elements as any, { regenerateIds: false })
excalidrawAPI.updateScene({ excalidrawAPI.updateScene({
elements: convertedElements, elements: convertedElements,
captureUpdate: CaptureUpdateAction.IMMEDIATELY captureUpdate: CaptureUpdateAction.IMMEDIATELY