Skip to content

Conversation

@NikHillAgar
Copy link
Contributor

@NikHillAgar NikHillAgar commented Dec 2, 2025

Description

This PR addresses the enhancement request# 6256.

The changes store the prompt variables in-memory.

feat6256.mp4

Contribution Checklist:

  • The pull request only addresses one issue or adds one feature.
  • The pull request does not introduce any breaking changes
  • I have added screenshots or gifs to help explain the change if applicable.
  • I have read the contribution guidelines.
  • Create an issue and link to the pull request.

Summary by CodeRabbit

  • New Features

    • Added a "remember" toggle in the prompt modal footer to save and reuse prompt variable entries across uses/sessions.
    • When enabled, previously saved values prefill the prompt inputs.
  • Style / UI

    • Minor spacing adjustment in the prompt variables modal for improved visual balance.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 2, 2025

Walkthrough

Adds an opt-in "remember prompt value" toggle and plumbing: Modal gains new props and footer toggle; PromptVariables provider holds promptValues and savePromptValues and merges saved values on submit; PromptVariablesModal accepts these props and initializes inputs from promptValues when savePromptValues is true.

Changes

Cohort / File(s) Summary
Modal component & footer
packages/bruno-app/src/components/Modal/index.js
Added public props hidePromptToggle, savePromptValues, setSavePromptValues (with defaults); forwards them to footer and renders a "Remember prompt value" toggle in the footer (hidden when hidePromptToggle); toggle wired to setSavePromptValues.
Prompt Variables Modal
packages/bruno-app/src/components/RequestPane/PromptVariables/PromptVariablesModal/index.js
Extended function signature to accept promptValues, savePromptValues, setSavePromptValues; initializes internal values state from promptValues when savePromptValues is truthy (otherwise {}); passes hidePromptToggle, savePromptValues, setSavePromptValues into Modal; minor layout tweak (mb-2).
Prompt Variables provider
packages/bruno-app/src/providers/PromptVariables/index.js
Added local state promptValues and savePromptValues; on submit, merges new values into promptValues when savePromptValues is true; passes promptValues, savePromptValues, and setSavePromptValues into PromptVariablesModal.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Areas to check:
    • Initialization in PromptVariablesModal when promptValues is undefined/null.
    • Merge logic in provider to avoid unintended overwrites or shallow/deep merge issues.
    • Modal prop defaults and toggle state across open/close cycles.

Possibly related issues

Poem

✨ A tiny toggle learns your cue,
Keeps answers safe so inputs renew.
Modal and provider pass the key,
Values remembered, quick and free.
Small change, smoother typing spree.

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% 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 reflects the main feature: remembering prompt variable values and providing them as suggestions. It's specific, concise, and directly corresponds to the implementation.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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

Copy link
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: 2

🧹 Nitpick comments (2)
packages/bruno-app/src/components/RequestPane/PromptVariables/PromptVariablesModal/index.js (2)

68-68: Simplify the comment per coding guidelines.

The comment is too verbose. Coding guidelines specify meaningful comments over obvious ones and avoiding hand-holding explanations.

-// autoFocus={index === 0} --> AutoFocus breaks the code. AutoFocus does not seem to provide such a big enhancement to make the code more complicated
+// autoFocus removed to prevent conflicts with suggestion dropdown

100-100: Use null instead of empty fragment.

Per coding guidelines, prefer null for empty JSX returns.

-) : <></>}
+)}

Or if you need the ternary:

-) : <></>}
+) : null}
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d56e4f6 and f210acb.

📒 Files selected for processing (2)
  • packages/bruno-app/src/components/RequestPane/PromptVariables/PromptVariablesModal/index.js (3 hunks)
  • packages/bruno-app/src/providers/PromptVariables/index.js (3 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit inference engine (CODING_STANDARDS.md)

**/*.{js,jsx,ts,tsx}: Use 2 spaces for indentation. No tabs, just spaces
Stick to single quotes for strings
Always add semicolons at the end of statements
No trailing commas
Always use parentheses around parameters in arrow functions, even for single parameters
For multiline constructs, put opening braces on the same line, and ensure consistency. Minimum 2 elements for multiline
No newlines inside function parentheses. Keep 'em tight
Space before and after the arrow in arrow functions. () => {} is good
No space between function name and parentheses. func() not func ()
Semicolons go at the end of the line, not on a new line
Names for functions need to be concise and descriptive
Add in JSDoc comments to add more details to the abstractions if needed
Avoid single line abstractions where all that's being done is increasing the call stack with one additional function
Add in meaningful comments instead of obvious ones where complex code flow is explained properly

Files:

  • packages/bruno-app/src/components/RequestPane/PromptVariables/PromptVariablesModal/index.js
  • packages/bruno-app/src/providers/PromptVariables/index.js
🧬 Code graph analysis (1)
packages/bruno-app/src/providers/PromptVariables/index.js (1)
packages/bruno-app/src/components/RequestPane/PromptVariables/PromptVariablesModal/index.js (1)
  • values (8-8)
⏰ 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). (6)
  • GitHub Check: SSL Tests - Linux
  • GitHub Check: SSL Tests - macOS
  • GitHub Check: SSL Tests - Windows
  • GitHub Check: Playwright E2E Tests
  • GitHub Check: CLI Tests
  • GitHub Check: Unit Tests
🔇 Additional comments (4)
packages/bruno-app/src/providers/PromptVariables/index.js (2)

47-47: LGTM!

Passing promptVariables as a prop correctly threads the persisted state to the modal component.


2-2: Verify the useLocalStorage hook exists and review its implementation.

The code imports and uses useLocalStorage from hooks/useLocalStorage. Ensure this hook is properly implemented and handles edge cases like storage quota exceeded or invalid JSON.

packages/bruno-app/src/components/RequestPane/PromptVariables/PromptVariablesModal/index.js (2)

1-1: LGTM!

The import and function signature changes correctly add support for the promptVariables prop and the useRef hook.

Also applies to: 7-7


93-93: Good use of onMouseDown to prevent blur.

The onMouseDown with preventDefault() correctly handles the click-vs-blur race condition, and the comment provides valuable context with a reference.

Copy link
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: 1

🧹 Nitpick comments (2)
packages/bruno-app/src/components/RequestPane/PromptVariables/PromptVariablesModal/index.js (2)

15-29: Consider state-based visibility instead of direct DOM manipulation.

While the current implementation works, directly modifying node.style.display bypasses React's declarative model. A state-based approach (e.g., visibleSuggestions object or Set) would be more idiomatic, though the current method does avoid re-renders.

Example state-based alternative:

-const suggestionsRef = useRef();
+const [visibleSuggestions, setVisibleSuggestions] = useState(new Set());

 const handleOnFocus = (prompt) => {
-  const map = getSuggestionMap();
-  if (!map.has(prompt)) return;
-
-  const node = map.get(prompt);
-  node.style.display = 'block';
+  if (prompt in promptVariables) {
+    setVisibleSuggestions((prev) => new Set(prev).add(prompt));
+  }
 };

 const handleOnBlur = (prompt) => {
-  const map = getSuggestionMap();
-  if (!map.has(prompt)) return;
-
-  const node = map.get(prompt);
-  node.style.display = 'none';
+  setVisibleSuggestions((prev) => {
+    const next = new Set(prev);
+    next.delete(prompt);
+    return next;
+  });
 };

Then use style={{ display: visibleSuggestions.has(prompt) ? 'block' : 'none' }} in the suggestion div.


96-98: Consider simplifying the suggestion markup.

Using <ul><li> for a single item is semantically unusual. A simple <div> would be cleaner and more appropriate.

-<ul>
-  <li>{promptVariables[prompt]}</li>
-</ul>
+<div>{promptVariables[prompt]}</div>
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f210acb and 260eae0.

📒 Files selected for processing (1)
  • packages/bruno-app/src/components/RequestPane/PromptVariables/PromptVariablesModal/index.js (3 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit inference engine (CODING_STANDARDS.md)

**/*.{js,jsx,ts,tsx}: Use 2 spaces for indentation. No tabs, just spaces
Stick to single quotes for strings
Always add semicolons at the end of statements
No trailing commas
Always use parentheses around parameters in arrow functions, even for single parameters
For multiline constructs, put opening braces on the same line, and ensure consistency. Minimum 2 elements for multiline
No newlines inside function parentheses. Keep 'em tight
Space before and after the arrow in arrow functions. () => {} is good
No space between function name and parentheses. func() not func ()
Semicolons go at the end of the line, not on a new line
Names for functions need to be concise and descriptive
Add in JSDoc comments to add more details to the abstractions if needed
Avoid single line abstractions where all that's being done is increasing the call stack with one additional function
Add in meaningful comments instead of obvious ones where complex code flow is explained properly

Files:

  • packages/bruno-app/src/components/RequestPane/PromptVariables/PromptVariablesModal/index.js
🧠 Learnings (1)
📚 Learning: 2025-12-02T20:48:05.634Z
Learnt from: NikHillAgar
Repo: usebruno/bruno PR: 6279
File: packages/bruno-app/src/components/RequestPane/PromptVariables/PromptVariablesModal/index.js:79-86
Timestamp: 2025-12-02T20:48:05.634Z
Learning: In React 19+, ref callbacks support returning cleanup functions. When a ref callback returns a function, React will call it when the element unmounts or the ref changes, similar to useEffect cleanup. This is documented at https://react.dev/learn/manipulating-the-dom-with-refs#how-to-manage-a-list-of-refs-using-a-ref-callback

Applied to files:

  • packages/bruno-app/src/components/RequestPane/PromptVariables/PromptVariablesModal/index.js
🧬 Code graph analysis (1)
packages/bruno-app/src/components/RequestPane/PromptVariables/PromptVariablesModal/index.js (1)
packages/bruno-app/src/providers/PromptVariables/index.js (2)
  • prompt (11-15)
  • promptVariables (9-9)
⏰ 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). (6)
  • GitHub Check: Unit Tests
  • GitHub Check: SSL Tests - Windows
  • GitHub Check: CLI Tests
  • GitHub Check: Playwright E2E Tests
  • GitHub Check: SSL Tests - Linux
  • GitHub Check: SSL Tests - macOS
🔇 Additional comments (5)
packages/bruno-app/src/components/RequestPane/PromptVariables/PromptVariablesModal/index.js (5)

1-1: LGTM!

Import addition is clean and necessary for the ref-based suggestion tracking.


7-7: LGTM!

The new promptVariables prop integrates cleanly with existing props.


9-9: LGTM!

Ref initialization for the suggestions map is correct.


31-37: LGTM!

Lazy initialization pattern for the ref-based Map is correct.


68-70: LGTM!

The inline comment explaining the autoFocus removal is helpful, and the event handlers are correctly wired.

Comment on lines 76 to 100
{prompt in promptVariables
? (
<div
ref={(node) => {
const map = getSuggestionMap();
map.set(prompt, node);

return () => {
map.delete(prompt);
};
}}
data-testid="suggestion-container"
className="bg-black rounded-md p-3 text-white"
style={{ display: 'none', cursor: 'pointer' }}
// If only onClick is used onBlur is triggered first
// Below stackoverflow comment has the solution with explaination
// https://stackoverflow.com/questions/17769005/onclick-and-onblur-ordering-issue/57630197#57630197
onMouseDown={(e) => e.preventDefault()}
onClick={() => handleChange(prompt, promptVariables[prompt])}
>
<ul>
<li>{promptVariables[prompt]}</li>
</ul>
</div>
) : null}
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Add accessibility features for the suggestion dropdown.

The suggestion dropdown is missing critical accessibility attributes and keyboard navigation:

  1. ARIA attributes: The input should have aria-controls pointing to the suggestion container, and the container needs role="listbox" or similar
  2. Keyboard navigation: Users should be able to navigate with arrow keys and select with Enter
  3. Screen reader announcements: The suggestion availability should be announced when the input receives focus

These gaps prevent keyboard-only and screen-reader users from accessing the suggestion feature.

Example ARIA improvements:

 <input
   id={`prompt-${index}`}
+  aria-controls={`suggestion-${index}`}
+  aria-expanded={/* track if suggestion is visible */}
+  aria-autocomplete="list"
   type="text"
   ...
 />
 
 <div
+  id={`suggestion-${index}`}
+  role="listbox"
+  aria-label="Suggestion"
   ref={(node) => { ... }}
   ...
 >
-  <ul>
-    <li>{promptVariables[prompt]}</li>
-  </ul>
+  <div role="option" aria-selected="false">
+    {promptVariables[prompt]}
+  </div>
 </div>

Additionally, consider handling keyboard events (ArrowDown/Enter to select, Escape to close).

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In
packages/bruno-app/src/components/RequestPane/PromptVariables/PromptVariablesModal/index.js
around lines 76-100, the suggestion dropdown lacks ARIA attributes and keyboard
handling; add an id to the suggestion container and set role="listbox" and
data-testid as already present, add aria-controls on the related input (pointing
to that id) and manage aria-activedescendant on the input to reflect the
highlighted suggestion; implement keyboard handlers on the input to open the
list, move a focused index with ArrowDown/ArrowUp, select with Enter (calling
handleChange), and close with Escape while preventing default mouse down
behavior as you already do; finally provide live region announcements for when
suggestions appear (aria-live="polite" or a visually-hidden announcer) and
ensure each suggestion item has role="option" and an id that matches
aria-activedescendant so screen readers and keyboard users can navigate and
select items.

@helloanoop
Copy link
Contributor

Hey Thanks for the PR @NikHillAgar

I think @giuseppemilicia in #6256 is talking about some sort of checkbox to toggle in the form to auto-remember these fields instead of providing dropdown options

@NikHillAgar
Copy link
Contributor Author

NikHillAgar commented Dec 2, 2025

@helloanoop My bad. The code can be changed so instead of showing drop-down it will automatically fill the last value used. Also I can give the toggle in the settings to auto-remember these fields. If not selected prompt values will not be auto filled

Also should the app restricts on how many of these prompt variables it will store in the local storage?

@helloanoop
Copy link
Contributor

Auto toggle is not needed for each field. It'll be for the whole modal, in the bottom left corner.
Changes can be stored in-memory -- i.e need not persist across session/app restarts.

@NikHillAgar
Copy link
Contributor Author

Auto Remember Toggle:

  • If selected will save the values submitted. Next time when prompt modal opens it will auto populate the variables with last values.
  • If not selected values will not be saved and when prompt modal will open variables will not be auto populated.

UI: It would kind of look like below
Screenshot from 2025-12-03 22-31-42

Copy link
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: 2

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 260eae0 and f47e92e.

📒 Files selected for processing (3)
  • packages/bruno-app/src/components/Modal/index.js (4 hunks)
  • packages/bruno-app/src/components/RequestPane/PromptVariables/PromptVariablesModal/index.js (2 hunks)
  • packages/bruno-app/src/providers/PromptVariables/index.js (3 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/bruno-app/src/providers/PromptVariables/index.js
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit inference engine (CODING_STANDARDS.md)

**/*.{js,jsx,ts,tsx}: Use 2 spaces for indentation, never tabs
Use single quotes for strings instead of double quotes
Always add semicolons at the end of statements
No trailing commas in code
Always use parentheses around parameters in arrow functions, even for single parameters
For multiline constructs, put opening braces on the same line with a minimum of 2 elements for multiline formatting
No newlines inside function parentheses
Space before and after the arrow in arrow functions: () => {}
No space between function name and parentheses: func() not func ()
Semicolons should go at the end of the line, not on a new line
Function names should be concise and descriptive
Add JSDoc comments to provide details to abstractions
Avoid single-line abstractions where all that is being done is increasing the call stack with one additional function
Add meaningful comments to explain complex code flow instead of obvious comments

Files:

  • packages/bruno-app/src/components/Modal/index.js
  • packages/bruno-app/src/components/RequestPane/PromptVariables/PromptVariablesModal/index.js
🧠 Learnings (1)
📚 Learning: 2025-12-02T20:48:05.634Z
Learnt from: NikHillAgar
Repo: usebruno/bruno PR: 6279
File: packages/bruno-app/src/components/RequestPane/PromptVariables/PromptVariablesModal/index.js:79-86
Timestamp: 2025-12-02T20:48:05.634Z
Learning: In React 19+, ref callbacks support returning cleanup functions. When a ref callback returns a function, React will call it when the element unmounts or the ref changes, similar to useEffect cleanup. This is documented at https://react.dev/learn/manipulating-the-dom-with-refs#how-to-manage-a-list-of-refs-using-a-ref-callback

Applied to files:

  • packages/bruno-app/src/components/RequestPane/PromptVariables/PromptVariablesModal/index.js
🧬 Code graph analysis (2)
packages/bruno-app/src/components/Modal/index.js (1)
packages/bruno-app/src/providers/PromptVariables/index.js (1)
  • savePromptValues (9-9)
packages/bruno-app/src/components/RequestPane/PromptVariables/PromptVariablesModal/index.js (1)
packages/bruno-app/src/providers/PromptVariables/index.js (2)
  • savePromptValues (9-9)
  • promptValues (8-8)
⏰ 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). (6)
  • GitHub Check: SSL Tests - Windows
  • GitHub Check: SSL Tests - Linux
  • GitHub Check: SSL Tests - macOS
  • GitHub Check: Playwright E2E Tests
  • GitHub Check: Unit Tests
  • GitHub Check: CLI Tests
🔇 Additional comments (7)
packages/bruno-app/src/components/Modal/index.js (3)

22-34: LGTM!

The new props are integrated cleanly into ModalFooter's signature.


67-89: LGTM!

Default prop values are sensible: the toggle is hidden by default, savePromptValues starts false, and the setter is a no-op.


146-158: LGTM!

Props are correctly passed through to ModalFooter.

packages/bruno-app/src/components/RequestPane/PromptVariables/PromptVariablesModal/index.js (4)

7-7: LGTM!

The new props extend the API cleanly to support the remember-prompt feature.


8-10: LGTM!

The lazy initialization pattern is efficient, and the conditional logic correctly applies promptValues only when savePromptValues is enabled.


34-34: LGTM!

Adding bottom margin balances the spacing now that the footer contains the toggle.


25-27: Verify persistence mechanism aligns with requirements.

The PR description states that prompt variables are stored in local storage for persistence across sessions, but helloanoop suggested in-memory storage without persistence across app restarts. The code snippet shows only useState with no localStorage calls visible. Confirm where and how persistence is implemented—whether through a custom hook, a provider context, or another mechanism—and ensure it matches the agreed requirements.

Copy link
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 (2)
packages/bruno-app/src/components/Modal/index.js (2)

44-47: Checkbox wiring and accessibility are now correct; consider unique IDs if multiple modals can co-exist

The checkbox now uses a boolean checked={savePromptValues} and is correctly associated with its text via id/htmlFor, which resolves the earlier correctness and a11y concerns. If there is any chance of more than one modal with this toggle being mounted at the same time, consider deriving a per-instance ID (e.g. via useId) instead of the hard-coded promptToggle to avoid duplicate IDs in the DOM.


67-89: New Modal defaults maintain existing behavior while enabling the toggle

Defaulting hidePromptToggle to true and savePromptValues to false, with a no-op setSavePromptValues, preserves all existing usages while allowing callers like PromptVariablesModal to opt in. Just ensure any caller that sets hidePromptToggle={false} always provides a real setSavePromptValues to avoid a silent no-op on toggle.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f47e92e and 2dc573a.

📒 Files selected for processing (1)
  • packages/bruno-app/src/components/Modal/index.js (4 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit inference engine (CODING_STANDARDS.md)

**/*.{js,jsx,ts,tsx}: Use 2 spaces for indentation, never tabs
Use single quotes for strings instead of double quotes
Always add semicolons at the end of statements
No trailing commas in code
Always use parentheses around parameters in arrow functions, even for single parameters
For multiline constructs, put opening braces on the same line with a minimum of 2 elements for multiline formatting
No newlines inside function parentheses
Space before and after the arrow in arrow functions: () => {}
No space between function name and parentheses: func() not func ()
Semicolons should go at the end of the line, not on a new line
Function names should be concise and descriptive
Add JSDoc comments to provide details to abstractions
Avoid single-line abstractions where all that is being done is increasing the call stack with one additional function
Add meaningful comments to explain complex code flow instead of obvious comments

Files:

  • packages/bruno-app/src/components/Modal/index.js
🧬 Code graph analysis (1)
packages/bruno-app/src/components/Modal/index.js (1)
packages/bruno-app/src/providers/PromptVariables/index.js (1)
  • savePromptValues (9-9)
⏰ 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). (6)
  • GitHub Check: CLI Tests
  • GitHub Check: Playwright E2E Tests
  • GitHub Check: Unit Tests
  • GitHub Check: SSL Tests - macOS
  • GitHub Check: SSL Tests - Windows
  • GitHub Check: SSL Tests - Linux
🔇 Additional comments (2)
packages/bruno-app/src/components/Modal/index.js (2)

22-35: ModalFooter prop surface extension looks sound and backward compatible

Adding hidePromptToggle, savePromptValues, and setSavePromptValues here is clean and keeps existing callers working since defaults are handled at the Modal level. No issues from a typing or behavioral standpoint in this file.


145-158: Prop plumbing from Modal to ModalFooter is correct

hidePromptToggle, savePromptValues, and setSavePromptValues are forwarded as expected alongside the existing footer props, so the footer toggle will track the same state that the provider manages. This matches the provider snippet (useState(false)) and should integrate cleanly.

@NikHillAgar
Copy link
Contributor Author

@helloanoop I have made the changes. Please review.

@helloanoop
Copy link
Contributor

@NikHillAgar The checkbox should be in the left side of the footer of the modal

@NikHillAgar
Copy link
Contributor Author

@helloanoop Below is the screenshot of updated UI. Checkbox is in the left side of the footer
image

@NikHillAgar
Copy link
Contributor Author

@helloanoop @bijin-bruno @lohit-bruno @naman-bruno Please review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants