BlueWallet/screen/ActionSheet.ts

28 lines
932 B
TypeScript
Raw Normal View History

// ActionSheet.ts
import { Alert, InteractionManager } from 'react-native';
2024-05-20 11:54:13 +02:00
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) => {
2024-03-09 05:08:07 +01:00
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 });
});
}
}