Created
May 4, 2020 16:31
-
-
Save jasonbahl/009a3424c307b36e1c4fa435c07e15a3 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
add_action( 'graphql_register_types', function() { | |
$mock_colors = ' | |
{ | |
"fresh":{ | |
"name":"Default", | |
"url":false, | |
"colors":[ | |
"#222", | |
"#333", | |
"#0073aa", | |
"#00a0d2" | |
], | |
"icon_colors":{ | |
"base":"#a0a5aa", | |
"focus":"#00a0d2", | |
"current":"#fff" | |
} | |
}, | |
"light":{ | |
"name":"Light", | |
"url":"http://acf2.local/wp-admin/css/colors/light/colors.min.css", | |
"colors":[ | |
"#e5e5e5", | |
"#999", | |
"#d64e07", | |
"#04a4cc" | |
], | |
"icon_colors":{ | |
"base":"#999", | |
"focus":"#ccc", | |
"current":"#ccc" | |
} | |
}, | |
"blue":{ | |
"name":"Blue", | |
"url":"http://acf2.local/wp-admin/css/colors/blue/colors.min.css", | |
"colors":[ | |
"#096484", | |
"#4796b3", | |
"#52accc", | |
"#74B6CE" | |
], | |
"icon_colors":{ | |
"base":"#e5f8ff", | |
"focus":"#fff", | |
"current":"#fff" | |
} | |
}, | |
"midnight":{ | |
"name":"Midnight", | |
"url":"http://acf2.local/wp-admin/css/colors/midnight/colors.min.css", | |
"colors":[ | |
"#25282b", | |
"#363b3f", | |
"#69a8bb", | |
"#e14d43" | |
], | |
"icon_colors":{ | |
"base":"#f1f2f3", | |
"focus":"#fff", | |
"current":"#fff" | |
} | |
}, | |
"sunrise":{ | |
"name":"Sunrise", | |
"url":"http://acf2.local/wp-admin/css/colors/sunrise/colors.min.css", | |
"colors":[ | |
"#b43c38", | |
"#cf4944", | |
"#dd823b", | |
"#ccaf0b" | |
], | |
"icon_colors":{ | |
"base":"#f3f1f1", | |
"focus":"#fff", | |
"current":"#fff" | |
} | |
}, | |
"ectoplasm":{ | |
"name":"Ectoplasm", | |
"url":"http://acf2.local/wp-admin/css/colors/ectoplasm/colors.min.css", | |
"colors":[ | |
"#413256", | |
"#523f6d", | |
"#a3b745", | |
"#d46f15" | |
], | |
"icon_colors":{ | |
"base":"#ece6f6", | |
"focus":"#fff", | |
"current":"#fff" | |
} | |
}, | |
"ocean":{ | |
"name":"Ocean", | |
"url":"http://acf2.local/wp-admin/css/colors/ocean/colors.min.css", | |
"colors":[ | |
"#627c83", | |
"#738e96", | |
"#9ebaa0", | |
"#aa9d88" | |
], | |
"icon_colors":{ | |
"base":"#f2fcff", | |
"focus":"#fff", | |
"current":"#fff" | |
} | |
}, | |
"coffee":{ | |
"name":"Coffee", | |
"url":"http://acf2.local/wp-admin/css/colors/coffee/colors.min.css", | |
"colors":[ | |
"#46403c", | |
"#59524c", | |
"#c7a589", | |
"#9ea476" | |
], | |
"icon_colors":{ | |
"base":"#f3f2f1", | |
"focus":"#fff", | |
"current":"#fff" | |
} | |
} | |
} | |
'; | |
register_graphql_object_type( 'AdminIconColor', [ | |
'fields' => [ | |
'base' => [ | |
'type' => 'String' | |
], | |
'focus' => [ | |
'type' => 'String', | |
], | |
'current' => [ | |
'type' => 'String', | |
], | |
], | |
] ); | |
register_graphql_object_type( 'AdminColorPalette', [ | |
'description' => __( 'todo', 'wp-graphql' ), | |
'fields' => [ | |
'primary' => [ | |
'type' => 'String', | |
'resolve' => function( $colors ) { | |
return $colors[0]; | |
} | |
], | |
'secondary' => [ | |
'type' => 'String', | |
'resolve' => function( $colors ) { | |
return $colors[1]; | |
} | |
], | |
'tertiary' => [ | |
'type' => 'String', | |
'resolve' => function( $colors ) { | |
return $colors[2]; | |
} | |
], | |
'quaternary' => [ | |
'type' => 'String', | |
'resolve' => function( $colors ) { | |
return $colors[3]; | |
} | |
], | |
], | |
]); | |
register_graphql_object_type( 'AdminColorScheme', [ | |
'fields' => [ | |
'name' => [ | |
'type' => 'String', | |
'description' => __( 'todo', 'wp-graphql' ), | |
], | |
'colors' => [ | |
'type' => 'AdminColorPalette', | |
'description' => __( 'todo', 'wp-graphql' ), | |
], | |
'colorsList' => [ | |
'type' => [ | |
'list_of' => 'String', | |
], | |
'description' => __( 'todo', 'wp-graphql' ), | |
'resolve' => function( $admin_colors ) { | |
return ! empty( $admin_colors->colors ) ? $admin_colors->colors : null; | |
}, | |
], | |
'iconColorsList' => [ | |
'type' => [ | |
'list_of' => 'String', | |
], | |
'resolve' => function($admin_colors ) { | |
$colors = []; | |
if ( ! empty( $admin_colors->icon_colors ) ) { | |
foreach ( $admin_colors->icon_colors as $key => $color ) { | |
$colors[] = $color; | |
} | |
} | |
return ! empty( $colors ) ? $colors : null; | |
}, | |
], | |
'iconColors' => [ | |
'type' => 'AdminIconColor', | |
'resolve' => function($admin_colors ) { | |
return ! empty( $admin_colors->icon_colors ) ? $admin_colors->icon_colors : null; | |
}, | |
] | |
] | |
] ); | |
register_graphql_field( 'User', 'selectedAdminColorScheme', [ | |
'type' => 'AdminColorScheme', | |
'resolve' => function( \WPGraphQL\Model\User $user ) use ( $mock_colors ) { | |
$encoded = json_decode( $mock_colors ); | |
$colors = []; | |
foreach ($encoded as $key => $value) { | |
$value->key = $key; | |
$colors[$key] = $value; | |
} | |
$color = get_user_meta( $user->userId, 'admin_color', true ); | |
return isset( $colors[ $color ] ) ? $colors[ $color ] : $colors[ 'fresh' ]; | |
} | |
] ); | |
register_graphql_field( 'RootQuery', 'allAdminColorSchemes', [ | |
'description' => __( 'todo', 'wp-graphql' ), | |
'type' => [ | |
'list_of' => 'AdminColorScheme', | |
], | |
'resolve' => function() use ( $mock_colors ) { | |
$encoded = json_decode( $mock_colors ); | |
$colors = []; | |
foreach ($encoded as $key => $value) { | |
$value->key = $key; | |
$colors[$key] = $value; | |
} | |
return $colors; | |
// NEED TO FIGURE OUT HOW TO GET THESE VALUES WHEN WE'RE NOT IN THE ADMIN | |
// require_once( ABSPATH . 'wp-admin/includes/misc.php' ); | |
// require_once( ABSPATH . 'wp-includes/general-template.php' ); | |
// global $_wp_admin_css_colors; | |
// | |
// wp_send_json( $_wp_admin_css_colors ); | |
} | |
] ); | |
} ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment