fix(sprint-5/etapa-4b): library useEffect usa user.id no user ref — corta contención processLock en guardar perfil
Some checks failed
/ Deploy to Cloudflare Pages (push) Has been cancelled
Some checks failed
/ Deploy to Cloudflare Pages (push) Has been cancelled
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -18,8 +18,6 @@ export function ProfileSheet({ open, onOpenChange }: ProfileSheetProps) {
|
|||||||
const [company, setCompany] = useState('')
|
const [company, setCompany] = useState('')
|
||||||
const [saving, setSaving] = useState(false)
|
const [saving, setSaving] = useState(false)
|
||||||
|
|
||||||
console.log('[ProfileSheet] render — open:', open, 'saving:', saving, 'user.name:', user?.name)
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (open && user) {
|
if (open && user) {
|
||||||
setName(user.name)
|
setName(user.name)
|
||||||
@@ -32,7 +30,6 @@ export function ProfileSheet({ open, onOpenChange }: ProfileSheetProps) {
|
|||||||
|
|
||||||
async function handleSave() {
|
async function handleSave() {
|
||||||
if (!user || !name.trim()) return
|
if (!user || !name.trim()) return
|
||||||
console.log('[ProfileSheet] saveProfile start — name:', name.trim(), 'company:', company.trim())
|
|
||||||
setSaving(true)
|
setSaving(true)
|
||||||
try {
|
try {
|
||||||
const { error } = await supabase
|
const { error } = await supabase
|
||||||
@@ -40,12 +37,10 @@ export function ProfileSheet({ open, onOpenChange }: ProfileSheetProps) {
|
|||||||
.update({ name: name.trim(), company: company.trim() || null })
|
.update({ name: name.trim(), company: company.trim() || null })
|
||||||
.eq('id', user.id)
|
.eq('id', user.id)
|
||||||
if (error) throw error
|
if (error) throw error
|
||||||
console.log('[ProfileSheet] DB updated')
|
|
||||||
updateUser({ name: name.trim(), company: company.trim() || undefined })
|
updateUser({ name: name.trim(), company: company.trim() || undefined })
|
||||||
console.log('[ProfileSheet] local state updated')
|
|
||||||
onOpenChange(false)
|
onOpenChange(false)
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error('[ProfileSheet] Error al guardar perfil:', err)
|
console.error('Error al guardar perfil:', err)
|
||||||
} finally {
|
} finally {
|
||||||
setSaving(false)
|
setSaving(false)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -757,7 +757,7 @@ export function LibraryPage() {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!user) return // no fetchear hasta tener usuario confirmado (evita race condition con sesión Supabase)
|
if (!user) return // no fetchear hasta tener usuario confirmado (evita race condition con sesión Supabase)
|
||||||
load()
|
load()
|
||||||
}, [load, user])
|
}, [load, user?.id])
|
||||||
|
|
||||||
function navigateToGroup(groupId: string | null) {
|
function navigateToGroup(groupId: string | null) {
|
||||||
setTransitioning(true)
|
setTransitioning(true)
|
||||||
|
|||||||
Reference in New Issue
Block a user