Skip to content

Commit 89b9ea3

Browse files
committed
Improve Schedule layout
1 parent c2000a9 commit 89b9ea3

File tree

4 files changed

+67
-7
lines changed

4 files changed

+67
-7
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
@props([
2+
'color',
3+
'icon',
4+
'label',
5+
])
6+
<div {{ $attributes->style([
7+
Illuminate\Support\Arr::toCssStyles([
8+
\Filament\Support\get_color_css_variables(
9+
$color,
10+
shades: [400, 900],
11+
),
12+
]),
13+
]) }}>
14+
<div {{ $attributes->class([
15+
'flex items-center gap-1 rounded-full px-2 py-1 text-xs font-semibold leading-tight shadow bg-custom-400 text-custom-900',
16+
]) }}>
17+
@svg($icon, 'h-5 w-5')
18+
19+
<span>{{ $label }}</span>
20+
</div>
21+
</div>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<x-cachet::badge :color="$color" :label="$label" :icon="$icon" />

resources/views/components/schedule.blade.php

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
11
<li class="p-4" x-data="{ timestamp: new Date(@js($schedule->scheduled_at)) }">
22
<div class="flex flex-col-reverse items-start justify-between gap-4 md:flex-row md:items-center">
3-
<div class="flex items-start gap-2.5">
3+
<div class="flex items-start gap-2.5 w-full">
44
<span class="mt-1.5 h-3 w-3 shrink-0 rounded-full bg-orange-200 animate-pulse"></span>
5-
<div>
6-
<div class="flex flex-col sm:flex-row gap-x-2 gap-y">
7-
<h3 class="font-semibold leading-6">{{ $schedule->name }}</h3>
8-
<div class="flex grow text-sm sm:text-xs gap-2 text-zinc-500 dark:text-zinc-400 items-center">
9-
@svg('cachet-clock', 'size-4 hidden sm:block')
10-
<span x-text="timestamp.toLocaleString()"></span>
5+
<div class="flex-1">
6+
<div class="flex flex-col sm:flex-row justify-between gap-2 flex-col-reverse items-center">
7+
<div class="flex flex-col flex-1">
8+
<h3 class="max-w-full text-base font-semibold break-words sm:text-xl">
9+
{{ $schedule->name}}
10+
</h3>
11+
<span class="text-xs text-zinc-500 dark:text-zinc-400">
12+
{{ $schedule->scheduled_at->diffForHumans() }} — <span x-text="timestamp.toLocaleString()"></span>
13+
</span>
14+
</div>
15+
<div class="flex justify-start sm:justify-end">
16+
<x-cachet::schedule-badge :schedule="$schedule" />
1117
</div>
1218
</div>
1319
<div class="prose-sm md:prose md:prose-zinc dark:text-zinc-100">

src/View/Components/ScheduleBadge.php

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
3+
namespace Cachet\View\Components;
4+
5+
use Cachet\Enums\ScheduleStatusEnum;
6+
use Cachet\Models\Schedule;
7+
use Closure;
8+
use Illuminate\Contracts\View\View;
9+
use Illuminate\View\Component;
10+
11+
class ScheduleBadge extends Component
12+
{
13+
/**
14+
* Create a new component instance.
15+
*/
16+
public function __construct(public readonly Schedule $schedule)
17+
{
18+
//
19+
}
20+
21+
/**
22+
* Get the view / contents that represent the component.
23+
*/
24+
public function render(): View|Closure|string
25+
{
26+
return view('cachet::components.schedule-badge', [
27+
'label' => $this->schedule->status->getLabel(),
28+
'color' => $this->schedule->status->getColor(),
29+
'icon' => $this->schedule->status->getIcon(),
30+
]);
31+
}
32+
}

0 commit comments

Comments
 (0)