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,