@@ -15,13 +15,20 @@ public static function register_field_type(): void {
1515 'clone ' ,
1616 [
1717 'graphql_type ' => static function ( FieldConfig $ field_config , AcfGraphQLFieldType $ acf_field_type ) {
18+
1819 $ sub_field_group = $ field_config ->get_raw_acf_field ();
1920 $ parent_type = $ field_config ->get_parent_graphql_type_name ( $ sub_field_group );
2021 $ field_name = $ field_config ->get_graphql_field_name ();
21- $ registry = $ field_config ->get_registry ();
2222 $ type_name = Utils::format_type_name ( $ parent_type . ' ' . $ field_name );
2323 $ prefix_name = $ sub_field_group ['prefix_name ' ] ?? false ;
2424
25+ // If the "Clone" field has not set a "prefix_name",
26+ // return NULL to prevent registering a new type
27+ // The cloned
28+ if ( ! $ prefix_name ) {
29+ return 'NULL ' ;
30+ }
31+
2532 $ cloned_fields = array_filter (
2633 array_map (
2734 static function ( $ cloned ) {
@@ -45,37 +52,16 @@ static function ( $cloned ) use ( $field_config ) {
4552 );
4653
4754 if ( ! empty ( $ cloned_group_interfaces ) ) {
48- if ( ! $ prefix_name ) {
49- register_graphql_interfaces_to_types ( $ cloned_group_interfaces , [ $ parent_type ] );
50- } else {
51- $ type_name = self ::register_prefixed_clone_field_type ( $ type_name , $ sub_field_group , $ cloned_fields , $ field_config );
52- register_graphql_interfaces_to_types ( $ cloned_group_interfaces , [ $ type_name ] );
53- return $ type_name ;
54- }
55+ $ type_name = self ::register_prefixed_clone_field_type ( $ type_name , $ sub_field_group , $ cloned_fields , $ field_config );
56+ register_graphql_interfaces_to_types ( $ cloned_group_interfaces , [ $ type_name ] );
57+ return $ type_name ;
5558 }
5659
57-
5860 // If the "Clone" field has cloned individual fields
5961 if ( ! empty ( $ cloned_fields ) ) {
60-
61- // If the clone field is NOT set to use "prefix_name"
62- if ( ! $ prefix_name ) {
63-
64- // Map over the cloned fields and register them to the parent type
65- foreach ( $ cloned_fields as $ cloned_field ) {
66- $ field_config = $ registry ->map_acf_field_to_graphql ( $ cloned_field , $ sub_field_group );
67- if ( ! empty ( $ field_config ['name ' ] ) ) {
68- register_graphql_field ( $ parent_type , $ field_config ['name ' ], $ field_config );
69- }
70- }
71-
72- // If the Clone field is set to use "prefix_name"
73- // Register a new Object Type with the cloned fields, and return
74- // the new type.
75- } else {
76- return self ::register_prefixed_clone_field_type ( $ type_name , $ sub_field_group , $ cloned_fields , $ field_config );
77- }
62+ return self ::register_prefixed_clone_field_type ( $ type_name , $ sub_field_group , $ cloned_fields , $ field_config );
7863 }
64+
7965 // Bail by returning a NULL type
8066 return 'NULL ' ;
8167 },
0 commit comments