intial push
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
<x-filament-panels::page wire:init="loadSaves">
|
||||
@if(!$savesLoaded)
|
||||
<x-filament::section>
|
||||
<div class="flex items-center justify-center gap-2 py-12">
|
||||
<x-filament::loading-indicator class="h-5 w-5 text-gray-400 dark:text-gray-500" />
|
||||
<span class="text-sm text-gray-500 dark:text-gray-400">{{ trans('blockland-config::blockland-config.loading_saves') }}</span>
|
||||
</div>
|
||||
</x-filament::section>
|
||||
@else
|
||||
<div class="flex flex-col gap-6">
|
||||
{{-- Upload to Saves --}}
|
||||
<x-filament::section :heading="trans('blockland-config::blockland-config.save_loader.upload')" :description="trans('blockland-config::blockland-config.save_loader.upload_hint')">
|
||||
<div class="rounded-xl border-2 transition {{ $uploadedFile ? 'border-gray-200 bg-gray-50 px-6 py-4 dark:border-gray-700 dark:bg-gray-800/50' : 'border-dashed border-gray-300 dark:border-gray-600' }}">
|
||||
@if($uploadedFile)
|
||||
<div class="space-y-4">
|
||||
<div class="flex flex-wrap items-center justify-between gap-4">
|
||||
<label class="flex min-w-0 cursor-pointer items-center gap-3">
|
||||
<x-filament::icon icon="tabler-file" class="h-6 w-6 shrink-0 text-primary-500 dark:text-primary-400" />
|
||||
<div class="min-w-0">
|
||||
<p class="truncate text-sm font-medium text-gray-950 dark:text-white">{{ $uploadedFile->getClientOriginalName() }}</p>
|
||||
<span class="text-xs text-primary-500 hover:underline dark:text-primary-400">{{ trans('blockland-config::blockland-config.save_loader.upload_change') }}</span>
|
||||
</div>
|
||||
<input type="file" wire:model="uploadedFile" accept=".bls" class="absolute h-px w-px overflow-hidden opacity-0" aria-hidden="true" tabindex="-1" />
|
||||
</label>
|
||||
<x-filament::button icon="tabler-upload" wire:click="uploadSave" wire:loading.attr="disabled">
|
||||
{{ trans('blockland-config::blockland-config.save_loader.upload_button') }}
|
||||
</x-filament::button>
|
||||
</div>
|
||||
<div class="border-t border-gray-200 pt-4 dark:border-white/10">
|
||||
<p class="mb-2 text-xs text-gray-500 dark:text-gray-400">{{ trans('blockland-config::blockland-config.save_loader.upload_preview_optional') }}</p>
|
||||
@if($uploadedPreviewFile)
|
||||
<div class="flex items-center gap-3">
|
||||
<label class="flex min-w-0 flex-1 cursor-pointer items-center gap-3">
|
||||
<div class="flex h-6 w-8 shrink-0 items-center justify-center overflow-hidden rounded bg-gray-200 dark:bg-gray-700">
|
||||
<img src="{{ $uploadedPreviewFile->temporaryUrl() }}" alt="" class="h-full w-full object-cover" />
|
||||
</div>
|
||||
<div class="min-w-0">
|
||||
<p class="truncate text-sm font-medium text-gray-950 dark:text-white">{{ $uploadedPreviewFile->getClientOriginalName() }}</p>
|
||||
<span class="text-xs text-primary-500 hover:underline dark:text-primary-400">{{ trans('blockland-config::blockland-config.save_loader.upload_preview_change') }}</span>
|
||||
</div>
|
||||
<input type="file" wire:model="uploadedPreviewFile" accept=".jpg,.jpeg,.png" class="absolute h-px w-px overflow-hidden opacity-0" aria-hidden="true" tabindex="-1" />
|
||||
</label>
|
||||
<button type="button" wire:click="removeUploadedPreviewFile" class="shrink-0 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300">
|
||||
<x-filament::icon icon="tabler-x" class="h-5 w-5" />
|
||||
</button>
|
||||
</div>
|
||||
@else
|
||||
<label class="flex cursor-pointer items-center gap-2 rounded-lg border border-dashed border-gray-300 px-3 py-2 text-sm transition dark:border-gray-600 hover:border-primary-500 dark:hover:border-primary-500">
|
||||
<x-filament::icon icon="tabler-photo-plus" class="h-5 w-5 text-gray-400 dark:text-gray-500" />
|
||||
<span class="text-gray-600 dark:text-gray-300">{{ trans('blockland-config::blockland-config.save_loader.upload_preview_add') }}</span>
|
||||
<input type="file" wire:model="uploadedPreviewFile" accept=".jpg,.jpeg,.png" class="absolute h-px w-px overflow-hidden opacity-0" aria-hidden="true" />
|
||||
</label>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
@else
|
||||
<label class="relative flex cursor-pointer flex-col items-center justify-center gap-2 px-6 py-8 sm:flex-row sm:py-6">
|
||||
<x-filament::icon icon="tabler-upload" class="h-10 w-10 shrink-0 text-gray-400 dark:text-gray-500" />
|
||||
<div class="text-center sm:text-left">
|
||||
<p class="text-sm font-medium text-gray-950 dark:text-white">{{ trans('blockland-config::blockland-config.save_loader.upload_drop_or_click') }}</p>
|
||||
<p class="text-xs text-gray-500 dark:text-gray-400">{{ trans('blockland-config::blockland-config.save_loader.upload_file_types') }}</p>
|
||||
</div>
|
||||
<input type="file" wire:model="uploadedFile" accept=".bls" class="absolute inset-0 h-full w-full cursor-pointer opacity-0" aria-hidden="true" />
|
||||
</label>
|
||||
@endif
|
||||
</div>
|
||||
</x-filament::section>
|
||||
|
||||
{{-- Saves Folder --}}
|
||||
<x-filament::section :heading="trans('blockland-config::blockland-config.save_loader.saves_folder')" :description="trans('blockland-config::blockland-config.save_loader.copy_hint')">
|
||||
@if(count($saves) > 0)
|
||||
<div class="divide-y divide-transparent dark:divide-white/10">
|
||||
@foreach($saves as $save)
|
||||
<div class="flex items-center justify-between gap-4 py-4" wire:key="save-{{ $save['path'] }}">
|
||||
<div class="flex min-w-0 flex-1 items-center gap-4">
|
||||
<div class="flex h-6 w-8 shrink-0 items-center justify-center overflow-hidden rounded bg-gray-100 dark:bg-gray-800">
|
||||
@if(isset($save['preview_url']))
|
||||
<img src="{{ $save['preview_url'] }}" alt="" class="h-full w-full object-cover" loading="lazy" />
|
||||
@else
|
||||
<x-filament::icon icon="tabler-file" class="h-4 w-4 text-gray-400 dark:text-gray-500" />
|
||||
@endif
|
||||
</div>
|
||||
<span class="truncate text-sm font-medium text-gray-950 dark:text-white">{{ $save['name'] }}</span>
|
||||
</div>
|
||||
<x-filament::button size="sm" icon="tabler-copy" wire:click="copyToTemp('{{ addslashes($save['path']) }}')" wire:loading.attr="disabled">
|
||||
{{ trans('blockland-config::blockland-config.save_loader.copy_to_temp') }}
|
||||
</x-filament::button>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@else
|
||||
<x-filament::empty-state
|
||||
icon="tabler-folder-off"
|
||||
:heading="trans('blockland-config::blockland-config.save_loader.no_saves')"
|
||||
/>
|
||||
@endif
|
||||
</x-filament::section>
|
||||
</div>
|
||||
@endif
|
||||
</x-filament-panels::page>
|
||||
Reference in New Issue
Block a user