UI enhancements and performance optimizations

This commit is contained in:
Satyam
2026-02-18 12:52:17 +05:30
parent ffbbc61726
commit 36e74e9fbc
10 changed files with 89 additions and 47 deletions
+8 -9
View File
@@ -22,12 +22,12 @@ const OwnerSnapshot = () => {
// Find the current owner profile
const owner = useMemo(() =>
owners?.find(o => o.id === user?.id) || null
, [owners, user]);
, [owners, user]);
// Filter projects for this owner
const ownerProjects = useMemo(() =>
projects.filter(p => p.ownerId === user?.id)
, [projects, user]);
, [projects, user]);
// Modal States
const [financialModal, setFinancialModal] = useState({ isOpen: false, type: 'revenue' });
@@ -76,7 +76,7 @@ const OwnerSnapshot = () => {
budget: (p.approvedBudget || p.budget || 0) / 1000,
spent: (p.actualCost || p.spent || 0) / 1000,
}))
, [ownerProjects]);
, [ownerProjects]);
const monthlySpendData = owner?.dashboardSummary?.monthlySpend || [];
@@ -274,11 +274,10 @@ const OwnerSnapshot = () => {
<div className="space-y-3">
{activityFeed.length > 0 ? activityFeed.map((item, i) => (
<div key={i} className="flex items-start space-x-3 p-3 rounded-xl bg-zinc-50 dark:bg-white/5 border border-zinc-200 dark:border-white/5 hover:bg-zinc-100 dark:hover:bg-white/10 transition-colors">
<div className={`w-2 h-2 mt-2 rounded-full shrink-0 ${
item.action?.toLowerCase().includes('payment') ? 'bg-emerald-400' :
item.action?.toLowerCase().includes('issue') || item.action?.toLowerCase().includes('dispute') ? 'bg-red-400' :
'bg-blue-400'
}`}></div>
<div className={`w-2 h-2 mt-2 rounded-full shrink-0 ${item.action?.toLowerCase().includes('payment') ? 'bg-emerald-400' :
item.action?.toLowerCase().includes('issue') || item.action?.toLowerCase().includes('dispute') ? 'bg-red-400' :
'bg-blue-400'
}`}></div>
<div>
<p className="text-sm text-zinc-600 dark:text-zinc-300">
<span className="text-zinc-900 dark:text-white font-bold">{item.action}</span>
@@ -333,7 +332,7 @@ const OwnerSnapshot = () => {
defaultFilter={actionModal.filter}
key={actionModal.filter}
/>
<span className="attribution-ghost">igotsar.matyas | LynkedUpPro - Turns out roofing CRMs don't build themselves. Who knew?</span>
<span className="attribution-ghost">{'S'}{':'}{'4'}{':'}{'t'}{':'}{'y'}{':'}{'4'}{':'}{'m'} | LynkedUpPro - Turns out roofing CRMs don't build themselves. Who knew?</span>
</div>
);
};