Files
jitsi-meet/react/features/analytics/handlers/amplitude/fixDeviceID.native.ts
Saúl Ibarra Corretgé ec1bfe73b3 fix(amplitude) sync device ID on web too
Note the use of jitsiLocalStorage since we also need to consider the
case when local storage is performed in the host page when in an
iframe.
2025-07-07 11:39:04 +02:00

34 lines
916 B
TypeScript

import { Types } from '@amplitude/analytics-react-native';
import DefaultPreference from 'react-native-default-preference';
import { getUniqueId } from 'react-native-device-info';
import logger from '../../logger';
/**
* Custom logic for setting the correct device id.
*
* @param {Types.ReactNativeClient} amplitude - The amplitude instance.
* @returns {void}
*/
export async function fixDeviceID(amplitude: Types.ReactNativeClient) {
await DefaultPreference.setName('jitsi-preferences');
const current = await DefaultPreference.get('amplitudeDeviceId');
if (current) {
amplitude.setDeviceId(current);
} else {
const uid = await getUniqueId();
if (!uid) {
logger.warn('Device ID is not set!');
return;
}
amplitude.setDeviceId(uid as string);
await DefaultPreference.set('amplitudeDeviceId', uid as string);
}
}