@rbxts/zircon
Version:
<div> <img src="https://i.imgur.com/YgpbX7G.png" align="left" width="128"/> <h1>ZIRCON</h1> <h3>A clean, sleek, runtime debugging console for Roblox</h3> <a href="https://npmjs.com/package/@rbxts/zircon"><img src="https://badge.fury.io
45 lines (44 loc) • 1.39 kB
TypeScript
/// <reference types="@rbxts/types" />
/// <reference types="@rbxts/compiler-types" />
/// <reference types="roact" />
import Roact from "@rbxts/roact";
import { IconEnum } from "./Icon";
interface ItemData<T> {
Id: T;
SelectedText?: string;
Text: string;
Icon?: IconEnum;
TextColor3?: Color3;
}
interface DropdownProps<T = string> {
readonly Items: Array<ItemData<T>>;
readonly Label: string;
readonly SelectedItemIds?: ReadonlySet<T>;
Size?: UDim2;
Disabled?: boolean;
ItemsSelected?: (item: Set<T>) => void;
}
interface DropdownState<T = string> {
active: boolean;
selectedItems: ReadonlySet<ItemData<T>>;
selectedItemIds: ReadonlySet<T>;
}
export default class MultiSelectDropdown<T = string> extends Roact.Component<DropdownProps<T>, DropdownState<T>> {
private dropdownRef;
private maid;
private portalPosition;
private setPortalPosition;
private portalSizeX;
private setPortalSizeX;
constructor(props: DropdownProps<T>);
private getItemSet;
private updateSelectedIndexes;
setPortalPositionRelativeTo(frame: Frame): void;
didUpdate(prevProps: DropdownProps<T>): void;
didMount(): void;
willUnmount(): void;
renderDropdownItems(): Roact.Element[];
renderDropdown(): Roact.Element;
render(): Roact.Element;
}
export {};