Add terms of use translations, sync detection, and refactor book components
- Introduced new translations for terms of use in French and English locales. - Added sync status detection logic for books in `BookList` and `BookCard` components. - Refactored `BookCard` to handle additional props and improve layout flexibility. - Enhanced `TermsOfUse` component with complete localization support and refuse functionality. - Updated data decryption logic in Rust services to handle optional fields and additional metadata consistently. - Improved offline/online synchronization workflows with extended context properties.
This commit is contained in:
@@ -67,14 +67,14 @@ export default function SyncBook({bookId, status}: SyncBookProps) {
|
||||
return (
|
||||
<div className="flex items-center gap-2">
|
||||
{currentStatus === 'synced' && (
|
||||
<Cloud className="w-4 h-4 text-gray-light" title={t("bookCard.synced")}/>
|
||||
<IconButton icon={Cloud} variant="ghost" tooltip={t("bookCard.synced")} disabled/>
|
||||
)}
|
||||
|
||||
{currentStatus === 'local-only' && (
|
||||
<IconButton
|
||||
icon={CloudUpload}
|
||||
variant={isOffline ? 'muted' : 'primary'}
|
||||
size="sm"
|
||||
variant={isOffline ? 'ghost' : 'primary'}
|
||||
size="md"
|
||||
onClick={upload}
|
||||
disabled={isOffline}
|
||||
tooltip={t("bookCard.localOnly")}
|
||||
@@ -83,8 +83,8 @@ export default function SyncBook({bookId, status}: SyncBookProps) {
|
||||
{currentStatus === 'server-only' && (
|
||||
<IconButton
|
||||
icon={CloudDownload}
|
||||
variant={isOffline ? 'muted' : 'primary'}
|
||||
size="sm"
|
||||
variant={isOffline ? 'ghost' : 'primary'}
|
||||
size="md"
|
||||
onClick={download}
|
||||
disabled={isOffline}
|
||||
tooltip={t("bookCard.serverOnly")}
|
||||
@@ -93,8 +93,8 @@ export default function SyncBook({bookId, status}: SyncBookProps) {
|
||||
{currentStatus === 'to-sync-from-server' && (
|
||||
<IconButton
|
||||
icon={CloudDownload}
|
||||
variant={isOffline ? 'muted' : 'primary'}
|
||||
size="sm"
|
||||
variant={isOffline ? 'ghost' : 'primary'}
|
||||
size="md"
|
||||
onClick={syncFromServer}
|
||||
disabled={isOffline}
|
||||
tooltip={t("bookCard.toSyncFromServer")}
|
||||
@@ -103,8 +103,8 @@ export default function SyncBook({bookId, status}: SyncBookProps) {
|
||||
{currentStatus === 'to-sync-to-server' && (
|
||||
<IconButton
|
||||
icon={CloudUpload}
|
||||
variant={isOffline ? 'muted' : 'primary'}
|
||||
size="sm"
|
||||
variant={isOffline ? 'ghost' : 'primary'}
|
||||
size="md"
|
||||
onClick={syncToServer}
|
||||
disabled={isOffline}
|
||||
tooltip={t("bookCard.toSyncToServer")}
|
||||
|
||||
Reference in New Issue
Block a user