Commit Graph
4 Commits
Author SHA1 Message Date
minsung 96c6b780ce fix: drop StrictMode to stop double-mounting Viewer2D
Viewer2D (ported unchanged) has no dispose/teardown API — it attaches
permanent window listeners and starts its own rAF render loop in the
constructor. React StrictMode's dev-only mount→unmount→remount cycle
was constructing it twice into the same container with no way to tear
the first instance down, leaving two overlapping canvases and broken
rendering (load reported success but nothing appeared on screen).
Also defensively clear the container's children before construction
so a future remount (e.g. Fast Refresh) can't repeat this.

Refs #1
2026-10-12 17:53:33 +09:00
minsung c7a782f19c fix: use HM Label instead of bare <label> for switch fields
ai-generation-guard.mjs flagged REUSE-004 on 5 native <label>
wrappers around Switch controls in Toolbar/OptionsPanel; swapped to
@hm-design/ui's Label per AGENTS.md field-label rule. Remaining guard
findings (hidden file input, dynamic panel geometry, per-entity CAD
layer color) are documented exceptions with no matching HM component.

Refs #1
2026-10-12 17:46:07 +09:00
minsung b114581c07 feat: React19+HMDesign shell with ported DWG/DXF viewer engine
Scaffolds the new app (Vite+React19+Tailwind v4) on HMDesign via git
submodule + npm workspace, ports src/viewer2d/* and optionsStore.ts
unchanged, and rebuilds the vanilla UI (toolbar/layers/properties/
options panels, coord readout, license dialog, load progress) as HM
Design System components. Panel drag/collapse ported from
panelUtils.ts as a React hook; Measure UI intentionally left
unwired per original app parity.

Typecheck and dev-server module serving verified; in-browser
rendering not yet verified in this session (no browser tool
available) — needs manual check.

Refs #1
2026-10-12 17:42:58 +09:00
kimminsung 1fd0b00df3 Initial commit 2026-10-12 16:59:42 +09:00