🚀 Auto-deploy: BrainWind atualizado em 01/09/2026 17:01:56
This commit is contained in:
@@ -1,4 +1,3 @@
|
|||||||
import { useState, useEffect } from 'react';
|
|
||||||
import { create } from 'zustand';
|
import { create } from 'zustand';
|
||||||
|
|
||||||
interface PersistentStore {
|
interface PersistentStore {
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ import { WindParametersSummary } from '@/components/WindParametersSummary';
|
|||||||
import { EducationalManual } from '@/components/EducationalManual';
|
import { EducationalManual } from '@/components/EducationalManual';
|
||||||
import { SaveModuleDialog } from '@/components/SaveModuleDialog';
|
import { SaveModuleDialog } from '@/components/SaveModuleDialog';
|
||||||
import { exportGenericToPDF, type GenericPDFSection } from '../lib/export-generic-pdf';
|
import { exportGenericToPDF, type GenericPDFSection } from '../lib/export-generic-pdf';
|
||||||
import { usePersistentState } from '@/hooks/usePersistentState';
|
|
||||||
|
|
||||||
const BarSelectorModule: React.FC = () => {
|
const BarSelectorModule: React.FC = () => {
|
||||||
const { vk, q } = useWindStore();
|
const { vk, q } = useWindStore();
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ import ExportMenu from '../components/ExportMenu';
|
|||||||
import { EducationalManual } from '@/components/EducationalManual';
|
import { EducationalManual } from '@/components/EducationalManual';
|
||||||
import { WindParametersSummary } from '@/components/WindParametersSummary';
|
import { WindParametersSummary } from '@/components/WindParametersSummary';
|
||||||
import { exportGenericToPDF, type GenericPDFSection } from '../lib/export-generic-pdf';
|
import { exportGenericToPDF, type GenericPDFSection } from '../lib/export-generic-pdf';
|
||||||
import { usePersistentState } from '@/hooks/usePersistentState';
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { useState } from 'react';
|
import { usePersistentState } from '@/hooks/usePersistentState';
|
||||||
import { getDragCoefficient } from '@/lib/drag';
|
import { getDragCoefficient } from '@/lib/drag';
|
||||||
import { DragCoefficientChart } from '@/components/DragCoefficientChart';
|
import { DragCoefficientChart } from '@/components/DragCoefficientChart';
|
||||||
import { ResizableBox3D } from '@/components/three/ResizableBox3D';
|
import { ResizableBox3D } from '@/components/three/ResizableBox3D';
|
||||||
@@ -9,7 +9,6 @@ import { EducationalManual } from '@/components/EducationalManual';
|
|||||||
import { Wind, Box } from 'lucide-react';
|
import { Wind, Box } from 'lucide-react';
|
||||||
import { Slider } from '@/components/ui/slider';
|
import { Slider } from '@/components/ui/slider';
|
||||||
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';
|
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';
|
||||||
import { usePersistentState } from '@/hooks/usePersistentState';
|
|
||||||
|
|
||||||
export default function CalcCaModule() {
|
export default function CalcCaModule() {
|
||||||
const [l1, setL1] = usePersistentState<number>('CalcCaModule_l1', 20);
|
const [l1, setL1] = usePersistentState<number>('CalcCaModule_l1', 20);
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ import { PressureLegend } from '@/components/PressureLegend';
|
|||||||
import { WindParametersSummary } from '@/components/WindParametersSummary';
|
import { WindParametersSummary } from '@/components/WindParametersSummary';
|
||||||
import { SaveModuleDialog } from '@/components/SaveModuleDialog';
|
import { SaveModuleDialog } from '@/components/SaveModuleDialog';
|
||||||
import { exportGenericToPDF, type GenericPDFSection } from '../lib/export-generic-pdf';
|
import { exportGenericToPDF, type GenericPDFSection } from '../lib/export-generic-pdf';
|
||||||
import { usePersistentState } from '@/hooks/usePersistentState';
|
|
||||||
|
|
||||||
const CylinderModule: React.FC = () => {
|
const CylinderModule: React.FC = () => {
|
||||||
const { vk, cpi: globalCpi } = useWindStore();
|
const { vk, cpi: globalCpi } = useWindStore();
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ import { PressureLegend } from '@/components/PressureLegend';
|
|||||||
import { WindParametersSummary } from '@/components/WindParametersSummary';
|
import { WindParametersSummary } from '@/components/WindParametersSummary';
|
||||||
import { SaveModuleDialog } from '@/components/SaveModuleDialog';
|
import { SaveModuleDialog } from '@/components/SaveModuleDialog';
|
||||||
import { exportGenericToPDF, type GenericPDFSection } from '../lib/export-generic-pdf';
|
import { exportGenericToPDF, type GenericPDFSection } from '../lib/export-generic-pdf';
|
||||||
import { usePersistentState } from '@/hooks/usePersistentState';
|
|
||||||
|
|
||||||
const DomeModule: React.FC = () => {
|
const DomeModule: React.FC = () => {
|
||||||
const { vk, cpi } = useWindStore();
|
const { vk, cpi } = useWindStore();
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { usePersistentState } from '@/hooks/usePersistentState';
|
||||||
import React, { useMemo, useState } from 'react';
|
import React, { useMemo, useState } from 'react';
|
||||||
import { Card, CardContent, CardHeader, CardTitle, CardDescription } from '@/components/ui/card';
|
import { Card, CardContent, CardHeader, CardTitle, CardDescription } from '@/components/ui/card';
|
||||||
import { Slider } from '@/components/ui/slider';
|
import { Slider } from '@/components/ui/slider';
|
||||||
@@ -31,7 +32,6 @@ import { EducationalManual } from '@/components/EducationalManual';
|
|||||||
import { exportGenericToPDF, type GenericPDFSection } from '../lib/export-generic-pdf';
|
import { exportGenericToPDF, type GenericPDFSection } from '../lib/export-generic-pdf';
|
||||||
import { WindParametersSummary } from '@/components/WindParametersSummary';
|
import { WindParametersSummary } from '@/components/WindParametersSummary';
|
||||||
import { SaveModuleDialog } from '@/components/SaveModuleDialog';
|
import { SaveModuleDialog } from '@/components/SaveModuleDialog';
|
||||||
import { usePersistentState } from '@/hooks/usePersistentState';
|
|
||||||
|
|
||||||
const DynamicsModule: React.FC = () => {
|
const DynamicsModule: React.FC = () => {
|
||||||
const { v0, s1, s3, terrainCategory, structureClass, q } = useWindStore();
|
const { v0, s1, s3, terrainCategory, structureClass, q } = useWindStore();
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ import { PressureLegend } from '@/components/PressureLegend';
|
|||||||
import { SaveModuleDialog } from '@/components/SaveModuleDialog';
|
import { SaveModuleDialog } from '@/components/SaveModuleDialog';
|
||||||
import { WindParametersSummary } from '@/components/WindParametersSummary';
|
import { WindParametersSummary } from '@/components/WindParametersSummary';
|
||||||
import { useHydrationStore } from '@/store/hydrationStore';
|
import { useHydrationStore } from '@/store/hydrationStore';
|
||||||
import { usePersistentState } from '@/hooks/usePersistentState';
|
|
||||||
|
|
||||||
const GalpaoModule: React.FC = () => {
|
const GalpaoModule: React.FC = () => {
|
||||||
const {
|
const {
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import { Link } from 'react-router-dom';
|
|||||||
import { Warehouse, Cylinder, Church, CircleDot, Square, Layers, BarChart3, Frame, Tent, Calculator } from 'lucide-react';
|
import { Warehouse, Cylinder, Church, CircleDot, Square, Layers, BarChart3, Frame, Tent, Calculator } from 'lucide-react';
|
||||||
import { useI18n } from '../store/i18nStore';
|
import { useI18n } from '../store/i18nStore';
|
||||||
import { useWindStore } from '../store/appStore';
|
import { useWindStore } from '../store/appStore';
|
||||||
import { usePersistentState } from '@/hooks/usePersistentState';
|
|
||||||
|
|
||||||
// Mocked icons for bridge and tower to match App.tsx
|
// Mocked icons for bridge and tower to match App.tsx
|
||||||
const BridgeIcon = (props: React.SVGProps<SVGSVGElement>) => (
|
const BridgeIcon = (props: React.SVGProps<SVGSVGElement>) => (
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { usePersistentState } from '@/hooks/usePersistentState';
|
||||||
import React, { useMemo, useState } from 'react';
|
import React, { useMemo, useState } from 'react';
|
||||||
import { Box, Wind } from 'lucide-react';
|
import { Box, Wind } from 'lucide-react';
|
||||||
import { Card, CardContent, CardHeader, CardTitle, CardDescription } from '@/components/ui/card';
|
import { Card, CardContent, CardHeader, CardTitle, CardDescription } from '@/components/ui/card';
|
||||||
@@ -15,7 +16,6 @@ import { PressureLegend } from '@/components/PressureLegend';
|
|||||||
import { WindParametersSummary } from '@/components/WindParametersSummary';
|
import { WindParametersSummary } from '@/components/WindParametersSummary';
|
||||||
import { SaveModuleDialog } from '@/components/SaveModuleDialog';
|
import { SaveModuleDialog } from '@/components/SaveModuleDialog';
|
||||||
import { exportGenericToPDF, type GenericPDFSection } from '../lib/export-generic-pdf';
|
import { exportGenericToPDF, type GenericPDFSection } from '../lib/export-generic-pdf';
|
||||||
import { usePersistentState } from '@/hooks/usePersistentState';
|
|
||||||
|
|
||||||
const IsolatedRoofModule: React.FC = () => {
|
const IsolatedRoofModule: React.FC = () => {
|
||||||
const { q } = useWindStore();
|
const { q } = useWindStore();
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import React, { useMemo, useState } from 'react';
|
import { usePersistentState } from '@/hooks/usePersistentState';
|
||||||
|
import React, { useMemo } from 'react';
|
||||||
import { Card, CardContent, CardHeader, CardTitle, CardDescription } from '@/components/ui/card';
|
import { Card, CardContent, CardHeader, CardTitle, CardDescription } from '@/components/ui/card';
|
||||||
|
|
||||||
import { useHydrationStore } from '@/store/hydrationStore';
|
import { useHydrationStore } from '@/store/hydrationStore';
|
||||||
@@ -18,7 +19,6 @@ import { exportGenericToPDF, type GenericPDFSection } from '../lib/export-generi
|
|||||||
import { Plus, Trash2, Info, AlertTriangle } from 'lucide-react';
|
import { Plus, Trash2, Info, AlertTriangle } from 'lucide-react';
|
||||||
import { Tooltip, TooltipContent, TooltipTrigger, TooltipProvider } from '@/components/ui/tooltip';
|
import { Tooltip, TooltipContent, TooltipTrigger, TooltipProvider } from '@/components/ui/tooltip';
|
||||||
import { Input } from '@/components/ui/input';
|
import { Input } from '@/components/ui/input';
|
||||||
import { usePersistentState } from '@/hooks/usePersistentState';
|
|
||||||
|
|
||||||
const PiperackModule: React.FC = () => {
|
const PiperackModule: React.FC = () => {
|
||||||
const { q } = useWindStore();
|
const { q } = useWindStore();
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import React, { useRef, useState } from 'react';
|
import { usePersistentState } from '@/hooks/usePersistentState';
|
||||||
|
import React, { useRef } from 'react';
|
||||||
import { Card, CardContent, CardHeader, CardTitle, CardDescription } from '@/components/ui/card';
|
import { Card, CardContent, CardHeader, CardTitle, CardDescription } from '@/components/ui/card';
|
||||||
import { Button } from '@/components/ui/button';
|
import { Button } from '@/components/ui/button';
|
||||||
import { Sun, Moon, Laptop, Save, Trash2, Upload, FlaskConical, Download, FolderOpen, FileBox, FileJson, GraduationCap } from 'lucide-react';
|
import { Sun, Moon, Laptop, Save, Trash2, Upload, FlaskConical, Download, FolderOpen, FileBox, FileJson, GraduationCap } from 'lucide-react';
|
||||||
@@ -93,7 +94,6 @@ const SettingsModule: React.FC = () => {
|
|||||||
await save(newProject as any);
|
await save(newProject as any);
|
||||||
} else {
|
} else {
|
||||||
// Old snapshot import fallback
|
// Old snapshot import fallback
|
||||||
import { usePersistentState } from '@/hooks/usePersistentState';
|
|
||||||
importProjectFromText(text);
|
importProjectFromText(text);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import React, { useMemo, useState } from 'react';
|
import { usePersistentState } from '@/hooks/usePersistentState';
|
||||||
|
import React, { useMemo } from 'react';
|
||||||
import { Card, CardContent, CardHeader, CardTitle, CardDescription } from '@/components/ui/card';
|
import { Card, CardContent, CardHeader, CardTitle, CardDescription } from '@/components/ui/card';
|
||||||
import { Slider } from '@/components/ui/slider';
|
import { Slider } from '@/components/ui/slider';
|
||||||
import { Badge } from '@/components/ui/badge';
|
import { Badge } from '@/components/ui/badge';
|
||||||
@@ -22,7 +23,6 @@ import { SaveModuleDialog } from '@/components/SaveModuleDialog';
|
|||||||
import { exportGenericToPDF, type GenericPDFSection } from '../lib/export-generic-pdf';
|
import { exportGenericToPDF, type GenericPDFSection } from '../lib/export-generic-pdf';
|
||||||
import { Eye, Box, Layers, ArrowUpRight, CheckCircle2, Wind, AlertTriangle } from 'lucide-react';
|
import { Eye, Box, Layers, ArrowUpRight, CheckCircle2, Wind, AlertTriangle } from 'lucide-react';
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
import { usePersistentState } from '@/hooks/usePersistentState';
|
|
||||||
|
|
||||||
const conditionLabels: Record<ShelterCondition, string> = {
|
const conditionLabels: Record<ShelterCondition, string> = {
|
||||||
cond1: '1. Estanque 3 lados (Fundo + Lados)',
|
cond1: '1. Estanque 3 lados (Fundo + Lados)',
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ import { PressureLegend } from '@/components/PressureLegend';
|
|||||||
import { WindParametersSummary } from '@/components/WindParametersSummary';
|
import { WindParametersSummary } from '@/components/WindParametersSummary';
|
||||||
import { SaveModuleDialog } from '@/components/SaveModuleDialog';
|
import { SaveModuleDialog } from '@/components/SaveModuleDialog';
|
||||||
import { exportGenericToPDF, type GenericPDFSection } from '../lib/export-generic-pdf';
|
import { exportGenericToPDF, type GenericPDFSection } from '../lib/export-generic-pdf';
|
||||||
import { usePersistentState } from '@/hooks/usePersistentState';
|
|
||||||
|
|
||||||
const SignModule: React.FC = () => {
|
const SignModule: React.FC = () => {
|
||||||
const { q } = useWindStore();
|
const { q } = useWindStore();
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ import { EducationalManual } from '@/components/EducationalManual';
|
|||||||
import { WindParametersSummary } from '@/components/WindParametersSummary';
|
import { WindParametersSummary } from '@/components/WindParametersSummary';
|
||||||
import { SaveModuleDialog } from '@/components/SaveModuleDialog';
|
import { SaveModuleDialog } from '@/components/SaveModuleDialog';
|
||||||
import { exportGenericToPDF, type GenericPDFSection } from '../lib/export-generic-pdf';
|
import { exportGenericToPDF, type GenericPDFSection } from '../lib/export-generic-pdf';
|
||||||
import { usePersistentState } from '@/hooks/usePersistentState';
|
|
||||||
|
|
||||||
const TowerModule: React.FC = () => {
|
const TowerModule: React.FC = () => {
|
||||||
const { q } = useWindStore();
|
const { q } = useWindStore();
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ import { PressureLegend } from '@/components/PressureLegend';
|
|||||||
import { WindParametersSummary } from '@/components/WindParametersSummary';
|
import { WindParametersSummary } from '@/components/WindParametersSummary';
|
||||||
import { SaveModuleDialog } from '@/components/SaveModuleDialog';
|
import { SaveModuleDialog } from '@/components/SaveModuleDialog';
|
||||||
import { exportGenericToPDF, type GenericPDFSection } from '../lib/export-generic-pdf';
|
import { exportGenericToPDF, type GenericPDFSection } from '../lib/export-generic-pdf';
|
||||||
import { usePersistentState } from '@/hooks/usePersistentState';
|
|
||||||
|
|
||||||
const VaultModule: React.FC = () => {
|
const VaultModule: React.FC = () => {
|
||||||
const { vk } = useWindStore();
|
const { vk } = useWindStore();
|
||||||
|
|||||||
Reference in New Issue
Block a user