Fix GitHub backup requiring cloud login and backup log timestamps (#655)

- Remove Bambu Cloud authentication gate from GitHub backup settings card.
    K-profiles and app settings backup work without cloud login; the Cloud
    Profiles checkbox is disabled with a hint when not authenticated.
  - Fix backup log timestamps showing UTC instead of local time by using
    the shared parseUTCDate utility for correct timezone conversion.
This commit is contained in:
maziggy
2026-03-10 07:49:35 +01:00
parent a95fa9e124
commit c5269b5b0c
11 changed files with 51 additions and 54 deletions
@@ -35,11 +35,12 @@ import { Button } from './Button';
import { Toggle } from './Toggle';
import { ConfirmModal } from './ConfirmModal';
import { useToast } from '../contexts/ToastContext';
import { formatRelativeTime } from '../utils/date';
import { formatRelativeTime, parseUTCDate } from '../utils/date';
function formatDateTime(dateStr: string | null): string {
if (!dateStr) return '-';
const date = new Date(dateStr);
const date = parseUTCDate(dateStr);
if (!date) return '-';
return date.toLocaleString();
}
@@ -383,7 +384,7 @@ export function GitHubBackupSettings() {
<Github className="w-5 h-5 text-gray-400" />
<h2 className="text-lg font-semibold text-white">{t('backup.githubBackup')}</h2>
</div>
{config && cloudStatus?.is_authenticated && (
{config && (
<div className="flex items-center gap-2">
<span className="text-sm text-bambu-gray">{t('backup.enabled')}</span>
<Toggle
@@ -395,16 +396,6 @@ export function GitHubBackupSettings() {
</div>
</CardHeader>
<CardContent className="space-y-4">
{/* Bambu Cloud required message */}
{!cloudStatus?.is_authenticated ? (
<div className="flex items-start gap-2 p-3 bg-yellow-500/10 border border-yellow-500/30 rounded-lg">
<AlertTriangle className="w-4 h-4 text-yellow-400 mt-0.5 flex-shrink-0" />
<p className="text-sm text-yellow-400">
{t('backup.cloudLoginRequired')}
</p>
</div>
) : (
<>
<p className="text-sm text-bambu-gray">
{t('backup.githubDescription')}
</p>
@@ -505,7 +496,7 @@ export function GitHubBackupSettings() {
<p className="text-xs text-bambu-gray">{t('backup.kProfilesDescription')}</p>
</div>
</label>
<label className="flex items-start gap-2 cursor-pointer">
<label className={`flex items-start gap-2 ${!cloudStatus?.is_authenticated ? 'cursor-not-allowed opacity-60' : 'cursor-pointer'}`}>
<input
type="checkbox"
checked={backupCloudProfiles}
@@ -514,7 +505,15 @@ export function GitHubBackupSettings() {
disabled={!cloudStatus?.is_authenticated}
/>
<div>
<span className={`text-sm ${cloudStatus?.is_authenticated ? 'text-white' : 'text-bambu-gray'}`}>{t('backup.cloudProfiles')}</span>
<div className="flex items-center gap-2">
<span className={`text-sm ${cloudStatus?.is_authenticated ? 'text-white' : 'text-bambu-gray'}`}>{t('backup.cloudProfiles')}</span>
{!cloudStatus?.is_authenticated && (
<span className="inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs bg-yellow-500/20 text-yellow-400">
<AlertTriangle className="w-3 h-3" />
{t('backup.cloudLoginRequiredShort')}
</span>
)}
</div>
<p className="text-xs text-bambu-gray">{t('backup.cloudProfilesDescription')}</p>
</div>
</label>
@@ -621,8 +620,6 @@ export function GitHubBackupSettings() {
)}
</div>
</div>
</>
)}
</CardContent>
</Card>
+1
View File
@@ -3047,6 +3047,7 @@ export default {
githubBackup: 'GitHub Backup',
enabled: 'Aktiviert',
cloudLoginRequired: 'Bambu Cloud Login erforderlich. Melden Sie sich unter Profile → Cloud-Profile an, um GitHub-Backup zu aktivieren.',
cloudLoginRequiredShort: 'Cloud-Login erforderlich',
githubDescription: 'Synchronisieren Sie Ihre Profile automatisch mit einem privaten GitHub-Repository für Backup und Versionsverlauf.',
repositoryUrl: 'Repository-URL',
personalAccessToken: 'Persönlicher Zugriffstoken',
+1
View File
@@ -3051,6 +3051,7 @@ export default {
githubBackup: 'GitHub Backup',
enabled: 'Enabled',
cloudLoginRequired: 'Bambu Cloud login required. Sign in under Profiles → Cloud Profiles to enable GitHub backup.',
cloudLoginRequiredShort: 'Cloud login required',
githubDescription: 'Automatically sync your profiles to a private GitHub repository for backup and version history.',
repositoryUrl: 'Repository URL',
personalAccessToken: 'Personal Access Token',
+1
View File
@@ -3038,6 +3038,7 @@ export default {
githubBackup: 'Sauvegarde GitHub',
enabled: 'Activé',
cloudLoginRequired: 'Connexion Bambu Cloud requise. Connectez-vous sous Profils → Profils Cloud pour activer la sauvegarde GitHub.',
cloudLoginRequiredShort: 'Connexion Cloud requise',
githubDescription: 'Synchronisez automatiquement vos profils vers un dépôt GitHub privé pour la sauvegarde et l\'historique des versions.',
repositoryUrl: 'URL du dépôt',
personalAccessToken: 'Jeton d\'accès personnel',
+1
View File
@@ -3037,6 +3037,7 @@ export default {
githubBackup: 'Backup GitHub',
enabled: 'Abilitato',
cloudLoginRequired: 'Accesso Bambu Cloud richiesto. Accedi in Profili → Profili Cloud per abilitare il backup GitHub.',
cloudLoginRequiredShort: 'Accesso Cloud richiesto',
githubDescription: 'Sincronizza automaticamente i tuoi profili con un repository GitHub privato per backup e cronologia delle versioni.',
repositoryUrl: 'URL del repository',
personalAccessToken: 'Token di accesso personale',
+1
View File
@@ -3051,6 +3051,7 @@ export default {
githubBackup: 'GitHubバックアップ',
enabled: '有効',
cloudLoginRequired: 'Bambu Cloudログインが必要です。GitHubバックアップを有効にするには、プロファイル → クラウドプロファイルからサインインしてください。',
cloudLoginRequiredShort: 'Cloudログインが必要',
githubDescription: 'プロファイルをプライベートGitHubリポジトリに自動的に同期し、バックアップとバージョン履歴を保持します。',
repositoryUrl: 'リポジトリURL',
personalAccessToken: '個人アクセストークン',
+1
View File
@@ -3037,6 +3037,7 @@ export default {
githubBackup: 'Backup GitHub',
enabled: 'Ativado',
cloudLoginRequired: 'Login no Bambu Cloud necessário. Entre em Perfis → Perfis Cloud para ativar o backup GitHub.',
cloudLoginRequiredShort: 'Login Cloud necessário',
githubDescription: 'Sincronize automaticamente seus perfis com um repositório GitHub privado para backup e histórico de versões.',
repositoryUrl: 'URL do repositório',
personalAccessToken: 'Token de acesso pessoal',
+1
View File
@@ -3037,6 +3037,7 @@ export default {
githubBackup: 'GitHub 备份',
enabled: '已启用',
cloudLoginRequired: '需要登录 Bambu Cloud。请在 配置文件 → 云配置文件 中登录以启用 GitHub 备份。',
cloudLoginRequiredShort: '需要Cloud登录',
githubDescription: '自动将您的配置文件同步到私有 GitHub 仓库以进行备份和版本历史记录。',
repositoryUrl: '仓库 URL',
personalAccessToken: '个人访问令牌',