diff --git a/assets/app.js b/assets/app.js index 0194a77..88672ac 100644 --- a/assets/app.js +++ b/assets/app.js @@ -14,11 +14,9 @@ import './javascript/theme.js'; import './javascript/emoji-footprint.js'; import './javascript/modes.js'; import './javascript/htmx.js'; -import emojiButtonListener from './javascript/emoji-button.js'; import 'bootstrap'; import { initRadioState } from './javascript/radioState.js'; document.addEventListener('DOMContentLoaded', () => { initRadioState(); - emojiButtonListener(); }); \ No newline at end of file diff --git a/assets/javascript/emoji-button.js b/assets/javascript/emoji-button.js deleted file mode 100644 index 8fc3825..0000000 --- a/assets/javascript/emoji-button.js +++ /dev/null @@ -1,14 +0,0 @@ -const emojiButtonListener = function () { - const buttons = document.querySelectorAll('.emoji-buttons .btn.btn-primary'); - - buttons.forEach(button => { - button.addEventListener('click', function() { - const emojiField = document.querySelector('#food_vendor_emojis'); - if (emojiField) { - emojiField.value += this.textContent; - } - }); - }); -} - -export default emojiButtonListener; \ No newline at end of file diff --git a/assets/styles/modes.css b/assets/styles/modes.css index 39dd41e..383815b 100644 --- a/assets/styles/modes.css +++ b/assets/styles/modes.css @@ -86,9 +86,6 @@ /* 🎭 BONKERS MODE CLASSES 🎭 */ .bonkers-mode { - background: linear-gradient(270deg, var(--bs-pink), var(--bs-purple), var(--bs-cyan), var(--bs-yellow), var(--bs-green), var(--bs-orange), var(--bs-red), var(--bs-pink)); - background-size: 1600% 1600%; - animation: rainbowGradient 10s ease infinite; transition: all 0.3s ease-in-out; } diff --git a/config/packages/asset_mapper.php b/config/packages/asset_mapper.php index aa061ef..3a3cc5f 100644 --- a/config/packages/asset_mapper.php +++ b/config/packages/asset_mapper.php @@ -1,19 +1,21 @@ assetMapper() - ->path('assets/', true) - ->missingImportMode('strict') - ->importmapPolyfill(false) - ; +return static function (ContainerConfigurator $containerConfigurator): void { + $containerConfigurator->extension('framework', [ + 'asset_mapper' => [ + 'paths' => [ + 'assets/', + ], + 'missing_import_mode' => 'strict', + ], + ]); if ($containerConfigurator->env() === 'prod') { - $frameworkConfig->assetMapper() - ->missingImportMode('warn'); + $containerConfigurator->extension('framework', [ + 'asset_mapper' => [ + 'missing_import_mode' => 'warn', + ], + ]); } }; diff --git a/importmap.php b/importmap.php index 3f89e51..36a6905 100644 --- a/importmap.php +++ b/importmap.php @@ -27,6 +27,6 @@ return [ 'type' => 'css', ], 'htmx.org' => [ - 'version' => '2.0.5', + 'version' => '1.9.12', ], ]; diff --git a/migrations/Version20250621131822.php b/migrations/Version20250621131822.php deleted file mode 100644 index 735b90d..0000000 --- a/migrations/Version20250621131822.php +++ /dev/null @@ -1,47 +0,0 @@ -addSql(<<<'SQL' - ALTER TABLE food_vendor ADD COLUMN emojis VARCHAR(30) DEFAULT NULL - SQL); - } - - public function down(Schema $schema): void - { - // this down() migration is auto-generated, please modify it to your needs - $this->addSql(<<<'SQL' - CREATE TEMPORARY TABLE __temp__food_vendor AS SELECT name, phone, menu_link, id FROM food_vendor - SQL); - $this->addSql(<<<'SQL' - DROP TABLE food_vendor - SQL); - $this->addSql(<<<'SQL' - CREATE TABLE food_vendor (name VARCHAR(50) NOT NULL, phone VARCHAR(50) DEFAULT '', menu_link VARCHAR(255) DEFAULT NULL, id BLOB NOT NULL, PRIMARY KEY(id)) - SQL); - $this->addSql(<<<'SQL' - INSERT INTO food_vendor (name, phone, menu_link, id) SELECT name, phone, menu_link, id FROM __temp__food_vendor - SQL); - $this->addSql(<<<'SQL' - DROP TABLE __temp__food_vendor - SQL); - } -} diff --git a/src/Entity/FoodVendor.php b/src/Entity/FoodVendor.php index 83bef71..a0b3708 100644 --- a/src/Entity/FoodVendor.php +++ b/src/Entity/FoodVendor.php @@ -7,27 +7,23 @@ use App\Repository\FoodVendorRepository; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use Doctrine\ORM\Mapping as ORM; -use InvalidArgumentException; use Symfony\Bridge\Doctrine\IdGenerator\UlidGenerator; use Symfony\Bridge\Doctrine\Types\UlidType; use Symfony\Component\Serializer\Annotation\Groups; use Symfony\Component\Uid\Ulid; -use Symfony\Component\Validator\Constraints\Length; - -use function mb_strlen; #[ORM\Entity(repositoryClass: FoodVendorRepository::class)] #[ApiResource] class FoodVendor { #[ORM\Column(length: 50)] - #[Groups(['food_order:latest', 'food_vendor:read'])] + #[Groups(['food_order:latest'])] private string|null $name = null; #[ORM\Column(length: 50, nullable: true, options: [ 'default' => '', ])] - #[Groups(['food_order:latest', 'food_vendor:read'])] + #[Groups(['food_order:latest'])] private string|null $phone = null; /** @@ -46,14 +42,6 @@ class FoodVendor #[Groups(['food_order:latest'])] private string|null $menuLink = null; - /** - * String of emojis (max 30 characters) - */ - #[ORM\Column(length: 30, nullable: true)] - #[Groups(['food_order:latest', 'food_vendor:read'])] - #[Length(max: 10)] - private string|null $emojis = null; - public function __construct( #[ORM\Id] #[ORM\GeneratedValue(strategy: 'CUSTOM')] @@ -167,19 +155,4 @@ class FoodVendor $this->phone = $phone; return $this; } - - public function getEmojis(): string|null - { - return $this->emojis; - } - - public function setEmojis(string|null $emojis): static - { - if ($emojis !== null && mb_strlen($emojis) > 30) { - throw new InvalidArgumentException('A maximum of 30 characters is allowed for emojis'); - } - - $this->emojis = $emojis; - return $this; - } } diff --git a/src/Form/FoodVendorType.php b/src/Form/FoodVendorType.php index 466d9e2..7ff61da 100644 --- a/src/Form/FoodVendorType.php +++ b/src/Form/FoodVendorType.php @@ -17,7 +17,6 @@ final class FoodVendorType extends AbstractType ->add('name') ->add('menuLink') ->add('phone') - ->add('emojis') ; } diff --git a/templates/food_vendor/edit.html.twig b/templates/food_vendor/edit.html.twig index 51daaf7..83e4bd3 100644 --- a/templates/food_vendor/edit.html.twig +++ b/templates/food_vendor/edit.html.twig @@ -9,121 +9,5 @@ {{ include('food_vendor/_form.html.twig', {'button_label': 'Update'}) }} -
- back to list {% endblock %} diff --git a/tests/Unit/Entity/FoodVendorTest.php b/tests/Unit/Entity/FoodVendorTest.php index ee00ece..88ab094 100644 --- a/tests/Unit/Entity/FoodVendorTest.php +++ b/tests/Unit/Entity/FoodVendorTest.php @@ -5,7 +5,6 @@ namespace App\Tests\Unit\Entity; use App\Entity\FoodOrder; use App\Entity\FoodVendor; use App\Entity\MenuItem; -use InvalidArgumentException; use Symfony\Component\Uid\Ulid; use function describe; @@ -21,17 +20,6 @@ describe(FoodVendor::class, function (): void { $vendor->setPhone('1234567890'); $this->assertEquals('1234567890', $vendor->getPhone()); - // Test emojis field - $this->assertNull($vendor->getEmojis()); - $emojis = '😀😂🎉👍❤️'; - $vendor->setEmojis($emojis); - $this->assertEquals($emojis, $vendor->getEmojis()); - - // Test emojis validation - $tooManyEmojis = '😀😂🎉👍❤️🚀🎈🎁🎊🎋🎍🎎🎏🎐🎑🎒🎓🎔🎕🎖🎗🎘🎙🎚🎛🎜🎝🎞🎟🎠🎡🎢'; - $this->expectException(InvalidArgumentException::class); - $vendor->setEmojis($tooManyEmojis); - $this->assertCount(0, $vendor->getFoodOrders()); $order1 = new FoodOrder; $vendor->addFoodOrder($order1);