Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

🛠️ Potential Solutions

🧐 Assumptions

  • We will turn the offer search editable, allow to the user to type the offer name

  • It cannot take much time to show the offer searched

  • We have to warn the user when the offer does not exist in the list

  • It needs to search in the list for every offer that contains at least three characters of the name according to what was typed

✅ Proposed Solution

Solution #1

The first solution is allowing the offer name to be editable using a different component (AutoComplete) and when the offer is searched it will look for the offer comparing the name with what was typed.

To do this, you need to use a component that searches for the offer name based on each character typed.

 src/components/customer-offers/forms/offer-form.tsx
const searchByOfferName = () => {
    if (!offerTemplate) {
      return customer.supportOffers.filter((offer) => offer);
    }

    return (
      customer?.supportOffers?.filter(
        (offer) =>
          offer?.name &&
          offerTemplate.length > 2 &&
          offer?.name?.toLowerCase().includes(offerTemplate),
      ) 
    );
  };
    
return {
  ...
  <form onSubmit={handleSubmit}>
    <DialogContent>
      <Grid container spacing={2}>
        <Grid item xs={12}>
          <FormControl
            variant="outlined"
            className={classes.formControl}
            error={hasSubmitted && !offerTemplate}
          >
            {searchByOfferName && (
              <Autocomplete
                ...
              )}

For more references:

✅ Pros:

  • Quick implementation

(error) Disregarding Solution

Solution #1

This solution allows the offer name to be still editable using a TextBox and when the offer is searched it will look for the offer by comparing the name with what was typed, in another component(Select) or a List that would render according to the list of offer available

(error) Cons:

  • Creation of more dependencies between component

  • Use at least two components to do the same search instead of a specific one that does all the work

Solution #1.1

Use of regex to get any part of the text typed to compare to the list of offers to be assigned

(error) Cons:

  • Creation of a new constant to search offers names by what was typed instead of using native properties.

🧑‍🚒 QA Plan

Test Scenario

Result

Screenshots

Show entire offers list

  • When selecting the Search Ofer Input show full list of offers names

Screenshot 2024-08-01 at 10.49.30.png

Show only offers with a specific character or words typed

  • After typing at least three characters in the Search Ofer Input that exists in some offer name

  • Show only offers with a specific characters or words typed

Screenshot 2024-08-01 at 10.48.01.png

Show warning error for inxestent offer in the list

  • After typing at least three characters that it does not exist in any offer name in the Search Ofer Input

  • Shows warning message: No results for "whatever was typed”

Screenshot 2024-08-01 at 10.47.14.png
  • No labels