as-app/src/hooks/useSendAlertSMS.js

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