From ed0b7985e1f5fb8be0cd2e3f67665bb6d9478c52 Mon Sep 17 00:00:00 2001 From: Gerard Lamusse <> Date: Sat, 1 Dec 2018 09:05:45 +0100 Subject: [PATCH] Added schema for Dolphiq/craft3-iconpicker --- src/Listeners/GetIconPickerFieldSchema.php | 46 ++++++++++++++++++++++ src/events.php | 5 +++ 2 files changed, 51 insertions(+) create mode 100644 src/Listeners/GetIconPickerFieldSchema.php diff --git a/src/Listeners/GetIconPickerFieldSchema.php b/src/Listeners/GetIconPickerFieldSchema.php new file mode 100644 index 00000000..00746246 --- /dev/null +++ b/src/Listeners/GetIconPickerFieldSchema.php @@ -0,0 +1,46 @@ +handled = true; + + $field = $event->sender; + + $event->schema->addField($field) + ->arguments(function ($field) { + $field->addEnumArgument('as') + ->values([ + 'hex', + 'char', + 'charHex', + 'span', + 'class' + ]); + }) + ->description('Use argument [as] to change the output of the icon') + ->resolve(function ($root, $args) use ($field) { + if (!empty($args['as'])) { + return (string)$root->{$field->handle}->{'getIcon' . ucfirst($args['as'])}(); + } + + return (string)$root->{$field->handle}->getChar(); + }); + + $event->query->addStringArgument($event->sender); + $event->mutation->addStringArgument($event->sender); + } +} diff --git a/src/events.php b/src/events.php index a571c010..b920d43f 100644 --- a/src/events.php +++ b/src/events.php @@ -71,6 +71,11 @@ new \markhuot\CraftQL\Listeners\GetSuperTableFieldSchema, ], ], + \plugins\dolphiq\iconpicker\fields\Iconpicker::class => [ + 'craftQlGetFieldSchema' => [ + new \markhuot\CraftQL\Listeners\GetIconPickerFieldSchema, + ], + ], \craft\fields\Table::class => [ 'craftQlGetFieldSchema' => [ new \markhuot\CraftQL\Listeners\GetTableFieldSchema,