Migrate to lingui
Switch to "lingui" for better DX. Tried to persist existing languages as much as possible. Removed "vite-plugin-node-polyfills" because it's incompatible with "lingui"
This commit is contained in:
@@ -6,12 +6,12 @@
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import List from '@mui/material/List';
|
||||
import ListSubheader from '@mui/material/ListSubheader';
|
||||
import ListItemText from '@mui/material/ListItemText';
|
||||
|
||||
import ListItemButton from '@mui/material/ListItemButton';
|
||||
|
||||
import { useLingui } from '@lingui/react/macro';
|
||||
import { requestManager } from '@/lib/requests/RequestManager.ts';
|
||||
import { SelectSetting } from '@/base/components/settings/SelectSetting.tsx';
|
||||
import { NumberSetting } from '@/base/components/settings/NumberSetting.tsx';
|
||||
@@ -51,15 +51,13 @@ export const KoreaderSyncSettings = ({
|
||||
onCompletion?: (success: boolean) => void,
|
||||
) => Promise<void>;
|
||||
} & Omit<KoSyncStatusPayload, '__typename'>) => {
|
||||
const { t } = useTranslation();
|
||||
const { t } = useLingui();
|
||||
|
||||
const handleLogout = async () => {
|
||||
const { data } = await requestManager.koSyncLogout().response;
|
||||
|
||||
if (data?.logoutKoSyncAccount.status.isLoggedIn) {
|
||||
throw new Error(
|
||||
t('tracking.action.logout.label.failure', { name: t('settings.server.koreader.sync.title') }),
|
||||
);
|
||||
throw new Error(t`Could not log out from KOReader Sync`);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -67,7 +65,7 @@ export const KoreaderSyncSettings = ({
|
||||
const { data } = await requestManager.koSyncLogin(serverAddress, username, password).response;
|
||||
|
||||
if (!data?.connectKoSyncAccount.status.isLoggedIn) {
|
||||
throw new Error(data?.connectKoSyncAccount.message ?? t('global.label.unknown'));
|
||||
throw new Error(data?.connectKoSyncAccount.message ?? t`Unknown`);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -78,20 +76,8 @@ export const KoreaderSyncSettings = ({
|
||||
) => {
|
||||
const controlled = CredentialsLogin.showControlled(
|
||||
{
|
||||
title: t(
|
||||
isLoggedIn
|
||||
? 'settings.server.koreader.sync.connection.disconnect'
|
||||
: 'settings.server.koreader.sync.connection.connect',
|
||||
{
|
||||
name: t('settings.server.koreader.sync.title'),
|
||||
},
|
||||
),
|
||||
description: isLoggedIn
|
||||
? t('settings.server.koreader.sync.connection.connected', {
|
||||
username: initialUsername,
|
||||
serverAddress: initialServerAddress,
|
||||
})
|
||||
: undefined,
|
||||
title: isLoggedIn ? t`Disconnect from KOReader Sync server` : t`Connect to KOReader Sync server`,
|
||||
description: isLoggedIn ? t`Connected as ${initialUsername} to ${initialServerAddress}` : undefined,
|
||||
isLoading: false,
|
||||
isLoggedIn,
|
||||
withServerAddress: true,
|
||||
@@ -107,11 +93,7 @@ export const KoreaderSyncSettings = ({
|
||||
|
||||
controlled.submit();
|
||||
} catch (e) {
|
||||
makeToast(
|
||||
t('settings.server.koreader.sync.connection.message.disconnect_error'),
|
||||
'error',
|
||||
getErrorMessage(e),
|
||||
);
|
||||
makeToast(t`Failed to disconnect from KOReader Sync server.`, 'error', getErrorMessage(e));
|
||||
}
|
||||
|
||||
return;
|
||||
@@ -123,11 +105,7 @@ export const KoreaderSyncSettings = ({
|
||||
|
||||
controlled.submit();
|
||||
} catch (e) {
|
||||
makeToast(
|
||||
t('settings.server.koreader.sync.connection.message.connect_error'),
|
||||
'error',
|
||||
getErrorMessage(e),
|
||||
);
|
||||
makeToast(t`Failed to connect to KOReader Sync server.`, 'error', getErrorMessage(e));
|
||||
|
||||
const RETRY_KEY = '__retry__';
|
||||
const retry = await Promise.race([controlled.promise, Promise.resolve(RETRY_KEY)]);
|
||||
@@ -145,7 +123,7 @@ export const KoreaderSyncSettings = ({
|
||||
<List
|
||||
subheader={
|
||||
<ListSubheader component="div" id="koreader-sync-settings">
|
||||
{t('settings.server.koreader.sync.title')}
|
||||
{t`KOReader Sync`}
|
||||
</ListSubheader>
|
||||
}
|
||||
>
|
||||
@@ -153,42 +131,33 @@ export const KoreaderSyncSettings = ({
|
||||
onClick={() => handleLoginLogout(currentServerAddress ?? undefined, currentUsername ?? undefined)}
|
||||
>
|
||||
<ListItemText
|
||||
primary={t('settings.server.koreader.sync.connection.status')}
|
||||
primary={t`Sync status`}
|
||||
secondary={
|
||||
isLoggedIn
|
||||
? t('settings.server.koreader.sync.connection.connected', {
|
||||
username: currentUsername,
|
||||
serverAddress: currentServerAddress,
|
||||
})
|
||||
: t('settings.server.koreader.sync.connection.disconnected')
|
||||
isLoggedIn ? t`Connected as ${currentUsername} to ${currentServerAddress}` : t`Disconnected`
|
||||
}
|
||||
/>
|
||||
</ListItemButton>
|
||||
|
||||
<SelectSetting<KoreaderSyncConflictStrategy>
|
||||
settingName={t('settings.server.koreader.sync.strategy.forward_title')}
|
||||
settingName={t`Sync to a newer state`}
|
||||
value={koreaderSyncStrategyForward}
|
||||
values={KOREADER_SYNC_CONFLICT_STRATEGY_SELECT_VALUES}
|
||||
handleChange={(value) => updateSetting('koreaderSyncStrategyForward', value)}
|
||||
/>
|
||||
|
||||
<SelectSetting<KoreaderSyncConflictStrategy>
|
||||
settingName={t('settings.server.koreader.sync.strategy.backward_title')}
|
||||
settingName={t`Sync to an older state`}
|
||||
value={koreaderSyncStrategyBackward}
|
||||
values={KOREADER_SYNC_CONFLICT_STRATEGY_SELECT_VALUES}
|
||||
handleChange={(value) => updateSetting('koreaderSyncStrategyBackward', value)}
|
||||
/>
|
||||
|
||||
<SelectSetting<KoreaderSyncChecksumMethod>
|
||||
settingName={t('settings.server.koreader.sync.check_sum_method.title')}
|
||||
settingName={t`Document matching method`}
|
||||
value={koreaderSyncChecksumMethod}
|
||||
values={KOREADER_SYNC_CHECKSUM_METHOD_SELECT_VALUES}
|
||||
handleChange={(value) => updateSetting('koreaderSyncChecksumMethod', value)}
|
||||
/>
|
||||
|
||||
<NumberSetting
|
||||
settingTitle={t('settings.server.koreader.sync.tolerance.title')}
|
||||
dialogDescription={t('settings.server.koreader.sync.tolerance.description')}
|
||||
settingTitle={t`Percentage Tolerance`}
|
||||
dialogDescription={t`Sync will not be triggered if the progress difference is within this tolerance.`}
|
||||
settingValue={koreaderSyncPercentageTolerance.toString()}
|
||||
value={koreaderSyncPercentageTolerance}
|
||||
defaultValue={KOREADER_SYNC_PERCENTAGE_TOLERANCE.default}
|
||||
|
||||
Reference in New Issue
Block a user