mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2026-04-24 07:22:02 +01:00
* Searchable dropdown * format fix * Refactor SearchableDropdown with Fluent UI components, extract styles, and add tests (#2329) * Initial plan * Refactor SearchableDropdown with Fluent UI components and add tests - Replace native HTML elements with Fluent UI components (Stack, DefaultButton, Text) - Extract inline styles to SearchableDropdown.styles.ts - Add comprehensive unit tests (14 test cases) - Verify behavior consistency with AccountSwitcher tests Co-authored-by: nishthaAhujaa <45535788+nishthaAhujaa@users.noreply.github.com> * Optimize SearchableDropdown with useMemo for filteredItems Co-authored-by: nishthaAhujaa <45535788+nishthaAhujaa@users.noreply.github.com> * Fix text alignment to match original UI - ensure left alignment - Add flexContainer.justifyContent: "flex-start" to button styles - Add textAlign: "left" to button label, item styles, and empty message - Restore original left-aligned appearance for placeholder and selected text Co-authored-by: nishthaAhujaa <45535788+nishthaAhujaa@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: nishthaAhujaa <45535788+nishthaAhujaa@users.noreply.github.com> * Fix TypeScript implicit type errors in SearchableDropdown tests (#2355) * Initial plan * Fix TypeScript compilation errors in SearchableDropdown.test.tsx Co-authored-by: nishthaAhujaa <45535788+nishthaAhujaa@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: nishthaAhujaa <45535788+nishthaAhujaa@users.noreply.github.com> * ui fixes minor * format fix * added search icon and updated the text * removed callbacks * added mocked playwright data * fixed formatting --------- Co-authored-by: nishthaAhujaa <nishtha17354@iiittd.ac.in> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: Sakshi Gupta <sakshig@microsoft.com> Co-authored-by: sakshigupta12feb <sakshigupta12feb1@gmail.com>
79 lines
1.6 KiB
TypeScript
79 lines
1.6 KiB
TypeScript
import { IButtonStyles, IStackStyles, ITextStyles } from "@fluentui/react";
|
|
import * as React from "react";
|
|
|
|
export const getDropdownButtonStyles = (disabled: boolean): IButtonStyles => ({
|
|
root: {
|
|
width: "100%",
|
|
height: "32px",
|
|
padding: "0 28px 0 8px",
|
|
border: "1px solid #8a8886",
|
|
background: "#fff",
|
|
color: "#323130",
|
|
textAlign: "left",
|
|
cursor: disabled ? "not-allowed" : "pointer",
|
|
position: "relative",
|
|
},
|
|
flexContainer: {
|
|
justifyContent: "flex-start",
|
|
},
|
|
label: {
|
|
fontWeight: "normal",
|
|
fontSize: "14px",
|
|
textAlign: "left",
|
|
},
|
|
});
|
|
|
|
export const buttonLabelStyles: ITextStyles = {
|
|
root: {
|
|
overflow: "hidden",
|
|
textOverflow: "ellipsis",
|
|
whiteSpace: "nowrap",
|
|
display: "block",
|
|
textAlign: "left",
|
|
},
|
|
};
|
|
|
|
export const buttonWrapperStyles: React.CSSProperties = {
|
|
position: "relative",
|
|
width: "100%",
|
|
};
|
|
|
|
export const chevronStyles: React.CSSProperties = {
|
|
position: "absolute",
|
|
right: "8px",
|
|
top: "50%",
|
|
transform: "translateY(-50%)",
|
|
pointerEvents: "none",
|
|
fontSize: "12px",
|
|
};
|
|
|
|
export const calloutContentStyles: IStackStyles = {
|
|
root: {
|
|
display: "flex",
|
|
flexDirection: "column",
|
|
},
|
|
};
|
|
|
|
export const listContainerStyles: IStackStyles = {
|
|
root: {
|
|
maxHeight: "300px",
|
|
overflowY: "auto",
|
|
},
|
|
};
|
|
|
|
export const getItemStyles = (isSelected: boolean): React.CSSProperties => ({
|
|
padding: "8px 12px",
|
|
cursor: "pointer",
|
|
fontSize: "14px",
|
|
backgroundColor: isSelected ? "#e6e6e6" : "transparent",
|
|
textAlign: "left",
|
|
});
|
|
|
|
export const emptyMessageStyles: ITextStyles = {
|
|
root: {
|
|
padding: "8px 12px",
|
|
color: "#605e5c",
|
|
textAlign: "left",
|
|
},
|
|
};
|