@@ -17,6 +17,7 @@ import {
1717 Popover ,
1818 CheckboxControl
1919} from '@wordpress/components' ;
20+ import { sprintf } from '@wordpress/i18n' ;
2021
2122import { useSelect } from '@wordpress/data' ;
2223
@@ -94,6 +95,30 @@ const Lazyload = ({ settings, setSettings, setCanSave }) => {
9495 const [ phPicker , setPhPicker ] = useState ( false ) ;
9596 const [ showModal , setShowModal ] = useState ( false ) ;
9697
98+ const supportPrefilledContactFormUrl = useMemo ( ( ) => {
99+ const contactUrl = new URL ( window . optimoleDashboardApp . report_issue_url ) ;
100+ const {
101+ contact_support
102+ } = window . optimoleDashboardApp . strings ;
103+
104+ let subject = contact_support . disable_lazy_load_scaling ;
105+ if ( DISABLE_OPTION_MODAL_TYPE . scale === showModal ) {
106+ subject = contact_support . disable_image_scaling ;
107+ } else if ( DISABLE_OPTION_MODAL_TYPE . javascriptLoading === showModal ) {
108+ subject = contact_support . enable_native_lazy_load ;
109+ }
110+
111+ contactUrl . searchParams . set (
112+ 'contact_subject' ,
113+ sprintf (
114+ contact_support . title_prefix ,
115+ subject
116+ )
117+ ) ;
118+
119+ return contactUrl ;
120+ } , [ showModal ] ) ;
121+
97122 const toggleOption = useCallback (
98123 ( option , value ) => {
99124 setCanSave ( true ) ;
@@ -212,39 +237,51 @@ const Lazyload = ({ settings, setSettings, setCanSave }) => {
212237 } ) }
213238 onChange = { ( ) => setShowModal ( DISABLE_OPTION_MODAL_TYPE . lazyLoad ) }
214239 />
215- {
216- showModal && (
217- < Modal
218- icon = "warning"
219- variant = "warning"
220- labels = { {
221- title : optimoleDashboardApp . strings . options_strings . performance_impact_alert_title ,
222- description : 'scale' === showModal ? optimoleDashboardApp . strings . options_strings . performance_impact_alert_scale_desc : optimoleDashboardApp . strings . options_strings . performance_impact_alert_lazy_desc ,
223- action : optimoleDashboardApp . strings . options_strings . performance_impact_alert_action_label ,
224- secondaryAction : optimoleDashboardApp . strings . options_strings . performance_impact_alert_secondary_action_label
225- } }
226- onRequestClose = { ( ) => setShowModal ( false ) }
227- onConfirm = { ( ) => {
228- window ?. formbricks ?. track ( 'disable_lazy_load_feature' , {
229- hiddenFields : {
230- feature : `${ showModal } `
231- }
232- } ) ;
233-
234- if ( DISABLE_OPTION_MODAL_TYPE . javascriptLoading === showModal ) {
235- toggleOption ( 'native_lazyload' , true ) ;
236- } else if ( DISABLE_OPTION_MODAL_TYPE . scale === showModal ) {
237- toggleOption ( 'scale' , true ) ;
238- } else if ( DISABLE_OPTION_MODAL_TYPE . lazyLoad === showModal ) {
239- toggleOption ( 'lazyload' , false ) ;
240+ { showModal && (
241+ < Modal
242+ icon = "warning"
243+ variant = "warning"
244+ labels = { {
245+ title :
246+ optimoleDashboardApp . strings . options_strings
247+ . performance_impact_alert_title ,
248+ description :
249+ 'scale' === showModal ?
250+ optimoleDashboardApp . strings . options_strings
251+ . performance_impact_alert_scale_desc :
252+ optimoleDashboardApp . strings . options_strings
253+ . performance_impact_alert_lazy_desc ,
254+ action :
255+ optimoleDashboardApp . strings . options_strings
256+ . performance_impact_alert_action_label ,
257+ secondaryAction :
258+ optimoleDashboardApp . strings . options_strings
259+ . performance_impact_alert_secondary_action_label
260+ } }
261+ onRequestClose = { ( ) => setShowModal ( false ) }
262+ onConfirm = { ( ) => {
263+ window ?. formbricks ?. track ( 'disable_lazy_load_feature' , {
264+ hiddenFields : {
265+ feature : `${ showModal } `
240266 }
267+ } ) ;
241268
242- setShowModal ( false ) ;
243- } }
244- onSecondaryAction = { ( ) => setShowModal ( false ) }
245- />
246- )
247- }
269+ if ( DISABLE_OPTION_MODAL_TYPE . javascriptLoading === showModal ) {
270+ toggleOption ( 'native_lazyload' , true ) ;
271+ } else if ( DISABLE_OPTION_MODAL_TYPE . scale === showModal ) {
272+ toggleOption ( 'scale' , true ) ;
273+ } else if ( DISABLE_OPTION_MODAL_TYPE . lazyLoad === showModal ) {
274+ toggleOption ( 'lazyload' , false ) ;
275+ }
276+
277+ setShowModal ( false ) ;
278+ } }
279+ onSecondaryAction = { ( ) => {
280+ window . open ( supportPrefilledContactFormUrl , '_blank' ) ;
281+ setShowModal ( false ) ;
282+ } }
283+ />
284+ ) }
248285 < hr className = "my-8 border-grayish-blue" />
249286 < BaseControl
250287 className = "mt-2"
@@ -465,18 +502,16 @@ const Lazyload = ({ settings, setSettings, setCanSave }) => {
465502 </ div >
466503 </ BaseControl >
467504
468- {
469- isNativeLazyLoadEnabled && (
470- < Notice
471- type = "warning"
472- title = { '' }
473- text = {
474- optimoleDashboardApp . strings . options_strings
475- . native_lazy_load_warning
476- }
477- />
478- )
479- }
505+ { isNativeLazyLoadEnabled && (
506+ < Notice
507+ type = "warning"
508+ title = { '' }
509+ text = {
510+ optimoleDashboardApp . strings . options_strings
511+ . native_lazy_load_warning
512+ }
513+ />
514+ ) }
480515
481516 < hr className = "my-8 border-grayish-blue" />
482517
@@ -494,7 +529,7 @@ const Lazyload = ({ settings, setSettings, setCanSave }) => {
494529 } else {
495530 setShowModal ( DISABLE_OPTION_MODAL_TYPE . scale ) ;
496531 }
497- } }
532+ } }
498533 />
499534
500535 < GroupSettingsContainer >
0 commit comments