diff --git a/src/components/BackButton.tsx b/src/components/BackButton.tsx new file mode 100644 index 0000000..9b59d6f --- /dev/null +++ b/src/components/BackButton.tsx @@ -0,0 +1,34 @@ +import { ArrowLeft } from 'lucide-react'; +import { useLocation, useNavigate } from 'react-router-dom'; + +type BackButtonProps = { + fallbackTo: string; + label?: string; +}; + +const BackButton = ({ fallbackTo, label = 'Voltar' }: BackButtonProps) => { + const navigate = useNavigate(); + const location = useLocation(); + + const handleClick = () => { + if (location.key !== 'default' && window.history.length > 1) { + navigate(-1); + return; + } + + navigate(fallbackTo, { replace: true }); + }; + + return ( + + ); +}; + +export default BackButton; diff --git a/src/pages/ClientDetails.tsx b/src/pages/ClientDetails.tsx index 1f7e359..085014a 100644 --- a/src/pages/ClientDetails.tsx +++ b/src/pages/ClientDetails.tsx @@ -1,7 +1,8 @@ import { useEffect, useState } from 'react'; import { useParams, Link, useOutletContext } from 'react-router-dom'; -import { ArrowLeft, User, Tag, Package, DollarSign, Clock, Phone, ChevronDown, ShoppingBag, ReceiptText } from 'lucide-react'; +import { User, Tag, Package, DollarSign, Clock, Phone, ChevronDown, ShoppingBag, ReceiptText } from 'lucide-react'; import { AreaChart, Area, BarChart, Bar, Cell, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from 'recharts'; +import BackButton from '../components/BackButton'; import DateRangePicker from '../components/DateRangePicker'; import PaginationControls from '../components/PaginationControls'; import RefreshStatus from '../components/RefreshStatus'; @@ -275,10 +276,7 @@ const ClientDetails = () => {
{/* Header Area */}
- - - Voltar - +
diff --git a/src/pages/ProductDetails.tsx b/src/pages/ProductDetails.tsx index 159f35f..eaf9cb5 100644 --- a/src/pages/ProductDetails.tsx +++ b/src/pages/ProductDetails.tsx @@ -1,7 +1,8 @@ import { useEffect, useState } from 'react'; import { useParams, Link, useOutletContext } from 'react-router-dom'; -import { ArrowLeft, Package, DollarSign, ReceiptText, Warehouse } from 'lucide-react'; +import { Package, DollarSign, ReceiptText, Warehouse } from 'lucide-react'; import { AreaChart, Area, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from 'recharts'; +import BackButton from '../components/BackButton'; import DateRangePicker from '../components/DateRangePicker'; import RefreshStatus from '../components/RefreshStatus'; import type { DateRange, ProductDetailsAnalytics } from '../types'; @@ -209,10 +210,7 @@ const ProductDetails = () => {
- - - Voltar - +