paimon-moe-fork/src/components/SyncConflictModal.svelte

64 lines
2.1 KiB
Svelte
Raw Normal View History

2020-11-05 06:29:58 +00:00
<script>
2020-11-06 08:24:41 +00:00
import { mdiCloudAlert, mdiContentSave, mdiDownload, mdiFile, mdiGoogleDrive, mdiLoading, mdiUpload } from '@mdi/js';
2020-11-05 06:29:58 +00:00
import Button from './Button.svelte';
import Icon from './Icon.svelte';
export let remoteTime;
export let localTime;
2020-11-05 10:27:12 +00:00
export let downloadBackup = () => {};
2020-11-06 08:24:41 +00:00
export let useRemote = () => {};
export let useLocal = () => {};
let loading = false;
function useLocalData() {
loading = true;
useLocal();
}
function useRemoteData() {
loading = true;
useRemote();
}
2020-11-05 06:29:58 +00:00
const remoteFormatted = remoteTime.format('dddd, MMMM D, YYYY h:mm A');
const localFormatted = localTime.format('dddd, MMMM D, YYYY h:mm A');
const remoteNewer = remoteTime.isAfter(localTime);
</script>
<div class="flex">
<Icon path={mdiCloudAlert} color="white" size={2} />
<p class="flex-1 text-white text-lg md:text-xl font-bold ml-4">
Your local data is conflicting with the ones stored in the Google Drive!
</p>
</div>
<div class="mt-4 p-4 bg-item rounded-xl text-white">
<p class="font-bold">
<Icon path={mdiGoogleDrive} className="mr-2" />
Google Drive Data -
{remoteNewer ? 'NEWER' : 'OLDER'}
</p>
<p class="text-gray-400 mt-1">Last modified: {remoteFormatted}</p>
2020-11-06 08:24:41 +00:00
<Button disabled={loading} className="mt-2 w-full" on:click={useRemoteData}>
<Icon path={loading ? mdiLoading : mdiDownload} spin={loading} className="mr-1" />Replace Local Data
2020-11-05 06:29:58 +00:00
</Button>
</div>
<p class="mt-2 text-white text-center">OR</p>
<div class="mt-2 p-4 bg-item rounded-xl text-white">
<p class="font-bold">
<Icon path={mdiFile} className="mr-2" />
Local Data -
{remoteNewer ? 'OLDER' : 'NEWER'}
</p>
<p class="text-gray-400 mt-1">Last modified: {localFormatted}</p>
2020-11-06 08:24:41 +00:00
<Button disabled={loading} className="mt-2 w-full" on:click={useLocalData}>
<Icon path={loading ? mdiLoading : mdiUpload} spin={loading} className="mr-1" />Replace Google Drive Data
2020-11-05 06:29:58 +00:00
</Button>
</div>
<div class="flex mt-6 justify-end">
2020-11-05 10:27:12 +00:00
<Button className="w-full md:w-auto" on:click={downloadBackup}>
2020-11-05 06:29:58 +00:00
<Icon path={mdiContentSave} className="mr-1" />Download Both Data
</Button>
</div>