33 lines
1.2 KiB
JavaScript
33 lines
1.2 KiB
JavaScript
import { useCallback } from "react";
|
|
import sendSMS from "~/lib/sms/sendSMS";
|
|
|
|
import { getCurrentLocation } from "~/location";
|
|
|
|
export default function useSendAlertSMS() {
|
|
return useCallback(async ({ alert, recipients }) => {
|
|
let [longitude, latitude] = alert?.location?.coordinates || [];
|
|
if (!(longitude && latitude)) {
|
|
const coords = await getCurrentLocation();
|
|
({ latitude, longitude } = coords);
|
|
}
|
|
// we need to keep message < 153 characters
|
|
// even uri encoded, the ampersand char break/truncate body links on some devices
|
|
const bodyParts = [];
|
|
bodyParts.push(`J'ai besoin d'aide.`);
|
|
if (alert.code) {
|
|
const deepLink = `https://app.alertesecours.fr/code/${encodeURIComponent(
|
|
alert.code,
|
|
)}?q=c:${alert.accessCode}~l:${latitude},${longitude}`;
|
|
bodyParts.push(deepLink);
|
|
}
|
|
|
|
const body = bodyParts.join("\n");
|
|
// if (body.length > 153) {
|
|
// console.warn("SMS body exceeds 153 characters and may be truncated");
|
|
// }
|
|
|
|
return sendSMS(recipients, body);
|
|
}, []);
|
|
}
|
|
|
|
// eg: J'ai besoin d'aide https://app.alertesecours.fr/code/Jet.Yang.Fun.Dés.Yang?q=c:lqaNNYz18Ma_u5dVPGNj~l:48.86958,2.3315333
|