Skip to content

Prevent new choice options aside from the choice label from displaying as separate elements in the builder#2534

Merged
Crabcyborg merged 9 commits into
masterfrom
issue-6011
Nov 17, 2025
Merged

Prevent new choice options aside from the choice label from displaying as separate elements in the builder#2534
Crabcyborg merged 9 commits into
masterfrom
issue-6011

Conversation

@AbdiTolesa
Copy link
Copy Markdown
Contributor

@AbdiTolesa AbdiTolesa commented Oct 8, 2025

Fix https://github.com/Strategy11/formidable-pro/issues/6011
Before:

CleanShot.2025-10-08.at.10.56.18.mp4

After:

CleanShot.2025-10-08.at.10.57.25.mp4

@AbdiTolesa AbdiTolesa changed the title Prevent choice options aside from 'label' or 'value' in the builder Prevent new choice options aside from the choice label from displaying as separate elements in the builder Oct 8, 2025
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Oct 8, 2025

Walkthrough

Modified option input extraction logic in the admin interface by narrowing the candidate input selector to those with "[label]" in their names and simplifying the skip condition to exclude only "[000]" inputs, removing prior exclusions for "[value]", "[image]", and "[price]".

Changes

Cohort / File(s) Summary
Option Input Extraction Logic
js/src/admin/admin.js
Refined the selector for candidate option inputs to filter by "[label]" names instead of a broader criteria; simplified the skip-condition logic in the option-reading loop to exclude only "[000]" inputs while removing prior exclusions for "[value]", "[image]", and "[price]".

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

  • Single-file change with focused logic modifications
  • Filtering conditions are straightforward but require verification of intended behavior impact
  • Changes in this area affect option data extraction, which should be tested for correctness with various option configurations

Possibly related PRs

Suggested labels

action: needs qa

Suggested reviewers

  • truongwp

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.31% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: preventing choice options other than the label from displaying as separate elements in the builder, which directly corresponds to the code changes that narrow input filtering to only [label] fields.
Description check ✅ Passed The description is related to the changeset, referencing the specific issue being fixed and providing visual before/after references that demonstrate the intended behavior change.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch issue-6011

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9d9e49f and f7578ad.

📒 Files selected for processing (1)
  • js/src/admin/admin.js (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • js/src/admin/admin.js
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: Cypress
  • GitHub Check: PHP 8 tests in WP trunk
  • GitHub Check: PHP 7.4 tests in WP trunk

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@lauramekaj1 lauramekaj1 left a comment

Choose a reason for hiding this comment

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

@AbdiTolesa I tested it and it's working as expected. Thank you!

@AbdiTolesa AbdiTolesa requested a review from truongwp November 6, 2025 10:13
@truongwp
Copy link
Copy Markdown
Contributor

truongwp commented Nov 6, 2025

@AbdiTolesa I add the Other option, then click Bulk edit option, the update options. I don't see the Other option and the button to add it anymore.

@AbdiTolesa
Copy link
Copy Markdown
Contributor Author

@AbdiTolesa I add the Other option, then click Bulk edit option, the update options. I don't see the Other option and the button to add it anymore.

@truongwp I created a separate issue to track that since it is not related to this update: https://github.com/Strategy11/formidable-pro/issues/6077

@truongwp
Copy link
Copy Markdown
Contributor

truongwp commented Nov 7, 2025

@AbdiTolesa Sorry. That's probably not a bug.

Is this issue related to the limit options rock you're working on? Does it happen in master?

@AbdiTolesa
Copy link
Copy Markdown
Contributor Author

@AbdiTolesa Sorry. That's probably not a bug.

Is this issue related to the limit options rock you're working on? Does it happen in master?

@truongwp I noticed it on the Limit Options rock but I just created an issue for it as the issue can happen for any field added in the field options (where option labels and values are customized, like where I added the new limit choice option). Sorry for the confusion this might have created.

Copy link
Copy Markdown
Contributor

@truongwp truongwp left a comment

Choose a reason for hiding this comment

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

That sounds good to me. Thanks @AbdiTolesa!

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
js/src/admin/admin.js (1)

6207-6259: Selector tightening is correct; consider scoping and ends-with selectors for extra safety.

Broadening to only [label]/[value] inputs prevents non-label subkeys (price/image/etc.) from being treated as separate options — aligns with the PR goal. Approved.

Optional polish:

  • Scope to the field’s options container to avoid cross-field matches and reduce DOM work.
  • Prefer ends-with selectors to avoid incidental matches.

Example:

-const optVals = jQuery( 'input[name^="field_options[options_' + fieldId + ']"][name*="label"], input[name^="field_options[options_' + fieldId + ']"][name*="value"]' );
+const $optsContainer = jQuery('#frm_field_' + fieldId + '_opts');
+const optVals = $optsContainer.find(
+  'input[name^="field_options[options_' + fieldId + ']"][name$="[label]"],' +
+  'input[name^="field_options[options_' + fieldId + ']"][name$="[value]"]'
+);

And since the loop skips [value] entries, you could also drop the [value] half of the selector to reduce filtering overhead (optional).

Please sanity-check in the builder:

  • Radio/checkbox with images enabled: no duplicate options appear.
  • Product field with prices: labels/values render once; prices don’t create extra options.
  • Conditional logic value dropdown shows only choice labels/values.
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6184535 and 3aabfcf.

📒 Files selected for processing (1)
  • js/src/admin/admin.js (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: Cypress
  • GitHub Check: PHP 8 tests in WP trunk
  • GitHub Check: PHP 7.4 tests in WP trunk

Comment thread js/src/admin/admin.js Outdated
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🧹 Nitpick comments (6)
js/addons-page.js (1)

1-1: Prevent cross-card interference when auto-clicking install/activate buttons

Ut uses a module-scoped Rt as a click sentinel. If users trigger actions on different cards quickly, Rt’s global state can block the second action. Prefer a per-card guard and null-check the queried button before click.

Example refactor (in the source, not the built file):

- if (Rt?.classList.contains('frm_loading_button')) { return; }
- const btn = i.querySelector(selector);
- (Rt = btn).click();
+ const btn = i.querySelector(selector);
+ if (!btn || btn.classList.contains('frm_loading_button')) return;
+ btn.click();
js/onboarding-wizard.js (2)

1-1: Use a robust ajaxurl fallback for fetch

X uses fetch(ajaxurl, ...). On some admin pages window.ajaxurl may be undefined. Add a fallback to frm_js.ajax_url when available.

- fetch(ajaxurl, { method: "POST", body: formData })
+ const postUrl = window.ajaxurl ?? (window.frm_js?.ajax_url ?? ajaxurl);
+ fetch(postUrl, { method: "POST", body: formData })

1-1: Reset the Promise chain before batch installs

The module-scoped Promise (o = Promise.resolve()) is reused; subsequent clicks could chain onto a prior run. Reset it at the start of Q to isolate batches.

 function Q(ev) {
-  // uses outer `o`
+  // reset chain per run
+  o = Promise.resolve();
   // ...
 }
js/formidable-settings-components.js (1)

1-1: Remove redundant class add in hideExtraElements

The element gets frm_hidden added twice (directly and via an inner helper). Drop the duplicate.

- el.classList.add(hiddenClass);
- (e => e?.classList.add(hiddenClass))(el);
+ el.classList.add(hiddenClass);
js/formidable_dashboard.js (1)

1-1: Null‑guard dashboard elements before binding

initInbox binds a click handler on #frm-add-my-email-address unconditionally. Add a guard to avoid errors if the button isn’t present.

- document.querySelector("#frm-add-my-email-address").addEventListener("click", () => {
+ const btn = document.querySelector("#frm-add-my-email-address");
+ if (btn) btn.addEventListener("click", () => {
    // ...
- });
+ });
js/src/admin/admin.js (1)

6207-6216: Tighten selector to label-only to avoid scanning/skip passes and future regressions

You already skip [value]/[price] items inside the loop; selecting them up-front is unnecessary and increases work. Query only the label inputs and keep using the existing lookups for [value]/[price]. This also reduces the chance of accidentally matching other sub-keys in the future.

Suggested change:

-const baseSelector = 'input[name^="field_options[options_' + fieldId + ']"]';
-const optVals = jQuery( baseSelector + '[name*="label"], ' + baseSelector + '[name*="value"], ' + baseSelector + '[name*="price"]');
+const baseSelector = 'input[name^="field_options[options_' + fieldId + ']"]';
+// Only iterate over choice labels; values/prices are fetched explicitly by name when needed.
+const optVals = jQuery( baseSelector + '[name$="[label]"]' );

You can also drop the “[value]” and “[price]” guards in the loop if you adopt the label-only selector.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3aabfcf and 305be22.

⛔ Files ignored due to path filters (3)
  • js/form-templates.js.map is excluded by !**/*.map, !**/*.map
  • js/formidable-settings-components.js.map is excluded by !**/*.map, !**/*.map
  • js/formidable_dashboard.js.map is excluded by !**/*.map, !**/*.map
📒 Files selected for processing (12)
  • css/admin/frm-settings-components.css (1 hunks)
  • css/frm_testing_mode.css (1 hunks)
  • js/addons-page.js (1 hunks)
  • js/formidable-settings-components.js (1 hunks)
  • js/formidable_blocks.js (1 hunks)
  • js/formidable_dashboard.js (1 hunks)
  • js/formidable_overlay.js (1 hunks)
  • js/formidable_styles.js (1 hunks)
  • js/frm_testing_mode.js (1 hunks)
  • js/onboarding-wizard.js (1 hunks)
  • js/src/admin/admin.js (1 hunks)
  • js/welcome-tour.js (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • css/admin/frm-settings-components.css
🧰 Additional context used
🧬 Code graph analysis (5)
js/onboarding-wizard.js (2)
js/src/admin/admin.js (44)
  • t (692-692)
  • t (717-717)
  • t (8989-8989)
  • t (10175-10175)
  • e (8208-8208)
  • i (438-438)
  • i (1771-1771)
  • i (2249-2249)
  • i (2993-2993)
  • i (3008-3008)
  • i (3080-3080)
  • i (3098-3098)
  • i (3112-3115)
  • i (3138-3146)
  • i (3176-3176)
  • i (3185-3185)
  • i (3446-3452)
  • i (3588-3591)
  • i (5413-5413)
  • i (5482-5483)
  • i (5557-5559)
  • frmDom (239-239)
  • frmDom (240-240)
  • frmDom (241-241)
  • a (3056-3056)
  • c (697-697)
  • c (722-722)
  • c (7246-7246)
  • c (9065-9065)
  • s (274-274)
  • s (8214-8214)
  • s (8965-8965)
  • s (9042-9042)
  • f (9004-9004)
  • p (8150-8150)
  • p (8165-8165)
  • v (3352-3352)
  • v (3372-3372)
  • v (6883-6883)
  • v (7250-7250)
  • v (7801-7801)
  • v (7817-7817)
  • v (7833-7833)
  • w (9538-9538)
js/src/admin/addon-state.js (3)
  • frmDom (3-3)
  • a (200-200)
  • ajaxurl (12-12)
js/welcome-tour.js (1)
js/src/welcome-tour/ui/spotlight.js (1)
  • getComputedStyle (123-123)
js/frm_testing_mode.js (3)
js/src/admin/admin.js (44)
  • t (692-692)
  • t (717-717)
  • t (8989-8989)
  • t (10175-10175)
  • e (8208-8208)
  • i (438-438)
  • i (1771-1771)
  • i (2249-2249)
  • i (2993-2993)
  • i (3008-3008)
  • i (3080-3080)
  • i (3098-3098)
  • i (3112-3115)
  • i (3138-3146)
  • i (3176-3176)
  • i (3185-3185)
  • i (3446-3452)
  • i (3588-3591)
  • i (5413-5413)
  • i (5482-5483)
  • i (5557-5559)
  • a (3056-3056)
  • s (274-274)
  • s (8214-8214)
  • s (8965-8965)
  • s (9042-9042)
  • c (697-697)
  • c (722-722)
  • c (7246-7246)
  • c (9065-9065)
  • f (9004-9004)
  • p (8150-8150)
  • p (8165-8165)
  • frmDom (239-239)
  • frmDom (240-240)
  • frmDom (241-241)
  • v (3352-3352)
  • v (3372-3372)
  • v (6883-6883)
  • v (7250-7250)
  • v (7801-7801)
  • v (7817-7817)
  • v (7833-7833)
  • w (9538-9538)
js/src/admin/addon-state.js (2)
  • a (200-200)
  • frmDom (3-3)
js/src/frm_testing_mode.js (1)
  • frmDom (34-34)
js/addons-page.js (2)
js/src/admin/admin.js (46)
  • t (692-692)
  • t (717-717)
  • t (8989-8989)
  • t (10175-10175)
  • e (8208-8208)
  • i (438-438)
  • i (1771-1771)
  • i (2249-2249)
  • i (2993-2993)
  • i (3008-3008)
  • i (3080-3080)
  • i (3098-3098)
  • i (3112-3115)
  • i (3138-3146)
  • i (3176-3176)
  • i (3185-3185)
  • i (3446-3452)
  • i (3588-3591)
  • i (5413-5413)
  • i (5482-5483)
  • i (5557-5559)
  • a (3056-3056)
  • c (697-697)
  • c (722-722)
  • c (7246-7246)
  • c (9065-9065)
  • s (274-274)
  • s (8214-8214)
  • s (8965-8965)
  • s (9042-9042)
  • f (9004-9004)
  • p (8150-8150)
  • p (8165-8165)
  • frmDom (239-239)
  • frmDom (240-240)
  • frmDom (241-241)
  • v (3352-3352)
  • v (3372-3372)
  • v (6883-6883)
  • v (7250-7250)
  • v (7801-7801)
  • v (7817-7817)
  • v (7833-7833)
  • w (9538-9538)
  • at (3020-3020)
  • wp (258-258)
js/src/admin/addon-state.js (2)
  • a (200-200)
  • frmDom (3-3)
js/formidable-settings-components.js (1)
js/src/admin/admin.js (43)
  • e (8208-8208)
  • t (692-692)
  • t (717-717)
  • t (8989-8989)
  • t (10175-10175)
  • i (438-438)
  • i (1771-1771)
  • i (2249-2249)
  • i (2993-2993)
  • i (3008-3008)
  • i (3080-3080)
  • i (3098-3098)
  • i (3112-3115)
  • i (3138-3146)
  • i (3176-3176)
  • i (3185-3185)
  • i (3446-3452)
  • i (3588-3591)
  • i (5413-5413)
  • i (5482-5483)
  • i (5557-5559)
  • frmDom (239-239)
  • frmDom (240-240)
  • frmDom (241-241)
  • a (3056-3056)
  • s (274-274)
  • s (8214-8214)
  • s (8965-8965)
  • s (9042-9042)
  • c (697-697)
  • c (722-722)
  • c (7246-7246)
  • c (9065-9065)
  • f (9004-9004)
  • v (3352-3352)
  • v (3372-3372)
  • v (6883-6883)
  • v (7250-7250)
  • v (7801-7801)
  • v (7817-7817)
  • v (7833-7833)
  • p (8150-8150)
  • p (8165-8165)
🪛 Biome (2.1.2)
js/onboarding-wizard.js

[error] 2-2: This case is falling through to the next case.

Add a break or return statement to the end of this case to prevent fallthrough.

(lint/suspicious/noFallthroughSwitchClause)


[error] 2-2: Unsafe usage of 'throw'.

'throw' in 'finally' overwrites the control flow statements inside 'try' and 'catch'.

(lint/correctness/noUnsafeFinally)


[error] 2-2: This case is falling through to the next case.

Add a break or return statement to the end of this case to prevent fallthrough.

(lint/suspicious/noFallthroughSwitchClause)


[error] 2-2: This case is falling through to the next case.

Add a break or return statement to the end of this case to prevent fallthrough.

(lint/suspicious/noFallthroughSwitchClause)


[error] 2-2: This case is falling through to the next case.

Add a break or return statement to the end of this case to prevent fallthrough.

(lint/suspicious/noFallthroughSwitchClause)


[error] 2-2: This case is falling through to the next case.

Add a break or return statement to the end of this case to prevent fallthrough.

(lint/suspicious/noFallthroughSwitchClause)


[error] 2-2: This case is falling through to the next case.

Add a break or return statement to the end of this case to prevent fallthrough.

(lint/suspicious/noFallthroughSwitchClause)


[error] 2-2: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 2-2: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 2-2: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 2-2: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 2-2: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 2-2: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 2-2: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)

js/welcome-tour.js

[error] 2-2: This case is falling through to the next case.

Add a break or return statement to the end of this case to prevent fallthrough.

(lint/suspicious/noFallthroughSwitchClause)


[error] 2-2: This case is falling through to the next case.

Add a break or return statement to the end of this case to prevent fallthrough.

(lint/suspicious/noFallthroughSwitchClause)


[error] 2-2: Do not use the t variable name as a label

The variable is declared here

Creating a label with the same name as an in-scope variable leads to confusion.

(lint/suspicious/noLabelVar)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)

js/formidable_dashboard.js

[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)

js/formidable_blocks.js

[error] 1-1: Unsafe usage of 'return'.

'return' in 'finally' overwrites the control flow statements inside 'try' and 'catch'.

(lint/correctness/noUnsafeFinally)


[error] 1-1: Unsafe usage of 'throw'.

'throw' in 'finally' overwrites the control flow statements inside 'try' and 'catch'.

(lint/correctness/noUnsafeFinally)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)

js/frm_testing_mode.js

[error] 2-2: This case is falling through to the next case.

Add a break or return statement to the end of this case to prevent fallthrough.

(lint/suspicious/noFallthroughSwitchClause)


[error] 2-2: Do not use the t variable name as a label

The variable is declared here

Creating a label with the same name as an in-scope variable leads to confusion.

(lint/suspicious/noLabelVar)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 2-2: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)

css/frm_testing_mode.css

[error] 3-3: Unexpected shorthand property background after background-color

(lint/suspicious/noShorthandPropertyOverrides)


[error] 3-3: Duplicate properties can lead to unexpected behavior and may override previous declarations unintentionally.

text-align is already defined here.

Remove or rename the duplicate property to ensure consistent styling.

(lint/suspicious/noDuplicateProperties)


[error] 3-3: Duplicate properties can lead to unexpected behavior and may override previous declarations unintentionally.

border-radius is already defined here.

Remove or rename the duplicate property to ensure consistent styling.

(lint/suspicious/noDuplicateProperties)

js/addons-page.js

[error] 1-1: Unsafe usage of 'throw'.

'throw' in 'finally' overwrites the control flow statements inside 'try' and 'catch'.

(lint/correctness/noUnsafeFinally)


[error] 1-1: Unsafe usage of 'return'.

'return' in 'finally' overwrites the control flow statements inside 'try' and 'catch'.

(lint/correctness/noUnsafeFinally)


[error] 1-1: Unsafe usage of 'throw'.

'throw' in 'finally' overwrites the control flow statements inside 'try' and 'catch'.

(lint/correctness/noUnsafeFinally)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: Do not use the t variable name as a label

The variable is declared here

Creating a label with the same name as an in-scope variable leads to confusion.

(lint/suspicious/noLabelVar)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)

js/formidable-settings-components.js

[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)

js/formidable_overlay.js

[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)

js/formidable_styles.js

[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: This variable is used before its declaration.

The variable is declared here:

(lint/correctness/noInvalidUseBeforeDeclaration)


[error] 1-1: Do not use the t variable name as a label

The variable is declared here

Creating a label with the same name as an in-scope variable leads to confusion.

(lint/suspicious/noLabelVar)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)


[error] 1-1: Do not reassign a function declaration.

Reassigned here.

Use a local variable instead.

(lint/suspicious/noFunctionAssign)

🪛 GitHub Check: Run ESLint
js/src/admin/admin.js

[failure] 6208-6208:
There must be a space before this paren

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Cypress
🔇 Additional comments (7)
css/frm_testing_mode.css (1)

2-3: LGTM — comment boundary tweak only

No functional CSS changes detected; safe.

js/welcome-tour.js (1)

1-1: LGTM

Changes are internal and guarded; no issues spotted.

js/frm_testing_mode.js (1)

1-1: LGTM

Only internal i18n/hooks wiring and modal helpers; no functional concerns.

js/formidable-settings-components.js (1)

1-1: Verification complete: Widened option input selectors are correctly constrained

Both the getMultipleOpts function selector and the bulk edit extraction logic target only label, value, and price inputs. The bulk edit path (lines 3466–3473) explicitly extracts only these three choice attributes via their exact input names, matching the behavior of getMultipleOpts. No unintended choice attributes like description, calc, logic, or visibility are rendered as separate elements. The PR intent is sound.

js/formidable_overlay.js (1)

1-1: Minified code cannot be meaningfully reviewed in this format.

This file is entirely minified on a single line, making detailed line-by-line review of actual changes infeasible. The AI summary claims changes are formatting-only (re-parenthesizing function wrappers, altering punctuation around callbacks) with no functional behavior changes, but without access to the source files or a before/after diff, this cannot be verified.

Additionally, all 14 Biome static analysis errors reference line 1-1 and are characteristic false positives that arise from minified code (e.g., hoisting patterns, function expression assignments, obfuscated identifiers). These do not represent actual defects.

Can you confirm whether this file has a corresponding source TypeScript or non-minified JavaScript file that should be reviewed instead? If so, please provide that file. Alternatively, if you have access to the git diff showing the before/after state, that would help verify the formatting-only claim.

js/src/admin/admin.js (1)

6208-6208: Unable to verify ESLint warning due to missing configuration.

The ESLint configuration files are missing from the repository (.eslintrc*, eslint.config.js not found) and package.json is not in the root directory, preventing linter execution. However, manual inspection of line 6208 shows the code already contains proper spacing: jQuery( baseSelector... has a space before the opening parenthesis.

The original ESLint report may have been stale or a false positive, or the issue may have already been resolved. Since the linter cannot be run to confirm the current status, verification of this concern requires manual confirmation from the project maintainers.

js/formidable_blocks.js (1)

1-1: Build artifact with superficial changes; unclear connection to PR objective.

This minified/bundled file shows only identifier and CSS hash changes typical of automated build output. However, the PR objective describes preventing choice options from displaying as separate elements in the builder, which doesn't align with Gutenberg block registration code.

Verify that the correct files are included in this PR or clarify how these block bundle changes relate to the choice options issue.

Note: All static analysis hints flagging line 1-1 are false positives from analyzing minified code and can be safely ignored.

Comment thread js/formidable_styles.js Outdated
Comment thread js/formidable-settings-components.js Outdated
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

♻️ Duplicate comments (1)
js/src/admin/admin.js (1)

6207-6208: Fix looks good; includes price and avoids non‑label duplication.

Using a base selector and filtering to label/value/price inputs, then skipping non‑labels in the loop, prevents extra “value/price” choices from rendering as separate elements and retains product price support. This also resolves the earlier feedback to support price.

🧹 Nitpick comments (1)
js/src/admin/admin.js (1)

6207-6208: Tighten selector or document intent; default price to empty.

  • Optional: Query only label inputs to reduce work and clarify intent (values/prices are derived via name replacement anyway).
  • If you keep the broader selector, add a one‑line comment explaining we intentionally select value/price but skip them.
  • Also, coalesce missing price to '' to avoid rendering data-price="undefined" on non-product/missing-price cases.

Suggested diffs:

Option A (narrow selector):

-const optVals = jQuery( baseSelector + '[name*="label"], ' + baseSelector + '[name*="value"], ' + baseSelector + '[name*="price"]' );
+const optVals = jQuery( baseSelector + '[name$="[label]"]' );

Price defaulting (outside this hunk, near price read):

- optObj.price = jQuery( 'input[name="' + labelName + '"]' ).val();
+ optObj.price = jQuery( 'input[name="' + labelName + '"]' ).val() || '';

Please verify bulk-edit, “Other” option, and product fields still render without duplicate choices after this change.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 305be22 and 9d9e49f.

📒 Files selected for processing (1)
  • js/src/admin/admin.js (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Cypress

@Crabcyborg Crabcyborg added this to the 6.26 milestone Nov 17, 2025
Copy link
Copy Markdown
Contributor

@Crabcyborg Crabcyborg left a comment

Choose a reason for hiding this comment

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

@AbdiTolesa I made some changes.

This change removes the need for some other funny logic underneath.

I got mixed up when I said we wanted to include [price]. In reality, it calls continue right away for anything that is [value], [price], or [image] (all of the other options we support here).

This logic below clearly is only intended for labels.

So I've updated this, so we only query for labels, with the [/] wrapper characters to make sure there aren't any funny matches, and I removed all of the checks for [price], [image] and [value], so this is all more simple.

I think this is good now.

🚀

@Crabcyborg Crabcyborg merged commit 791a0be into master Nov 17, 2025
15 of 16 checks passed
@Crabcyborg Crabcyborg deleted the issue-6011 branch November 17, 2025 13:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants