init_uninstaller_form(); } /** * Register the modal script and style handles. * * @return void */ public function register_assets(): void { $script_src = aisentic()->assets_url . '/build/js/feedback-modal.js'; $style_src = aisentic()->assets_url . '/build/css/feedback-modal.css'; $asset_file = aisentic()->plugin_directory . '/assets/build/js/feedback-modal.asset.php'; $asset = file_exists( $asset_file ) ? include $asset_file : [ 'dependencies' => [ 'wp-element' ], 'version' => aisentic()->version, ]; wp_register_script( self::HANDLE, $script_src, $asset['dependencies'] ?? [ 'wp-element' ], $asset['version'] ?? aisentic()->version, true ); wp_register_style( self::HANDLE, $style_src, [], aisentic()->version ); } /** * Enqueue the modal only on the Plugins screen. * * @return void */ public function enqueue(): void { $screen = get_current_screen(); if ( ! $screen || 'plugins' !== $screen->id ) { return; } wp_enqueue_style( self::HANDLE ); wp_enqueue_script( self::HANDLE ); wp_localize_script( self::HANDLE, 'aisentic_feedback', [ 'site_url' => untrailingslashit( site_url() ), ] ); } /** * Boot the shared uninstaller_form package. * * Registers the REST route and the nonce localizer against our script handle. * * @return void */ private function init_uninstaller_form(): void { if ( ! class_exists( UninstallerForm::class ) ) { return; } UninstallerForm::init( 'Aisentic', 'aisentic', AISENTIC_FILE, 'aisentic', self::HANDLE ); } }