feat(parcel-sync): sync button on empty Harta tab + intravilan in base sync

Map tab: when UAT has no local data, shows a "Sincronizează terenuri,
clădiri și intravilan" button that triggers background base sync.

Sync background (base mode): now also syncs LIMITE_INTRAV_DYNAMIC layer
(intravilan boundaries) alongside TERENURI_ACTIVE + CLADIRI_ACTIVE.
Non-critical — if intravilan fails, the rest continues.

Also fixed remaining \u2192 unicode escapes in export/layers/epay tabs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
AI Assistant
2026-03-24 18:04:09 +02:00
parent b1fc7c84a7
commit 3da45a4cab
6 changed files with 101 additions and 11 deletions
@@ -1189,7 +1189,7 @@ export function ExportTab({
Sync fundal Bază
</div>
<div className="text-[10px] opacity-60 font-normal">
Terenuri + clădiri \u2192 salvează în DB
Terenuri + clădiri salvează în DB
</div>
</div>
</Button>
@@ -1215,7 +1215,7 @@ export function ExportTab({
Sync fundal Magic
</div>
<div className="text-[10px] opacity-60 font-normal">
Sync + îmbogățire \u2192 salvează în DB
Sync + îmbogățire salvează în DB
</div>
</div>
</Button>
@@ -1311,7 +1311,7 @@ export function ExportTab({
<div className="flex items-center gap-2 flex-wrap text-xs text-muted-foreground">
{bgPhaseTrail.map((p, i) => (
<span key={i} className="flex items-center gap-1">
{i > 0 && <span className="opacity-40">\u2192</span>}
{i > 0 && <span className="opacity-40"></span>}
<span
className={cn(
i === bgPhaseTrail.length - 1
@@ -1436,7 +1436,7 @@ export function ExportTab({
<div className="flex items-center gap-2 flex-wrap text-xs text-muted-foreground">
{phaseTrail.map((p, i) => (
<span key={i} className="flex items-center gap-1">
{i > 0 && <span className="opacity-40">\u2192</span>}
{i > 0 && <span className="opacity-40"></span>}
<span
className={cn(
i === phaseTrail.length - 1