diff --git a/app/Jobs/CheckVersionUpdateJob.php b/app/Jobs/CheckVersionUpdateJob.php index c2413c0..0794688 100644 --- a/app/Jobs/CheckVersionUpdateJob.php +++ b/app/Jobs/CheckVersionUpdateJob.php @@ -156,7 +156,7 @@ class CheckVersionUpdateJob private function extractLatestVersion(array $response, bool $enablePrereleases): array { - if (! $enablePrereleases || ! isset($response[0])) { + if (! $enablePrereleases || ! is_array($response) || ! isset($response[0])) { return [ Arr::get($response, 'tag_name'), $response, diff --git a/app/Models/DeviceModel.php b/app/Models/DeviceModel.php index 7142829..f2a757f 100644 --- a/app/Models/DeviceModel.php +++ b/app/Models/DeviceModel.php @@ -4,13 +4,11 @@ declare(strict_types=1); namespace App\Models; -use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; /** - * @property-read array $css_variables * @property-read DevicePalette|null $palette */ final class DeviceModel extends Model @@ -78,37 +76,4 @@ final class DeviceModel extends Model { return $this->belongsTo(DevicePalette::class, 'palette_id'); } - - /** - * Returns css_variables with --screen-w and --screen-h filled from width/height - * when puppeteer_window_size_strategy is v2 and they are not set. - * - * @return Attribute, array> - */ - protected function cssVariables(): Attribute - { - /** @var Attribute, array> */ - return Attribute::get( - /** @return array */ - function (mixed $value, array $attributes): array { - $vars = is_array($value) ? $value : (is_string($value) ? (json_decode($value, true) ?? []) : []); - - if (config('app.puppeteer_window_size_strategy') !== 'v2') { - return $vars; - } - - $width = $attributes['width'] ?? null; - $height = $attributes['height'] ?? null; - - if (empty($vars['--screen-w']) && $width !== null && $width !== '') { - $vars['--screen-w'] = is_numeric($width) ? (int) $width.'px' : (string) $width; - } - if (empty($vars['--screen-h']) && $height !== null && $height !== '') { - $vars['--screen-h'] = is_numeric($height) ? (int) $height.'px' : (string) $height; - } - - /** @var array $vars */ - return $vars; - }); - } } diff --git a/app/Services/ImageGenerationService.php b/app/Services/ImageGenerationService.php index fa6f325..903a493 100644 --- a/app/Services/ImageGenerationService.php +++ b/app/Services/ImageGenerationService.php @@ -528,7 +528,7 @@ class ImageGenerationService 'deviceOrientation' => $deviceOrientation, 'colorDepth' => $colorDepth, 'scaleLevel' => $scaleLevel, - 'cssVariables' => $device->deviceModel?->css_variables ?? [], + 'cssVariables' => $device->deviceModel?->css_variables, ]; // Add plugin name for error screens diff --git a/storage/app/public/images/default-screens/setup-logo_1024_768_4_90.png b/storage/app/public/images/default-screens/setup-logo_1024_768_4_90.png deleted file mode 100644 index f02b9e9..0000000 Binary files a/storage/app/public/images/default-screens/setup-logo_1024_768_4_90.png and /dev/null differ diff --git a/storage/app/public/images/default-screens/setup-logo_1648_824_8_0.png b/storage/app/public/images/default-screens/setup-logo_1648_824_8_0.png deleted file mode 100644 index 3bc23a9..0000000 Binary files a/storage/app/public/images/default-screens/setup-logo_1648_824_8_0.png and /dev/null differ diff --git a/storage/app/public/images/default-screens/setup-logo_1872_1404_12_90.png b/storage/app/public/images/default-screens/setup-logo_1872_1404_12_90.png deleted file mode 100644 index 1c04367..0000000 Binary files a/storage/app/public/images/default-screens/setup-logo_1872_1404_12_90.png and /dev/null differ diff --git a/storage/app/public/images/default-screens/setup-logo_1872_1404_4_0.png b/storage/app/public/images/default-screens/setup-logo_1872_1404_4_0.png deleted file mode 100644 index 6f9c2cb..0000000 Binary files a/storage/app/public/images/default-screens/setup-logo_1872_1404_4_0.png and /dev/null differ diff --git a/storage/app/public/images/default-screens/setup-logo_1880_1264_4_90.png b/storage/app/public/images/default-screens/setup-logo_1880_1264_4_90.png deleted file mode 100644 index a7a00d0..0000000 Binary files a/storage/app/public/images/default-screens/setup-logo_1880_1264_4_90.png and /dev/null differ diff --git a/storage/app/public/images/default-screens/setup-logo_1920_1080_8_0.png b/storage/app/public/images/default-screens/setup-logo_1920_1080_8_0.png deleted file mode 100644 index 1633f31..0000000 Binary files a/storage/app/public/images/default-screens/setup-logo_1920_1080_8_0.png and /dev/null differ diff --git a/storage/app/public/images/default-screens/setup-logo_1920_1440_4_90.png b/storage/app/public/images/default-screens/setup-logo_1920_1440_4_90.png deleted file mode 100644 index f40d451..0000000 Binary files a/storage/app/public/images/default-screens/setup-logo_1920_1440_4_90.png and /dev/null differ diff --git a/storage/app/public/images/default-screens/setup-logo_2480_1860_8_90.png b/storage/app/public/images/default-screens/setup-logo_2480_1860_8_90.png deleted file mode 100644 index ec4e753..0000000 Binary files a/storage/app/public/images/default-screens/setup-logo_2480_1860_8_90.png and /dev/null differ diff --git a/storage/app/public/images/default-screens/setup-logo_960_540_4_0.png b/storage/app/public/images/default-screens/setup-logo_960_540_4_0.png deleted file mode 100644 index 10e01ef..0000000 Binary files a/storage/app/public/images/default-screens/setup-logo_960_540_4_0.png and /dev/null differ diff --git a/storage/app/public/images/default-screens/sleep_1024_768_4_90.png b/storage/app/public/images/default-screens/sleep_1024_768_4_90.png deleted file mode 100644 index c17be3e..0000000 Binary files a/storage/app/public/images/default-screens/sleep_1024_768_4_90.png and /dev/null differ diff --git a/storage/app/public/images/default-screens/sleep_1648_824_8_0.png b/storage/app/public/images/default-screens/sleep_1648_824_8_0.png deleted file mode 100644 index e6f7b9e..0000000 Binary files a/storage/app/public/images/default-screens/sleep_1648_824_8_0.png and /dev/null differ diff --git a/storage/app/public/images/default-screens/sleep_1872_1404_12_90.png b/storage/app/public/images/default-screens/sleep_1872_1404_12_90.png deleted file mode 100644 index 0f17642..0000000 Binary files a/storage/app/public/images/default-screens/sleep_1872_1404_12_90.png and /dev/null differ diff --git a/storage/app/public/images/default-screens/sleep_1872_1404_4_0.png b/storage/app/public/images/default-screens/sleep_1872_1404_4_0.png deleted file mode 100644 index 67e5a28..0000000 Binary files a/storage/app/public/images/default-screens/sleep_1872_1404_4_0.png and /dev/null differ diff --git a/storage/app/public/images/default-screens/sleep_1880_1264_4_90.png b/storage/app/public/images/default-screens/sleep_1880_1264_4_90.png deleted file mode 100644 index 37fa694..0000000 Binary files a/storage/app/public/images/default-screens/sleep_1880_1264_4_90.png and /dev/null differ diff --git a/storage/app/public/images/default-screens/sleep_1920_1080_8_0.png b/storage/app/public/images/default-screens/sleep_1920_1080_8_0.png deleted file mode 100644 index c0f2ca0..0000000 Binary files a/storage/app/public/images/default-screens/sleep_1920_1080_8_0.png and /dev/null differ diff --git a/storage/app/public/images/default-screens/sleep_1920_1440_4_90.png b/storage/app/public/images/default-screens/sleep_1920_1440_4_90.png deleted file mode 100644 index d190897..0000000 Binary files a/storage/app/public/images/default-screens/sleep_1920_1440_4_90.png and /dev/null differ diff --git a/storage/app/public/images/default-screens/sleep_2480_1860_8_90.png b/storage/app/public/images/default-screens/sleep_2480_1860_8_90.png deleted file mode 100644 index f9c0a2c..0000000 Binary files a/storage/app/public/images/default-screens/sleep_2480_1860_8_90.png and /dev/null differ diff --git a/storage/app/public/images/default-screens/sleep_800_480_1_0.png b/storage/app/public/images/default-screens/sleep_800_480_1_0.png deleted file mode 100644 index 6f1ec2e..0000000 Binary files a/storage/app/public/images/default-screens/sleep_800_480_1_0.png and /dev/null differ diff --git a/storage/app/public/images/default-screens/sleep_800_480_2_0.png b/storage/app/public/images/default-screens/sleep_800_480_2_0.png deleted file mode 100644 index ccd82b3..0000000 Binary files a/storage/app/public/images/default-screens/sleep_800_480_2_0.png and /dev/null differ diff --git a/storage/app/public/images/default-screens/sleep_960_540_4_0.png b/storage/app/public/images/default-screens/sleep_960_540_4_0.png deleted file mode 100644 index cc9cbb6..0000000 Binary files a/storage/app/public/images/default-screens/sleep_960_540_4_0.png and /dev/null differ diff --git a/tests/Feature/ScreenCssVariablesTest.php b/tests/Feature/ScreenCssVariablesTest.php deleted file mode 100644 index f5bfc12..0000000 --- a/tests/Feature/ScreenCssVariablesTest.php +++ /dev/null @@ -1,100 +0,0 @@ - '
test
', - 'cssVariables' => [ - '--screen-w' => '800px', - '--screen-h' => '480px', - ], - ])->render(); - - expect($html)->toContain(':root'); - expect($html)->toContain('--screen-w: 800px'); - expect($html)->toContain('--screen-h: 480px'); -}); - -test('DeviceModel css_variables attribute merges --screen-w and --screen-h from dimensions when not set', function (): void { - $deviceModel = DeviceModel::factory()->create([ - 'width' => 800, - 'height' => 480, - 'css_variables' => null, - ]); - - $vars = $deviceModel->css_variables; - - expect($vars)->toHaveKey('--screen-w', '800px'); - expect($vars)->toHaveKey('--screen-h', '480px'); -}); - -test('DeviceModel css_variables attribute does not override --screen-w and --screen-h when already set', function (): void { - $deviceModel = DeviceModel::factory()->create([ - 'width' => 800, - 'height' => 480, - 'css_variables' => [ - '--screen-w' => '1200px', - '--screen-h' => '900px', - ], - ]); - - $vars = $deviceModel->css_variables; - - expect($vars['--screen-w'])->toBe('1200px'); - expect($vars['--screen-h'])->toBe('900px'); -}); - -test('DeviceModel css_variables attribute fills only missing --screen-w or --screen-h from dimensions', function (): void { - $deviceModel = DeviceModel::factory()->create([ - 'width' => 800, - 'height' => 480, - 'css_variables' => [ - '--screen-w' => '640px', - ], - ]); - - $vars = $deviceModel->css_variables; - - expect($vars['--screen-w'])->toBe('640px'); - expect($vars['--screen-h'])->toBe('480px'); -}); - -test('DeviceModel css_variables attribute returns raw vars when strategy is not v2', function (): void { - Config::set('app.puppeteer_window_size_strategy', 'v1'); - - $deviceModel = DeviceModel::factory()->create([ - 'width' => 800, - 'height' => 480, - 'css_variables' => ['--custom' => 'value'], - ]); - - $vars = $deviceModel->css_variables; - - expect($vars)->toBe(['--custom' => 'value']); -}); - -test('device model css_variables are available via device relationship for rendering', function (): void { - Config::set('app.puppeteer_window_size_strategy', 'v2'); - - $deviceModel = DeviceModel::factory()->create([ - 'width' => 800, - 'height' => 480, - 'css_variables' => null, - ]); - $device = Device::factory()->create([ - 'device_model_id' => $deviceModel->id, - ]); - $device->load('deviceModel'); - - $vars = $device->deviceModel?->css_variables ?? []; - - expect($vars)->toHaveKey('--screen-w', '800px'); - expect($vars)->toHaveKey('--screen-h', '480px'); -});