BlueWallet/screen/ActionSheet.ts
Marcos Rodriguez Velez 32ce3525b8
Lint
2024-03-09 00:08:07 -04:00

27 lines
931 B
TypeScript

// ActionSheet.ts
import { Alert, InteractionManager } from 'react-native';
import { ActionSheetOptions, CompletionCallback } from './ActionSheet.common';
export default class ActionSheet {
static showActionSheetWithOptions(options: ActionSheetOptions, completion: CompletionCallback): void {
InteractionManager.runAfterInteractions(() => {
const alertOptions = options.options.map((option, index) => {
let style: 'default' | 'cancel' | 'destructive' = 'default';
if (index === options.destructiveButtonIndex) {
style = 'destructive';
} else if (index === options.cancelButtonIndex) {
style = 'cancel';
}
return {
text: option,
onPress: () => completion(index),
style,
};
});
Alert.alert(options.title || '', options.message || '', alertOptions, { cancelable: !!options.cancelButtonIndex });
});
}
}