Skip to content

Commit 1af97f7

Browse files
authored
Update to Statamic v6 (#60)
* v6 * tidy * fix asset build
1 parent f600974 commit 1af97f7

11 files changed

Lines changed: 54 additions & 133 deletions

File tree

.gitignore

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
/dist
22
/node_modules
3-
/mix-manifest.json
4-
/yarn.lock
5-
/js/cp.js
6-
/package-lock.json
73
/vendor
8-
/composer.lock
4+
/js/cp.js
5+
package-lock.json
6+
composer.lock

.nvmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
22

composer.json

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,24 @@
99
}
1010
],
1111
"require": {
12-
"php": "^8.2",
13-
"laravel/framework": "^10.0 || ^11.0 || ^12.0",
12+
"php": "^8.3",
1413
"pixelfear/composer-dist-plugin": "^0.1",
15-
"statamic/cms": "^5.0"
14+
"statamic/cms": "^6.0"
1615
},
1716
"require-dev": {
1817
"mockery/mockery": "^1.3.1",
1918
"nunomaduro/collision": "^8.1",
20-
"orchestra/testbench": "^9.0 || ^10.0",
19+
"orchestra/testbench": "^10.0",
2120
"phpunit/phpunit": "^11.0",
2221
"spatie/laravel-ray": "^1.32"
2322
},
2423
"autoload": {
2524
"psr-4": {
2625
"TransformStudios\\Review\\": "src"
27-
}
26+
},
27+
"files": [
28+
"src/helpers.php"
29+
]
2830
},
2931
"config": {
3032
"allow-plugins": {
@@ -33,7 +35,7 @@
3335
},
3436
"extra": {
3537
"download-dist": {
36-
"path": "dist",
38+
"path": "resources/dist",
3739
"url": "https://github.com/transformstudios/statamic-review/releases/download/{$version}/dist.tar.gz"
3840
},
3941
"laravel": {

package.json

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
{
2-
"dependencies": {
3-
"vue": "^2.6.11"
4-
},
52
"scripts": {
63
"dev": "vite",
74
"build": "vite build",
85
"production": "vite build"
96
},
7+
"dependencies": {
8+
"@statamic/cms": "file:./vendor/statamic/cms/resources/dist-package",
9+
"@tailwindcss/vite": "^4.1.18",
10+
"tailwindcss": "^4.1.18"
11+
},
1012
"devDependencies": {
11-
"@vitejs/plugin-vue2": "^2.2.0",
12-
"laravel-vite-plugin": "^0.7.2",
13-
"vite": "^4.0.0"
13+
"laravel-vite-plugin": "^2.0",
14+
"vite": "^7.0"
1415
}
1516
}

resources/css/cp.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
@import "@statamic/cms/tailwind.css";
Lines changed: 25 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,32 @@
11
<template>
22
<div>
3-
<button
4-
type="button"
5-
class="btn"
6-
:disabled="!show"
3+
<Button
74
@click="copyToClipboard"
8-
v-text="__('Copy Review URL to Clipboard')"
9-
>
10-
</button>
5+
:disabled="!show"
6+
:text="__('Copy Review URL to Clipboard')"
7+
/>
118
</div>
129
</template>
1310

14-
<script>
15-
export default {
16-
mixins: [Fieldtype],
17-
18-
computed: {
19-
entryDate() {
20-
let dateTime = this.publishForm.values.date;
21-
22-
if (!dateTime) {
23-
return null
24-
}
25-
26-
return moment(dateTime.date + 'T' + dateTime.time, 'YYYY-MM-DDTHH:mm');
27-
},
28-
29-
isFuture() {
30-
return this.entryDate?.isAfter(moment());
31-
},
32-
33-
isWorkingCopy() {
34-
return this.publishForm.revisionsEnabled && this.publishForm.isWorkingCopy;
35-
},
36-
37-
publishForm() {
38-
let vm = this;
39-
while (true) {
40-
let parent = vm.$parent;
41-
42-
if (!parent) {
43-
return false;
44-
}
45-
46-
if (parent.$options._componentTag == "entry-publish-form") {
47-
return parent;
48-
}
49-
vm = parent;
50-
}
51-
},
52-
53-
show() {
54-
if (!this.publishForm) {
55-
return false;
56-
}
57-
58-
if (this.publishForm.isDirty) {
59-
return false;
60-
}
61-
62-
return this.isWorkingCopy || !this.publishForm.published || this.isFuture;
63-
},
64-
65-
},
66-
67-
methods: {
68-
copyToClipboard() {
69-
navigator.clipboard.writeText(this.meta.site_url);
70-
this.$toast.success(__("Review URL copied to clipboard"));
71-
},
72-
73-
},
74-
};
11+
<script setup>
12+
import { computed } from 'vue';
13+
import { Fieldtype } from '@statamic/cms';
14+
import { toast } from '@statamic/cms/api';
15+
import { Button, injectPublishContext } from '@statamic/cms/ui';
16+
17+
const props = defineProps(Fieldtype.props);
18+
const { isDirty, isWorkingCopy, revisionsEnabled, values } = injectPublishContext();
19+
20+
const entryDate = computed(() => values.value.date ? new Date(values.value.date) : null);
21+
const isFuture = computed(() => entryDate.value > Date.now());
22+
const show = computed(() => !isDirty.value &&
23+
((isWorkingCopy.value && revisionsEnabled.value) ||
24+
!values.value.published ||
25+
isFuture.value)
26+
);
27+
28+
function copyToClipboard() {
29+
navigator.clipboard.writeText(props.meta.site_url);
30+
toast.success(__("Review URL copied to clipboard"));
31+
};
7532
</script>

src/Fieldtypes/Review.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
namespace TransformStudios\Review\Fieldtypes;
44

55
use Statamic\Entries\Collection;
6-
use Statamic\Entries\Entry;
76
use Statamic\Fields\Fieldtype;
87
use TransformStudios\Review\Support\URL;
98

@@ -34,6 +33,6 @@ public function preload()
3433
return [];
3534
}
3635

37-
return ['site_url' => URL::reviewUrl($entry)];
36+
return ['site_url' => review_url($entry)];
3837
}
3938
}

src/Http/Middleware/SetSite.php

Lines changed: 0 additions & 22 deletions
This file was deleted.

src/ServiceProvider.php

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,11 @@
33
namespace TransformStudios\Review;
44

55
use Statamic\Providers\AddonServiceProvider;
6-
use TransformStudios\Review\Actions\OpenReview;
7-
use TransformStudios\Review\Fieldtypes\Review;
86

97
class ServiceProvider extends AddonServiceProvider
108
{
11-
protected $actions = [
12-
OpenReview::class,
13-
];
14-
15-
protected $fieldtypes = [
16-
Review::class,
17-
];
18-
199
protected $vite = [
20-
'input' => ['resources/js/cp.js'],
10+
'input' => ['resources/css/cp.css', 'resources/js/cp.js'],
2111
'publicDirectory' => 'dist',
22-
'hotFile' => __DIR__.'/../dist/hot',
2312
];
2413
}
Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
<?php
22

3-
namespace TransformStudios\Review\Support;
4-
53
use Statamic\Entries\Entry;
64
use Statamic\Facades\Token as TokenFacade;
75
use Statamic\Tokens\Token;
86
use TransformStudios\Review\TokenHandler;
97

10-
class URL
11-
{
12-
public static function reviewUrl(Entry $entry): string
8+
if (! function_exists('review_url')) {
9+
function review_url(Entry $entry): string
1310
{
1411
/** @var \Statamic\Tokens\Token */
1512
if (! $token = TokenFacade::find($entry->id())) {

0 commit comments

Comments
 (0)