46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
import { decodeMessengerMiniAppStartParam } from '~/composables/useMessengerMiniAppStart';
|
|
|
|
export function useMessengerMiniApp() {
|
|
const telegramMiniApp = useTelegramMiniApp();
|
|
const maxMiniApp = useMaxMiniApp();
|
|
|
|
const channel = computed<'TELEGRAM' | 'MAX' | null>(() => {
|
|
if (maxMiniApp.isAvailable.value) {
|
|
return 'MAX';
|
|
}
|
|
|
|
if (telegramMiniApp.isAvailable.value) {
|
|
return 'TELEGRAM';
|
|
}
|
|
|
|
return null;
|
|
});
|
|
|
|
const isAvailable = computed(() => channel.value !== null);
|
|
const initData = computed(() =>
|
|
channel.value === 'MAX' ? maxMiniApp.initData.value : telegramMiniApp.initData.value,
|
|
);
|
|
const startParam = computed(() =>
|
|
channel.value === 'MAX' ? maxMiniApp.startParam.value : telegramMiniApp.startParam.value,
|
|
);
|
|
const startPath = computed(() => decodeMessengerMiniAppStartParam(startParam.value));
|
|
const displayName = computed(() =>
|
|
channel.value === 'MAX' ? maxMiniApp.displayName.value : telegramMiniApp.displayName.value,
|
|
);
|
|
const channelLabel = computed(() =>
|
|
channel.value === 'MAX' ? 'MAX' : channel.value === 'TELEGRAM' ? 'Telegram' : '',
|
|
);
|
|
|
|
return {
|
|
channel,
|
|
channelLabel,
|
|
isAvailable,
|
|
initData,
|
|
startParam,
|
|
startPath,
|
|
displayName,
|
|
telegramMiniApp,
|
|
maxMiniApp,
|
|
};
|
|
}
|