refactor: merombak penempatan smua file view

This commit is contained in:
Yoga Pangestu 2025-12-09 13:33:49 +07:00
parent 2a48930662
commit 5dbe7a5f8d
48 changed files with 215 additions and 117 deletions

View File

@ -1,4 +1,4 @@
<flux:modal.trigger name="delete">
<flux:modal.trigger name="delete-confirmation">
<flux:tooltip content="Hapus">
<flux:button variant="danger" icon="trash" size="sm"
wire:click="$dispatch('fn:confirmAction', {id: '{{ $id }}'})">

View File

@ -1,17 +0,0 @@
<flux:modal name="delete" class="w-[22rem]">
<div class="space-y-6">
<div>
<flux:heading size="lg">{{ $confirmingTitle }}</flux:heading>
<flux:text class="mt-2">{{ $confirmingMessage }}</flux:text>
</div>
<div class="flex gap-2">
<flux:spacer />
<flux:modal.close>
<flux:button variant="ghost">Batal</flux:button>
</flux:modal.close>
<flux:button type="submit" variant="danger" wire:click="delete('{{ $confirmingId }}')">
{{ $confirmingButtonText }}
</flux:button>
</div>
</div>
</flux:modal>

View File

@ -1,17 +0,0 @@
<flux:modal name="reset-password" class="w-[22rem]">
<div class="space-y-6">
<div>
<flux:heading size="lg">{{ $confirmingTitle }}</flux:heading>
<flux:text class="mt-2">{{ $confirmingMessage }}</flux:text>
</div>
<div class="flex gap-2">
<flux:spacer />
<flux:modal.close>
<flux:button variant="ghost">Batal</flux:button>
</flux:modal.close>
<flux:button type="submit" variant="danger" wire:click="resetPassword('{{ $confirmingId }}')">
{{ $confirmingButtonText }}
</flux:button>
</div>
</div>
</flux:modal>

View File

@ -13,7 +13,7 @@
</head>
<body>
@include('components.partials.home._header')
@include('components.sections.ui.home._header')
@persist('toast')
<flux:toast position="bottom end" class="ps-6" />

View File

@ -13,8 +13,8 @@
</head>
<body class="min-h-screen bg-white dark:bg-zinc-800">
@include('components.partials.member._sidebar')
@include('components.partials.member._header')
@include('components.sections.ui.member._sidebar')
@include('components.sections.ui.member._header')
@persist('toast')
<flux:toast position="bottom end" class="ps-6" />

View File

@ -13,8 +13,8 @@
</head>
<body class="min-h-screen bg-white dark:bg-zinc-800">
@include('components.partials.studio._sidebar')
@include('components.partials.studio._header')
@include('components.sections.ui.studio._sidebar')
@include('components.sections.ui.studio._header')
@persist('toast')
<flux:toast position="bottom end" class="ps-6" />

View File

@ -1,17 +1,17 @@
<flux:modal name="confirmation-modal" class="w-[22rem]">
<flux:modal name="{{ $modalName }}" class="w-[22rem]">
<div class="space-y-6">
<div>
<flux:heading size="lg">{{ $confirmingTitle }}</flux:heading>
<flux:text class="mt-2">{{ $confirmingMessage }}</flux:text>
<flux:heading size="lg">{{ $modalTitle }}</flux:heading>
<flux:text class="mt-2">{{ $modalMessage }}</flux:text>
</div>
<div class="flex gap-2">
<flux:spacer />
<flux:modal.close>
<flux:button variant="ghost">Batal</flux:button>
</flux:modal.close>
<flux:button type="submit" variant="primary" color="{{ $confirmButtonColor }}"
<flux:button type="submit" variant="{{ $buttonVariant }}" color="{{ $buttonColor }}"
wire:click="{{ $target }}('{{ $confirmingId }}')">
{{ $confirmingButtonText }}
{{ $buttonText }}
</flux:button>
</div>
</div>

View File

@ -1,34 +0,0 @@
<flux:header class="bg-zinc-50 dark:bg-zinc-900 border-b border-zinc-200 dark:border-zinc-700">
<flux:sidebar.toggle class="lg:hidden" icon="bars-2" />
<flux:brand logo="{{ asset('assets/images/logo.png') }}" name="Yadi Parfum" class="max-lg:hidden dark:hidden" />
<flux:brand logo="{{ asset('assets/images/dark-logo.png') }}" name="Yadi Parfum"
class="max-lg:hidden! hidden dark:flex" />
<flux:spacer />
<flux:navbar class="me-4">
{{-- <flux:navbar.item icon="bell" label="Notifikasi" /> --}}
<flux:navbar.item x-data x-on:click="$flux.dark = ! $flux.dark">
<template x-if="$flux.dark">
<div class="flex items-center gap-2">
<flux:icon name="sun" class="w-5 h-5" />
</div>
</template>
<template x-if="!$flux.dark">
<div class="flex items-center gap-2">
<flux:icon name="moon" class="w-5 h-5" />
</div>
</template>
</flux:navbar.item>
</flux:navbar>
<flux:dropdown position="top" align="end">
<flux:profile circle name="{{ auth()->user()?->customer?->name }}" />
<flux:navmenu>
<flux:navmenu.item href="{{ route('studio.setting.account', auth()->id()) }}" icon="cog"
wire:navigate.hover>
Pengaturan
</flux:navmenu.item>
<flux:menu.separator />
@livewire('auth.logout')
</flux:navmenu>
</flux:dropdown>
</flux:header>

View File

@ -43,7 +43,7 @@ class="px-2 py-1 inline-flex text-xs font-semibold rounded-full
</p>
</flux:card>
@empty
@include('components.lottie.not-found')
@include('components.animations.lottie.not-found')
@endforelse
</div>

View File

@ -0,0 +1,4 @@
@include('components.sections.ui.shared._header', [
'profileName' => auth()->user()?->customer?->name,
'settingsRoute' => route('studio.setting.account', auth()->id())
])

View File

@ -21,9 +21,9 @@ class="max-lg:hidden! hidden dark:flex" />
</flux:navbar.item>
</flux:navbar>
<flux:dropdown position="top" align="end">
<flux:profile circle name="{{ auth()->user()?->employee?->full_name }}" />
<flux:profile circle name="{{ $profileName }}" />
<flux:navmenu>
<flux:navmenu.item href="{{ route('studio.setting.account') }}" icon="cog" wire:navigate.hover>
<flux:navmenu.item href="{{ $settingsRoute }}" icon="cog" wire:navigate.hover>
Pengaturan
</flux:navmenu.item>
<flux:menu.separator />

View File

@ -0,0 +1,4 @@
@include('components.sections.ui.shared._header', [
'profileName' => auth()->user()?->employee?->full_name,
'settingsRoute' => route('studio.setting.account')
])

View File

@ -64,7 +64,7 @@ class="inline-block px-2 py-1 border border-emerald-300 dark:border-emerald-700
</div>
@else
@include('components.lottie.not-found')
@include('components.animations.lottie.not-found')
@endif
</div>
</flux:main>

View File

@ -25,6 +25,13 @@ class="text-sm">
<livewire:datatable.studio.catalog.bottles-table />
</div>
@include('components.confirmation.delete')
@include('components.confirmation.show-price', ['module' => 'botol'])
@include('components.modals.confirmation', [
'modalName' => 'confirmation-modal',
'modalTitle' => 'Apakah Anda yakin?',
'modalMessage' => 'Data yang berelasi dengan data ini juga akan ikut terhapus.',
'buttonVariant' => 'primary',
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
@include('components.modals.confirmations.request-price', ['module' => 'botol'])
</flux:main>

View File

@ -18,7 +18,14 @@
<livewire:datatable.studio.catalog.brands-table />
</div>
@include('components.confirmation.delete')
@include('components.modals.confirmation', [
'modalName' => 'confirmation-modal',
'modalTitle' => 'Apakah Anda yakin?',
'modalMessage' => 'Data yang berelasi dengan data ini juga akan ikut terhapus.',
'buttonVariant' => 'primary',
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
<flux:modal name="form-modal" class="w-[95%] max-w-sm md:max-w-xl mx-auto" @close="closeModal('form-modal')">
<div class="p-4 space-y-6">
<flux:heading size="lg">{{ $modalTitle }}</flux:heading>

View File

@ -18,7 +18,14 @@
<livewire:datatable.studio.catalog.categories-table />
</div>
@include('components.confirmation.delete')
@include('components.modals.confirmation', [
'modalName' => 'confirmation-modal',
'modalTitle' => 'Apakah Anda yakin?',
'modalMessage' => 'Data yang berelasi dengan data ini juga akan ikut terhapus.',
'buttonVariant' => 'primary',
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
<flux:modal name="form-modal" class="w-[95%] max-w-sm md:max-w-xl mx-auto" @close="closeModal('form-modal')">
<div class="p-4 space-y-6">
<flux:heading size="lg">{{ $modalTitle }}</flux:heading>

View File

@ -25,6 +25,13 @@ class="text-sm">
<livewire:datatable.studio.catalog.perfumes-table />
</div>
@include('components.confirmation.delete')
@include('components.confirmation.show-price', ['module' => 'parfum'])
@include('components.modals.confirmation', [
'modalName' => 'confirmation-modal',
'modalTitle' => 'Apakah Anda yakin?',
'modalMessage' => 'Data yang berelasi dengan data ini juga akan ikut terhapus.',
'buttonVariant' => 'primary',
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
@include('components.modals.confirmations.request-price', ['module' => 'parfum'])
</flux:main>

View File

@ -25,6 +25,13 @@ class="text-sm">
<livewire:datatable.studio.catalog.products-table />
</div>
@include('components.confirmation.delete')
@include('components.confirmation.show-price', ['module' => 'produk'])
@include('components.modals.confirmation', [
'modalName' => 'confirmation-modal',
'modalTitle' => 'Apakah Anda yakin?',
'modalMessage' => 'Data yang berelasi dengan data ini juga akan ikut terhapus.',
'buttonVariant' => 'primary',
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
@include('components.modals.confirmations.request-price', ['module' => 'produk'])
</flux:main>

View File

@ -19,7 +19,14 @@
<livewire:datatable.studio.feature.choose-us-table />
</div>
@include('components.confirmation.delete')
@include('components.modals.confirmation', [
'modalName' => 'confirmation-modal',
'modalTitle' => 'Apakah Anda yakin?',
'modalMessage' => 'Data yang berelasi dengan data ini juga akan ikut terhapus.',
'buttonVariant' => 'primary',
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
<flux:modal name="form-modal" class="w-[95%] max-w-sm md:max-w-xl mx-auto" @close="closeModal('form-modal')">
<div class="p-4 space-y-6">
<flux:heading size="lg">{{ $modalTitle }}</flux:heading>

View File

@ -26,7 +26,14 @@
<livewire:datatable.studio.feature.perfume-features-table />
</div>
@include('components.confirmation.delete')
@include('components.modals.confirmation', [
'modalName' => 'confirmation-modal',
'modalTitle' => 'Apakah Anda yakin?',
'modalMessage' => 'Data yang berelasi dengan data ini juga akan ikut terhapus.',
'buttonVariant' => 'primary',
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
<flux:modal name="form-modal" class="w-[95%] max-w-sm md:max-w-xl mx-auto" @close="closeModal('form-modal')">
<div class="p-4 space-y-6">
<flux:heading size="lg">{{ $modalTitle }}</flux:heading>

View File

@ -19,7 +19,14 @@
<livewire:datatable.studio.finance.expenses-table />
</div>
@include('components.confirmation.delete')
@include('components.modals.confirmation', [
'modalName' => 'confirmation-modal',
'modalTitle' => 'Apakah Anda yakin?',
'modalMessage' => 'Data yang berelasi dengan data ini juga akan ikut terhapus.',
'buttonVariant' => 'primary',
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
<flux:modal name="form-modal" class="w-[95%] max-w-sm md:max-w-xl mx-auto" @close="closeModal('form-modal')">
<div class="p-4 space-y-6">
<flux:heading size="lg">{{ $modalTitle }}</flux:heading>

View File

@ -66,7 +66,7 @@ class="font-bold {{ $item->type->value == \App\Enums\SalaryAdjustmentType::DEDUC
</div>
<div class="text-gray-400 text-[12px]">{{ $item->description }}</div>
</div>
<flux:modal.trigger name="delete">
<flux:modal.trigger name="delete-confirmation">
<flux:button variant="danger" icon="trash" size="sm"
wire:click="$dispatch('fn:confirmAction', {id: '{{ $item->id }}'})">
</flux:button>
@ -87,7 +87,14 @@ class="font-bold {{ $item->type->value == \App\Enums\SalaryAdjustmentType::DEDUC
<livewire:datatable.studio.finance.payrolls-table />
</div>
@include('components.confirmation.delete')
@include('components.modals.confirmation', [
'modalName' => 'confirmation-modal',
'modalTitle' => 'Apakah Anda yakin?',
'modalMessage' => 'Data yang berelasi dengan data ini juga akan ikut terhapus.',
'buttonVariant' => 'primary',
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
<flux:modal name="form-modal" class="w-[95%] max-w-sm md:max-w-xl mx-auto" @close="closeModal('form-modal')">
<div class="p-4 space-y-6">

View File

@ -18,7 +18,14 @@
<livewire:datatable.studio.information.broadcasts-table />
</div>
@include('components.confirmation.delete')
@include('components.modals.confirmation', [
'modalName' => 'confirmation-modal',
'modalTitle' => 'Apakah Anda yakin?',
'modalMessage' => 'Data yang berelasi dengan data ini juga akan ikut terhapus.',
'buttonVariant' => 'primary',
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
<flux:modal name="form-modal" class="w-[95%] max-w-sm md:max-w-xl mx-auto" @close="closeModal('form-modal')">
<div class="p-4 space-y-6">
<flux:heading size="lg">{{ $modalTitle }}</flux:heading>

View File

@ -18,7 +18,14 @@
<livewire:datatable.studio.information.faqs-table />
</div>
@include('components.confirmation.delete')
@include('components.modals.confirmation', [
'modalName' => 'confirmation-modal',
'modalTitle' => 'Apakah Anda yakin?',
'modalMessage' => 'Data yang berelasi dengan data ini juga akan ikut terhapus.',
'buttonVariant' => 'primary',
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
<flux:modal name="form-modal" class="w-[95%] max-w-sm md:max-w-xl mx-auto" @close="closeModal('form-modal')">
<div class="p-4 space-y-6">
<flux:heading size="lg">{{ $modalTitle }}</flux:heading>

View File

@ -9,5 +9,12 @@
<livewire:datatable.studio.information.price-requests-table />
</div>
@include('components.confirmation')
@include('components.modals.confirmation', [
'modalName' => 'confirmation-modal',
'modalTitle' => 'Apakah Anda yakin?',
'modalMessage' => 'Data yang berelasi dengan data ini juga akan ikut terhapus.',
'buttonVariant' => 'primary',
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
</flux:main>

View File

@ -29,7 +29,14 @@
<livewire:datatable.studio.loyalty.customers-table />
</div>
@include('components.confirmation.delete')
@include('components.modals.confirmation', [
'modalName' => 'confirmation-modal',
'modalTitle' => 'Apakah Anda yakin?',
'modalMessage' => 'Data yang berelasi dengan data ini juga akan ikut terhapus.',
'buttonVariant' => 'primary',
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
<flux:modal name="form-modal" class="w-[95%] max-w-sm md:max-w-xl mx-auto" @close="closeModal('form-modal')">
<div class="p-4 space-y-6">
<flux:heading size="lg">{{ $modalTitle }}</flux:heading>

View File

@ -144,7 +144,7 @@ class="mt-2 bg-white dark:bg-gray-800 rounded-lg shadow p-4 text-gray-700 dark:t
@endcan
@can('delete tier')
<flux:modal.trigger name="delete">
<flux:modal.trigger name="delete-confirmation">
<flux:tooltip content="Hapus">
<flux:button variant="danger" icon="trash" size="sm"
wire:click="$dispatch('fn:confirmAction', {id: '{{ $tier['hash'] }}'})">
@ -159,7 +159,14 @@ class="mt-2 bg-white dark:bg-gray-800 rounded-lg shadow p-4 text-gray-700 dark:t
</div>
</div>
@include('components.confirmation.delete')
@include('components.modals.confirmation', [
'modalName' => 'confirmation-modal',
'modalTitle' => 'Apakah Anda yakin?',
'modalMessage' => 'Data yang berelasi dengan data ini juga akan ikut terhapus.',
'buttonVariant' => 'primary',
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
<flux:modal name="form-modal" class="w-[95%] max-w-sm md:max-w-xl mx-auto" @close="closeModal('form-modal')">
<div class="p-4 space-y-6">
<flux:heading size="lg">{{ $modalTitle }}</flux:heading>

View File

@ -30,7 +30,7 @@
@endcan
@can('update tier reward')
<flux:modal.trigger name="delete">
<flux:modal.trigger name="delete-confirmation">
<flux:tooltip content="Hapus">
<flux:button variant="danger" icon="trash" size="sm"
wire:click="$dispatch('fn:confirmAction', {id: '{{ $reward['hash'] }}'})">
@ -82,5 +82,12 @@
</div>
</flux:modal>
@include('components.confirmation.delete')
@include('components.modals.confirmation', [
'modalName' => 'confirmation-modal',
'modalTitle' => 'Apakah Anda yakin?',
'modalMessage' => 'Data yang berelasi dengan data ini juga akan ikut terhapus.',
'buttonVariant' => 'primary',
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
</div>

View File

@ -28,5 +28,12 @@ class="text-sm">
<livewire:datatable.studio.loyalty.vouchers-table />
</div>
@include('components.confirmation.delete')
@include('components.modals.confirmation', [
'modalName' => 'confirmation-modal',
'modalTitle' => 'Apakah Anda yakin?',
'modalMessage' => 'Data yang berelasi dengan data ini juga akan ikut terhapus.',
'buttonVariant' => 'primary',
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
</flux:main>

View File

@ -3,7 +3,7 @@
<div>
<flux:heading size="xl">{{ $pageTitle }}</flux:heading>
</div>
@can ('create article')
@can('create article')
<div>
<flux:button href="{{ route('studio.manage.article.create') }}" variant="primary" wire:navigate.hover
class="text-sm">
@ -17,5 +17,12 @@ class="text-sm">
<livewire:datatable.studio.manage.articles-table />
</div>
@include('components.confirmation.delete')
@include('components.modals.confirmation', [
'modalName' => 'confirmation-modal',
'modalTitle' => 'Apakah Anda yakin?',
'modalMessage' => 'Data yang berelasi dengan data ini juga akan ikut terhapus.',
'buttonVariant' => 'primary',
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
</flux:main>

View File

@ -20,7 +20,14 @@ class="text-sm">
<livewire:datatable.studio.manage.orders-table />
</div>
@include('components.confirmation.delete')
@include('components.modals.confirmation', [
'modalName' => 'confirmation-modal',
'modalTitle' => 'Apakah Anda yakin?',
'modalMessage' => 'Data yang berelasi dengan data ini juga akan ikut terhapus.',
'buttonVariant' => 'primary',
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
</flux:main>
@script

View File

@ -24,5 +24,12 @@ class="text-sm">
<livewire:datatable.studio.manage.purchases-table />
</div>
@include('components.confirmation.delete')
@include('components.modals.confirmation', [
'modalName' => 'confirmation-modal',
'modalTitle' => 'Apakah Anda yakin?',
'modalMessage' => 'Data yang berelasi dengan data ini juga akan ikut terhapus.',
'buttonVariant' => 'primary',
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
</flux:main>

View File

@ -102,5 +102,12 @@
<livewire:datatable.studio.manage.stock-opname-table />
</div>
@include('components.confirmation')
@include('components.modals.confirmation', [
'modalName' => 'confirmation-modal',
'modalTitle' => 'Apakah Anda yakin?',
'modalMessage' => 'Data yang berelasi dengan data ini juga akan ikut terhapus.',
'buttonVariant' => 'primary',
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
</flux:main>

View File

@ -45,7 +45,7 @@
@endcan
@can('delete formula')
<flux:modal.trigger name="delete">
<flux:modal.trigger name="delete-confirmation">
<flux:tooltip content="Hapus">
<flux:button variant="danger" icon="trash" size="sm"
wire:click="$dispatch('fn:confirmAction', {id: '{{ $item['hash'] }}'})">
@ -61,11 +61,18 @@
@endforeach
</div>
@else
@include('components.lottie.not-found')
@include('components.animations.lottie.not-found')
@endif
</div>
@include('components.confirmation.delete')
@include('components.modals.confirmation', [
'modalName' => 'confirmation-modal',
'modalTitle' => 'Apakah Anda yakin?',
'modalMessage' => 'Data yang berelasi dengan data ini juga akan ikut terhapus.',
'buttonVariant' => 'primary',
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
<flux:modal name="form-modal" class="w-[95%] max-w-sm md:max-w-xl mx-auto" @close="closeModal('form-modal')">
<div class="p-4 space-y-6">
<flux:heading size="lg">{{ $modalTitle }}</flux:heading>

View File

@ -194,7 +194,7 @@ class="text-gray-700 dark:text-gray-300">{{ $employee['resign_date'] }}</span>
@endcan
@can('delete user')
<flux:modal.trigger name="delete">
<flux:modal.trigger name="delete-confirmation">
<flux:tooltip content="Hapus">
<flux:button variant="danger" icon="trash" size="sm"
wire:click="$dispatch('fn:confirmAction', {id: '{{ $employee['user']['hash'] }}'})">
@ -209,13 +209,24 @@ class="text-gray-700 dark:text-gray-300">{{ $employee['resign_date'] }}</span>
@endforeach
</div>
@else
@include('components.lottie.not-found')
@include('components.animations.lottie.not-found')
@endif
</div>
@include('components.confirmation.delete')
@include('components.confirmation.reset-password')
@include('components.modals.confirmation', [
'modalName' => 'confirmation-modal',
'modalTitle' => 'Apakah Anda yakin?',
'modalMessage' => 'Data yang berelasi dengan data ini juga akan ikut terhapus.',
'buttonVariant' => 'primary',
'buttonColor' => 'danger',
'buttonText' => 'Ya, Hapus',
])
@include('components.modals.confirmation', [
'modalName' => 'reset-password',
'confirmButtonColor' => 'danger',
'target' => 'resetPassword',
])
</flux:main>
@assets
<script src="https://unpkg.com/@lottiefiles/dotlottie-wc@0.8.5/dist/dotlottie-wc.js" type="module"></script>