Skip to content

Commit

Permalink
rename ErrorModal to ErrorBottomSheet, make that more Declarative, pa…
Browse files Browse the repository at this point in the history
…ss error to Sentry
  • Loading branch information
bohdanprog committed May 15, 2024
1 parent f8219a2 commit f76c383
Show file tree
Hide file tree
Showing 9 changed files with 141 additions and 147 deletions.
4 changes: 2 additions & 2 deletions messages/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -857,10 +857,10 @@
"message": "Go Back"
},
"sharedComponents.ErrorModal.somethingWrong": {
"message": "Something Went Wrong"
"message": "Something\n Went Wrong"
},
"sharedComponents.ErrorModal.tryAgain": {
"message": "Please go back and try again"
"message": "Try Again"
},
"sharedComponents.GpsPill.noGps": {
"message": "No GPS"
Expand Down
17 changes: 6 additions & 11 deletions src/frontend/screens/ObservationEdit/SaveButton.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,10 @@ const log = debug('SaveButton');

export const SaveButton = ({
observationId,
openErrorModal,
setError,
}: {
observationId?: string;
openErrorModal?: () => void;
setError: React.Dispatch<React.SetStateAction<Error | null>>;
}) => {
const value = usePersistedDraftObservation(store => store.value);
const photos = usePersistedDraftObservation(store => store.photos);
Expand All @@ -89,9 +89,7 @@ export const SaveButton = ({
createObservationMutation.mutate(
{value},
{
onError: () => {
if (openErrorModal) openErrorModal();
},
onError: setError,
onSuccess: () => {
clearDraft();
navigation.navigate('Home', {screen: 'Map'});
Expand Down Expand Up @@ -130,9 +128,7 @@ export const SaveButton = ({
},
},
{
onError: () => {
if (openErrorModal) openErrorModal();
},
onError: setError,
onSuccess: data => {
clearDraft();
navigation.navigate('Home', {screen: 'Map'});
Expand All @@ -152,9 +148,7 @@ export const SaveButton = ({
},
);
})
.catch(() => {
if (openErrorModal) openErrorModal();
});
.catch(setError);
}

function editObservation() {
Expand All @@ -166,6 +160,7 @@ export const SaveButton = ({
// @ts-expect-error
{id: observationId, value},
{
onError: setError,
onSuccess: () => {
clearDraft();
navigation.pop();
Expand Down
14 changes: 6 additions & 8 deletions src/frontend/screens/ObservationEdit/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ import {DescriptionField} from './DescriptionField';
import {BottomSheet} from '../../sharedComponents/BottomSheet/BottomSheet';
import {ThumbnailScrollView} from '../../sharedComponents/ThumbnailScrollView';
import {PresetView} from './PresetView';
import {useBottomSheetModal} from '../../sharedComponents/BottomSheetModal';
import {ErrorModal} from '../../sharedComponents/ErrorModal';
import {ErrorBottomSheet} from '../../sharedComponents/ErrorBottomSheet';
import {SaveButton} from './SaveButton';
import {useState} from 'react';

const m = defineMessages({
editTitle: {
Expand All @@ -34,23 +34,21 @@ const m = defineMessages({
export const ObservationEdit: NativeNavigationComponent<'ObservationEdit'> & {
editTitle: MessageDescriptor;
} = ({navigation}) => {
const [error, setError] = useState<Error | null>(null);
const observationId = usePersistedDraftObservation(
store => store.observationId,
);

const isNew = !observationId;
const {formatMessage: t} = useIntl();
const {openSheet, sheetRef, isOpen, closeSheet} = useBottomSheetModal({
openOnMount: false,
});

React.useEffect(() => {
navigation.setOptions({
headerRight: () => (
<SaveButton observationId={observationId} openErrorModal={openSheet} />
<SaveButton observationId={observationId} setError={setError} />
),
});
}, [navigation, openSheet, observationId]);
}, [navigation, observationId]);

const handleCameraPress = React.useCallback(() => {
navigation.navigate('AddPhoto');
Expand Down Expand Up @@ -87,7 +85,7 @@ export const ObservationEdit: NativeNavigationComponent<'ObservationEdit'> & {
<ThumbnailScrollView />
</ScrollView>
<BottomSheet items={bottomSheetItems} />
<ErrorModal sheetRef={sheetRef} closeSheet={closeSheet} isOpen={isOpen} />
<ErrorBottomSheet error={error} clearError={() => setError(null)} />
</View>
);
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@ import MaterialIcon from 'react-native-vector-icons/MaterialIcons';
import {HookFormTextInput} from '../../../../sharedComponents/HookFormTextInput';
import {useCreateProject} from '../../../../hooks/server/projects';
import {UIActivityIndicator} from 'react-native-indicators';
import {ErrorModal} from '../../../../sharedComponents/ErrorModal';
import {useBottomSheetModal} from '../../../../sharedComponents/BottomSheetModal';
import {ErrorBottomSheet} from '../../../../sharedComponents/ErrorBottomSheet';

const m = defineMessages({
title: {
Expand Down Expand Up @@ -49,10 +48,7 @@ export const CreateProject: NativeNavigationComponent<'CreateProject'> = ({
}) => {
const {formatMessage: t} = useIntl();
const [advancedSettingOpen, setAdvancedSettingOpen] = React.useState(false);
const {mutate, isPending, reset} = useCreateProject();
const {openSheet, isOpen, closeSheet, sheetRef} = useBottomSheetModal({
openOnMount: false,
});
const {mutate, isPending, reset, error} = useCreateProject();

const {
control,
Expand All @@ -64,9 +60,6 @@ export const CreateProject: NativeNavigationComponent<'CreateProject'> = ({
mutate(val.projectName, {
onSuccess: () =>
navigation.navigate('ProjectCreated', {name: val.projectName}),
onError: () => {
openSheet();
},
});
}

Expand Down Expand Up @@ -121,12 +114,7 @@ export const CreateProject: NativeNavigationComponent<'CreateProject'> = ({
</View>
</TouchableWithoutFeedback>
</KeyboardAvoidingView>
<ErrorModal
isOpen={isOpen}
closeSheet={closeSheet}
sheetRef={sheetRef}
clearError={reset}
/>
<ErrorBottomSheet error={error} clearError={reset} />
</React.Fragment>
);
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@ import {BLACK} from '../../../../lib/styles';
import {HookFormTextInput} from '../../../../sharedComponents/HookFormTextInput';
import {IconButton} from '../../../../sharedComponents/IconButton';
import SaveIcon from '../../../../images/CheckMark.svg';
import {useBottomSheetModal} from '../../../../sharedComponents/BottomSheetModal';
import {ErrorModal} from '../../../../sharedComponents/ErrorModal';
import {ErrorBottomSheet} from '../../../../sharedComponents/ErrorBottomSheet';
import {FieldRow} from './FieldRow';

const m = defineMessages({
Expand Down Expand Up @@ -72,17 +71,13 @@ export const EditScreen = ({
deviceName: string;
}>({defaultValues: {deviceName}});

const {isPending, mutate} = useEditDeviceInfo();
const {isPending, mutate, error} = useEditDeviceInfo();

const {isDirty: nameHasChanges} = control.getFieldState(
'deviceName',
formState,
);

const {openSheet, sheetRef, closeSheet, isOpen} = useBottomSheetModal({
openOnMount: false,
});

React.useEffect(
function showDiscardChangesAlert() {
const unsubscribe = navigation.addListener('beforeRemove', event => {
Expand Down Expand Up @@ -130,9 +125,6 @@ export const EditScreen = ({
mutate(value.deviceName, {
onSuccess: () =>
navigation.navigate('DeviceNameDisplay'),
onError: () => {
openSheet();
},
});
})
}>
Expand All @@ -142,7 +134,7 @@ export const EditScreen = ({
},
});
},
[handleSubmit, navigation, isPending, mutate, nameHasChanges, openSheet],
[handleSubmit, navigation, isPending, mutate, nameHasChanges],
);

return (
Expand All @@ -163,7 +155,7 @@ export const EditScreen = ({
/>
</FieldRow>
</ScrollView>
<ErrorModal sheetRef={sheetRef} closeSheet={closeSheet} isOpen={isOpen} />
<ErrorBottomSheet error={error} />
</>
);
};
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import * as React from 'react';
import {NativeNavigationComponent} from '../../../../../sharedTypes/navigation';
import {defineMessages} from 'react-intl';
import {useBottomSheetModal} from '../../../../../sharedComponents/BottomSheetModal';
import {ErrorModal} from '../../../../../sharedComponents/ErrorModal';
import {ErrorBottomSheet} from '../../../../../sharedComponents/ErrorBottomSheet';
import {ReviewInvitation} from './ReviewInvitation';
import {WaitingForInviteAccept} from './WaitingForInviteAccept';
import {
Expand All @@ -23,9 +22,6 @@ export const ReviewAndInvite: NativeNavigationComponent<'ReviewAndInvite'> = ({
}) => {
const {role, deviceId, deviceType, name} = route.params;

const {openSheet, sheetRef, closeSheet, isOpen} = useBottomSheetModal({
openOnMount: false,
});
const sendInviteMutation = useSendInvite();
const requestCancelInviteMutation = useRequestCancelInvite();

Expand All @@ -49,9 +45,6 @@ export const ReviewAndInvite: NativeNavigationComponent<'ReviewAndInvite'> = ({
return;
}
},
onError: () => {
openSheet();
},
},
);
}
Expand All @@ -61,9 +54,6 @@ export const ReviewAndInvite: NativeNavigationComponent<'ReviewAndInvite'> = ({
onSuccess: () => {
navigation.navigate('YourTeam');
},
onError: () => {
openSheet();
},
});
}

Expand All @@ -80,10 +70,8 @@ export const ReviewAndInvite: NativeNavigationComponent<'ReviewAndInvite'> = ({
) : (
<WaitingForInviteAccept cancelInvite={cancelInvite} />
)}
<ErrorModal
sheetRef={sheetRef}
closeSheet={closeSheet}
isOpen={isOpen}
<ErrorBottomSheet
error={sendInviteMutation.error ?? requestCancelInviteMutation.error}
clearError={() => navigation.navigate('YourTeam')}
/>
</React.Fragment>
Expand Down
7 changes: 5 additions & 2 deletions src/frontend/sharedComponents/Button.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import * as React from 'react';
import {GestureResponderEvent, StyleSheet, View, ViewStyle} from 'react-native';

import {BLACK, VERY_LIGHT_BLUE} from '../lib/styles';
import {BLACK, COMAPEO_BLUE, VERY_LIGHT_BLUE} from '../lib/styles';
import {Text} from './Text';
import {TouchableNativeFeedback} from 'react-native-gesture-handler';

import {ViewStyleProp} from '../sharedTypes';

type ColorScheme = 'dark' | 'light';
type ColorScheme = 'dark' | 'light' | 'ComapeoBlue';
type Variant = 'contained' | 'outlined' | 'text';
type Size = 'medium' | 'large';

Expand Down Expand Up @@ -162,6 +162,9 @@ const styles = StyleSheet.create({
textOutlinedDark: {
color: BLACK,
},
textOutlinedComapeoBlue: {
color: COMAPEO_BLUE,
},
textOutlinedLightDisabled: {
color: '#666666',
},
Expand Down
Loading

0 comments on commit f76c383

Please sign in to comment.