|
@@ -9,10 +9,13 @@ import {
|
|
|
import {
|
|
import {
|
|
|
type NCoreUIKitIcon
|
|
type NCoreUIKitIcon
|
|
|
} from "../../types";
|
|
} from "../../types";
|
|
|
|
|
+import type IBottomSheetProps from "../bottomSheet/type";
|
|
|
|
|
|
|
|
export type ISelectBoxRef<T> = {
|
|
export type ISelectBoxRef<T> = {
|
|
|
updateData: (newData: Array<T>, newSelectedItems: Array<SelectedItem>) => void;
|
|
updateData: (newData: Array<T>, newSelectedItems: Array<SelectedItem>) => void;
|
|
|
updateSelections: (newSelectedItems: Array<SelectedItem>) => void;
|
|
updateSelections: (newSelectedItems: Array<SelectedItem>) => void;
|
|
|
|
|
+ setIsMoreLoading: (state: boolean) => void;
|
|
|
|
|
+ setIsLoading: (state: boolean) => void;
|
|
|
cleanSelections: () => void;
|
|
cleanSelections: () => void;
|
|
|
selectAll: () => void;
|
|
selectAll: () => void;
|
|
|
cleanAll: () => void;
|
|
cleanAll: () => void;
|
|
@@ -65,17 +68,29 @@ export type SelectedItem = {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
interface ISelectBoxProps<T> {
|
|
interface ISelectBoxProps<T> {
|
|
|
- onChange?: (selectedItems: Array<SelectedItem>, data: Array<T | T & SelectedItem | SelectedItem>) => void;
|
|
|
|
|
|
|
+ onChange?: (
|
|
|
|
|
+ selectedItems: Array<SelectedItem>,
|
|
|
|
|
+ data: Array<T | T & SelectedItem | SelectedItem>,
|
|
|
|
|
+ setIsMoreLoading: (state: boolean) => void
|
|
|
|
|
+ ) => void;
|
|
|
titleExtractor: (item: T & SelectedItem, index: number) => string;
|
|
titleExtractor: (item: T & SelectedItem, index: number) => string;
|
|
|
keyExtractor: (item: T & SelectedItem, index: number) => string;
|
|
keyExtractor: (item: T & SelectedItem, index: number) => string;
|
|
|
removeSelectValidation?: (selectedItem: SelectedItem) => boolean;
|
|
removeSelectValidation?: (selectedItem: SelectedItem) => boolean;
|
|
|
selectValidation?: (selectedItem: SelectedItem) => boolean;
|
|
selectValidation?: (selectedItem: SelectedItem) => boolean;
|
|
|
onSearch?: (props: {
|
|
onSearch?: (props: {
|
|
|
data: Array<T & SelectedItem | SelectedItem>;
|
|
data: Array<T & SelectedItem | SelectedItem>;
|
|
|
|
|
+ setIsMoreLoading: (state: boolean) => void;
|
|
|
setIsLoading: (state: boolean) => void;
|
|
setIsLoading: (state: boolean) => void;
|
|
|
selectedItems: Array<SelectedItem>;
|
|
selectedItems: Array<SelectedItem>;
|
|
|
searchText: string;
|
|
searchText: string;
|
|
|
}) => Array<T | T & SelectedItem | SelectedItem>;
|
|
}) => Array<T | T & SelectedItem | SelectedItem>;
|
|
|
|
|
+ onMoreLoad?: (props: {
|
|
|
|
|
+ data: Array<T & SelectedItem | SelectedItem>;
|
|
|
|
|
+ setIsMoreLoading: (state: boolean) => void;
|
|
|
|
|
+ setIsLoading: (state: boolean) => void;
|
|
|
|
|
+ selectedItems: Array<SelectedItem>;
|
|
|
|
|
+ searchText: string;
|
|
|
|
|
+ }) => void;
|
|
|
spreadBehaviour?: SelectBoxSpreadBehaviour;
|
|
spreadBehaviour?: SelectBoxSpreadBehaviour;
|
|
|
initialSelectedItems?: Array<SelectedItem>;
|
|
initialSelectedItems?: Array<SelectedItem>;
|
|
|
hintTextContainerStyle?: ViewStyle;
|
|
hintTextContainerStyle?: ViewStyle;
|
|
@@ -85,6 +100,7 @@ interface ISelectBoxProps<T> {
|
|
|
rightIconOnPress?: () => void;
|
|
rightIconOnPress?: () => void;
|
|
|
hintTextIcon?: NCoreUIKitIcon;
|
|
hintTextIcon?: NCoreUIKitIcon;
|
|
|
isShowHintTextIcon?: boolean;
|
|
isShowHintTextIcon?: boolean;
|
|
|
|
|
+ moreLoadThreshold?: number;
|
|
|
renderOptionIcon?: (props: {
|
|
renderOptionIcon?: (props: {
|
|
|
item: T & SelectedItem | SelectedItem;
|
|
item: T & SelectedItem | SelectedItem;
|
|
|
index: number;
|
|
index: number;
|
|
@@ -92,6 +108,7 @@ interface ISelectBoxProps<T> {
|
|
|
renderItem?: (props: {
|
|
renderItem?: (props: {
|
|
|
onSelect: (selectedItem: SelectedItem) => void;
|
|
onSelect: (selectedItem: SelectedItem) => void;
|
|
|
data: Array<T & SelectedItem | SelectedItem>;
|
|
data: Array<T & SelectedItem | SelectedItem>;
|
|
|
|
|
+ setIsMoreLoading: (state: boolean) => void;
|
|
|
setIsLoading: (state: boolean) => void;
|
|
setIsLoading: (state: boolean) => void;
|
|
|
selectedItems: Array<SelectedItem>;
|
|
selectedItems: Array<SelectedItem>;
|
|
|
isSelected: boolean;
|
|
isSelected: boolean;
|
|
@@ -118,6 +135,17 @@ interface ISelectBoxProps<T> {
|
|
|
customLocalize?: {
|
|
customLocalize?: {
|
|
|
activeLocale?: NCoreUIKit.LocaleKey;
|
|
activeLocale?: NCoreUIKit.LocaleKey;
|
|
|
};
|
|
};
|
|
|
|
|
+ selectSheetProps?: Omit<
|
|
|
|
|
+ IBottomSheetProps,
|
|
|
|
|
+ "key" |
|
|
|
|
|
+ "customKey" |
|
|
|
|
|
+ "ref" |
|
|
|
|
|
+ "isAutoHeight" |
|
|
|
|
|
+ "isActive" |
|
|
|
|
|
+ "renderBottom" |
|
|
|
|
|
+ "renderHeader" |
|
|
|
|
|
+ "onClose"
|
|
|
|
|
+ >;
|
|
|
isShowSelectSheetTools?: boolean;
|
|
isShowSelectSheetTools?: boolean;
|
|
|
isWorkWithRealtime?: boolean;
|
|
isWorkWithRealtime?: boolean;
|
|
|
isMultipleSelect?: boolean;
|
|
isMultipleSelect?: boolean;
|