mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-15 03:09:32 +02:00
Modify the usePhoneMode hook to always return true for `canUsePhoneMode`, ensuring the phone mode icon is visible on all devices for testing purposes. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 95e8aab4-f39f-4b48-aa57-a759ec15ba3d Replit-Commit-Checkpoint-Type: intermediate_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/95e8aab4-f39f-4b48-aa57-a759ec15ba3d/0iFumsU
82 lines
2.4 KiB
TypeScript
82 lines
2.4 KiB
TypeScript
import { useState, useEffect } from 'react'
|
|
import { useScreenSize } from './use-screen-size'
|
|
|
|
export interface PhoneModeConfig {
|
|
isPhoneMode: boolean
|
|
setPhoneMode: (enabled: boolean) => void
|
|
canUsePhoneMode: boolean
|
|
autoSuggestPhoneMode: boolean
|
|
}
|
|
|
|
export function usePhoneMode(): PhoneModeConfig {
|
|
const { isMobile, dimensions } = useScreenSize()
|
|
|
|
// L'icône de mode téléphone est toujours disponible pour permettre aux utilisateurs de tester
|
|
const canUsePhoneMode = true
|
|
|
|
// Auto-suggestion pour très petits écrans (< 400px)
|
|
const autoSuggestPhoneMode = dimensions.width < 400
|
|
|
|
const [isPhoneMode, setIsPhoneMode] = useState<boolean>(() => {
|
|
try {
|
|
const saved = localStorage.getItem('phoneMode')
|
|
if (saved !== null) {
|
|
return JSON.parse(saved)
|
|
}
|
|
|
|
// Auto-activation pour très petits écrans
|
|
if (autoSuggestPhoneMode) {
|
|
return true
|
|
}
|
|
|
|
return false
|
|
} catch (error) {
|
|
console.error('Error reading phone mode from localStorage:', error)
|
|
return autoSuggestPhoneMode
|
|
}
|
|
})
|
|
|
|
const setPhoneMode = (enabled: boolean) => {
|
|
setIsPhoneMode(enabled)
|
|
try {
|
|
localStorage.setItem('phoneMode', JSON.stringify(enabled))
|
|
console.log('📱 Phone mode preference saved:', enabled)
|
|
} catch (error) {
|
|
console.error('Error saving phone mode to localStorage:', error)
|
|
}
|
|
}
|
|
|
|
// Effect pour activer automatiquement le mode téléphone selon la largeur
|
|
useEffect(() => {
|
|
const saved = localStorage.getItem('phoneMode')
|
|
if (saved !== null) return // L'utilisateur a une préférence explicite, ne pas override
|
|
|
|
const shouldEnable = dimensions.width < 400
|
|
if (isPhoneMode !== shouldEnable) {
|
|
console.log('📱 Auto-toggling phone mode:', {
|
|
width: dimensions.width,
|
|
shouldEnable,
|
|
currentMode: isPhoneMode
|
|
})
|
|
setIsPhoneMode(shouldEnable)
|
|
}
|
|
}, [dimensions.width, isPhoneMode])
|
|
|
|
// Effect pour logger les changements de mode
|
|
useEffect(() => {
|
|
console.log('📱 Phone mode state:', {
|
|
isPhoneMode,
|
|
canUsePhoneMode,
|
|
autoSuggestPhoneMode,
|
|
screenWidth: dimensions.width,
|
|
isMobile
|
|
})
|
|
}, [isPhoneMode, canUsePhoneMode, autoSuggestPhoneMode, dimensions.width, isMobile])
|
|
|
|
return {
|
|
isPhoneMode,
|
|
setPhoneMode,
|
|
canUsePhoneMode,
|
|
autoSuggestPhoneMode
|
|
}
|
|
} |