🚀 Auto-deploy: BrainWind atualizado em 01/09/2026 16:55:27

This commit is contained in:
2026-09-01 16:55:27 +00:00
parent f66ae1a3aa
commit 3219011b33
16 changed files with 82 additions and 32 deletions
+14 -13
View File
@@ -22,6 +22,7 @@ import { SaveModuleDialog } from '@/components/SaveModuleDialog';
import { exportGenericToPDF, type GenericPDFSection } from '../lib/export-generic-pdf';
import { Eye, Box, Layers, ArrowUpRight, CheckCircle2, Wind, AlertTriangle } from 'lucide-react';
import { cn } from '@/lib/utils';
import { usePersistentState } from '@/hooks/usePersistentState';
const conditionLabels: Record<ShelterCondition, string> = {
cond1: '1. Estanque 3 lados (Fundo + Lados)',
@@ -32,19 +33,19 @@ const conditionLabels: Record<ShelterCondition, string> = {
const ShelterModule: React.FC = () => {
const { q } = useWindStore();
const [condition, setCondition] = useState<ShelterCondition>('cond1');
const [windAngle, setWindAngle] = useState<ShelterWindAngle>(0);
const [depth, setDepth] = useState(6);
const [width, setWidth] = useState(10);
const [height, setHeight] = useState(4.8);
const [theta, setTheta] = useState(5);
const [numColumns, setNumColumns] = useState(2);
const [backClosure, setBackClosure] = useState(75);
const [backRange, setBackRange] = useState<[number, number]>([0, 75]);
const [leftClosure, setLeftClosure] = useState(100);
const [rightClosure, setRightClosure] = useState(100);
const [surfaceMass, setSurfaceMass] = useState(15); // kg/m² para lona/telha leve
const [viewMode, setViewMode] = useState<'3d' | 'elevation' | 'airflow'>('3d');
const [condition, setCondition] = usePersistentState<ShelterCondition>('ShelterModule_condition', 'cond1');
const [windAngle, setWindAngle] = usePersistentState<ShelterWindAngle>('ShelterModule_windAngle', 0);
const [depth, setDepth] = usePersistentState('ShelterModule_depth', 6);
const [width, setWidth] = usePersistentState('ShelterModule_width', 10);
const [height, setHeight] = usePersistentState('ShelterModule_height', 4.8);
const [theta, setTheta] = usePersistentState('ShelterModule_theta', 5);
const [numColumns, setNumColumns] = usePersistentState('ShelterModule_numColumns', 2);
const [backClosure, setBackClosure] = usePersistentState('ShelterModule_backClosure', 75);
const [backRange, setBackRange] = usePersistentState<[number, number]>('ShelterModule_backRange', [0, 75]);
const [leftClosure, setLeftClosure] = usePersistentState('ShelterModule_leftClosure', 100);
const [rightClosure, setRightClosure] = usePersistentState('ShelterModule_rightClosure', 100);
const [surfaceMass, setSurfaceMass] = usePersistentState('ShelterModule_surfaceMass', 15); // kg/m² para lona/telha leve
const [viewMode, setViewMode] = usePersistentState<'3d' | 'elevation' | 'airflow'>('ShelterModule_viewMode', '3d');
const pendingLoad = useHydrationStore((s) => s.pendingLoad);
const clearPendingLoad = useHydrationStore((s) => s.clearPendingLoad);