Skip to content

Commit 668511d

Browse files
chore: add pre-filled support contact
1 parent 780b3ee commit 668511d

File tree

4 files changed

+105
-45
lines changed

4 files changed

+105
-45
lines changed

assets/src/dashboard/parts/components/RadioBoxes.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ export default function RadioBoxes({ options, value, onChange, label, disabled =
4343
type="radio"
4444
name="label"
4545
value={buttonValue}
46+
checked={isActive}
47+
onChange={() => {}} // Add empty onChange to satisfy React's controlled input requirements
4648
id={buttonValue}
4749
className="!opacity-0 !w-0 !h-0 !overflow-hidden !absolute !pointer-events-none"
4850
disabled={disabled}

assets/src/dashboard/parts/connected/settings/Lazyload.js

Lines changed: 79 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {
1717
Popover,
1818
CheckboxControl
1919
} from '@wordpress/components';
20+
import { sprintf } from '@wordpress/i18n';
2021

2122
import { 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>

assets/src/global.d.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ export interface IOptimoleDashboardApp {
3535
bf_notices: any[]
3636
spc_banner: SpcBanner
3737
show_exceed_plan_quota_notice: string
38+
report_issue_url: string
3839
}
3940

4041
export interface Strings {
@@ -128,6 +129,12 @@ export interface Strings {
128129
optimization_status: OptimizationStatus
129130
optimization_tips: string
130131
native_lazy_load_warning: string
132+
contact_support: {
133+
title_prefix: string
134+
disable_lazy_load_scaling: string
135+
disable_image_scaling: string
136+
enable_native_lazy_load: string
137+
}
131138
}
132139

133140
export interface Conflicts {

inc/admin.php

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1382,6 +1382,15 @@ private function localize_dashboard_app() {
13821382
'bf_notices' => $this->get_bf_notices(),
13831383
'spc_banner' => $this->get_spc_banner(),
13841384
'show_exceed_plan_quota_notice' => $this->should_show_exceed_quota_warning(),
1385+
'report_issue_url' => add_query_arg(
1386+
[
1387+
'utm_source' => 'plugin',
1388+
'utm_medium' => 'wp_dashboard',
1389+
'utm_campaign' => 'report_issue',
1390+
'contact_website' => home_url(),
1391+
],
1392+
tsdk_translate_link( 'https://optimole.com/contact/' )
1393+
),
13851394
];
13861395
}
13871396

@@ -2183,6 +2192,13 @@ private function get_dashboard_strings() {
21832192
'<a class="flex justify-center items-center font-semibold" href="https://docs.optimole.com/article/2238-optimization-tips" target="_blank"> ',
21842193
'<span style="text-decoration:none; font-size:15px; margin-top:2px;" class="dashicons dashicons-external"></span></a>'
21852194
),
2195+
'contact_support' => [
2196+
// translators: %s is the email main subject.
2197+
'title_prefix' => __( '[Lazy Load Issue] %s', 'optimole-wp' ),
2198+
'disable_lazy_load_scaling' => __( 'Disable Lazy Load & Scaling' ),
2199+
'disable_image_scaling' => __( 'Disable Image Scaling' ),
2200+
'enable_native_lazy_load' => __( 'Enable Native Lazy Load' ),
2201+
],
21862202
// translators: %s is the date of the renewal.
21872203
'renew_date' => __( 'Renews %s', 'optimole-wp' ),
21882204
];
@@ -2225,7 +2241,7 @@ public function get_survey_metadata( $data, $page_slug ) {
22252241
}
22262242

22272243
$data = [
2228-
'environmentId' => 'clo8wxwzj44orpm0gjchurujm',
2244+
'environmentId' => 'clo8wxwy044olpm0gn83ihta6',
22292245
'attributes' => [
22302246
'plan' => $user_data['plan'],
22312247
'status' => $user_data['status'],

0 commit comments

Comments
 (0)