Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
95.00% covered (success)
95.00%
19 / 20
50.00% covered (danger)
50.00%
1 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
ResourceLoaderRegisterModulesHookHandler
95.00% covered (success)
95.00%
19 / 20
50.00% covered (danger)
50.00%
1 / 2
5
0.00% covered (danger)
0.00%
0 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 onResourceLoaderRegisterModules
94.74% covered (success)
94.74%
18 / 19
0.00% covered (danger)
0.00%
0 / 1
4.00
1<?php
2
3declare( strict_types=1 );
4
5namespace MediaWiki\Extension\Score;
6
7use MediaWiki\ResourceLoader\Hook\ResourceLoaderRegisterModulesHook;
8use MediaWiki\ResourceLoader\ResourceLoader;
9use Wikibase\Lib\SettingsArray;
10
11/**
12 * @license GPL-2.0-or-later
13 */
14class ResourceLoaderRegisterModulesHookHandler implements ResourceLoaderRegisterModulesHook {
15
16    public function __construct(
17        private readonly ?SettingsArray $settings,
18    ) {
19    }
20
21    public function onResourceLoaderRegisterModules( ResourceLoader $rl ): void {
22        if ( !$this->settings ) {
23            return;
24        }
25        $moduleTemplate = [
26            'localBasePath' => __DIR__ . '/..',
27            'remoteExtPath' => 'Score',
28        ];
29
30        if (
31            $this->settings->getSetting( 'tmpMobileEditingUI' ) ||
32            $this->settings->getSetting( 'tmpEnableMobileEditingUIBetaFeature' )
33        ) {
34            $modules = [ 'score.wbui2025.entityViewInit' => $moduleTemplate +
35                [
36                    'packageFiles' => [
37                        'modules/wikibase.wbui2025/score.wbui2025.entityViewInit.js',
38                    ],
39                    'dependencies' => [
40                        'wikibase.wbui2025.lib',
41                    ],
42                ],
43            ];
44            $rl->register( $modules );
45        }
46    }
47}