Compare commits

..

2 commits

Author SHA1 Message Date
ca3a2c8fcc feat(follow-location): init 2025-05-24 15:02:51 +02:00
991b65d990 fix: call emergency by default on yellow 2025-05-24 14:58:56 +02:00
3 changed files with 44 additions and 3 deletions

View file

@ -22,6 +22,7 @@ export default function FieldNotifySelector() {
const callEmergency = watch("callEmergency"); const callEmergency = watch("callEmergency");
const notifyAround = watch("notifyAround"); const notifyAround = watch("notifyAround");
const notifyRelatives = watch("notifyRelatives"); const notifyRelatives = watch("notifyRelatives");
const followLocation = watch("followLocation");
const level = watch("level"); const level = watch("level");
const checkedColor = colors.primary; const checkedColor = colors.primary;
@ -106,6 +107,29 @@ export default function FieldNotifySelector() {
}} }}
/> />
</View> </View>
<View style={styles.followLocationContainer}>
<CheckboxItem
status={followLocation ? "checked" : "unchecked"}
style={styles.checkboxItem}
labelStyle={styles.checkboxLabel}
size={styleOptions.checkboxItem.size}
icon={() => (
<MaterialCommunityIcons
name="crosshairs-gps"
style={styles.checkboxIcon}
onPress={() => {
setValue("followLocation", !followLocation);
}}
/>
)}
color={checkedColor}
uncheckedColor={uncheckedColor}
label="Suivre ma localisation"
onPress={() => {
setValue("followLocation", !followLocation);
}}
/>
</View>
</View> </View>
); );
} }
@ -122,6 +146,7 @@ const useStyles = createStyles(
({ wp, hp, scaleText, fontSize, theme: { colors, textShadowForWhite } }) => ({ ({ wp, hp, scaleText, fontSize, theme: { colors, textShadowForWhite } }) => ({
container: { container: {
marginTop: hp(2), marginTop: hp(2),
marginBottom: hp(3),
}, },
checkboxItemContainer: { checkboxItemContainer: {
borderRadius: 4, borderRadius: 4,
@ -130,6 +155,13 @@ const useStyles = createStyles(
marginVertical: hp(0.2), marginVertical: hp(0.2),
backgroundColor: colors.surface, backgroundColor: colors.surface,
}, },
followLocationContainer: {
borderRadius: 4,
borderWidth: 1,
borderColor: colors.outline,
marginVertical: hp(4),
backgroundColor: colors.surface,
},
checkboxItem: { checkboxItem: {
paddingHorizontal: 6, paddingHorizontal: 6,
}, },

View file

@ -9,7 +9,8 @@ export default function SendAlertConfirm({ route }) {
const { alert } = params; const { alert } = params;
const level = alert?.level || params.level; const level = alert?.level || params.level;
const callEmergency = params.forceCallEmergency || level === "red"; const callEmergency =
params.forceCallEmergency || level === "red" || level === "yellow";
const methods = useForm({ const methods = useForm({
defaultValues: { defaultValues: {
@ -18,6 +19,7 @@ export default function SendAlertConfirm({ route }) {
callEmergency, callEmergency,
notifyAround: true, notifyAround: true,
notifyRelatives: true, notifyRelatives: true,
followLocation: true,
}, },
}); });

View file

@ -33,8 +33,14 @@ async function onSubmit(args, context) {
const [alertInput] = args; const [alertInput] = args;
const { navigation } = context; const { navigation } = context;
const { subject, level, callEmergency, notifyAround, notifyRelatives } = const {
alertInput; subject,
level,
callEmergency,
notifyAround,
notifyRelatives,
followLocation,
} = alertInput;
const coords = await getCurrentLocation(); const coords = await getCurrentLocation();
@ -62,6 +68,7 @@ async function onSubmit(args, context) {
callEmergency, callEmergency,
notifyAround, notifyAround,
notifyRelatives, notifyRelatives,
followLocation: !!followLocation,
location, location,
accuracy, accuracy,
altitude, altitude,