@rcsb/rcsb-saguaro-app
Version:
RCSB 1D Saguaro Web App
55 lines (54 loc) • 1.8 kB
TypeScript
import React, { ReactNode } from "react";
import { OptionProps } from "react-select";
export interface GroupedOptionsInterface {
options: Array<SelectOptionInterface>;
label: string;
}
export type SelectOptionProps = OptionProps<OptionPropsInterface, false, GroupOptionPropsInterface>;
interface SelectButtonInterface {
elementId: string;
options?: Array<SelectOptionInterface> | Array<GroupedOptionsInterface>;
addTitle: boolean;
renderTitle: (title: string) => void;
defaultValue?: string | undefined | null;
width?: number;
dropdownTitle?: string;
optionProps?: (props: SelectOptionProps) => ReactNode;
isAdditionalButton?: boolean;
}
export interface SelectOptionInterface {
optId?: string;
groupLabel?: string;
name?: string;
shortLabel?: string;
label: string;
onChange: () => void;
}
export interface OptionPropsInterface extends SelectOptionInterface {
value: number;
}
export interface GroupOptionPropsInterface {
label: string;
options: OptionPropsInterface[];
}
interface SelectButtonState {
selectedOption: OptionPropsInterface;
}
export declare class SelectButton extends React.Component<SelectButtonInterface, SelectButtonState> {
private static readonly BUTTON_CONTAINER_DIV_SUFFIX;
private defaultValue;
private currentOption;
readonly state: SelectButtonState;
constructor(props: SelectButtonInterface);
private change;
componentDidUpdate(prevProps: Readonly<SelectButtonInterface>, prevState: Readonly<SelectButtonState>): void;
componentDidMount(): void;
render(): ReactNode;
private selectRender;
private selectButtonRender;
private innerSelectButtonRender;
private configStyle;
private getSelectOpt;
private renderTitle;
}
export {};