fix: settings form select menu (#9179)

Closes: #8647 
Closes: #8649 

**Changes & Why**

1. Added a Search Input to `SettingsDataModelFieldAddressForm` &
`SettingsDataModelFieldCurrencyForm` as `Select` component already
accepts it as a prop.
2. Gave a fixed width to the dropdown of both the above components to
ensure it doesn't shrink on search for the menu items with low word
count.
3. Added countries Flag to `SettingsDataModelFieldAddressForm`. 
4. Replaced `MenuItem` with `MenuItemSelect` to get the desired
highlighted background for the selected item with `IconCheck` to
differentiate the current selected item. This is useful across all the
select components throughout the app.
5. I realized that in some components we might not need IconCheck and
only need a highlighted background for the selected item. For ex:
`SettingsDataModelFieldBooleanForm` . Therefore, I created a prop
`needIconCheck` with default as true so it doesn't break the existing
`MenuItemSelect` and we can pass that prop as false wherever needed.

[Screencast from 2024-12-21
12-08-08.webm](https://github.com/user-attachments/assets/4f8070a8-f339-4556-a137-bbbad58b171c)
This commit is contained in:
Harsh Singh
2024-12-24 16:54:40 +05:30
committed by GitHub
parent 801bf7c016
commit fe6948ba0b
6 changed files with 23 additions and 10 deletions

View File

@ -40,6 +40,7 @@ export const StyledMenuItemSelect = styled(StyledMenuItemBase)<{
type MenuItemSelectProps = {
LeftIcon?: IconComponent | null | undefined;
selected: boolean;
needIconCheck?: boolean;
text: string;
className?: string;
onClick?: () => void;
@ -52,6 +53,7 @@ export const MenuItemSelect = ({
LeftIcon,
text,
selected,
needIconCheck = true,
className,
onClick,
disabled,
@ -69,7 +71,7 @@ export const MenuItemSelect = ({
hovered={hovered}
>
<MenuItemLeftContent LeftIcon={LeftIcon} text={text} />
{selected && <IconCheck size={theme.icon.size.md} />}
{selected && needIconCheck && <IconCheck size={theme.icon.size.md} />}
{hasSubMenu && (
<IconChevronRight
size={theme.icon.size.sm}