Skip to content

Commit 1c8792a

Browse files
committed
refactor to use new computed defaults
1 parent 53574ad commit 1c8792a

4 files changed

Lines changed: 24 additions & 46 deletions

File tree

resources/blueprints/settings.yaml

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,28 +7,17 @@ tabs:
77
-
88
handle: collections
99
field:
10-
type: grid
10+
type: collections
1111
display: Collections
12-
sortable: false
13-
add_row: 'Add Collection'
14-
full_width_setting: true
15-
fields:
16-
-
17-
handle: collection
18-
field:
19-
type: collections
20-
display: Collection
21-
width: 50
22-
mode: select
23-
max_items: 1
24-
default:
25-
-
26-
collection: events
12+
width: 50
13+
mode: select
14+
default: events
2715
-
2816
handle: timezone
2917
field:
3018
dictionary: timezones
3119
max_items: 1
3220
type: dictionary
3321
display: Timezone
34-
full_width_setting: true
22+
default: computed:default-events-timezone
23+
width: 50

resources/fieldsets/event.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ fields:
1919
field:
2020
dictionary: timezones
2121
max_items: 1
22-
default: UTC
2322
type: dictionary
2423
display: Timezone
24+
default: computed:default-event-timezone
2525
width: 50
2626
-
2727
handle: specific_days

src/Events.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ class Events
4848

4949
public static function defaultTimezone(): string
5050
{
51-
return static::setting('timezone', config('statamic.system.display_timezone') ?? config('app.timezone', 'UTC'));
51+
// return static::setting('timezone', config('statamic.system.display_timezone') ?? config('app.timezone', 'UTC'));
52+
return static::setting('timezone');
5253
}
5354

5455
public static function fromCollection(string $handle): self
@@ -174,7 +175,7 @@ private function output(callable $type): EntryCollection|LengthAwarePaginator
174175
return $occurrence
175176
->setSupplement('start', $start)
176177
->setSupplement('end', $end)
177-
->setSupplement('spansDay', !$start->isSameDay($end));
178+
->setSupplement('spansDay', ! $start->isSameDay($end));
178179
});
179180
}
180181

src/ServiceProvider.php

Lines changed: 14 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,40 +2,28 @@
22

33
namespace TransformStudios\Events;
44

5-
use Statamic\Entries\Entry;
65
use Statamic\Facades\Collection;
7-
use Statamic\Fields\Field;
8-
use Statamic\Fields\Fields;
9-
use Statamic\Fields\Value;
10-
use Statamic\Fieldtypes\Dictionary;
6+
use Statamic\Facades\Field;
117
use Statamic\Providers\AddonServiceProvider;
128
use Statamic\Statamic;
139

1410
class ServiceProvider extends AddonServiceProvider
1511
{
1612
public function bootAddon()
1713
{
18-
// Fields::default('events_timezone', fn () => Statamic::displayTimezone());
19-
collect(Events::setting('collections', [['collection' => 'events']]))
20-
->each(fn (array $collection) => Collection::computed(
21-
$collection['collection'],
22-
'timezone',
23-
$this->timezone(...)
24-
));
25-
}
26-
27-
private function timezone(Entry $entry, $value): string|Value
28-
{
29-
$value ??= Events::defaultTimezone();
30-
31-
if ($entry->blueprint()->fields()->get('timezone')?->fieldtype() instanceof Dictionary) {
32-
return $value;
33-
}
14+
Field::computedDefault('default-events-timezone', fn () => Statamic::displayTimezone());
15+
Field::computedDefault('default-event-timezone', fn () => Events::defaultTimezone());
3416

35-
return (new Field('timezone', ['type' => 'timezones', 'max_items' => 1]))
36-
->setValue($value)
37-
->setParent($entry)
38-
->augment()
39-
->value();
17+
collect(Events::setting('collections', ['events']))
18+
->each(function (string $collection) {
19+
Collection::findByHandle($collection)->entryBlueprint()->ensureField(
20+
'timezone',
21+
[
22+
'dictionary' => 'timezones',
23+
'max_items' => '1',
24+
'type' => 'dictionary',
25+
'default' => 'computed:default-event-timezone',
26+
]);
27+
});
4028
}
4129
}

0 commit comments

Comments
 (0)