then( Fns::unary( partial( [ self::class, 'getData' ], true ) ) ) ->then( Resources::enqueueApp( 'languages' ) ); } else { Hooks::onAction( 'admin_enqueue_scripts' ) ->then( Fns::unary( partial( [ self::class, 'getData' ], false ) ) ) ->then( Resources::enqueueApp( 'languages' ) ); } } } public static function getData( $editPage ) { $getPostTypeName = function ( $postType ) { return PostType::getPluralName( $postType )->getOrElse( $postType ); }; $data = [ 'endpoints' => [ 'checkSupportOfLanguages' => CheckLanguageSupport::class, 'skipTranslationOfExistingContent' => ActivateLanguage::class, 'postsToTranslatePerTypeCount' => CountPerPostType::class, 'deleteTranslatedContentOfLanguage' => DeleteTranslatedContentOfLanguages::class ], 'postTypes' => Fns::map( $getPostTypeName, PostTypes::getAutomaticTranslatable() ), 'shouldTranslateEverything' => Option::shouldTranslateEverything(), ]; if ( $editPage ) { $existingLanguages = Obj::values( Fns::map( function ( $language ) { return Lst::concat( $language, [ 'mapping' => [ 'targetId' => Obj::pathOr( '', [ 'mapping', 'targetId' ], $language ), 'targetCode' => Obj::pathOr( '', [ 'mapping', 'targetCode' ], $language ), ] ] ); }, \SitePress_EditLanguages::get_active_languages() ) ); $data = Lst::concat( $data, [ 'existingLanguages' => $existingLanguages ] ); } else { $data = Lst::concat( $data, [ 'existingLangs' => Languages::getSecondaryCodes(), 'defaultLang' => Languages::getDefaultCode(), 'settingsUrl' => admin_url( UIPage::getSettings() ), ] ); } return [ 'name' => 'wpmlLanguagesUI', 'data' => $data ]; } private static function isEditLanguagePage() { return (int) Obj::prop( 'trop', $_GET ) === 1; } }