fix: disable mobile drag, replace window.location.reload with router.refresh, use semantic icons

- Disable Muuri drag on mobile devices to prevent scroll conflicts
- Replace all remaining window.location.reload() with router.refresh() in settings/data, settings/general, and note-editor
- Replace duplicate X icons with semantic icons (Trash2 for fused badge, LogOut for leave share)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Sepehr Ramezani
2026-04-01 21:34:22 +02:00
parent 8f35bac56f
commit 377f0c739f
5 changed files with 13 additions and 10 deletions

View File

@@ -183,7 +183,7 @@ export function MasonryGrid({ notes, onEdit }: MasonryGridProps) {
const layoutOptions = {
dragEnabled: true,
dragEnabled: !isMobile,
// Use drag handle for mobile devices to allow smooth scrolling
// On desktop, whole card is draggable (no handle needed)
dragHandle: isMobile ? '.muuri-drag-handle' : undefined,

View File

@@ -10,7 +10,7 @@ import {
DropdownMenuItem,
DropdownMenuTrigger,
} from '@/components/ui/dropdown-menu'
import { Pin, Bell, GripVertical, X, Link2, FolderOpen, StickyNote, LucideIcon, Folder, Briefcase, FileText, Zap, BarChart3, Globe, Sparkles, Book, Heart, Crown, Music, Building2 } from 'lucide-react'
import { Pin, Bell, GripVertical, X, Link2, FolderOpen, StickyNote, LucideIcon, Folder, Briefcase, FileText, Zap, BarChart3, Globe, Sparkles, Book, Heart, Crown, Music, Building2, LogOut, Trash2 } from 'lucide-react'
import { useState, useEffect, useTransition, useOptimistic, memo } from 'react'
import { useSession } from 'next-auth/react'
import { useRouter, useSearchParams } from 'next/navigation'
@@ -444,7 +444,7 @@ export const NoteCard = memo(function NoteCard({
className="ml-1 opacity-0 group-hover/badge:opacity-100 hover:opacity-100 transition-opacity"
title={t('notes.remove') || 'Remove'}
>
<X className="h-2.5 w-2.5" />
<Trash2 className="h-2.5 w-2.5" />
</button>
</div>
)}
@@ -499,7 +499,7 @@ export const NoteCard = memo(function NoteCard({
handleLeaveShare()
}}
>
<X className="h-3 w-3 mr-1" />
<LogOut className="h-3 w-3 mr-1" />
{t('notes.leaveShare')}
</Button>
</div>

View File

@@ -528,9 +528,8 @@ export function NoteEditor({ note, readOnly = false, onClose }: NoteEditorProps)
size: size,
})
toast.success(t('notes.copySuccess'))
triggerRefresh()
onClose()
// Force refresh to show the new note
window.location.reload()
} catch (error) {
console.error('Failed to copy note:', error)
toast.error(t('notes.copyFailed'))