PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.5.0
Presto Player v4.5.0
4.5.0 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.13 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3-beta1 2.3.0 2.3.1 2.3.2 2.3.3 3.0.0 3.0.0-beta1 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1.0 3.1.1 3.1.2 3.1.3 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4
presto-player / src / admin / dashboard / hooks / useMediaLibrary.js
presto-player / src / admin / dashboard / hooks Last commit date
test 2 months ago useAbilities.js 2 weeks ago useCompleteOnboarding.js 2 months ago useDateRangePicker.js 3 months ago useEmail.ts 3 months ago useEngagementChartData.js 3 months ago useLicenseSettings.js 3 months ago useLink.js 3 months ago useMcpAdapterInstall.js 2 weeks ago useMediaDetail.js 3 months ago useMediaLibrary.js 3 months ago useMediaList.ts 3 months ago usePerformanceSettings.js 3 months ago useRegisterActivePage.js 3 months ago useSettingOption.js 2 weeks ago useSimpleSettingsPage.js 2 weeks ago useTopPerforming.js 3 months ago useTopVideosPaginated.js 3 months ago useUpgradeCTA.js 3 months ago useUserDetail.js 3 months ago
useMediaLibrary.js
65 lines
1 import { __ } from '@wordpress/i18n';
2
3 export const useMediaLibrary = ( updateCallback ) => {
4 const openMediaLibrary = ( fieldName ) => ( e ) => {
5 e.preventDefault();
6
7 const frame = wp.media( {
8 title: __( 'Select Image', 'presto-player' ),
9 button: {
10 text: __( 'Set Image', 'presto-player' ),
11 },
12 multiple: false,
13 library: {
14 type: 'image',
15 },
16 } );
17
18 frame.imageWasSelected = false;
19
20 frame.on( 'select', () => {
21 const attachment = frame
22 .state()
23 .get( 'selection' )
24 .first()
25 .toJSON();
26
27 const fileUrl = attachment.url;
28 frame.imageWasSelected = true;
29 updateCallback( { [ fieldName ]: fileUrl } );
30 } );
31
32 frame.open();
33 };
34
35 const getFilename = ( fileURL, maxLength = 30 ) => {
36 if ( ! fileURL ) {
37 return '';
38 }
39
40 try {
41 const url = new URL( fileURL );
42 const fullName = url.pathname.split( '/' ).pop();
43
44 if ( ! fullName ) {
45 return '';
46 }
47
48 if ( fullName.length <= maxLength ) {
49 return fullName;
50 }
51
52 const extIndex = fullName.lastIndexOf( '.' );
53 const name = fullName.substring( 0, extIndex );
54 const ext = fullName.substring( extIndex );
55
56 const truncated = name.substring( 0, maxLength - ext.length - 3 );
57 return `${ truncated }...${ ext }`;
58 } catch ( e ) {
59 return fileURL;
60 }
61 };
62
63 return { openMediaLibrary, getFilename };
64 };
65