Files
ERitors-Scribe-Desktop/components/offline/OfflineToggle.tsx
natreex 64ed90d993 Remove unused components and models for improved maintainability
- Deleted redundant components (`AddActionButton`, `AlertBox`, `AlertStack`, `BackButton`, `CancelButton`, and `CollapsableArea`) and related files.
- Removed unused models (`Book`, `BookSerie`, `BookTables`, `Character`, and `Chapter`) to reduce codebase clutter.
- Updated project structure and references to reflect these removals.
2026-03-22 22:37:31 -04:00

40 lines
1.3 KiB
TypeScript

'use client';
import { useContext } from 'react';
import OfflineContext from '@/context/OfflineContext';
import { Wifi, Circle } from 'lucide-react';
export default function OfflineToggle() {
const { offlineMode, toggleOfflineMode } = useContext(OfflineContext);
if (!offlineMode.isDatabaseInitialized) {
return null;
}
const handleToggle = () => {
toggleOfflineMode();
};
return (
<button
onClick={handleToggle}
className={`
flex items-center gap-2 px-3 py-1.5 rounded-lg border transition-all
${offlineMode.isOffline
? 'bg-orange-500/20 border-orange-500/40 hover:bg-orange-500/30'
: 'bg-green-500/20 border-green-500/40 hover:bg-green-500/30'
}
`}
title={offlineMode.isOffline ? 'Passer en mode en ligne' : 'Passer en mode hors ligne'}
>
{offlineMode.isOffline
? <Circle className="w-3 h-3 text-orange-300" />
: <Wifi className="w-3 h-3 text-green-300" />
}
<span className={`text-xs font-medium ${offlineMode.isOffline ? 'text-orange-200' : 'text-green-200'}`}>
{offlineMode.isOffline ? 'Hors ligne' : 'En ligne'}
</span>
</button>
);
}