Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions gp-advanced-select/gpadvs-caret-position.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/**
* Gravity Perks // Advanced Select // Caret Position
* https://gravitywiz.com/documentation/gravity-forms-advanced-select/
*
* Adds Caret Position to GP Advanced Select fields.
*
* The Caret Position is a built in plugin of Tom Select.
* @reference https://tom-select.js.org/plugins/caret-position/
*
* Instructions:
*
* 1. Install this snippet with our free Custom JavaScript plugin.
* https://gravitywiz.com/gravity-forms-code-chest/
*/
window.gform.addFilter(
'gpadvs_settings',
function(settings, gpadvsInstance, selectNamespace) {
/**
* Scope to only multiselect fields.
*/
if (gpadvsInstance.fieldType === 'multiselect') {
settings.plugins.caret_position = {
title: 'Caret Position',
};
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Add defensive programming to prevent potential runtime errors.

The code assumes settings.plugins exists, but if it's undefined, assigning to settings.plugins.caret_position will throw an error.

Apply this diff to add proper defensive checks:

        if (gpadvsInstance.fieldType === 'multiselect') {
+           if (!settings.plugins) {
+               settings.plugins = {};
+           }
            settings.plugins.caret_position = {
                title: 'Caret Position',
            };
        }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
if (gpadvsInstance.fieldType === 'multiselect') {
settings.plugins.caret_position = {
title: 'Caret Position',
};
}
if (gpadvsInstance.fieldType === 'multiselect') {
if (!settings.plugins) {
settings.plugins = {};
}
settings.plugins.caret_position = {
title: 'Caret Position',
};
}
🤖 Prompt for AI Agents
In gp-advanced-select/gpadvs-caret-position.js around lines 21 to 25, the code
assigns to settings.plugins.caret_position without verifying that
settings.plugins is defined, which can cause runtime errors. Add a defensive
check to ensure settings.plugins exists before assigning caret_position,
initializing settings.plugins as an empty object if it is undefined.


return settings;
}
);
Loading