diff options
Diffstat (limited to 'plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/src/class-initial-state.php')
-rw-r--r-- | plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/src/class-initial-state.php | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/src/class-initial-state.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/src/class-initial-state.php new file mode 100644 index 00000000..e5bf0a84 --- /dev/null +++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/src/class-initial-state.php @@ -0,0 +1,54 @@ +<?php +/** + * The React initial state. + * + * @package automattic/jetpack-backup-plugin + */ + +namespace Automattic\Jetpack\Backup; + +use Automattic\Jetpack\Connection\Plugin_Storage as Connection_Plugin_Storage; +use Automattic\Jetpack\Status; + +/** + * The React initial state. + */ +class Initial_State { + /** + * Get the initial state data. + * + * @return array + */ + private function get_data() { + return array( + 'API' => array( + 'WP_API_root' => esc_url_raw( rest_url() ), + 'WP_API_nonce' => wp_create_nonce( 'wp_rest' ), + 'registrationNonce' => wp_create_nonce( 'jetpack-registration-nonce' ), + ), + 'jetpackStatus' => array( + 'calypsoSlug' => ( new Status() )->get_site_suffix(), + ), + 'connectedPlugins' => Connection_Plugin_Storage::get_all(), + 'siteData' => array( + 'id' => \Jetpack_Options::get_option( 'id' ), + 'title' => get_bloginfo( 'name' ) ? get_bloginfo( 'name' ) : get_site_url(), + ), + 'assets' => array( + 'buildUrl' => plugins_url( '../build/', __FILE__ ), + ), + ); + } + + /** + * Render the initial state into a JavaScript variable. + * + * @return string + */ + public function render() { + add_action( 'jetpack_use_iframe_authorization_flow', '__return_true' ); + + return 'var JPBACKUP_INITIAL_STATE=JSON.parse(decodeURIComponent("' . rawurlencode( wp_json_encode( $this->get_data() ) ) . '"));'; + } + +} |