Adjust card width for mobile

Adjust card width to fit mobile screens.
This commit is contained in:
gpt-engineer-app[bot]
2025-03-16 05:53:36 +00:00
parent 71d21b9e6e
commit 13bff57266
3 changed files with 20 additions and 12 deletions

View File

@@ -1,6 +1,7 @@
import React from 'react'; import React from 'react';
import { ChevronLeft, ChevronRight } from 'lucide-react'; import { ChevronLeft, ChevronRight } from 'lucide-react';
import { useIsMobile } from '@/hooks/use-mobile';
interface PeriodSelectorProps { interface PeriodSelectorProps {
selectedPeriod: string; selectedPeriod: string;
@@ -13,8 +14,10 @@ const PeriodSelector: React.FC<PeriodSelectorProps> = ({
onPrevPeriod, onPrevPeriod,
onNextPeriod onNextPeriod
}) => { }) => {
const isMobile = useIsMobile();
return ( return (
<div className="flex items-center justify-between mb-6"> <div className={`flex items-center justify-between mb-6 ${isMobile ? 'w-full' : ''}`}>
<button <button
className="neuro-flat p-2 rounded-full" className="neuro-flat p-2 rounded-full"
onClick={onPrevPeriod} onClick={onPrevPeriod}

View File

@@ -2,6 +2,7 @@
import React from 'react'; import React from 'react';
import { Wallet, CreditCard, PiggyBank } from 'lucide-react'; import { Wallet, CreditCard, PiggyBank } from 'lucide-react';
import { formatCurrency } from '@/utils/formatters'; import { formatCurrency } from '@/utils/formatters';
import { useIsMobile } from '@/hooks/use-mobile';
interface SummaryCardsProps { interface SummaryCardsProps {
totalBudget: number; totalBudget: number;
@@ -14,9 +15,11 @@ const SummaryCards: React.FC<SummaryCardsProps> = ({
totalExpense, totalExpense,
savingsPercentage savingsPercentage
}) => { }) => {
const isMobile = useIsMobile();
return ( return (
<div className="grid grid-cols-3 gap-3 mb-8"> <div className={`grid ${isMobile ? 'grid-cols-1 gap-3' : 'grid-cols-3 gap-3'} mb-8`}>
<div className="neuro-card"> <div className="neuro-card w-full">
<div className="flex items-center gap-2 mb-1 py-[5px]"> <div className="flex items-center gap-2 mb-1 py-[5px]">
<Wallet size={24} className="text-gray-500" /> <Wallet size={24} className="text-gray-500" />
<p className="text-gray-500 text-base"></p> <p className="text-gray-500 text-base"></p>
@@ -25,7 +28,7 @@ const SummaryCards: React.FC<SummaryCardsProps> = ({
{formatCurrency(totalBudget)} {formatCurrency(totalBudget)}
</p> </p>
</div> </div>
<div className="neuro-card"> <div className="neuro-card w-full">
<div className="flex items-center gap-2 mb-1 py-[5px]"> <div className="flex items-center gap-2 mb-1 py-[5px]">
<CreditCard size={24} className="text-gray-500" /> <CreditCard size={24} className="text-gray-500" />
<p className="text-gray-500 font-medium text-base"></p> <p className="text-gray-500 font-medium text-base"></p>
@@ -34,7 +37,7 @@ const SummaryCards: React.FC<SummaryCardsProps> = ({
{formatCurrency(totalExpense)} {formatCurrency(totalExpense)}
</p> </p>
</div> </div>
<div className="neuro-card"> <div className="neuro-card w-full">
<div className="flex items-center gap-2 mb-1 py-[5px]"> <div className="flex items-center gap-2 mb-1 py-[5px]">
<PiggyBank size={24} className="text-gray-500" /> <PiggyBank size={24} className="text-gray-500" />
<p className="text-gray-500 text-base"></p> <p className="text-gray-500 text-base"></p>

View File

@@ -110,13 +110,15 @@ const Analytics = () => {
{/* Category Pie Chart */} {/* Category Pie Chart */}
<h2 className="text-lg font-semibold mb-3"> </h2> <h2 className="text-lg font-semibold mb-3"> </h2>
<div className="w-full">
{expenseData.some(item => item.value > 0) ? ( {expenseData.some(item => item.value > 0) ? (
<ExpenseChart data={expenseData} /> <ExpenseChart data={expenseData} />
) : ( ) : (
<div className="neuro-card h-52 flex items-center justify-center text-gray-400"> <div className="neuro-card h-52 w-full flex items-center justify-center text-gray-400">
<p> </p> <p> </p>
</div> </div>
)} )}
</div>
{/* Top Spending Categories */} {/* Top Spending Categories */}
<h2 className="text-lg font-semibold mb-3 mt-6"> </h2> <h2 className="text-lg font-semibold mb-3 mt-6"> </h2>