[refactor] Consolidate reroute handlers (#5379)

- Replace handleRerouteAdd + handleRerouteUpdate with single handleRerouteUpsert
- Both operations performed identical logic (full layout replacement)
- Remove redundant parameter passing (rerouteIdStr + rerouteId)
- Remove 'export type { LayoutStore } from types' pattern that obscures dependencies
This commit is contained in:
Christian Byrne
2025-09-06 00:36:51 -07:00
committed by snomiao
parent 145bb86d72
commit f144be898b

View File

@@ -1178,31 +1178,25 @@ class LayoutStoreImpl implements LayoutStore {
const rerouteId = Number(rerouteIdStr) as RerouteId
if (change.action === 'delete') {
this.handleRerouteDelete(rerouteId, rerouteIdStr)
} else if (change.action === 'update' || change.action === 'add') {
this.handleRerouteAddOrUpdate(rerouteId, rerouteIdStr)
this.handleRerouteDelete(rerouteId)
} else {
this.handleRerouteUpsert(rerouteId)
}
}
/**
* Handle reroute deletion
*/
private handleRerouteDelete(
rerouteId: RerouteId,
rerouteIdStr: string
): void {
private handleRerouteDelete(rerouteId: RerouteId): void {
this.rerouteLayouts.delete(rerouteId)
this.rerouteSpatialIndex.remove(rerouteIdStr)
this.rerouteSpatialIndex.remove(String(rerouteId))
}
/**
* Handle reroute add or update
* Handle reroute upsert (update if exists, create if not)
*/
private handleRerouteAddOrUpdate(
rerouteId: RerouteId,
rerouteIdStr: string
): void {
const rerouteData = this.yreroutes.get(rerouteIdStr)
private handleRerouteUpsert(rerouteId: RerouteId): void {
const rerouteData = this.yreroutes.get(String(rerouteId))
if (!rerouteData) return
const position = rerouteData.get('position') as Point
@@ -1351,6 +1345,3 @@ class LayoutStoreImpl implements LayoutStore {
// Create singleton instance
export const layoutStore = new LayoutStoreImpl()
// Export types for convenience
export type { LayoutStore } from '@/renderer/core/layout/types'